Function at 0x61003380
Capabilities:
Create thread

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x20], ebp
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x2c], eax
test byte [0x6110a820], 1
jne 0x61003520
mov eax, dword [ebx + 8]
test eax, eax
jne 0x61003470
mov dword [ebx + 0x14], 0
lea eax, [ebx + 4]
xor esi, esi
mov dword [esp + 0x14], eax
mov eax, sym.__ZN9cygthread4stubEPv_4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
cmp byte [ebx + 0x28], 0
jne 0x61003510
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp], 0x61107420
call sub.KERNEL32.dll_CreateThread
sub esp, 0x18
test eax, eax
mov esi, eax
je 0x610035a5
test byte [0x6110a820], 1
je 0x610034b9
mov eax, dword [ebx + 4]
mov ecx, 0xc0000
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], edi
mov edi, str.cygthread::cygthread_DWORD____void___size_t__void__const_char__void_
mov dword [esp + 0x14], eax
mov eax, str.created_name__s__thread__p__id__p
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test ebp, ebp
jne 0x610034bd
lea esi, [esi]
mov dword [ebx + 8], esi
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x61003595
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x6100349e
lea esi, [esi]
lea edi, [edi]
xor eax, eax
call sym._low_priority_sleep
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x61003490
mov dword [esp], eax
call sub.KERNEL32.dll_SetEvent
sub esp, 4
test byte [0x6110a820], 1
jne 0x61003557
mov esi, dword [ebx + 8]
test ebp, ebp
je 0x61003460
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x610034de
lea esi, [esi]
lea edi, [edi]
xor eax, eax
call sym._low_priority_sleep
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x610034d0
mov dword [esp], eax
mov edx, 0xffffffff
mov dword [esp + 4], edx
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [ebx + 0xc]
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_ResetEvent
mov dword [ebx + 8], esi
sub esp, 4
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, sym.__ZN9cygthread10simplestubEPv_4
jmp 0x610033ed
mov eax, dword [ebx + 4]
mov edx, str.name__s__id__p
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
mov eax, str.cygthread::cygthread_DWORD____void___size_t__void__const_char__void_
mov dword [esp + 8], eax
mov eax, 0xc0000
mov dword [esp + 4], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610033bb
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x10], edi
mov dword [esp], 0x6110a820
mov dword [esp + 0x14], eax
mov eax, str.activated_name__s__thread_sync__p_for_thread__p
mov dword [esp + 0xc], eax
mov eax, str.cygthread::cygthread_DWORD____void___size_t__void__const_char__void_
mov dword [esp + 8], eax
mov eax, 0xc0000
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610034b6
mov dword [esp], eax
call sub.KERNEL32.dll_ResetEvent
sub esp, 4
jmp 0x6100347b
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], edi
mov dword [esp], str.CreateThread_failed_for__s____p__p____E
mov dword [esp + 8], eax
call sym.___api_fatal
nop
lea esi, [esi]
lea edi, [edi]