Function at 0x10005f60
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1016c918
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x101c6270]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x20000002
push eax
call fcn.100069c0
test al, al
je 0x10006154
push 0
push 0x400
push 0x400
push 0
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
mov eax, dword [ebx + 8]
xor esi, esi
sub eax, dword [ebx + 4]
sar eax, 2
test eax, eax
je 0x10005ff3
nop dword [eax]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
je 0x1000612f
mov eax, dword [ebx + 8]
inc esi
sub eax, dword [ebx + 4]
sar eax, 2
cmp esi, eax
jb 0x10005fd0
mov esi, dword [ebx + 8]
xor edi, edi
sub esi, dword [ebx + 4]
sar esi, 2
mov dword [ebp - 0x40], esi
test esi, esi
je 0x1000606f
nop word [eax + eax]
mov eax, dword [ebx + 4]
lea esi, [edi*4]
push 1
push 0x101cab4c
push 0x101cab28
mov ecx, dword [esi + eax]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
push eax
call fcn.1012c4f0
add esp, 0x14
mov dword [eax + 0x20], ebx
mov eax, dword [eax + 4]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
lea eax, [ebp - 0x34]
add eax, esi
push eax
push 0
push dword [edx + esi]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp + esi - 0x28], eax
test eax, eax
je 0x10006139
mov esi, dword [ebp - 0x40]
inc edi
cmp edi, esi
jb 0x10006010
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
call fcn.1000a960
mov dword [ebp - 0x50], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov eax, esi
movq qword [ebp - 0x1c], xmm0
xor edi, edi
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x54], eax
test esi, esi
je 0x100060ea
nop word [eax + eax]
mov eax, dword [ebp + edi*4 - 0x34]
lea ecx, [ebp - 0x50]
mov esi, dword [ebp + edi*4 - 0x28]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x48], esi
call fcn.1000b8c0
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x50]
call fcn.1000b8f0
mov dword [ebp + edi*4 - 0x1c], esi
inc edi
mov esi, dword [ebp - 0x40]
cmp edi, esi
jb 0x100060b0
mov eax, esi
xor edi, edi
xor cl, cl
mov dword [ebp - 0x3c], edi
mov byte [ebp - 0x35], cl
test esi, esi
jle 0x100062ce
nop dword [eax]
xor edi, edi
xor esi, esi
test eax, eax
jle 0x10006178
lea eax, [ebp - 0x58]
push eax
push dword [ebp + esi*4 - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
mov eax, dword [ebp - 0x58]
je 0x1000615c
cmp eax, 0x103
jne 0x1000615c
mov eax, dword [ebp + esi*4 - 0x1c]
mov dword [ebp + edi*4 - 0x1c], eax
inc edi
jmp 0x1000616f
mov eax, 8
jmp 0x10006339
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp + esi*4 - 0x28]
test eax, eax
je 0x1000614f
push eax
call ebx
inc esi
cmp esi, edi
jb 0x10006144
or eax, 0xffffffff
jmp 0x10006339
test eax, eax
je 0x1000616f
test eax, 0xf000000
je 0x1000616c
mov dword [ebx + 0x20], eax
jmp 0x1000616f
mov dword [ebp - 0x3c], eax
inc esi
cmp esi, dword [ebp - 0x54]
jl 0x10006108
mov cl, byte [ebp - 0x35]
mov dword [ebp - 0x54], edi
test edi, edi
je 0x100062cb
test cl, cl
je 0x10006193
push dword [ebx + 0x1b0]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x100
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x1c]
push eax
push edi
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, edi
jne case.0x10006207.32774
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [ebp - 0x78]
push 1
push 0x12
push 0x12
push 0
push eax
call esi
test eax, eax
je 0x100061d9
push 0
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
call fcn.10006370
jmp case.0x10006207.32774
push 1
push 0x800a
push 0x8000
push 0
lea eax, [ebp - 0x78]
push eax
call esi
test eax, eax
je case.0x10006207.32774
mov ecx, dword [ebp - 0x74]
lea eax, [ecx - 0x8002]
cmp eax, 5
ja case.0x10006207.32774
jmp dword [eax*4 + 0x10006358]
cmp dword [ebx + 0x1c], 0x20000003
je case.0x10006207.32774
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0x20000003
push eax
mov ecx, ebx
call fcn.100069c0
mov eax, dword [ebx + 0x28]
lea ecx, [ebx + 0x28]
call dword [eax + 4]
jmp case.0x10006207.32774
mov eax, dword [ebx + 0x1c]
cmp eax, 0x20000000
je 0x10006253
cmp eax, 0x20000003
je 0x10006253
cmp eax, 0x20000001
jne case.0x10006207.32774
mov dword [ebp - 0x44], 0x20000002
jmp 0x100062b2
mov eax, dword [ebx + 0x1c]
cmp eax, 0x20000005
je 0x1000628c
cmp eax, 0x20000006
je 0x1000628c
cmp eax, 0x20000007
je 0x1000628c
cmp ecx, 0x8004
mov ecx, ebx
sete al
movzx eax, al
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.10006370
mov cl, 1
mov byte [ebp - 0x35], cl
jmp 0x100062c0
mov eax, dword [ebx + 0x1c]
cmp eax, 0x20000000
je 0x100062ab
cmp eax, 0x20000003
je 0x100062ab
cmp eax, 0x20000002
jne case.0x10006207.32774
mov dword [ebp - 0x44], 0x20000001
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.100069c0
mov cl, byte [ebp - 0x35]
mov eax, dword [ebp - 0x54]
test edi, edi
jg 0x10006100
mov edi, dword [ebp - 0x3c]
xor esi, esi
cmp dword [ebp - 0x40], esi
jbe 0x100062ef
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp + esi*4 - 0x28]
test eax, eax
je 0x100062e7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, edi
jb 0x100062d8
mov edi, dword [ebp - 0x3c]
test edi, edi
jne 0x100062fc
mov dword [ebp - 0x3c], 0x20000004
jmp 0x1000630f
cmp edi, 0x20000006
jne 0x1000631a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
cmp eax, edi
je 0x1000631a
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.100069c0
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x50]
push eax
push dword [eax]
lea eax, [ebp - 0x44]
push eax
call fcn.100097a0
push dword [ebp - 0x50]
call fcn.1010f663
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1010f54f
mov esp, ebp
pop ebp
ret