Function at 0x4765e0
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 0x4769d3
cmp byte [eax + 0x6e], 4
jne 0x4769d3
push edi
mov edi, 0x7fffffff
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x30], edi
mov ecx, dword [eax + 0x5c]
mov eax, dword [ecx + 0x1ac]
cmp eax, ebp
mov dword [esp + 0x50], ecx
jne 0x476639
call fcn.00486cc0
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 0x64]
mov dword [esp + 0x2c], eax
push ebx
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.00485650
mov eax, dword [esp + 0xd8]
cmp eax, ebp
jne 0x476686
lea eax, [esi + 0x28]
lea edx, [esp + 0xb8]
push edx
push eax
mov eax, edx
push eax
call fcn.00437c90
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 0x4766c5
cmp dword [eax + 0xc], ebp
jbe 0x4766c5
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 0x476727
mov eax, dword [eax + 0x3b4]
jmp 0x476729
xor eax, eax
push eax
lea edx, [esp + 0x9c]
push edx
call fcn.004380a0
add esp, 8
lea ebx, [ebx]
cmp edi, ebp
jne 0x4768f1
lea ecx, [esp + 0x14]
call fcn.004844e0
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 0x4769ac
mov eax, ebx
and eax, 8
mov dword [esp + 0x40], eax
je 0x47679e
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.004848b0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
test bl, 4
je 0x4767c7
mov edx, dword [esp + 0x4c]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x1c]
call fcn.00484270
mov ecx, dword [eax]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
test bl, 1
je 0x4767ea
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 0x47680d
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 0x4768d9
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 0x476850
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 0x4768b1
mov eax, dword [eax + 0x3b4]
test eax, eax
je 0x4768b1
mov ecx, eax
call fcn.00497d50
test al, al
je 0x4768a9
fld dword [0x53d7c8]
mov edx, dword [esp + 0x70]
test edx, edx
fdiv dword [esp + 0x3c]
fild dword [esp + 0x70]
jge 0x47688f
fadd dword [0x5415b8]
mov esi, dword [esp + 0x18]
fmulp st(1)
mov edi, dword [esp + 0x14]
fst dword [esp + 0xa4]
fstp dword [esp + 0x98]
jmp 0x4768d7
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.004844d0
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x50]
push eax
lea ecx, [esp + 0x18]
call fcn.00484510
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x68], eax
call fcn.004845a0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov byte [esp + 0x94], 0
jbe 0x47694b
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 0x47694b
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.00437c90
mov eax, dword [esp + 0xec]
push eax
lea ecx, [esp + 0x68]
push ecx
call dword [esp + 0xf0]
add esp, 0x14
test al, al
je 0x4769c4
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 0x476740
lea ecx, [esp + 0x14]
call fcn.004844e0
pop ebx
pop edi
pop esi
mov al, 1
pop ebp
add esp, 0xc4
ret 0xc
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc