Function at 0x46c370
Capabilities:
Create thread

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x104]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ebx, ebx
cmp eax, ebx
jne 0x46c3a5
cmp dword [esi + 0x110], ebx
jne 0x46c39a
xor edx, edx
mov ecx, esi
call fcn.0046bc90
pop esi
mov eax, 6
pop ebx
pop ecx
ret 0x48
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
push ebp
push edi
je 0x46c4ea
push ecx
lea ecx, [esi + 0x120]
mov edx, 0x64
mov dword [esi + 0x118], eax
call fcn.0041e120
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x188], ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x184], ebx
mov al, byte [ecx]
cmp al, 0x24
jne 0x46c40c
lea edi, [esi + 0x18c]
push ecx
mov edx, 0x64
mov ecx, edi
call fcn.0041e120
push 0x28
push edi
call fcn.00563730
add esp, 8
cmp eax, ebx
je 0x46c426
mov byte [eax], 0
jmp 0x46c426
cmp al, 0x2f
je 0x46c426
push ecx
lea edx, [esi + 0x18c]
push 0x57775c
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esi + 0x1f0]
mov edx, 0x3e7
call fcn.0041e120
mov ecx, dword [esp + 0x28]
push ecx
lea ecx, [esi + 0x5d7]
mov edx, 0x3e7
call fcn.0041e120
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x5c]
push ebx
push ebx
push 1
push ebx
mov dword [esi + 0x9c0], edx
mov dword [esi + 0x9c4], eax
mov edi, 7
call dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, ebx
mov dword [esi + 0x11c], eax
je 0x46c4c6
lea ecx, [esp + 0x30]
push ecx
push ebx
push esi
push 0x46c190
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x46c4aa
mov edx, dword [esi + 0x11c]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, 2
mov eax, dword [esi + 0x11c]
cmp eax, ebx
je 0x46c4c1
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x11c], ebx
cmp edi, 7
jne 0x46c4e0
mov ecx, esi
call fcn.0046bc60
test eax, eax
je 0x46c4e0
cmp dword [esi + 0x110], ebx
jne 0x46c4e0
xor edx, edx
call fcn.0046bc90
mov eax, edi
pop edi
pop ebp
pop esi
pop ebx
pop ecx
ret 0x48
mov ecx, dword [esi + 0x10c]
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x28]
inc ecx
mov dword [esi + 0x10c], ecx
xor ecx, ecx
cmp ebp, ebx
mov ebx, dword [esp + 0x24]
setg cl
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [0x5a1b00]
push edi
push ebx
push ecx
push edx
call eax
mov ecx, esi
mov ebp, eax
call fcn.0046bc60
test eax, eax
jne 0x46c53a
pop edi
pop ebp
pop esi
mov eax, 4
pop ebx
pop ecx
ret 0x48
mov ecx, dword [esi + 0x10c]
mov eax, dword [esi + 0x110]
dec ecx
test eax, eax
mov dword [esi + 0x10c], ecx
jne 0x46c55a
xor edx, edx
mov ecx, esi
call fcn.0046bc90
test ebp, ebp
je 0x46c52d
cmp ebp, 1
jne 0x46c570
pop edi
pop ebp
pop esi
mov eax, 2
pop ebx
pop ecx
ret 0x48
cmp ebp, 3
jne 0x46c57f
pop edi
mov eax, ebp
pop ebp
pop esi
pop ebx
pop ecx
ret 0x48
cmp byte [ebx], 0
je 0x46c563
push 0
mov edx, ebx
xor ecx, ecx
call fcn.004c2560
test eax, eax
mov dword [esp + 0x10], eax
je 0x46c5c5
cmp byte [edi], 0
je 0x46c5e8
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46c5a1
sub eax, edx
add eax, 0xa
push eax
call fcn.005635a3
mov esi, eax
add esp, 4
test esi, esi
jne 0x46c5d2
lea ecx, [esp + 0x10]
call fcn.004c29d0
pop edi
pop ebp
pop esi
mov eax, 5
pop ebx
pop ecx
ret 0x48
mov edx, esi
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x46c5d8
mov eax, dword [esp + 0x10]
jmp 0x46c5ea
xor esi, esi
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x48]
push 0
push edx
mov edx, dword [esp + 0x5c]
push 0
push 0
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x64]
push 0
push edx
mov edx, dword [esp + 0x64]
xor ecx, ecx
push 0
push edx
mov edx, dword [esp + 0x78]
test ebp, ebp
setne cl
push edi
push ebx
push edx
mov edx, eax
inc ecx
push ecx
mov ecx, dword [esp + 0x6c]
push esi
call fcn.00435db0
test esi, esi
mov edi, eax
je 0x46c65d
push esi
call fcn.005635b5
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46c66e
lea ecx, [esp + 0x10]
call fcn.004c29d0
test edi, edi
jne 0x46c67f
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
pop ecx
ret 0x48
cmp edi, 2
je 0x46c52d
xor eax, eax
cmp edi, 3
sete al
pop edi
pop ebp
pop esi
pop ebx
add eax, 2
pop ecx
ret 0x48