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

Disassembly:
sub esp, 0xc8
cmp dword [esp + 0xe4], 7
push ebx
push ebp
mov ebx, ecx
lea ecx, [esp + 0xd8]
cmova ecx, dword [esp + 0xd8]
push esi
push edi
call fcn.0044da6d
push eax
lea ecx, [esp + 0x28]
call fcn.00403905
cmp dword [esp + 0x34], 0
je 0x4055dc
sub esp, 0x18
lea eax, [esp + 0x3c]
mov ecx, esp
push eax
call fcn.00403942
lea ecx, [esp + 0x54]
call fcn.0044a63f
add esp, 0x18
lea ecx, [esp + 0x24]
push eax
call fcn.00404906
lea ecx, [esp + 0x3c]
call fcn.00403a1a
lea ecx, [esp + 0x54]
call fcn.00448d0c
cmp dword [esp + 0x10c], 7
lea eax, [esp + 0xf8]
push dword [esp + 0x108]
cmova eax, dword [esp + 0xfc]
lea ecx, [esp + 0x28]
push eax
call fcn.0040562f
sub esp, 0x18
lea eax, [esp + 0x128]
mov ecx, esp
push eax
call fcn.00403942
sub esp, 0x18
lea eax, [esp + 0x54]
mov ecx, esp
push eax
call fcn.00403942
mov dl, byte [esp + 0x10c]
lea ecx, [esp + 0x6c]
call fcn.0044a67a
mov eax, dword [esp + 0x70]
add esp, 0x30
mov esi, dword [esp + 0x3c]
sub eax, esi
cdq
push 0x18
pop ebp
idiv ebp
mov edi, eax
test edi, edi
je 0x4053fb
sub esp, 0x18
mov ecx, esp
push 0x498204
call fcn.00403905
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00403942
lea ecx, [esp + 0x84]
call fcn.00448ecd
add esi, ebp
sub edi, 1
jne 0x4053ce
push 0x49
pop eax
mov word [esp + 0x10], ax
mov eax, 0xde
mov word [esp + 0x12], ax
push 0x51
pop eax
mov word [esp + 0x14], ax
mov eax, dword fs:[0x2c]
mov edi, dword [eax]
mov eax, dword [edi + 0x190]
lea esi, [edi + 0x194]
test al, 1
jne 0x40546c
xorps xmm0, xmm0
mov byte [esi + 6], 1
movlpd qword [esp + 0x18], xmm0
or eax, 1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x190], eax
mov ax, word [esp + ecx*2 + 0x10]
mov word [esi + ecx*2], ax
add ecx, 1
adc edx, 0
jne 0x405461
cmp ecx, 3
jb 0x40544b
push 0x48d799
call fcn.004699af
pop ecx
cmp byte [esi + 6], 0
mov ebp, 0xcf2529af
je 0x40548f
push ebp
push 0x23519919
push 0
push 3
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 6], 0
push esi
lea ecx, [esp + 0x7c]
call fcn.00403905
push 0x65
pop eax
mov word [esp + 0x10], ax
add eax, 0x34
mov word [esp + 0x12], ax
mov eax, dword [edi + 0x1a0]
test al, 1
jne 0x4054f9
xorps xmm0, xmm0
mov byte [edi + 0x184], 1
movlpd qword [esp + 0x18], xmm0
or eax, 1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x1a0], eax
mov ax, word [esp + ecx*2 + 0x10]
mov word [edi + ecx*2 + 0x180], ax
add ecx, 1
adc edx, 0
jne 0x4054ee
cmp ecx, 2
jb 0x4054d4
push 0x48d759
call fcn.004699af
pop ecx
lea esi, [edi + 0x180]
cmp byte [esi + 4], 0
je 0x40551d
push ebp
push 0x23519919
push 0
push 2
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 4], 0
push esi
lea edx, [esp + 0xe4]
lea ecx, [esp + 0xc4]
call fcn.00403afe
pop ecx
push 7
pop esi
cmp dword [esp + 0x38], esi
lea ecx, [esp + 0x24]
push dword [esp + 0x34]
cmova ecx, dword [esp + 0x28]
push ecx
mov ecx, eax
call fcn.0040562f
push eax
lea ecx, [esp + 0x94]
call fcn.004038e1
xor eax, eax
lea edi, [esp + 0xa8]
stosd dword es:[edi], eax
sub esp, 0x48
mov ecx, esp
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
and dword [esp + 0x100], 0
mov word [esp + 0xf0], ax
lea eax, [esp + 0xc0]
push eax
mov dword [esp + 0x108], esi
call fcn.0040342c
sub esp, 0x24
lea eax, [esp + 0xc0]
mov ecx, esp
push eax
call fcn.00403459
mov ecx, ebx
call fcn.0044f1e9
lea ecx, [esp + 0x78]
call fcn.00403411
lea ecx, [esp + 0xc0]
call fcn.00403a1a
lea ecx, [esp + 0x3c]
call fcn.004039d5
lea ecx, [esp + 0x6c]
call fcn.0040399e
lea ecx, [esp + 0x54]
call fcn.00403a1a
lea ecx, [esp + 0x24]
call fcn.00403a1a
lea ecx, [esp + 0xe0]
call fcn.00403a1a
lea ecx, [esp + 0xf8]
call fcn.00403a1a
lea ecx, [esp + 0x110]
call fcn.00403a1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret 0x4c