public final class com.oracle.svm.core.windows.WindowsJavaThreads extends com.oracle.svm.core.thread.JavaThreads
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.windows.WindowsJavaThreads
  super_class: com.oracle.svm.core.thread.JavaThreads
{
  private static final org.graalvm.nativeimage.c.function.CEntryPointLiteral<org.graalvm.nativeimage.c.function.CFunctionPointer> osThreadStartRoutine;
    descriptor: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral<Lorg/graalvm/nativeimage/c/function/CFunctionPointer;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 116
            ldc Lcom/oracle/svm/core/windows/WindowsJavaThreads;
            ldc "osThreadStartRoutine"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/svm/core/windows/WindowsJavaThreads$WindowsThreadStartData;
            aastore
            invokestatic org.graalvm.nativeimage.c.function.CEntryPointLiteral.create:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
            putstatic com.oracle.svm.core.windows.WindowsJavaThreads.osThreadStartRoutine:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
         0: .line 67
            aload 0 /* this */
            invokespecial com.oracle.svm.core.thread.JavaThreads.<init>:()V
         1: .line 68
            return
        end local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/windows/WindowsJavaThreads;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  protected void doStartThread(java.lang.Thread, long);
    descriptor: (Ljava/lang/Thread;J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
        start local 1 // java.lang.Thread thread
        start local 2 // long stackSize
         0: .line 72
            lload 2 /* stackSize */
            l2i
            istore 4 /* threadStackSize */
        start local 4 // int threadStackSize
         1: .line 73
            invokestatic com.oracle.svm.core.windows.headers.Process.CREATE_SUSPENDED:()I
            istore 5 /* initFlag */
        start local 5 // int initFlag
         2: .line 75
            ldc Lcom/oracle/svm/core/windows/WindowsJavaThreads$WindowsThreadStartData;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            invokestatic org.graalvm.nativeimage.UnmanagedMemory.malloc:(I)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData
            astore 6 /* startData */
        start local 6 // com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData startData
         3: .line 76
            aload 0 /* this */
            aload 1 /* thread */
            aload 6 /* startData */
            invokevirtual com.oracle.svm.core.windows.WindowsJavaThreads.prepareStartData:(Ljava/lang/Thread;Lcom/oracle/svm/core/thread/JavaThreads$ThreadStartData;)V
         4: .line 79
            iload 4 /* threadStackSize */
            ifeq 6
         5: .line 80
            iload 5 /* initFlag */
            invokestatic com.oracle.svm.core.windows.headers.Process.STACK_SIZE_PARAM_IS_A_RESERVATION:()I
            ior
            istore 5 /* initFlag */
         6: .line 83
      StackMap locals: int int com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData
      StackMap stack:
            ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
            invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.nativeimage.c.type.CIntPointer
            astore 7 /* osThreadID */
        start local 7 // org.graalvm.nativeimage.c.type.CIntPointer osThreadID
         7: .line 84
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            iload 4 /* threadStackSize */
            getstatic com.oracle.svm.core.windows.WindowsJavaThreads.osThreadStartRoutine:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
            invokevirtual org.graalvm.nativeimage.c.function.CEntryPointLiteral.getFunctionPointer:()Lorg/graalvm/nativeimage/c/function/CFunctionPointer;
            aload 6 /* startData */
            iload 5 /* initFlag */
         8: .line 85
            aload 7 /* osThreadID */
         9: .line 84
            invokestatic com.oracle.svm.core.windows.headers.Process._beginthreadex:(Lorg/graalvm/word/PointerBase;ILorg/graalvm/nativeimage/c/function/CFunctionPointer;Lorg/graalvm/word/PointerBase;ILorg/graalvm/nativeimage/c/type/CIntPointer;)Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
            astore 8 /* osThreadHandle */
        start local 8 // com.oracle.svm.core.windows.headers.WinBase$HANDLE osThreadHandle
        10: .line 86
            aload 8 /* osThreadHandle */
            invokeinterface com.oracle.svm.core.windows.headers.WinBase$HANDLE.rawValue:()J
            lconst_0
            lcmp
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: org.graalvm.nativeimage.c.type.CIntPointer com.oracle.svm.core.windows.headers.WinBase$HANDLE
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: ldc "Could not create thread"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
        13: .line 87
            aload 6 /* startData */
            aload 8 /* osThreadHandle */
            invokeinterface com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData.setOSThreadHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)V
        14: .line 90
            aload 8 /* osThreadHandle */
            invokestatic com.oracle.svm.core.windows.headers.Process.ResumeThread:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)I
            pop
        15: .line 91
            return
        end local 8 // com.oracle.svm.core.windows.headers.WinBase$HANDLE osThreadHandle
        end local 7 // org.graalvm.nativeimage.c.type.CIntPointer osThreadID
        end local 6 // com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData startData
        end local 5 // int initFlag
        end local 4 // int threadStackSize
        end local 2 // long stackSize
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lcom/oracle/svm/core/windows/WindowsJavaThreads;
            0   16     1           thread  Ljava/lang/Thread;
            0   16     2        stackSize  J
            1   16     4  threadStackSize  I
            2   16     5         initFlag  I
            3   16     6        startData  Lcom/oracle/svm/core/windows/WindowsJavaThreads$WindowsThreadStartData;
            7   16     7       osThreadID  Lorg/graalvm/nativeimage/c/type/CIntPointer;
           10   16     8   osThreadHandle  Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
    MethodParameters:
           Name  Flags
      thread     
      stackSize  

  protected void setNativeName(java.lang.Thread, java.lang.String);
    descriptor: (Ljava/lang/Thread;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
        start local 1 // java.lang.Thread thread
        start local 2 // java.lang.String name
         0: .line 99
            return
        end local 2 // java.lang.String name
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/core/windows/WindowsJavaThreads;
            0    1     1  thread  Ljava/lang/Thread;
            0    1     2    name  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      thread  
      name    

  protected void yield();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
         0: .line 103
            invokestatic com.oracle.svm.core.windows.headers.Process.SwitchToThread:()I
            pop
         1: .line 104
            return
        end local 0 // com.oracle.svm.core.windows.WindowsJavaThreads this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/windows/WindowsJavaThreads;

  static org.graalvm.word.WordBase osThreadStartRoutine(com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData);
    descriptor: (Lcom/oracle/svm/core/windows/WindowsJavaThreads$WindowsThreadStartData;)Lorg/graalvm/word/WordBase;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData data
         0: .line 133
            aload 0 /* data */
            invokeinterface com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData.getThreadHandle:()Lorg/graalvm/nativeimage/ObjectHandle;
            astore 1 /* threadHandle */
        start local 1 // org.graalvm.nativeimage.ObjectHandle threadHandle
         1: .line 134
            aload 0 /* data */
            invokeinterface com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData.getOSThreadHandle:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
            astore 2 /* osThreadHandle */
        start local 2 // com.oracle.svm.core.windows.headers.WinBase$HANDLE osThreadHandle
         2: .line 135
            aload 0 /* data */
            invokestatic org.graalvm.nativeimage.UnmanagedMemory.free:(Lorg/graalvm/word/PointerBase;)V
         3: .line 138
            aload 1 /* threadHandle */
            invokestatic com.oracle.svm.core.windows.WindowsJavaThreads.threadStartRoutine:(Lorg/graalvm/nativeimage/ObjectHandle;)V
         4: .line 139
            goto 8
      StackMap locals: com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData org.graalvm.nativeimage.ObjectHandle com.oracle.svm.core.windows.headers.WinBase$HANDLE
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 145
            aload 2 /* osThreadHandle */
            invokestatic com.oracle.svm.core.windows.headers.WinBase.CloseHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)I
            pop
         7: .line 146
            aload 3
            athrow
         8: .line 145
      StackMap locals:
      StackMap stack:
            aload 2 /* osThreadHandle */
            invokestatic com.oracle.svm.core.windows.headers.WinBase.CloseHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)I
            pop
         9: .line 147
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            areturn
        end local 2 // com.oracle.svm.core.windows.headers.WinBase$HANDLE osThreadHandle
        end local 1 // org.graalvm.nativeimage.ObjectHandle threadHandle
        end local 0 // com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData data
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            data  Lcom/oracle/svm/core/windows/WindowsJavaThreads$WindowsThreadStartData;
            1   10     1    threadHandle  Lorg/graalvm/nativeimage/ObjectHandle;
            2   10     2  osThreadHandle  Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
      Exception table:
        from    to  target  type
           3     5       5  any
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint()
      com.oracle.svm.core.c.function.CEntryPointOptions(prologue = Lcom/oracle/svm/core/windows/WindowsJavaThreads$OSThreadStartRoutinePrologue;, epilogue = Lcom/oracle/svm/core/c/function/CEntryPointSetup$LeaveDetachThreadEpilogue;, publishAs = com.oracle.svm.core.c.function.CEntryPointOptions$Publish.NotPublished:Lcom/oracle/svm/core/c/function/CEntryPointOptions$Publish;, include = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NotIncludedAutomatically;)
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "WindowsJavaThreads.java"
NestMembers:
  com.oracle.svm.core.windows.WindowsJavaThreads$OSThreadStartRoutinePrologue  com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData
InnerClasses:
  public final Publish = com.oracle.svm.core.c.function.CEntryPointOptions$Publish of com.oracle.svm.core.c.function.CEntryPointOptions
  protected abstract ThreadStartData = com.oracle.svm.core.thread.JavaThreads$ThreadStartData of com.oracle.svm.core.thread.JavaThreads
  private OSThreadStartRoutinePrologue = com.oracle.svm.core.windows.WindowsJavaThreads$OSThreadStartRoutinePrologue of com.oracle.svm.core.windows.WindowsJavaThreads
  abstract WindowsThreadStartData = com.oracle.svm.core.windows.WindowsJavaThreads$WindowsThreadStartData of com.oracle.svm.core.windows.WindowsJavaThreads
  public abstract HANDLE = com.oracle.svm.core.windows.headers.WinBase$HANDLE of com.oracle.svm.core.windows.headers.WinBase
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$WINDOWS;})