Function at 0x404e96
Capabilities:
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x404ecb
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432565]
test ebx, ebx
je 0x404edf
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432565], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
je 0x404f03
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432569]
test ebx, ebx
je 0x404f17
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432569], eax
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
test eax, eax
je 0x404f3b
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x43256d]
test ebx, ebx
je 0x404f4f
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x43256d], eax
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebx]
test eax, eax
je 0x404f73
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432571]
test ebx, ebx
je 0x404f87
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432571], eax
mov ebx, dword [ebp + 0x24]
mov eax, dword [ebx]
test eax, eax
je 0x404fab
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432575]
test ebx, ebx
je 0x404fbf
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432575], eax
mov eax, 0x431374
test eax, eax
je 0x404fe1
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432579]
test ebx, ebx
je 0x404ff5
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432579], eax
cmp dword [ebp + 0x30], 0
je 0x405013
cmp dword [ebp + 0x2c], 0
je 0x405013
xor eax, eax
jmp 0x405018
mov eax, 1
test eax, eax
je 0x405027
mov dword [ebp + 0x2c], 0x5a
mov dword [ebp - 0xc], esp
mov eax, 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 0x40678b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
nop
nop
nop
nop
cmp dword [ebp - 0xc], esp
je 0x40506b
push 6
call fcn.004158ae
add esp, 4
mov dword [ebp - 4], eax
fild dword [ebp + 0x2c]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [0x4313d4]
fstp qword [ebp - 0x18]
mov dword [ebp - 0x1c], esp
push 0x4bf
fld qword [ebp - 0x18]
call fcn.004027da
push eax
push 0
lea eax, [ebp - 4]
push eax
push 1
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
nop
nop
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x4050bb
push 6
call fcn.004158ae
add esp, 4
mov dword [ebp - 8], eax
push 0
mov ebx, 0x350
call fcn.00416c00
add esp, 4
cmp dword [ebp - 8], 0
je 0x4050ee
cmp dword [ebp - 8], 0x102
je 0x4050ee
mov eax, 1
jmp 0x4050f0
xor eax, eax
test eax, eax
jne 0x40506e
mov dword [ebp - 0xc], esp
push 0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
nop
nop
nop
nop
cmp dword [ebp - 0xc], esp
je 0x40511f
push 6
call fcn.004158ae
add esp, 4
mov dword [ebp - 0xc], esp
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
nop
nop
nop
cmp dword [ebp - 0xc], esp
je 0x405141
push 6
call fcn.004158ae
add esp, 4
cmp dword [ebp - 8], 0x102
jne 0x405184
mov eax, 0x431374
test eax, eax
je 0x40516a
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x432579]
test ebx, ebx
je 0x40517e
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov dword [0x432579], eax
cmp dword [ebp + 0x38], 0
mov eax, 0
sete al
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4051d4
mov eax, dword [0x43257d]
test eax, eax
je 0x4051bb
push eax
mov ebx, eax
call fcn.00403d1c
inc eax
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [ebp + 0x34]
mov ebx, dword [ebx]
test ebx, ebx
je 0x4051ce
push ebx
call fcn.004158a2
add esp, 4
pop eax
mov ebx, dword [ebp + 0x34]
mov dword [ebx], eax
mov eax, dword [0x432579]
test eax, eax
je 0x4051f0
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.004158a8
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x4051f5
mov esp, ebp
pop ebp
ret 0x34