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

Disassembly:
sub esp, 0xc4
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x18]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x3c], esi
je 0x474fd3
cmp byte [eax + 0x6e], 4
jne 0x474fd3
push ebx
push edi
mov edi, 0x7fffffff
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x34], edi
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x54], ecx
call fcn.00484e10
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 0x64]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], 0x20000000
mov bl, byte [ecx + 0x6f]
xor eax, eax
cmp bl, 0x21
sete al
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x50], eax
call fcn.00483690
mov eax, dword [esp + 0xd8]
cmp eax, ebp
jne 0x474c8c
lea eax, [esi + 0x28]
lea edx, [esp + 0xb8]
push edx
push eax
mov eax, edx
push eax
call fcn.00437330
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x10], ebp
je 0x474ccb
cmp dword [eax + 0xc], ebp
jbe 0x474ccb
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dl, byte [eax + ecx]
inc eax
mov dword [esp + 0x18], eax
mov cl, byte [eax + ecx]
inc eax
mov dword [esp + 0x18], eax
movzx eax, cl
mov ecx, dword [esi + 0x24]
movzx edx, dl
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov byte [esp + 0x94], 0
mov eax, dword [ecx + 4]
xor edi, edi
cmp eax, ebp
mov dword [esp + 0x50], edx
je 0x474d2d
mov eax, dword [eax + 0x3b0]
jmp 0x474d2f
xor eax, eax
push eax
lea edx, [esp + 0x9c]
push edx
call fcn.00437740
add esp, 8
cmp edi, ebp
jne 0x474ef1
lea ecx, [esp + 0x14]
call fcn.004826d0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov al, byte [esi + edi]
movzx ebx, al
inc esi
cmp ebx, ebp
mov dword [esp + 0x18], esi
je 0x474fac
mov eax, ebx
and eax, 8
mov dword [esp + 0x40], eax
je 0x474d9e
lea eax, [esi + edi]
xor ecx, ecx
add esi, 2
mov dword [esp + 0x18], esi
mov ch, byte [eax + 1]
mov cl, byte [eax]
push ecx
mov ecx, dword [esp + 0x58]
call fcn.00482a70
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
test bl, 4
je 0x474dc7
mov edx, dword [esp + 0x4c]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x1c]
call fcn.00482460
mov ecx, dword [eax]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
test bl, 1
je 0x474dea
lea eax, [esi + edi]
xor edx, edx
add esi, 2
mov dword [esp + 0x18], esi
mov dh, byte [eax + 1]
movsx ecx, dx
movzx edx, byte [eax]
or ecx, edx
mov dword [esp + 0xa8], ecx
test bl, 2
je 0x474e0d
lea eax, [esi + edi]
add esi, 2
xor ecx, ecx
mov dword [esp + 0x18], esi
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, cx
or edx, eax
mov dword [esp + 0xac], edx
cmp dword [esp + 0x40], ebp
je 0x474ed9
mov edx, dword [esp + 0x5c]
lea eax, [esi + edi]
xor ecx, ecx
add esi, 2
mov dword [esp + 0x18], esi
mov ch, byte [eax + 1]
mov ebp, 0x400
mov dword [esp + 0x3c], 0x44800000
mov cl, byte [eax]
mov dword [esp + 0x70], ecx
cmp byte [edx + 0x6f], 0x4b
jne 0x474e50
mov ebp, 0x5000
mov dword [esp + 0x3c], 0x46a00000
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x24]
mov eax, dword [ecx + 4]
test eax, eax
je 0x474eb1
mov eax, dword [eax + 0x3b0]
test eax, eax
je 0x474eb1
mov ecx, eax
call fcn.00495e00
test al, al
je 0x474ea9
fld dword [0x53a788]
mov edx, dword [esp + 0x70]
test edx, edx
fdiv dword [esp + 0x3c]
fild dword [esp + 0x70]
jge 0x474e8f
fadd dword [0x53e2f8]
mov esi, dword [esp + 0x18]
fmulp st(1)
mov edi, dword [esp + 0x14]
fst dword [esp + 0xa4]
fstp dword [esp + 0x98]
jmp 0x474ed7
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, 0x10000
cdq
idiv ebp
mov dword [esp + 0xb0], 0
imul eax, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x98], eax
xor ebp, ebp
mov al, byte [esi + edi]
inc esi
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], esi
movzx edi, al
call fcn.004826c0
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x50]
push eax
lea ecx, [esp + 0x18]
call fcn.00482700
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x68], eax
call fcn.00482780
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov byte [esp + 0x94], 0
jbe 0x474f4b
mov edx, eax
mov eax, dword [esp + 0x38]
dec edx
mov dword [esp + 0x10], edx
mov dl, byte [eax]
inc eax
test dl, dl
mov dword [esp + 0x38], eax
mov byte [esp + 0x94], 1
jne 0x474f4b
mov byte [esp + 0x94], 0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0xbc]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00437330
mov eax, dword [esp + 0xec]
push eax
lea ecx, [esp + 0x68]
push ecx
call dword [esp + 0xf0]
add esp, 0x14
test al, al
je 0x474fc4
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
add esi, edx
dec edi
inc ecx
inc eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
jmp 0x474d40
lea ecx, [esp + 0x14]
call fcn.004826d0
pop edi
pop ebx
pop esi
mov al, 1
pop ebp
add esp, 0xc4
ret 0xc
pop edi
pop ebx
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc