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

Disassembly:
sub esp, 0x64
mov eax, dword [0x97efc0]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x80]
push ebx
push ebp
mov ebx, dword [edx + 0x63dd8]
mov ebp, dword [esp + 0x78]
push esi
mov esi, dword [esp + 0x80]
push edi
push 1
mov dword [esp + 0x20], eax
lea edi, [edx + 0x10]
mov eax, dword [esp + 0x90]
push eax
push dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xa0]
push dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x8c]
shr ebx, 2
push edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x28], edi
call fcn.0047f0d0
push esi
push eax
push edi
call fcn.0047e2f0
push eax
push edi
call fcn.0047ed90
mov edi, eax
push edi
push dword [esp + 0x40]
call fcn.0047fd20
push ebx
mov ebx, dword [esp + 0x48]
mov esi, eax
push ebx
call fcn.0047dd50
push esi
push edi
push ebx
mov dword [esp + 0x88], eax
call fcn.0047e050
mov ecx, dword [esp + 0x64]
add esp, 0x44
mov dword [esp + 0x48], eax
test ecx, ecx
mov eax, 0x51150d
cmovne eax, ecx
push eax
push ebx
call fcn.0047df90
push ebp
push ebx
mov dword [esp + 0x5c], eax
call fcn.0047dd50
push dword [esp + 0x8c]
mov dword [esp + 0x64], eax
push ebx
call fcn.0047dd50
push dword [esp + 0x3c]
mov dword [esp + 0x70], eax
push ebx
call fcn.0047dd50
mov ebp, dword [esp + 0x38]
push ebp
push ebx
mov dword [esp + 0x80], eax
call fcn.0047dd50
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x50]
and al, 1
movzx eax, al
push eax
push ebx
call fcn.0047dcf0
push 0
push ebx
mov dword [esp + 0x98], eax
call fcn.0047dcf0
push 0
push ebx
mov dword [esp + 0xa4], eax
call fcn.0047dcf0
add esp, 0x40
mov dword [esp + 0x68], eax
cmp ebp, 0xb
je 0x475dd1
push 0
push ebx
call fcn.0047dd50
push dword [esp + 0x24]
mov dword [esp + 0x38], eax
push ebx
call fcn.0047dd50
mov dword [esp + 0x40], eax
lea eax, [esp + 0x3c]
push 2
push eax
push ebx
call fcn.0047de70
add esp, 0x1c
mov dword [esp + 0x6c], eax
jmp 0x475dd9
mov dword [esp + 0x6c], 0
push 0xb
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.0047de70
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x475e04
pop edi
pop esi
pop ebp
xor al, al
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eec95
add esp, 0x64
ret
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x63dd8]
lea esi, [ebx + 0x63dd0]
mov eax, ecx
mov dword [esp + 0x10], ecx
not eax
cmp eax, 4
jb 0x475e3e
lea eax, [ecx + 4]
push eax
push esi
call fcn.00477c40
add esp, 8
test eax, eax
je 0x475e3e
mov ecx, dword [esp + 0x10]
add ecx, 4
mov dword [esi + 8], ecx
jmp 0x475e40
xor eax, eax
mov dword [eax], edi
cmp dword [ebx + 0x24], 6
jae 0x475e60
mov eax, dword [ebx + 0x63dd8]
and eax, 0xfffffffc
cmp eax, 0x20
jbe 0x475e60
mov eax, dword [ebx + 0x2c]
or dword [ebx + 0x28], 8
mov dword [ebx + 0x2c], eax
lea eax, [esp + 0x34]
push eax
xor eax, eax
cmp ebp, 0xb
push ebp
sete al
add eax, 6
push eax
push ebx
call fcn.0046ade0
add esp, 0x10
cmp ebp, 0xb
jne 0x475e84
or dword [ebx + 0x30], 1
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x475e9a
cmp eax, 5
je 0x475e9a
mov eax, dword [ebx + 0x2c]
or dword [ebx + 0x28], 4
mov dword [ebx + 0x2c], eax
mov ecx, dword [esp + 0x70]
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004eec95
add esp, 0x64
ret