Function at 0x10057ea
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
xor esi, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
call fcn.01007d07
mov ebx, eax
cmp ebx, esi
mov esi, dword [sym.imp.msvcrt.dll_wprintf]
jl 0x1005dd5
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.01004e89
mov ebx, eax
test ebx, ebx
jl 0x1005d66
lea eax, [ebp - 0x14]
push eax
push edi
call fcn.010052d9
mov ebx, eax
test ebx, ebx
jl 0x1005d66
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
push 0x100233c
push edi
call fcn.01002b73
test al, al
mov ebx, dword [sym.imp.msvcrt.dll_wcstoul]
je 0x1005895
push dword [ebp - 0xc]
push edi
call fcn.01002bbb
push 0
push 0
push dword [ebp - 0x28]
call ebx
add esp, 0xc
cmp eax, 1
mov dword [ebp - 0xc], eax
jb 0x1005880
cmp eax, 0x32
jbe 0x100589c
push eax
push 0x100232c
push 0x643
call fcn.010075e6
add esp, 0xc
jmp 0x1005910
mov dword [ebp - 0xc], 3
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x100231c
push edi
call fcn.01002b73
test al, al
je 0x10058d0
push dword [ebp - 0x18]
push edi
call fcn.01002bbb
push 0
push 0
push dword [ebp - 0x2c]
call ebx
add esp, 0xc
imul eax, eax, 0x3e8
jmp 0x10058d5
mov eax, 0x3e8
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 8]
mov dword [ebp - 0x18], eax
je 0x100591a
push 0x57e
call fcn.01007575
jmp 0x1005900
mov eax, dword [edi + 8]
mov ecx, dword [edi]
push dword [ecx + eax*4]
push 0x1001250
call esi
inc dword [edi + 8]
pop ecx
pop ecx
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jne 0x10058ec
push 0x100124c
call esi
pop ecx
mov ebx, 0x80070057
jmp 0x1005d66
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.01004f87
mov ebx, eax
xor edi, edi
cmp ebx, edi
jl 0x1005d3f
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
cmp eax, ecx
jbe 0x1005946
mov eax, ecx
mov dword [ebp - 0xc], eax
cmp eax, 1
ja 0x100598e
xor ebx, ebx
cmp ecx, edi
jbe 0x1005a94
push 0x1001b88
call esi
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
lea eax, [ebx + 1]
push eax
lea edi, [ecx + ebx*4]
mov dword [ebp - 4], eax
mov eax, dword [edi]
push dword [eax]
push 0x10022e4
call esi
add esp, 0x14
push dword [edi]
call fcn.0100555b
mov ebx, dword [ebp - 4]
cmp ebx, dword [ebp + 8]
jb 0x1005955
jmp 0x1005a94
lea eax, [eax + eax*2]
shl eax, 2
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 8]
push eax
mov dword [ebp - 0x50], edi
push 0x40
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x4c], edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp eax, edi
mov dword [ebp - 0x10], eax
jne 0x10059bd
mov ebx, 0x8007000e
jmp 0x1005d3f
cmp dword [ebp - 0xc], edi
mov dword [ebp - 4], edi
jbe 0x10059fb
mov ebx, eax
lea eax, [ebp - 0x58]
mov dword [ebx + 8], eax
lea eax, [ebp - 0x30]
push eax
push edi
push ebx
push 0x1005648
push edi
push edi
mov dword [ebx + 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
mov dword [ebx], eax
je 0x1005a34
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add ebx, 0xc
cmp eax, dword [ebp - 0xc]
jb 0x10059c7
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x4c], eax
jae 0x1005a94
push 0x10022cc
call esi
xor ebx, ebx
cmp dword [ebp - 0xc], ebx
pop ecx
jbe 0x1005a6f
mov edi, dword [ebp - 0x10]
add edi, 4
cmp ebx, 0x10
jae 0x1005a6f
mov eax, dword [edi]
cmp eax, dword [ebp + 8]
jae 0x1005a5e
inc eax
push eax
push 0x10022c0
call esi
pop ecx
jmp 0x1005a65
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x1005a49
call edi
mov ebx, eax
jmp 0x1005d3f
call edi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x1005d3f
push 0x10022b8
call esi
inc ebx
add edi, 0xc
cmp ebx, dword [ebp - 0xc]
pop ecx
jb 0x1005a1c
mov edi, dword [ebp + 8]
push edi
push dword [ebp - 0x4c]
push 0x100229c
call esi
add esp, 0xc
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x4c], edi
jb 0x1005a07
xor edi, edi
cmp dword [ebp + 8], edi
jbe 0x1005aec
push 0x1001b88
call esi
push dword [ebp + 8]
mov ebx, dword [ebp - 8]
mov eax, dword [ebx + edi*4]
lea ecx, [edi + 1]
push ecx
mov dword [ebp - 4], ecx
movzx ecx, byte [eax + 0x2f]
push ecx
movzx ecx, byte [eax + 0x2e]
push ecx
movzx ecx, byte [eax + 0x2d]
movzx eax, byte [eax + 0x2c]
push ecx
push eax
push 0x1002240
call esi
add esp, 0x20
push edi
push dword [ebp + 8]
push ebx
call fcn.01004d9d
mov ebx, eax
test ebx, ebx
jl 0x1005d3f
mov edi, dword [ebp - 4]
cmp edi, dword [ebp + 8]
jb 0x1005a9b
push 0x1001b88
call esi
mov ebx, dword [ebp - 8]
xor eax, eax
cmp dword [ebp + 8], eax
pop ecx
mov dword [ebp - 0x1c], eax
jbe 0x1005b31
mov ecx, dword [ebx + eax*4]
cmp byte [ecx + 4], 0
jne 0x1005b12
inc eax
cmp eax, dword [ebp + 8]
jb 0x1005b01
jmp 0x1005b31
mov eax, dword [ebx + eax*4]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x1c], eax
xor edi, edi
mov eax, dword [ebx + edi*4]
add eax, 0x20
sub dword [eax], ecx
sbb dword [eax + 4], edx
inc edi
cmp edi, dword [ebp + 8]
jb 0x1005b20
and dword [ebp - 4], 0
cmp dword [ebp + 8], 0
jbe 0x1005d29
mov eax, dword [ebp - 4]
lea edi, [ebx + eax*4]
mov eax, dword [edi]
cmp byte [eax + 4], 0
mov ecx, 0x1002220
jne 0x1005b57
mov ecx, 0x1001c18
push ecx
push dword [eax]
push 0x1002214
call esi
mov eax, dword [edi]
add esp, 0xc
cmp dword [eax + 0x10], 0
jne 0x1005b8d
mov eax, dword [eax + 0x14]
cmp eax, 0x80072af9
jne 0x1005b82
push 0x10021dc
call esi
jmp 0x1005c1b
push eax
push 0x10021b8
jmp 0x1005c18
mov eax, dword [eax + 0xc]
movzx ecx, byte [eax + 3]
push ecx
movzx ecx, byte [eax + 2]
push ecx
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
push ecx
push eax
push 0x1002194
call esi
push 0x100217c
call esi
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
add esp, 0x18
test ecx, ecx
jge 0x1005bd9
cmp ecx, 0x80072b02
jne 0x1005bd1
push 0x3e8
push 0x1002120
jmp 0x1005be1
push ecx
push 0x1002100
jmp 0x1005be1
push dword [eax + 0x1c]
push 0x10020e4
call esi
pop ecx
pop ecx
push 0x10020d0
call esi
mov eax, dword [edi]
pop ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
jge 0x1005c29
cmp ecx, 0x80072746
jne 0x1005c08
push 0x1002060
jmp 0x1005b7b
cmp ecx, 0x800705b4
jne 0x1005c21
push dword [eax + 0x3c]
push 0x1001ff0
call esi
pop ecx
pop ecx
jmp 0x1005d1a
push ecx
push 0x1002100
jmp 0x1005c18
mov ecx, dword [edi]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
jg 0x1005c4b
jl 0x1005c3b
test eax, eax
jae 0x1005c4b
neg eax
adc ecx, 0
neg ecx
mov dword [ebp - 0x24], 0x100159c
jmp 0x1005c52
mov dword [ebp - 0x24], 0x1001598
push 0
push 0x989680
push ecx
push eax
call fcn.01007260
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], ebx
mov ebx, eax
je 0x1005c72
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
jmp 0x1005c77
mov eax, 0x1001fd8
push eax
push ecx
push edx
push ebx
push dword [ebp - 0x24]
push 0x1001f9c
call esi
mov eax, dword [edi]
add esp, 0x18
cmp dword [eax + 0x2c], 0
jne 0x1005c97
mov eax, 0x1001f60
jmp 0x1005cf6
cmp dword [eax + 0x30], 1
ja 0x1005cdf
mov word [ebp - 0x48], 0x27
mov ecx, dword [edi]
movzx cx, byte [ecx + 0x2c]
mov word [ebp - 0x46], cx
mov ecx, dword [edi]
movzx cx, byte [ecx + 0x2d]
mov word [ebp - 0x44], cx
mov ecx, dword [edi]
movzx cx, byte [ecx + 0x2e]
mov word [ebp - 0x42], cx
mov ecx, dword [edi]
movzx cx, byte [ecx + 0x2f]
and word [ebp - 0x3c], 0
lea eax, [ebp - 0x48]
mov word [ebp - 0x40], cx
mov word [ebp - 0x3e], 0x27
jmp 0x1005cf6
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x1005cea
mov eax, dword [ecx]
jmp 0x1005cf6
mov eax, dword [eax + 0x38]
test eax, eax
jne 0x1005cf6
mov eax, 0x1001f4c
mov edi, dword [edi]
movzx ecx, byte [edi + 0x2f]
push ecx
movzx ecx, byte [edi + 0x2e]
push ecx
movzx ecx, byte [edi + 0x2d]
push ecx
movzx ecx, byte [edi + 0x2c]
push ecx
push eax
push 0x1001f08
call esi
mov ebx, dword [ebp - 8]
add esp, 0x18
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp + 8]
jb 0x1005b3f
push dword [ebp - 0x14]
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.0100568c
mov ebx, eax
test ebx, ebx
jl 0x1005d3f
xor ebx, ebx
cmp dword [ebp - 8], 0
je 0x1005d66
xor edi, edi
cmp dword [ebp + 8], edi
jbe 0x1005d5d
mov eax, dword [ebp - 8]
push dword [eax + edi*4]
call fcn.01004d5e
inc edi
cmp edi, dword [ebp + 8]
jb 0x1005d4c
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [ebp - 0x20]
jmp 0x1005d77
mov eax, edi
mov edi, dword [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
jne 0x1005d6b
call fcn.01007d35
cmp dword [ebp - 0x14], edi
je 0x1005d8d
push dword [ebp - 0x14]
call fcn.010052be
cmp dword [ebp - 0x10], 0
je 0x1005dd4
mov eax, dword [ebp - 0x54]
and dword [ebp - 4], 0
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x50], eax
jbe 0x1005dcb
mov edi, dword [ebp - 0x10]
mov eax, dword [edi]
test eax, eax
je 0x1005dbd
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add edi, 0xc
cmp eax, dword [ebp - 0xc]
jb 0x1005da6
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop edi
test ebx, ebx
je 0x1005de3
push ebx
push 0x1001ecc
call esi
pop ecx
pop ecx
pop esi
mov eax, ebx
pop ebx
leave
ret 4