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

Disassembly:
sub esp, 0xb4
push ebx
push esi
mov esi, ecx
mov bl, 1
mov byte [esp + 0x1a], 1
mov byte [esp + 0x19], bl
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
push eax
mov byte [esp + 0x1f], bl
mov byte [esp + 0x1c], bl
mov byte [esp + 0x1a], bl
mov byte [esp + 0x17], bl
mov byte [esp + 0x18], bl
mov byte [esp + 0x19], bl
mov byte [esp + 0x1b], bl
call fcn.00531830
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
xor ecx, ecx
test eax, eax
mov dword [esp + 0x2c], ecx
jbe 0x4c8ab4
push ebp
push edi
mov ebp, 0x7fffffff
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esi + 0x28]
push edx
call fcn.00531850
and eax, 0xff
cmp eax, 0x26
ja case.0x4c8501.10
xor ecx, ecx
mov cl, byte [eax + 0x4c8aec]
jmp dword [ecx*4 + 0x4c8ac0]
cmp byte [esp + 0x22], 1
jne case.0x4c8501.10
mov edx, dword [0x6621f4]
mov byte [esp + 0x22], 0
mov eax, dword [edx + 0x8c]
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x6c]
fld dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [esi + 0x15c]
mov dword [esp + 0x9c], eax
mov eax, dword [esi + 0x30]
add eax, 0x30
mov dword [esp + 0x30], edx
fld dword [eax]
fxch st(1)
fsub st(1)
mov ecx, dword [eax + 8]
mov dword [esp + 0xb4], ecx
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
and eax, ebp
fstp st(0)
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fcomp dword [esp + 0x30]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x9c]
fsub dword [esp + 0xb4]
fstp dword [esp + 0x14]
and dword [esp + 0x14], ebp
fld dword [esp + 0x14]
fcomp dword [esp + 0x30]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
fcompp
fnstsw ax
and eax, 0x100
jne case.0x4c8501.10
mov eax, dword [esi]
push 0
push 0x4d00
mov ecx, esi
call dword [eax + 0x14]
jmp case.0x4c8501.10
cmp bl, 1
jne case.0x4c8501.10
mov ecx, dword [0x6621f4]
xor bl, bl
mov edx, dword [ecx + 0x8c]
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x6c]
fld dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x30]
add eax, 0x30
mov dword [esp + 0x78], ecx
fld dword [eax]
fxch st(1)
fsub st(1)
mov edx, dword [eax + 8]
mov eax, dword [esi + 0x160]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x84], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
and eax, ebp
fstp st(0)
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fcomp dword [esp + 0x2c]
fnstsw ax
and eax, 0x4100
je 0x4c869a
fld dword [esp + 0x78]
fsub dword [esp + 0x84]
fstp dword [esp + 0x10]
and dword [esp + 0x10], ebp
fld dword [esp + 0x10]
fcomp dword [esp + 0x2c]
fnstsw ax
and eax, 0x4100
je 0x4c869a
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
fcompp
fnstsw ax
and eax, 0x100
je case.0x4c8501.10
push 0
push 0x4d01
jmp 0x4c8a96
cmp byte [esp + 0x21], 1
jne case.0x4c8501.10
mov eax, dword [0x6621f4]
mov byte [esp + 0x21], 0
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0x40]
fld dword [eax + 0x9c]
fcomp dword [0x622c08]
fnstsw ax
and eax, 0x4100
mov eax, 0x4d02
je 0x4c86e3
mov eax, 0x4d17
push 0
push eax
jmp 0x4c8a96
cmp byte [esp + 0x23], 1
jne case.0x4c8501.10
mov eax, dword [esi]
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
mov byte [esp + 0x27], 0
call dword [eax + 0xb4]
mov eax, dword [esi + 0x30]
add eax, 0x30
fld dword [eax]
fld dword [esp + 0x58]
mov edx, dword [eax + 8]
mov eax, dword [esi + 0x15c]
fsub st(1)
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
and eax, ebp
fstp st(0)
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fcomp dword [esp + 0x28]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x60]
fsub dword [esp + 0x90]
fstp dword [esp + 0x10]
and dword [esp + 0x10], ebp
fld dword [esp + 0x10]
fcomp dword [esp + 0x28]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
fcompp
fnstsw ax
and eax, 0x100
jne case.0x4c8501.10
push 0
push 0x4d03
jmp 0x4c8a96
cmp byte [esp + 0x20], 1
jne case.0x4c8501.10
mov eax, dword [esi]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
mov byte [esp + 0x24], 0
call dword [eax + 0xb4]
mov eax, dword [esi + 0x30]
add eax, 0x30
fld dword [eax]
fld dword [esp + 0x4c]
mov edx, dword [eax + 8]
mov eax, dword [esi + 0x15c]
fsub st(1)
mov dword [esp + 0x24], eax
mov dword [esp + 0xa8], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
and eax, ebp
fstp st(0)
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fcomp dword [esp + 0x24]
fnstsw ax
and eax, 0x4100
je 0x4c885d
fld dword [esp + 0x54]
fsub dword [esp + 0xa8]
fstp dword [esp + 0x10]
and dword [esp + 0x10], ebp
fld dword [esp + 0x10]
fcomp dword [esp + 0x24]
fnstsw ax
and eax, 0x4100
je 0x4c885d
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
fcompp
fnstsw ax
and eax, 0x100
je case.0x4c8501.10
push 0
push 0x4d04
jmp 0x4c8a96
cmp byte [esp + 0x1e], 1
jne case.0x4c8501.10
mov eax, dword [esi]
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
mov byte [esp + 0x22], 0
call dword [eax + 0xb4]
mov eax, dword [esi + 0x30]
add eax, 0x30
fld dword [eax]
fld dword [esp + 0x64]
mov edx, dword [eax + 8]
fsub st(1)
mov dword [esp + 0xc0], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
and eax, ebp
fstp st(0)
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fcomp dword [0x6222e4]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x6c]
fsub dword [esp + 0xc0]
fstp dword [esp + 0x10]
and dword [esp + 0x10], ebp
fld dword [esp + 0x10]
fcomp dword [0x6222e4]
fnstsw ax
and eax, 0x4100
je case.0x4c8501.10
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fcomp dword [0x626990]
fnstsw ax
test ah, 0x41
jp case.0x4c8501.10
mov eax, dword [esi]
push 0
push 0x4d05
mov ecx, esi
call dword [eax + 0x14]
jmp case.0x4c8501.10
cmp byte [esp + 0x1b], 1
jne case.0x4c8501.10
mov ecx, esi
mov byte [esp + 0x1b], 0
call fcn.0052d1b0
test eax, eax
je case.0x4c8501.10
mov ecx, esi
call fcn.0052d1b0
test byte [eax + 0x24], 4
je case.0x4c8501.10
push 0
push 0x4d06
jmp 0x4c8a96
cmp byte [esp + 0x1c], 1
jne case.0x4c8501.10
mov eax, dword [0x6621f4]
mov byte [esp + 0x1c], 0
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x6c]
fld dword [eax]
fcom dword [esi + 0x110]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
fnstsw ax
and eax, 0x100
jne 0x4c8a06
fcomp dword [esi + 0x104]
fnstsw ax
test ah, 0x41
jp 0x4c8a08
fld dword [esi + 0x118]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jp 0x4c8a08
fld dword [esi + 0x10c]
fcomp dword [esp + 0x48]
fnstsw ax
and eax, 0x100
jne 0x4c8a08
fld dword [esi + 0x114]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x41
jp 0x4c8a08
fld dword [esi + 0x108]
fcomp dword [esp + 0x44]
fnstsw ax
and eax, 0x100
jne 0x4c8a08
push 0
push 0x4d10
jmp 0x4c8a96
fstp st(0)
mov eax, dword [esi]
push 0
push 0x4d11
mov ecx, esi
call dword [eax + 0x14]
jmp case.0x4c8501.10
cmp byte [esp + 0x1d], 1
jne case.0x4c8501.10
mov eax, dword [0x6621f4]
mov byte [esp + 0x1d], 0
mov ecx, dword [eax + 0x8c]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x94]
mov edi, eax
test edi, edi
je 0x4c8a73
mov eax, dword [edi]
push 0x802
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x4c8a6e
test byte [edi + 0x3e], 0x1c
jbe 0x4c8a6e
mov edx, dword [esi]
push 0
push 0x4d15
mov ecx, esi
call dword [edx + 0x14]
mov ebp, 0x7fffffff
jmp case.0x4c8501.10
mov ebp, 0x7fffffff
mov eax, dword [esi]
push 0
push 0x4d16
mov ecx, esi
call dword [eax + 0x14]
jmp case.0x4c8501.10
cmp byte [esp + 0x1f], 1
jne case.0x4c8501.10
push 0
mov byte [esp + 0x23], 0
push 0x4d26
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc ecx
cmp ecx, eax
mov dword [esp + 0x34], ecx
jb 0x4c84dd
pop edi
pop ebp
pop esi
pop ebx
add esp, 0xb4
ret