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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e112b
mov eax, dword fs:[0]
push eax
sub esp, 0x864
mov eax, dword [0x515de0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [edi + 0x90], 0
je 0x48f4b3
mov ecx, dword [edi + 0x6c]
mov eax, 0x76b981db
sub ecx, dword [edi + 0x68]
xor ebx, ebx
imul ecx
mov dword [ebp - 0x830], ebx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x48f4a7
xorps xmm1, xmm1
jmp 0x48df20
mov ecx, dword [edi + 0x68]
lea eax, [ebp - 0x800]
imul esi, ebx, 0x228
add ecx, 0x110
push eax
lea eax, [ebp - 0x7f8]
movsd qword [ebp - 0x7f8], xmm1
push eax
movsd qword [ebp - 0x800], xmm1
add ecx, esi
movsd qword [ebp - 0x820], xmm1
call fcn.004334f0
mov ecx, dword [edi + 0x68]
lea eax, [ebp - 0x820]
add ecx, 0x110
push eax
add ecx, esi
call fcn.00433630
mov eax, dword [edi + 0x68]
mov eax, dword [esi + eax + 4]
test eax, eax
je 0x48dfd9
lea ecx, [ebp - 0x7f0]
xorps xmm0, xmm0
push ecx
lea ecx, [ebp - 0x7e8]
movsd qword [ebp - 0x7e8], xmm0
push ecx
push eax
mov ecx, edi
movsd qword [ebp - 0x7f0], xmm0
call fcn.004890a0
movsd xmm3, qword [ebp - 0x7e8]
movsd xmm4, qword [ebp - 0x7f0]
addsd xmm3, qword [ebp - 0x7f8]
addsd xmm4, qword [ebp - 0x800]
movsd qword [ebp - 0x7f8], xmm3
movsd qword [ebp - 0x800], xmm4
jmp 0x48dfe9
movsd xmm3, qword [ebp - 0x7f8]
movsd xmm4, qword [ebp - 0x800]
mov ebx, dword [edi + 0x68]
xorps xmm6, xmm6
movsd xmm5, qword [esi + ebx + 0xf0]
ucomisd xmm5, xmm6
lahf
test ah, 0x44
jp 0x48e019
movsd xmm0, qword [esi + ebx + 0xf8]
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jnp 0x48e09a
movsd xmm1, qword [esi + ebx + 0x100]
movsd xmm2, qword [edi + 0x58]
movsd xmm0, qword [esi + ebx + 0x108]
subsd xmm2, xmm1
subsd xmm0, xmm1
movsd xmm7, qword [0x4e3758]
divsd xmm2, xmm0
comisd xmm2, xmm7
ja 0x48e05b
comisd xmm6, xmm2
jbe 0x48e055
movaps xmm2, xmm6
jmp 0x48e05e
comisd xmm2, xmm7
jbe 0x48e05e
movaps xmm2, xmm7
movaps xmm1, xmm7
subsd xmm1, xmm2
mulsd xmm1, xmm1
mulsd xmm5, xmm1
addsd xmm5, xmm3
movaps xmm3, xmm5
movsd qword [ebp - 0x7f8], xmm3
movsd xmm0, qword [esi + ebx + 0xf8]
mulsd xmm0, xmm1
addsd xmm0, xmm4
movaps xmm4, xmm0
movsd qword [ebp - 0x800], xmm4
jmp 0x48e0a2
movsd xmm7, qword [0x4e3758]
mov eax, dword [esi + ebx + 0x38]
dec eax
cmp eax, 0xc
ja case.0x48e0b0.8
jmp dword [eax*4 + 0x48f4d0]
movsd xmm0, qword [esi + ebx + 0x10]
lea ecx, [ebx + 0x110]
addsd xmm0, xmm3
add ecx, esi
addsd xmm0, qword [edi + 0x1c0]
movsd qword [ebp - 0x810], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [ebp - 0x7f0], xmm0
call fcn.00433660
mov edx, dword [edi + 0x68]
fmul qword [esi + ebx + 0x70]
mov ecx, dword [esi + edx + 0x58]
fstp qword [ebp - 0x7e8]
test ecx, ecx
je case.0x48e0b0.8
movsd xmm0, qword [esi + edx + 0x30]
sub esp, 0x28
mov eax, dword [ecx]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [ebp - 0x7e8]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + edx + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp - 0x7f0]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x810]
movsd qword [esp], xmm0
call dword [eax]
jmp case.0x48e0b0.8
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.00433660
fmul qword [esi + ebx + 0x70]
lea eax, [ebp - 0x858]
mov ecx, dword [edi + 0x68]
push eax
lea eax, [ebp - 0x838]
push eax
mov ecx, dword [esi + ecx + 0x58]
fstp qword [ebp - 0x7e8]
call fcn.004956d0
mov edx, dword [edi + 0x68]
movsd xmm1, qword [ebp - 0x838]
movsd xmm2, qword [ebp - 0x858]
movapd xmm5, xmm1
movsd xmm7, qword [ebp - 0x7e8]
movapd xmm6, xmm2
cmp byte [esi + edx + 0x78], 0
mulsd xmm5, xmm7
mulsd xmm6, xmm7
je 0x48e211
ucomisd xmm7, qword [0x4e3758]
lahf
test ah, 0x44
jnp 0x48e211
subsd xmm1, xmm5
subsd xmm2, xmm6
mulsd xmm1, qword [0x4e3750]
mulsd xmm2, qword [0x4e3750]
addsd xmm1, qword [ebp - 0x7f8]
addsd xmm2, qword [ebp - 0x800]
movsd qword [ebp - 0x7f8], xmm1
movsd qword [ebp - 0x800], xmm2
jmp 0x48e221
movsd xmm1, qword [ebp - 0x7f8]
movsd xmm2, qword [ebp - 0x800]
movsd xmm4, qword [esi + edx + 0x10]
movsd xmm3, qword [esi + edx + 0x18]
addsd xmm4, xmm1
movsd xmm0, qword [0x4e4148]
addsd xmm3, xmm2
addsd xmm4, qword [edi + 0x1c0]
addsd xmm3, qword [edi + 0x1c8]
comisd xmm0, xmm4
ja 0x48e282
movaps xmm0, xmm4
xorps xmm1, xmm1
addsd xmm0, xmm5
comisd xmm0, xmm1
jae 0x48e282
movsd xmm0, qword [0x4e4140]
comisd xmm0, xmm3
ja 0x48e282
movaps xmm0, xmm3
addsd xmm0, xmm6
comisd xmm0, xmm1
jb 0x48f47b
movsd xmm0, qword [esi + edx + 0x30]
addsd xmm0, qword [ebp - 0x820]
mov ecx, dword [esi + edx + 0x58]
push 0
sub esp, 0x28
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + edx + 0x60]
mov ecx, dword [ecx + eax*4]
movsd qword [esp + 0x18], xmm7
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm4
call fcn.00496480
jmp case.0x48e0b0.8
mov ecx, dword [esi + ebx + 0x224]
test ecx, ecx
je 0x48e2f6
call fcn.00424d40
movsd xmm3, qword [ebp - 0x7f8]
movsd xmm4, qword [ebp - 0x800]
mov ebx, dword [edi + 0x68]
mov ecx, dword [esi + ebx + 0x58]
test ecx, ecx
je case.0x48e0b0.8
cmp byte [esi + ebx + 0x90], 0
je 0x48e379
movups xmm0, xmmword [esi + ebx + 0xa8]
sub esp, 0x38
movups xmmword [esp + 0x28], xmm0
movups xmm0, xmmword [esi + ebx + 0x98]
movups xmmword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496df0
jmp case.0x48e0b0.8
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.00433660
fmul qword [esi + ebx + 0x70]
lea eax, [ebp - 0x860]
mov ecx, dword [edi + 0x68]
push eax
lea eax, [ebp - 0x868]
push eax
mov ecx, dword [esi + ecx + 0x58]
fstp qword [ebp - 0x7f0]
call fcn.004956d0
mov ecx, dword [edi + 0x68]
movsd xmm1, qword [ebp - 0x868]
movsd xmm5, qword [ebp - 0x860]
movapd xmm6, xmm1
movsd xmm4, qword [ebp - 0x7f0]
movapd xmm7, xmm5
cmp byte [esi + ecx + 0x78], 0
mulsd xmm6, xmm4
mulsd xmm7, xmm4
je 0x48e424
ucomisd xmm4, qword [0x4e3758]
lahf
test ah, 0x44
jnp 0x48e424
subsd xmm1, xmm6
subsd xmm5, xmm7
mulsd xmm1, qword [0x4e3750]
mulsd xmm5, qword [0x4e3750]
addsd xmm1, qword [ebp - 0x7f8]
addsd xmm5, qword [ebp - 0x800]
movsd qword [ebp - 0x7f8], xmm1
movsd qword [ebp - 0x800], xmm5
jmp 0x48e434
movsd xmm1, qword [ebp - 0x7f8]
movsd xmm5, qword [ebp - 0x800]
movsd xmm2, qword [esi + ecx + 0x10]
xor edx, edx
movsd xmm3, qword [esi + ecx + 0x18]
addsd xmm2, xmm1
xorps xmm1, xmm1
addsd xmm3, xmm5
mov al, 1
movsd xmm5, qword [0x4e3758]
movzx eax, al
addsd xmm2, qword [edi + 0x1c0]
addsd xmm3, qword [edi + 0x1c8]
movapd xmm0, xmm2
movsd qword [ebp - 0x810], xmm2
addsd xmm0, xmm6
movsd qword [ebp - 0x7e8], xmm3
comisd xmm1, xmm0
movapd xmm0, xmm3
addsd xmm0, xmm7
cmova eax, edx
comisd xmm2, xmmword [0x4e4148]
movzx eax, al
cmovae eax, edx
comisd xmm1, xmm0
movzx eax, al
cmova eax, edx
movzx ebx, al
xor eax, eax
comisd xmm3, xmmword [0x4e4140]
cmovae ebx, eax
cmp dword [esi + ecx], eax
je 0x48e4f3
push dword [esi + ecx + 0x4c]
mov eax, dword [esi + ecx]
call eax
movsd xmm2, qword [ebp - 0x810]
add esp, 4
movsd xmm3, qword [ebp - 0x7e8]
xorps xmm1, xmm1
movsd xmm4, qword [ebp - 0x7f0]
fstp qword [ebp - 0x818]
movsd xmm5, qword [ebp - 0x818]
test bl, bl
je 0x48f47b
mov ecx, dword [edi + 0x68]
movzx eax, byte [esi + ecx + 0x69]
movsd xmm0, qword [esi + ecx + 0x30]
addsd xmm0, qword [ebp - 0x820]
mov edx, dword [esi + ecx + 0x58]
push eax
sub esp, 0x28
mov dword [ebp - 0x808], edx
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ecx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x18], xmm4
mulsd xmm0, xmm5
mulsd xmm0, qword [esi + ecx + 0x80]
mov ecx, edx
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm2
call fcn.00496480
mov ecx, dword [edi + 0x68]
add ecx, 0x110
add ecx, esi
call fcn.00433470
mov ebx, eax
test ebx, ebx
je case.0x48e0b0.8
jle case.0x48e0b0.8
mov edi, edi
mov ecx, dword [edi + 0x68]
add ecx, 0x110
add ecx, esi
call fcn.00433480
mov eax, dword [edi + 0x68]
mov ecx, dword [ebp - 0x808]
push 1
sub esp, 0x28
movsd xmm0, qword [esi + eax + 0x30]
addsd xmm0, qword [ebp - 0x820]
fstp qword [ebp - 0x818]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [ebp - 0x7f0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [ebp - 0x818]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp - 0x7e8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x810]
movsd qword [esp], xmm0
call fcn.00496480
dec ebx
jne 0x48e580
jmp case.0x48e0b0.8
cmp byte [esi + ebx + 8], 0
jne 0x48e67a
mov ecx, dword [esi + ebx + 0xc8]
test ecx, ecx
je 0x48e67a
movzx eax, byte [esi + ebx + 0x69]
movsd xmm0, qword [esi + ebx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ebx + 0x70]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + ebx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
jmp 0x48e852
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.00433660
fmul qword [esi + ebx + 0x70]
mov ecx, dword [edi + 0x68]
cmp byte [esi + ecx + 0x78], 0
fstp qword [ebp - 0x7f0]
movsd xmm4, qword [ebp - 0x7f0]
je 0x48e72e
ucomisd xmm4, qword [0x4e3758]
lahf
test ah, 0x44
jnp 0x48e72e
mov ecx, dword [esi + ecx + 0x58]
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x848]
push eax
call fcn.004956d0
movsd xmm2, qword [ebp - 0x848]
movsd xmm4, qword [ebp - 0x7f0]
movapd xmm0, xmm2
movsd xmm3, qword [ebp - 0x850]
mulsd xmm0, xmm4
subsd xmm2, xmm0
movapd xmm0, xmm3
mulsd xmm0, xmm4
mulsd xmm2, qword [0x4e3750]
subsd xmm3, xmm0
addsd xmm2, qword [ebp - 0x7f8]
mulsd xmm3, qword [0x4e3750]
movsd qword [ebp - 0x7f8], xmm2
addsd xmm3, qword [ebp - 0x800]
movsd qword [ebp - 0x800], xmm3
jmp 0x48e73e
movsd xmm2, qword [ebp - 0x7f8]
movsd xmm3, qword [ebp - 0x800]
mov ecx, dword [edi + 0x68]
movzx eax, byte [esi + ecx + 0x69]
movsd xmm0, qword [esi + ecx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ecx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x18], xmm4
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ecx + 0x18]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ecx + 0x10]
mov ecx, dword [esi + ecx + 0x58]
addsd xmm0, xmm2
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496480
mov edx, dword [edi + 0x68]
cmp byte [esi + edx + 8], 0
je 0x48e864
mov ecx, dword [esi + edx + 0xcc]
xorps xmm1, xmm1
test ecx, ecx
je 0x48e867
movsd xmm2, qword [esi + edx + 0xd8]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x48e867
movzx eax, byte [esi + edx + 0x69]
movsd xmm0, qword [esi + edx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + edx + 0x70]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + edx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, xmm2
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + edx + 0x18]
addsd xmm0, qword [ebp - 0x800]
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + edx + 0x10]
addsd xmm0, qword [ebp - 0x7f8]
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496480
xorps xmm1, xmm1
mov edx, dword [edi + 0x68]
mov ecx, dword [esi + edx + 0xd0]
test ecx, ecx
je 0x48f47b
movzx eax, byte [esi + edx + 0x69]
movsd xmm0, qword [esi + edx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + edx + 0x70]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + edx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + edx + 0x28]
addsd xmm0, qword [ebp - 0x800]
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + edx + 0x20]
addsd xmm0, qword [ebp - 0x7f8]
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496480
jmp case.0x48e0b0.8
movsd xmm0, qword [esi + ebx + 0x30]
sub esp, 0x38
mov ecx, dword [esi + ebx + 0x58]
movsd qword [esp + 0x30], xmm7
movsd qword [esp + 0x28], xmm6
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ebx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp + 0x18], xmm6
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496df0
mov ecx, dword [edi + 0x68]
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0x840]
push eax
mov ecx, dword [esi + ecx + 0x58]
call fcn.004956d0
mov ecx, dword [edi + 0x68]
xorps xmm4, xmm4
movsd xmm0, qword [edi + 0x1d0]
push 0
sub esp, 0x28
mulsd xmm0, xmm0
movsd xmm3, qword [esi + ecx + 0x10]
movsd xmm2, qword [esi + ecx + 0xd8]
movapd xmm1, xmm3
addsd xmm3, qword [ebp - 0x840]
addsd xmm1, xmm2
movsd qword [esp + 0x20], xmm4
movsd xmm4, qword [0x4e3758]
movsd qword [esp + 0x18], xmm4
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ecx + 0x28]
subsd xmm3, xmm2
addsd xmm0, qword [esi + ecx + 0x18]
subsd xmm3, xmm1
addsd xmm0, qword [edi + 0x1c8]
mulsd xmm3, qword [esi + ecx + 0x30]
movsd qword [esp + 8], xmm0
addsd xmm3, xmm1
addsd xmm3, qword [esi + ecx + 0x20]
mov ecx, dword [esi + ecx + 0xd0]
addsd xmm3, qword [edi + 0x1c0]
movsd qword [esp], xmm3
call fcn.00496480
jmp case.0x48e0b0.8
cmp byte [esi + ebx + 9], 0
je 0x48ea97
movzx eax, byte [esi + ebx + 0x69]
movsd xmm0, qword [esi + ebx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
mov ecx, dword [esi + ebx + 0x58]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ebx + 0x70]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00496480
jmp case.0x48e0b0.8
mov ecx, dword [esi + ebx + 0xc8]
test ecx, ecx
je case.0x48e0b0.8
movzx eax, byte [esi + ebx + 0x69]
movsd xmm0, qword [esi + ebx + 0x30]
addsd xmm0, qword [ebp - 0x820]
push eax
sub esp, 0x28
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ebx + 0x70]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
jmp 0x48e8e0
cmp byte [esi + ebx + 8], 0
je case.0x48e0b0.8
movsd xmm0, qword [esi + ebx + 0x70]
sub esp, 0x28
mov ecx, dword [esi + ebx + 0x58]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + ebx + 0x30]
addsd xmm0, qword [ebp - 0x820]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + ebx + 0x18]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
movsd qword [esp], xmm0
call fcn.00496d80
jmp case.0x48e0b0.8
cmp byte [esi + ebx + 0x79], 0
movsd xmm0, qword [esi + ebx + 0x18]
mov ecx, dword [esi + ebx + 0x58]
addsd xmm0, xmm4
addsd xmm0, qword [edi + 0x1c8]
cvtpd2ps xmm0, xmm0
jne 0x48ebae
push 1
jmp 0x48ebb0
push 0
sub esp, 8
movss dword [esp + 4], xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c0]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00484080
mov ecx, dword [edi + 0x68]
sub esp, 8
movsd xmm0, qword [esi + ecx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
mov ecx, dword [esi + ecx + 0x58]
movsd qword [esp], xmm0
call fcn.00484170
jmp case.0x48e0b0.8
movsd xmm0, qword [esi + ebx + 0x18]
sub esp, 8
addsd xmm0, xmm4
mov eax, dword [esi + ebx + 0x58]
addsd xmm0, qword [edi + 0x1c8]
cvtpd2ps xmm1, xmm0
movsd xmm0, qword [esi + ebx + 0x10]
addsd xmm0, xmm3
addsd xmm0, qword [edi + 0x1c0]
movss dword [eax + 0x54], xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x50], xmm0
mov ecx, dword [edi + 0x68]
movsd xmm0, qword [esi + ecx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
mov ecx, dword [esi + ecx + 0x58]
movsd qword [esp], xmm0
call fcn.00446bc0
jmp case.0x48e0b0.8
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
mulsd xmm0, qword [0x4e3780]
addsd xmm0, qword [0x4e3750]
call fcn.004c5481
movaps xmm0, xmmword [0x4e6780]
shl eax, 0x18
or eax, dword [esi + ebx + 0x88]
push eax
sub esp, 0x20
movups xmmword [esp + 0x10], xmm0
xorps xmm0, xmm0
movups xmmword [esp], xmm0
call fcn.00488aa0
add esp, 0x24
jmp case.0x48e0b0.8
mov eax, dword [esi + ebx + 0x3c]
test eax, eax
je case.0x48e0b0.8
cmp byte [eax], 0
je case.0x48e0b0.8
mov eax, dword [esi + ebx + 0x58]
lea ecx, [ebx + 0x110]
add ecx, esi
mov dword [ebp - 0x804], eax
call fcn.00433660
fmul qword [esi + ebx + 0x70]
mov eax, dword [edi + 0x68]
cmp byte [esi + eax + 0x40], 0
mov ebx, dword [esi + eax + 0x3c]
fstp qword [ebp - 0x810]
je 0x48ed7b
mov ecx, dword [esi + eax + 0x44]
xorps xmm1, xmm1
test ecx, ecx
je 0x48ed0f
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
jmp 0x48ed36
movsd xmm3, qword [esi + eax + 0x20]
movsd xmm0, qword [0x4ea9b8]
comisd xmm3, xmm0
jbe 0x48ed36
movsd xmm2, qword [esi + eax + 0x10]
comisd xmm2, xmm0
jbe 0x48ed36
movaps xmm1, xmm3
subsd xmm1, xmm2
lea ecx, [ebp - 0x7e0]
sub ecx, ebx
mov edi, edi
mov al, byte [ebx]
lea ebx, [ebx + 1]
mov byte [ebx + ecx - 1], al
test al, al
jne 0x48ed40
movsd xmm0, qword [ebp - 0x810]
lea eax, [ebp - 0x7e0]
mov ecx, dword [ebp - 0x804]
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push eax
call fcn.00434730
lea ebx, [ebp - 0x7e0]
push ebx
mov ecx, edi
call fcn.0048f510
mov dword [ebp - 0x808], eax
cmp eax, 1
jle 0x48f1d6
mov dword [ebp - 0x82c], 0
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0
lea ecx, [ebp - 0x3f8]
mov dword [ebp - 4], 0
sub ecx, ebx
nop
mov al, byte [ebx]
lea ebx, [ebx + 1]
mov byte [ebx + ecx - 1], al
test al, al
jne 0x48edc0
lea eax, [ebp - 0x3f8]
mov dword [ebp - 0x814], eax
lea ecx, [ebp - 0x82c]
lea eax, [ebp - 0x814]
push eax
call fcn.004b5d80
cmp byte [ebp - 0x3f8], 0
lea ebx, [ebp - 0x3f8]
je 0x48ee29
lea ebx, [ebx]
cmp byte [ebx], 0xa
jne 0x48ee23
lea eax, [ebx + 1]
mov byte [ebx], 0
mov dword [ebp - 0x814], eax
lea ecx, [ebp - 0x82c]
lea eax, [ebp - 0x814]
push eax
call fcn.004b5d80
inc ebx
cmp byte [ebx], 0
jne 0x48ee00
mov edx, dword [ebp - 0x804]
mov ecx, dword [ebp - 0x808]
mov ebx, dword [edi + 0x68]
dec ecx
movsd xmm1, qword [ebp - 0x810]
mov eax, dword [edx + 0x20]
imul eax, dword [ebp - 0x808]
movsd xmm3, qword [esi + ebx + 0x28]
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x4e3790]
mov eax, dword [edx + 0x1c]
imul eax, ecx
mulsd xmm2, xmm1
movd xmm0, eax
mov eax, dword [esi + ebx + 0x48]
cvtdq2pd xmm0, xmm0
imul eax, ecx
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x7f0], xmm0
movsd xmm0, qword [0x4ea9b8]
comisd xmm0, xmm3
jbe 0x48eec8
movsd xmm2, qword [esi + ebx + 0x18]
comisd xmm2, xmm0
jbe 0x48ef88
movsd qword [ebp - 0x7f0], xmm2
jmp 0x48ef88
movsd xmm1, qword [esi + ebx + 0x18]
comisd xmm0, xmm1
jbe 0x48eee8
movaps xmm0, xmm3
subsd xmm0, xmm2
movsd qword [ebp - 0x7f0], xmm0
jmp 0x48ef80
movsd xmm0, qword [esi + ebx + 0x70]
ucomisd xmm0, qword [0x4e3758]
lahf
test ah, 0x44
jp 0x48ef60
cmp byte [esi + ebx + 0x1f8], 0
jne 0x48ef60
movsd xmm0, qword [esi + ebx + 0x28]
sub esp, 8
addsd xmm0, qword [esi + ebx + 0x18]
mulsd xmm2, qword [0x4e3750]
mulsd xmm0, qword [0x4e3750]
subsd xmm0, xmm2
movsd qword [ebp - 0x7e8], xmm0
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004c5d00
mov edx, dword [ebp - 0x804]
add esp, 8
fstp qword [ebp - 0x7e8]
movsd xmm0, qword [ebp - 0x7e8]
movsd qword [ebp - 0x7f0], xmm0
jmp 0x48ef80
mulsd xmm2, qword [0x4e3750]
addsd xmm1, xmm3
mulsd xmm1, qword [0x4e3750]
subsd xmm1, xmm2
movsd qword [ebp - 0x7f0], xmm1
movsd xmm1, qword [ebp - 0x810]
mov ebx, dword [ebp - 0x828]
xor eax, eax
mov ecx, dword [ebp - 0x82c]
sub ebx, ecx
sar ebx, 2
mov dword [ebp - 0x808], eax
mov dword [ebp - 0x814], ebx
test ebx, ebx
je 0x48f19b
nop
sub esp, 8
movsd qword [esp], xmm1
push dword [ecx + eax*4]
mov ecx, edx
call fcn.00434210
mov ebx, dword [edi + 0x68]
xorps xmm1, xmm1
movsd xmm3, qword [0x4ea9b8]
fstp qword [ebp - 0x7e8]
movsd xmm2, qword [esi + ebx + 0x20]
comisd xmm3, xmm2
jbe 0x48effa
movsd xmm0, qword [esi + ebx + 0x10]
comisd xmm0, xmm3
jbe 0x48f0a8
movaps xmm1, xmm0
jmp 0x48f0a8
movsd xmm1, qword [esi + ebx + 0x10]
comisd xmm3, xmm1
jbe 0x48f016
movaps xmm1, xmm2
subsd xmm1, qword [ebp - 0x7e8]
jmp 0x48f0a8
movsd xmm0, qword [esi + ebx + 0x70]
ucomisd xmm0, qword [0x4e3758]
lahf
test ah, 0x44
jp 0x48f088
cmp byte [esi + ebx + 0x1f8], 0
jne 0x48f088
movsd xmm1, qword [esi + ebx + 0x10]
sub esp, 8
addsd xmm1, qword [esi + ebx + 0x20]
movsd xmm2, qword [0x4e3750]
movsd xmm0, qword [ebp - 0x7e8]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
subsd xmm1, xmm0
movsd qword [ebp - 0x7e8], xmm1
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004c5d00
fstp qword [ebp - 0x7e8]
movsd xmm1, qword [ebp - 0x7e8]
add esp, 8
jmp 0x48f0a8
movsd xmm0, qword [ebp - 0x7e8]
addsd xmm1, xmm2
movsd xmm2, qword [0x4e3750]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
subsd xmm1, xmm0
cmp byte [esi + ebx + 0x69], 0
addsd xmm1, qword [ebp - 0x7f8]
movsd xmm0, qword [ebp - 0x810]
mov eax, dword [ebp - 0x808]
mov ecx, dword [ebp - 0x82c]
addsd xmm1, qword [edi + 0x1c0]
je 0x48f0d7
push 0
jmp 0x48f0d9
push 0xffffffffffffffff
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + ebx + 0x60]
mulsd xmm0, qword [edi + 0x1d0]
movsd qword [esp], xmm0
movsd xmm0, qword [ebp - 0x7f0]
addsd xmm0, qword [ebp - 0x800]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x804]
sub esp, 0x10
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call fcn.004346d0
mov edx, dword [ebp - 0x804]
fstp st(0)
mov ecx, dword [ebp - 0x82c]
mov eax, dword [edx + 0x20]
add eax, dword [edx + 0x1c]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x4e3790]
mov eax, dword [edi + 0x68]
movd xmm0, dword [esi + eax + 0x48]
mulsd xmm1, qword [ebp - 0x810]
mov eax, dword [ebp - 0x808]
cvtdq2pd xmm0, xmm0
inc eax
mov dword [ebp - 0x808], eax
addsd xmm1, xmm0
addsd xmm1, qword [ebp - 0x7f0]
movsd qword [ebp - 0x7f0], xmm1
movsd xmm1, qword [ebp - 0x810]
cmp eax, dword [ebp - 0x814]
jb 0x48efb0
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je case.0x48e0b0.8
push ecx
call fcn.004c3c8b
add esp, 4
mov dword [ebp - 0x82c], 0
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0
jmp case.0x48e0b0.8
movsd xmm0, qword [ebp - 0x810]
sub esp, 8
mov ecx, dword [ebp - 0x804]
movsd qword [esp], xmm0
push ebx
call fcn.00434210
movsd xmm0, qword [ebp - 0x810]
sub esp, 8
mov ecx, dword [ebp - 0x804]
fstp qword [ebp - 0x7e8]
movsd qword [esp], xmm0
call fcn.004341e0
mov ecx, dword [edi + 0x68]
xorps xmm0, xmm0
movsd xmm5, qword [0x4ea9b8]
movsd xmm6, qword [0x4e3758]
fstp qword [ebp - 0x818]
movsd xmm3, qword [esi + ecx + 0x20]
comisd xmm5, xmm3
movsd qword [ebp - 0x7f0], xmm0
jbe 0x48f268
movsd xmm0, qword [esi + ecx + 0x10]
comisd xmm0, xmm5
movsd xmm1, qword [0x4e3750]
jbe 0x48f345
movsd qword [ebp - 0x7f0], xmm0
jmp 0x48f345
movsd xmm1, qword [esi + ecx + 0x10]
comisd xmm5, xmm1
jbe 0x48f294
movsd xmm1, qword [0x4e3750]
movaps xmm0, xmm3
subsd xmm0, qword [ebp - 0x7e8]
movsd qword [ebp - 0x7f0], xmm0
jmp 0x48f345
movsd xmm0, qword [esi + ecx + 0x70]
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jp 0x48f31d
cmp byte [esi + ecx + 0x1f8], 0
jne 0x48f31d
movsd xmm0, qword [ebp - 0x7e8]
addsd xmm3, xmm1
mulsd xmm0, qword [0x4e3750]
sub esp, 8
mulsd xmm3, qword [0x4e3750]
subsd xmm3, xmm0
movsd qword [ebp - 0x7e8], xmm3
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004c5d00
movsd xmm1, qword [0x4e3750]
add esp, 8
movsd xmm5, qword [0x4ea9b8]
movsd xmm6, qword [0x4e3758]
mov ecx, dword [edi + 0x68]
fstp qword [ebp - 0x7e8]
movsd xmm0, qword [ebp - 0x7e8]
movsd qword [ebp - 0x7f0], xmm0
jmp 0x48f345
movsd xmm0, qword [ebp - 0x7e8]
addsd xmm3, xmm1
movsd xmm1, qword [0x4e3750]
mulsd xmm0, xmm1
mulsd xmm3, xmm1
subsd xmm3, xmm0
movsd qword [ebp - 0x7f0], xmm3
movsd xmm3, qword [esi + ecx + 0x28]
xorps xmm4, xmm4
comisd xmm5, xmm3
movapd xmm2, xmm4
jbe 0x48f371
movsd xmm0, qword [esi + ecx + 0x18]
comisd xmm0, xmm5
jbe 0x48f403
movapd xmm2, xmm0
jmp 0x48f403
movsd xmm2, qword [esi + ecx + 0x18]
comisd xmm5, xmm2
jbe 0x48f38a
movaps xmm2, xmm3
subsd xmm2, qword [ebp - 0x818]
jmp 0x48f403
movsd xmm0, qword [esi + ecx + 0x70]
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jp 0x48f3eb
cmp byte [esi + ecx + 0x1f8], 0
jne 0x48f3eb
movsd xmm0, qword [ebp - 0x818]
addsd xmm2, xmm3
mulsd xmm0, xmm1
sub esp, 8
mulsd xmm2, xmm1
subsd xmm2, xmm0
movsd qword [ebp - 0x7e8], xmm2
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004c5d00
mov ecx, dword [edi + 0x68]
add esp, 8
fstp qword [ebp - 0x7e8]
movsd xmm2, qword [ebp - 0x7e8]
jmp 0x48f403
movsd xmm0, qword [ebp - 0x818]
addsd xmm2, xmm3
mulsd xmm0, xmm1
mulsd xmm2, xmm1
subsd xmm2, xmm0
cmp byte [esi + ecx + 0x69], 0
addsd xmm2, qword [ebp - 0x800]
movsd xmm0, qword [ebp - 0x810]
addsd xmm2, qword [edi + 0x1c8]
je 0x48f426
push 0
jmp 0x48f428
push 0xffffffffffffffff
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ecx + 0x60]
mov ecx, dword [ebp - 0x804]
movsd qword [esp], xmm0
movsd xmm0, qword [ebp - 0x7f0]
addsd xmm0, qword [ebp - 0x7f8]
push ebx
sub esp, 0x10
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm0
call fcn.004346d0
fstp st(0)
xorps xmm1, xmm1
mov ecx, dword [edi + 0x6c]
mov eax, 0x76b981db
sub ecx, dword [edi + 0x68]
mov ebx, dword [ebp - 0x830]
imul ecx
inc ebx
sar edx, 8
mov eax, edx
mov dword [ebp - 0x830], ebx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x48df20
mov eax, dword [edi + 0x94]
test eax, eax
je 0x48f4b3
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c4554
mov esp, ebp
pop ebp
ret