Function at 0x40579e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
push edi
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x20], 0xfffffffe
push 3
call fcn.0042ce8d
xor ebx, ebx
push 6
mov dword [esp + 0x1c], ebx
pop esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], 0xc4f4
mov dword [esp + 0x10], ebx
jmp 0x4057f6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x4057e7
mov dword [esp + 0x10], ebx
jmp 0x405813
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x70], 0x6d56a426
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x405803
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
cmp eax, 0x3fa8b74
mov eax, dword [esp + 0x70]
setge cl
xor edx, edx
cmp ecx, esi
setle dl
xor ecx, ecx
cmp edx, eax
sete cl
add ecx, 0xfffb
je 0x40585f
cmp dword [esp + 0x20], ebx
je 0x40585f
cmp dword [esp + 0x14], ebx
je 0x40585f
xor eax, eax
inc eax
jmp 0x405861
mov eax, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x10
jmp 0x405b59
mov dword [esp + 0x38], 0x7abd
cmp dword [esp + 0x38], 0x7d4c
mov dword [esp + 0x44], 0xabf5e8
jle 0x405907
mov edi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0x7356
xor esi, esi
mov dword [esp + 0x14], 0x8018
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [esp + 0x90]
cdq
push edx
push eax
call fcn.00402035
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4058c3
mov eax, dword [eax]
push eax
call fcn.004f967e
pop ecx
push 0
push 1
lea ecx, [esp + 0x98]
call fcn.0040160a
add esi, ebx
dec dword [esp + 0x14]
jne 0x4058a4
mov esi, dword [esp + 0x10]
add ebx, esi
dec dword [esp + 0x18]
jne 0x40589a
inc esi
mov dword [esp + 0x10], esi
push 0
pop ebx
cmp esi, 0x3ea5
jl 0x405892
inc edi
cmp edi, 0x47eb
jl 0x40588e
mov dword [esp + 0x18], ebx
jmp 0x405b1a
mov dword [esp + 0x14], 0x6882
cmp dword [esp + 0x14], 0x68cc
mov dword [esp + 0x3c], 0xabf630
jle 0x40595f
mov esi, ebx
mov edi, esi
mov ebx, 0x59fe
mov eax, edi
cdq
push 0x78c8
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push 0
push eax
mov dword [esp + 0x70], edx
call fcn.004066d0
add esp, 0xc
dec edi
dec ebx
jne 0x405933
inc esi
cmp esi, 0x5bee
jl 0x40592c
mov dword [esp + 0x48], 8
cmp dword [esp + 0x14], 0x6822
jge 0x4059c1
push 0x1998
push 0x3f7b
push 0x3355
push 0x346d
push ebx
push 0x497b
push 0x2b3b
push 0x4eb8
push 0x1a63
push 1
push 0x60e5
push 1
push 0x706
push 0x37b9
push 1
lea eax, [esp + 0x78]
push eax
push 0x55cc
call fcn.004178dc
add esp, 0x44
mov dword [esp + 0x30], 0x2eae
cmp dword [esp + 0x30], 0x31e7
mov dword [esp + 0x40], 0xabf668
jle 0x405a1b
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x30]
push eax
push ebx
push 0x58fb
call fcn.00411282
mov eax, dword [esp + 0x3c]
add esp, 0x10
inc eax
mov dword [esp + 0x2c], eax
cmp eax, 0x7989
jl 0x4059e3
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x546e
jl 0x4059df
mov dword [esp + 0x10], 0xfffffff5
jmp 0x405ae6
mov byte [esp + 0x1f], bl
mov dword [esp + 0x24], 0x9cb
cmp dword [esp + 0x24], 0xcb9
mov dword [esp + 0x50], 0xabf688
jle 0x405ab4
mov edi, ebx
mov esi, ebx
mov ebx, esi
mov dword [esp + 0x34], 0x4cff
xor eax, eax
mov dword [esp + 0x14], eax
add eax, ebx
or eax, edi
cdq
push 0x33a7
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
push eax
push 0x39cd
push 0x360
push 0
mov dword [esp + 0x80], edx
call fcn.00406822
mov eax, dword [esp + 0x28]
add esp, 0x14
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0xd99
jl 0x405a5a
dec ebx
dec dword [esp + 0x34]
jne 0x405a54
inc esi
cmp esi, 0x156
jl 0x405a4a
inc edi
push 0
pop ebx
cmp edi, 0x3052
jl 0x405a48
cmp byte [esp + 0x1f], 0
je 0x405ac3
push ebx
push ebx
call dword [0x1efd2b0]
cmp dword [esp + 0x24], 0x6ea
jge 0x405ada
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.0041938a
pop ecx
pop ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff0
jl 0x405a28
push 0x1c2
push ebx
push 0x46b1
push ebx
lea eax, [esp + 0x40]
push eax
push 1
lea eax, [esp + 0x58]
push eax
push 0x33b7
call fcn.00406988
add esp, 0x20
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1f
jge 0x405910
cmp dword [esp + 0x38], 0x776c
jge 0x405b55
lea eax, [esp + 0x44]
push eax
push ebx
push 0x7f7d
push 1
push 0x4b79
push 1
push 0xa1c
push 0x3cf5
call fcn.00406988
add esp, 0x20
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xa
je 0x405872
lea ecx, [esp + 0x54]
call fcn.0042cf2e
lea eax, [esp + 0x80]
push eax
call fcn.004020af
mov esi, eax
lea edi, [esp + 0x58]
pop ecx
mov ecx, dword [esp + 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00405191
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
mov eax, dword [ecx + eax*8]
sub eax, 0x12c
mov esp, ebp
pop ebp
ret