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

Disassembly:
sub esp, 0x38c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x39c]
push edi
mov ebx, ecx
push esi
mov dword [esp + 0x28], ebx
call fcn.00481840
add esi, 3
imul esi, esi, 0x2c
mov dword [esp + 0x20], eax
add esi, ebx
fild dword [esp + 0x20]
fld dword [0x5adc38]
fmul st(1)
fld dword [esi + 0x10]
fld st(1)
fchs
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4819b4
fstp st(1)
fstp st(1)
fld dword [ebx + 0x54]
push ecx
fmulp st(2)
faddp st(1)
fst dword [esp + 0x18]
fstp dword [esp]
call fcn.00407a80
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
xor ebp, ebp
cmp dword [ebx + 0x60], ebp
fsubr dword [esp + 0x14]
fstp dword [esp + 0x44]
jle 0x481999
mov dword [esp + 0x1c], ebp
lea esp, [esp]
mov edi, dword [ebx + 0x64]
add edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x1ab]
cmp eax, dword [esp + 0x3a0]
je 0x481989
mov ecx, dword [esp + 0x3a0]
push 0
push 0x1f4
push ecx
push 1
push edi
mov ecx, 0x908488
call fcn.004646a0
mov edx, dword [edi + 4]
shr edx, 8
and edx, 0x1ff
mov eax, 0xfffffffa
sub eax, edx
add dword [esp + 0x10], eax
add dword [esp + 0x1c], 0x1af
add ebp, 1
cmp ebp, dword [ebx + 0x60]
jl 0x481940
mov edx, dword [esp + 0x20]
push edx
mov ecx, ebx
call fcn.00481120
add eax, 0xffffffff
cmp eax, 4
ja case.default.0x4819ad
jmp dword [eax*4 + 0x4821c0]
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x48190b
fstp st(0)
jmp 0x48190d
cmp edx, dword [0x91c480]
jge 0x4819da
fld dword [0x5adc34]
jmp 0x481a08
fld dword [0x5da488]
jmp 0x481a08
fld dword [0x5da484]
jmp 0x481a08
fld dword [0x5c4f94]
jmp 0x481a08
fld dword [0x5d9a14]
jmp 0x481a08
fld dword [0x5adecc]
jmp 0x481a08
fld dword [0x5c0618]
cmp dword [ebx + 0x6c], 0
fstp dword [esp + 0x18]
mov dword [esp + 0x1c], 0
jle 0x481aee
mov dword [esp + 0x14], 0
jmp 0x481a30
mov edx, dword [ebx + 0x70]
add edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x1ab]
cmp ecx, dword [esp + 0x3a0]
mov dword [esp + 0x28], edx
je 0x481ad2
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x18], eax
jl 0x481ab8
add eax, 0x10
xor ecx, ecx
mov dword [esi + 0x14], eax
mov edx, 0x1af
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00587be5
xor ebp, ebp
add esp, 4
cmp dword [esi + 0x18], ebp
mov dword [esp + 0x20], eax
jle 0x481aa1
xor edi, edi
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x20]
add eax, edi
push eax
add ecx, edi
call fcn.004b3d00
add ebp, 1
add edi, 0x1af
cmp ebp, dword [esi + 0x18]
jl 0x481a82
mov edx, dword [esi + 0x1c]
push edx
call fcn.0058881a
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, eax
imul ecx, ecx, 0x1af
add ecx, dword [esi + 0x1c]
add eax, 1
push edx
mov dword [esi + 0x18], eax
call fcn.004b3d00
mov eax, dword [esp + 0x1c]
add dword [esp + 0x14], 0x1af
add eax, 1
cmp eax, dword [ebx + 0x6c]
mov dword [esp + 0x1c], eax
jl 0x481a30
xor eax, eax
cmp dword [ebx + 0x78], eax
mov dword [esp + 0x1c], eax
jle 0x481bba
mov dword [esp + 0x14], eax
mov edx, dword [ebx + 0x7c]
add edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x1ab]
cmp ecx, dword [esp + 0x3a0]
mov dword [esp + 0x28], edx
je 0x481b9e
mov eax, dword [esi + 0x20]
cmp dword [esi + 0x24], eax
jl 0x481b84
add eax, 0x10
xor ecx, ecx
mov dword [esi + 0x20], eax
mov edx, 0x1af
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00587be5
xor ebp, ebp
add esp, 4
cmp dword [esi + 0x24], ebp
mov ebx, eax
jle 0x481b6d
xor edi, edi
mov eax, dword [esi + 0x28]
add eax, edi
push eax
lea ecx, [edi + ebx]
call fcn.004b3d00
add ebp, 1
add edi, 0x1af
cmp ebp, dword [esi + 0x24]
jl 0x481b51
mov ecx, dword [esi + 0x28]
push ecx
call fcn.0058881a
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x28], ebx
mov ebx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esi + 0x24]
mov ecx, eax
imul ecx, ecx, 0x1af
add ecx, dword [esi + 0x28]
add eax, 1
push edx
mov dword [esi + 0x24], eax
call fcn.004b3d00
mov eax, dword [esp + 0x1c]
add dword [esp + 0x14], 0x1af
add eax, 1
cmp eax, dword [ebx + 0x78]
mov dword [esp + 0x1c], eax
jl 0x481b01
fld qword [0xa1e868]
sub esp, 8
fld dword [esp + 0x20]
mov ecx, esi
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00480fc0
test al, al
je 0x4821a8
cmp dword [esp + 0x10], 0
jle 0x4821a8
fld dword [esp + 0x18]
push ecx
fstp dword [esp]
call fcn.00481570
cmp byte [esi + 1], 0
sete al
test al, al
mov byte [esi + 1], al
je 0x481c0a
add dword [esp + 0x10], 0x1e
jmp 0x481c0f
sub dword [esp + 0x10], 0x1e
xor ebp, ebp
cmp dword [esi + 0x18], ebp
jle 0x481c65
xor ebx, ebx
jmp 0x481c20
mov edx, dword [esp + 0x3a0]
mov edi, dword [esi + 0x1c]
push 0
push 0x1f4
push edx
push 1
add edi, ebx
push edi
mov ecx, 0x908488
call fcn.004646a0
mov eax, dword [edi + 4]
shr eax, 8
and eax, 0x1ff
mov ecx, 0xfffffffa
sub ecx, eax
add dword [esp + 0x10], ecx
add ebp, 1
add ebx, 0x1af
cmp ebp, dword [esi + 0x18]
jl 0x481c20
mov eax, 0x2e8ba2e9
imul dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
mov dword [esi + 0x18], 0
mov dword [esp + 0x18], eax
jle 0x4821a1
mov ebx, dword [esp + 0x24]
fld dword [0x5da430]
xor ebp, ebp
cmp dword [ebx + 0x13988], ebp
mov dword [esp + 0x1c], ebp
jle 0x481ce8
mov edi, dword [ebx + 0x13988]
lea edx, [ebx + 0x1398c]
mov ecx, dword [edx]
mov eax, dword [ecx + 0xec]
cmp eax, dword [esp + 0x3a0]
je 0x481cdc
fld dword [ecx + 0xf0]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x481cdc
mov ecx, dword [ecx + 0x2a0]
mov dword [esp + ebp*4 + 0x48], ecx
add ebp, 1
add edx, 4
sub edi, 1
jne 0x481caf
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x3ac]
fstp st(0)
test eax, eax
jne 0x481d68
mov edx, dword [esp + 0x3a8]
imul edx, edx, 0x2a4
lea edi, [edx + ebx + 0x2444]
lea eax, [esp + 0x2c]
push eax
lea ecx, [edi + 0x108]
call fcn.004b3150
mov eax, dword [esp + 0x3ac]
fld qword [0xa1e878]
fsub dword [edi + 0xf0]
fadd dword [0x5ad744]
fld dword [esp + 0x2c]
fmul st(1)
fld dword [esp + 0x30]
fmul st(2)
fld dword [esp + 0x34]
fmulp st(3)
fld dword [edi + 0x112]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fadd dword [edi + 0x116]
fstp dword [esp + 0x30]
fadd dword [edi + 0x11a]
fstp dword [esp + 0x34]
jmp 0x481d7c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x3a4]
cmp ecx, dword [esp + 0x3a8]
jne 0x481d90
test eax, eax
je 0x481dfa
cmp ecx, 0x68
ja 0x481dfa
imul ecx, ecx, 0x2a4
lea edi, [ecx + ebx + 0x2444]
lea edx, [esp + 0x38]
push edx
lea ecx, [edi + 0x108]
call fcn.004b3150
fld qword [0xa1e878]
fsub dword [edi + 0xf0]
fadd dword [0x5ad744]
fld dword [esp + 0x38]
fmul st(1)
fld dword [esp + 0x3c]
fmul st(2)
fld dword [esp + 0x40]
fmulp st(3)
fld dword [edi + 0x112]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x38]
fadd dword [edi + 0x116]
fstp dword [esp + 0x3c]
fadd dword [edi + 0x11a]
fstp dword [esp + 0x40]
jmp 0x481e12
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
xor edi, edi
test ebp, ebp
jle 0x481e3a
jmp 0x481e20
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + edi*4 + 0x50]
call fcn.00480c30
add edi, 1
cmp edi, ebp
jl 0x481e20
cmp dword [0xa192fc], 0
je 0x481eed
mov eax, dword [esp + 0x3a4]
cmp eax, 0x67
mov dword [esp + 0x20], 0xffffffff
ja 0x481e75
imul eax, eax, 0x600c
add eax, 0x680ca8
push eax
mov ecx, 0xa19874
call fcn.004e53b0
mov dword [esp + 0x20], eax
xor edx, edx
test ebp, ebp
jle 0x481eed
fldz
fld dword [0x5da430]
mov ebp, dword [esp + edx*4 + 0x48]
mov edi, dword [ebp]
mov eax, dword [edi + 0xf4]
and eax, 0xff
cmp eax, dword [esp + 0x20]
je 0x481ea0
cmp eax, 0x68
jne 0x481edc
mov ecx, dword [esp + 0x3a0]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3a0]
shr ecx, 3
mov cl, byte [ecx + edi + 0xd0]
test cl, al
jne 0x481edc
fld dword [edi + 0xf0]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x481edc
fxch st(1)
fst dword [ebp + 4]
fxch st(1)
add edx, 1
cmp edx, dword [esp + 0x1c]
jl 0x481e83
mov ebp, dword [esp + 0x1c]
fstp st(1)
fstp st(0)
push 0x480b70
push 4
lea edx, [esp + 0x50]
push ebp
push edx
call fcn.00589790
add esp, 0x10
xor eax, eax
test ebp, ebp
mov dword [ebx + 0x13b30], ebp
jle 0x481f2a
mov edi, edi
mov ecx, dword [esp + eax*4 + 0x48]
mov edx, dword [ecx]
mov cl, byte [edx + 0xf4]
mov byte [eax + ebx + 0x13b34], cl
add eax, 1
cmp eax, ebp
jl 0x481f10
xor edi, edi
xor ebp, ebp
cmp dword [esi + 0x24], edi
jle 0x481fcb
mov dword [esp + 0x14], edi
jmp 0x481f40
mov ecx, dword [esi + 0x28]
add ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x13ba0]
cmp ebp, eax
mov dword [esp + 0x28], ecx
jl 0x481fac
add eax, 0x10
xor ecx, ecx
mov dword [ebx + 0x13ba0], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00587be5
mov edi, eax
add esp, 4
xor eax, eax
test ebp, ebp
jle 0x481f93
nop
mov ecx, dword [ebx + 0x13ba4]
mov edx, dword [ecx + eax*4]
mov dword [edi + eax*4], edx
add eax, 1
cmp eax, ebp
jl 0x481f80
mov eax, dword [ebx + 0x13ba4]
push eax
call fcn.0058881a
mov ecx, dword [esp + 0x2c]
add esp, 4
mov dword [ebx + 0x13ba4], edi
mov edx, dword [ebx + 0x13ba4]
add dword [esp + 0x14], 0x1af
mov dword [edx + ebp*4], ecx
add ebp, 1
cmp ebp, dword [esi + 0x24]
jl 0x481f40
xor edi, edi
mov eax, dword [ebx + 0x13ba4]
push 0x480bb0
push 4
push ebp
push eax
call fcn.00589790
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, 1
jle 0x481ff0
cdq
sub eax, edx
sar eax, 1
cmp dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
jle 0x4821a1
jmp 0x482010
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], ecx
jge 0x482136
mov eax, dword [esp + 0x18]
mov edx, dword [esp + eax*4 + 0x48]
mov edi, dword [edx]
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3a0]
mov ecx, eax
and ecx, 7
shr eax, 3
mov bl, byte [eax + edi + 0xd0]
mov edx, 1
shl edx, cl
lea eax, [eax + edi + 0xd0]
test bl, dl
jne 0x482132
mov edx, dword [esp + 0x3a0]
mov dl, byte [edi + edx]
cmp dl, byte [esi]
setae dl
test dl, dl
je 0x482132
mov dl, 1
shl dl, cl
or byte [eax], dl
sub dword [esp + 0x14], 1
js 0x4820ab
mov eax, dword [esp + 0x3a0]
push 0
push 0x1f4
push eax
push 1
add edi, 0xf0
push edi
mov ecx, 0x908488
call fcn.004646a0
sub dword [esp + 0x10], 0x2c
jmp 0x482132
movzx ecx, byte [edi + 0xf4]
fld dword [edi + 0xf0]
mov edx, dword [0x8f71bc]
fstp dword [esp + 0x1ec]
shl edx, 0x17
lea eax, [ecx + edx + 0x200e00]
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1f0], eax
call fcn.004b3c50
add edi, 0xf8
push edi
lea ecx, [esp + 0x1f0]
call fcn.00480950
mov ecx, dword [esp + 0x3a0]
push 0
push 0x1f4
push ecx
push 1
lea edx, [esp + 0x1fc]
push edx
mov ecx, 0x908488
call fcn.004646a0
mov eax, dword [esp + 0x1f0]
shr eax, 8
and eax, 0x1ff
mov ecx, 0xfffffffa
sub ecx, eax
add dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x20], ebp
jge 0x48218c
cmp dword [esp + 0x10], 0
jle 0x4821a1
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x13ba4]
mov edi, dword [edx + eax*4]
push 0
add eax, 1
push 0x1f4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3a8]
push eax
push 1
push edi
mov ecx, 0x908488
call fcn.004646a0
mov ecx, dword [edi + 4]
shr ecx, 8
and ecx, 0x1ff
mov edx, 0xfffffffa
sub edx, ecx
add dword [esp + 0x10], edx
jmp 0x482196
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
jge 0x4821a1
cmp dword [esp + 0x10], 0
jg 0x482010
mov dword [esi + 0x24], 0
fild dword [esp + 0x10]
pop edi
fadd dword [esp + 0x40]
fstp dword [esi + 0x10]
pop esi
pop ebp
pop ebx
add esp, 0x38c
ret 0x10