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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ca72b
mov eax, dword fs:[0]
push eax
sub esp, 0x864
mov eax, dword [0x4faa80]
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 0x482b9e
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 0x482b92
xorps xmm6, xmm6
jmp 0x4816e0
mov ecx, dword [edi + 0x68]
lea eax, [ebp - 0x804]
imul esi, ebx, 0x228
add ecx, 0x110
push eax
lea eax, [ebp - 0x7fc]
movsd qword [ebp - 0x7fc], xmm6
push eax
movsd qword [ebp - 0x804], xmm6
add ecx, esi
movsd qword [ebp - 0x820], xmm6
call fcn.00433030
mov ecx, dword [edi + 0x68]
lea eax, [ebp - 0x820]
add ecx, 0x110
push eax
add ecx, esi
call fcn.00433170
mov eax, dword [edi + 0x68]
mov eax, dword [esi + eax + 4]
test eax, eax
je 0x481799
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.0047cc20
movsd xmm3, qword [ebp - 0x7e8]
movsd xmm4, qword [ebp - 0x7f0]
addsd xmm3, qword [ebp - 0x7fc]
addsd xmm4, qword [ebp - 0x804]
movsd qword [ebp - 0x7fc], xmm3
movsd qword [ebp - 0x804], xmm4
jmp 0x4817a9
movsd xmm3, qword [ebp - 0x7fc]
movsd xmm4, qword [ebp - 0x804]
mov ebx, dword [edi + 0x68]
xorps xmm6, xmm6
movsd xmm5, qword [esi + ebx + 0xf0]
ucomisd xmm5, xmm6
lahf
test ah, 0x44
jp 0x4817d9
movsd xmm0, qword [esi + ebx + 0xf8]
ucomisd xmm0, xmm6
lahf
test ah, 0x44
jnp 0x48185a
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 [0x4cc6d8]
divsd xmm2, xmm0
comisd xmm2, xmm7
ja 0x48181b
comisd xmm6, xmm2
jbe 0x481815
movaps xmm2, xmm6
jmp 0x48181e
comisd xmm2, xmm7
jbe 0x48181e
movaps xmm2, xmm7
movaps xmm1, xmm7
subsd xmm1, xmm2
mulsd xmm1, xmm1
mulsd xmm5, xmm1
addsd xmm5, xmm3
movaps xmm3, xmm5
movsd qword [ebp - 0x7fc], xmm3
movsd xmm0, qword [esi + ebx + 0xf8]
mulsd xmm0, xmm1
addsd xmm0, xmm4
movaps xmm4, xmm0
movsd qword [ebp - 0x804], xmm4
jmp 0x481862
movsd xmm7, qword [0x4cc6d8]
mov eax, dword [esi + ebx + 0x38]
dec eax
cmp eax, 0xa
ja case.0x481870.8
jmp dword [eax*4 + 0x482bbc]
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.004331a0
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.004888d0
mov edx, dword [edi + 0x68]
movsd xmm1, qword [ebp - 0x838]
movsd xmm2, qword [ebp - 0x858]
movapd xmm4, xmm1
movsd xmm7, qword [ebp - 0x7e8]
movapd xmm5, xmm2
cmp byte [esi + edx + 0x78], 0
mulsd xmm4, xmm7
mulsd xmm5, xmm7
je 0x481922
ucomisd xmm7, qword [0x4cc6d8]
lahf
test ah, 0x44
jnp 0x481922
subsd xmm1, xmm4
subsd xmm2, xmm5
mulsd xmm1, qword [0x4cc6d0]
mulsd xmm2, qword [0x4cc6d0]
addsd xmm1, qword [ebp - 0x7fc]
addsd xmm2, qword [ebp - 0x804]
movsd qword [ebp - 0x7fc], xmm1
movsd qword [ebp - 0x804], xmm2
jmp 0x481932
movsd xmm1, qword [ebp - 0x7fc]
movsd xmm2, qword [ebp - 0x804]
movsd xmm3, qword [esi + edx + 0x10]
movsd xmm0, qword [0x4cd118]
addsd xmm3, xmm1
movsd xmm1, qword [esi + edx + 0x18]
addsd xmm1, xmm2
addsd xmm3, qword [edi + 0x1c0]
addsd xmm1, qword [edi + 0x1c8]
comisd xmm0, xmm3
ja 0x481993
movaps xmm0, xmm3
xorps xmm6, xmm6
addsd xmm0, xmm4
comisd xmm0, xmm6
jae 0x481993
movsd xmm0, qword [0x4cd0a0]
comisd xmm0, xmm1
ja 0x481993
movaps xmm0, xmm1
addsd xmm0, xmm5
comisd xmm0, xmm6
jb case.0x481870.8
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], xmm1
movsd qword [esp], xmm3
call fcn.00489690
jmp 0x482b63
mov ecx, dword [esi + ebx + 0x58]
test ecx, ecx
je case.0x481870.8
cmp byte [esi + ebx + 0x90], 0
je 0x481a67
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.0048a000
jmp 0x482b63
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.004331a0
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.004888d0
mov ecx, dword [edi + 0x68]
movsd xmm2, qword [ebp - 0x868]
movsd xmm4, qword [ebp - 0x860]
movapd xmm5, xmm2
movsd xmm3, qword [ebp - 0x7f0]
movapd xmm7, xmm4
cmp byte [esi + ecx + 0x78], 0
mulsd xmm5, xmm3
mulsd xmm7, xmm3
je 0x481b12
ucomisd xmm3, qword [0x4cc6d8]
lahf
test ah, 0x44
jnp 0x481b12
subsd xmm2, xmm5
subsd xmm4, xmm7
mulsd xmm2, qword [0x4cc6d0]
mulsd xmm4, qword [0x4cc6d0]
addsd xmm2, qword [ebp - 0x7fc]
addsd xmm4, qword [ebp - 0x804]
movsd qword [ebp - 0x7fc], xmm2
movsd qword [ebp - 0x804], xmm4
jmp 0x481b22
movsd xmm2, qword [ebp - 0x7fc]
movsd xmm4, qword [ebp - 0x804]
movsd xmm1, qword [esi + ecx + 0x10]
xor edx, edx
addsd xmm1, xmm2
xorps xmm6, xmm6
movsd xmm2, qword [esi + ecx + 0x18]
mov al, 1
addsd xmm2, xmm4
movzx eax, al
movsd xmm4, qword [0x4cc6d8]
addsd xmm1, qword [edi + 0x1c0]
addsd xmm2, qword [edi + 0x1c8]
movapd xmm0, xmm1
movsd qword [ebp - 0x810], xmm1
addsd xmm0, xmm5
movsd qword [ebp - 0x7e8], xmm2
comisd xmm6, xmm0
movapd xmm0, xmm2
addsd xmm0, xmm7
cmova eax, edx
comisd xmm1, xmmword [0x4d29a0]
movzx eax, al
cmova eax, edx
comisd xmm6, xmm0
movzx eax, al
cmova eax, edx
movzx ebx, al
xor eax, eax
comisd xmm2, xmmword [0x4d2998]
cmova ebx, eax
cmp dword [esi + ecx], eax
je 0x481be1
push dword [esi + ecx + 0x4c]
mov eax, dword [esi + ecx]
call eax
movsd xmm1, qword [ebp - 0x810]
add esp, 4
movsd xmm2, qword [ebp - 0x7e8]
xorps xmm6, xmm6
movsd xmm3, qword [ebp - 0x7f0]
fstp qword [ebp - 0x818]
movsd xmm4, qword [ebp - 0x818]
test bl, bl
je case.0x481870.8
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], xmm3
mulsd xmm0, xmm4
mulsd xmm0, qword [esi + ecx + 0x80]
mov ecx, edx
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.00489690
mov ecx, dword [edi + 0x68]
add ecx, 0x110
add ecx, esi
call fcn.00432fb0
mov ebx, eax
test ebx, ebx
je 0x482b63
jle 0x482b63
lea esp, [esp]
mov ecx, dword [edi + 0x68]
add ecx, 0x110
add ecx, esi
call fcn.00432fc0
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 [edi + 0x1d0]
mulsd xmm0, qword [ebp - 0x818]
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.00489690
dec ebx
jne 0x481c70
jmp 0x482b63
cmp byte [esi + ebx + 8], 0
jne 0x481d6a
mov ecx, dword [esi + ebx + 0xc8]
test ecx, ecx
je 0x481d6a
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 0x481f42
lea ecx, [ebx + 0x110]
add ecx, esi
call fcn.004331a0
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 0x481e1e
ucomisd xmm4, qword [0x4cc6d8]
lahf
test ah, 0x44
jnp 0x481e1e
mov ecx, dword [esi + ecx + 0x58]
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x848]
push eax
call fcn.004888d0
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 [0x4cc6d0]
subsd xmm3, xmm0
addsd xmm2, qword [ebp - 0x7fc]
mulsd xmm3, qword [0x4cc6d0]
movsd qword [ebp - 0x7fc], xmm2
addsd xmm3, qword [ebp - 0x804]
movsd qword [ebp - 0x804], xmm3
jmp 0x481e2e
movsd xmm2, qword [ebp - 0x7fc]
movsd xmm3, qword [ebp - 0x804]
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.00489690
mov edx, dword [edi + 0x68]
cmp byte [esi + edx + 8], 0
je 0x481f54
mov ecx, dword [esi + edx + 0xcc]
xorps xmm6, xmm6
test ecx, ecx
je 0x481f57
movsd xmm1, qword [esi + edx + 0xd8]
ucomisd xmm1, xmm6
lahf
test ah, 0x44
jnp 0x481f57
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, xmm1
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + edx + 0x18]
addsd xmm0, qword [ebp - 0x804]
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + edx + 0x10]
addsd xmm0, qword [ebp - 0x7fc]
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00489690
xorps xmm6, xmm6
mov edx, dword [edi + 0x68]
mov ecx, dword [esi + edx + 0xd0]
test ecx, ecx
je case.0x481870.8
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 - 0x804]
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + edx + 0x20]
addsd xmm0, qword [ebp - 0x7fc]
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp], xmm0
call fcn.00489690
jmp 0x482b63
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.0048a000
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.004888d0
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 [0x4cc6d8]
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.00489690
jmp 0x482b63
cmp byte [esi + ebx + 9], 0
je 0x482187
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.00489690
jmp 0x482b63
mov ecx, dword [esi + ebx + 0xc8]
test ecx, ecx
je case.0x481870.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 0x481fd0
cmp byte [esi + ebx + 8], 0
je case.0x481870.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.00489f90
jmp 0x482b63
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 0x48229e
push 1
jmp 0x4822a0
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.00478140
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.00478230
jmp 0x482b63
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.00446310
jmp 0x482b63
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esi + ebx + 0x60]
mulsd xmm0, qword [0x4cc700]
addsd xmm0, qword [0x4cc6d0]
call fcn.004af661
movaps xmm0, xmmword [0x4cf2c0]
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.0047c620
add esp, 0x24
jmp 0x482b63
mov eax, dword [esi + ebx + 0x3c]
test eax, eax
je case.0x481870.8
cmp byte [eax], 0
je case.0x481870.8
mov eax, dword [esi + ebx + 0x58]
lea ecx, [ebx + 0x110]
add ecx, esi
mov dword [ebp - 0x7f4], eax
call fcn.004331a0
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 0x48246b
mov ecx, dword [esi + eax + 0x44]
xorps xmm4, xmm4
test ecx, ecx
je 0x4823ff
movd xmm4, ecx
cvtdq2pd xmm4, xmm4
jmp 0x482426
movsd xmm2, qword [esi + eax + 0x20]
movsd xmm0, qword [0x4d29a8]
comisd xmm2, xmm0
jbe 0x482426
movsd xmm1, qword [esi + eax + 0x10]
comisd xmm1, xmm0
jbe 0x482426
movaps xmm4, xmm2
subsd xmm4, xmm1
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 0x482430
movsd xmm0, qword [ebp - 0x810]
lea eax, [ebp - 0x7e0]
mov ecx, dword [ebp - 0x7f4]
sub esp, 0x10
movsd qword [esp + 8], xmm4
movsd qword [esp], xmm0
push eax
call fcn.00434250
lea ebx, [ebp - 0x7e0]
push ebx
mov ecx, edi
call fcn.00482bf0
mov dword [ebp - 0x808], eax
cmp eax, 1
jle 0x4828c6
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 0x4824b0
lea eax, [ebp - 0x3f8]
mov dword [ebp - 0x814], eax
lea ecx, [ebp - 0x82c]
lea eax, [ebp - 0x814]
push eax
call fcn.0048c350
cmp byte [ebp - 0x3f8], 0
lea ebx, [ebp - 0x3f8]
je 0x482519
lea ebx, [ebx]
cmp byte [ebx], 0xa
jne 0x482513
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.0048c350
inc ebx
cmp byte [ebx], 0
jne 0x4824f0
mov edx, dword [ebp - 0x7f4]
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 + 0x4cc710]
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 [0x4d29a8]
comisd xmm0, xmm3
jbe 0x4825b8
movsd xmm2, qword [esi + ebx + 0x18]
comisd xmm2, xmm0
jbe 0x48266f
movsd qword [ebp - 0x7f0], xmm2
jmp 0x48266f
movsd xmm4, qword [esi + ebx + 0x18]
comisd xmm0, xmm4
jbe 0x4825cc
movaps xmm0, xmm3
jmp 0x482663
movsd xmm0, qword [esi + ebx + 0x70]
ucomisd xmm0, qword [0x4cc6d8]
lahf
test ah, 0x44
jp 0x482644
cmp byte [esi + ebx + 0x1f8], 0
jne 0x482644
movsd xmm0, qword [esi + ebx + 0x28]
sub esp, 8
addsd xmm0, qword [esi + ebx + 0x18]
mulsd xmm2, qword [0x4cc6d0]
mulsd xmm0, qword [0x4cc6d0]
subsd xmm0, xmm2
movsd qword [ebp - 0x7e8], xmm0
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004afec0
movsd xmm1, qword [ebp - 0x810]
add esp, 8
mov edx, dword [ebp - 0x7f4]
fstp qword [ebp - 0x7e8]
movsd xmm0, qword [ebp - 0x7e8]
jmp 0x482667
mulsd xmm2, qword [0x4cc6d0]
movaps xmm0, xmm3
movsd xmm1, qword [ebp - 0x810]
addsd xmm0, xmm4
mulsd xmm0, qword [0x4cc6d0]
subsd xmm0, xmm2
movsd qword [ebp - 0x7f0], xmm0
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 0x48288b
jmp 0x4826a0
sub esp, 8
movsd qword [esp], xmm1
push dword [ecx + eax*4]
mov ecx, edx
call fcn.00433d50
mov ebx, dword [edi + 0x68]
xorps xmm1, xmm1
movsd xmm3, qword [0x4d29a8]
fstp qword [ebp - 0x7e8]
movsd xmm2, qword [esi + ebx + 0x20]
comisd xmm3, xmm2
jbe 0x4826ea
movsd xmm0, qword [esi + ebx + 0x10]
comisd xmm0, xmm3
jbe 0x482798
movaps xmm1, xmm0
jmp 0x482798
movsd xmm1, qword [esi + ebx + 0x10]
comisd xmm3, xmm1
jbe 0x482706
movaps xmm1, xmm2
subsd xmm1, qword [ebp - 0x7e8]
jmp 0x482798
movsd xmm0, qword [esi + ebx + 0x70]
ucomisd xmm0, qword [0x4cc6d8]
lahf
test ah, 0x44
jp 0x482778
cmp byte [esi + ebx + 0x1f8], 0
jne 0x482778
movsd xmm1, qword [esi + ebx + 0x20]
sub esp, 8
addsd xmm1, qword [esi + ebx + 0x10]
movsd xmm0, qword [ebp - 0x7e8]
mulsd xmm0, qword [0x4cc6d0]
mulsd xmm1, qword [0x4cc6d0]
subsd xmm1, xmm0
movsd qword [ebp - 0x7e8], xmm1
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004afec0
fstp qword [ebp - 0x7e8]
movsd xmm1, qword [ebp - 0x7e8]
add esp, 8
jmp 0x482798
movsd xmm0, qword [ebp - 0x7e8]
addsd xmm1, xmm2
mulsd xmm0, qword [0x4cc6d0]
mulsd xmm1, qword [0x4cc6d0]
subsd xmm1, xmm0
cmp byte [esi + ebx + 0x69], 0
addsd xmm1, qword [ebp - 0x7fc]
movsd xmm0, qword [ebp - 0x810]
mov eax, dword [ebp - 0x808]
mov ecx, dword [ebp - 0x82c]
addsd xmm1, qword [edi + 0x1c0]
je 0x4827c7
push 0
jmp 0x4827c9
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 - 0x804]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x7f4]
sub esp, 0x10
addsd xmm0, qword [edi + 0x1c8]
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call fcn.004341f0
mov edx, dword [ebp - 0x7f4]
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 + 0x4cc710]
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 0x4826a0
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x482b63
push ecx
call fcn.004ade67
add esp, 4
mov dword [ebp - 0x82c], 0
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0
jmp 0x482b63
movsd xmm0, qword [ebp - 0x810]
sub esp, 8
mov ecx, dword [ebp - 0x7f4]
movsd qword [esp], xmm0
push ebx
call fcn.00433d50
movsd xmm0, qword [ebp - 0x810]
sub esp, 8
mov ecx, dword [ebp - 0x7f4]
fstp qword [ebp - 0x7e8]
movsd qword [esp], xmm0
call fcn.00433d20
mov ecx, dword [edi + 0x68]
xorps xmm0, xmm0
movsd xmm4, qword [0x4d29a8]
movsd xmm5, qword [0x4cc6d8]
fstp qword [ebp - 0x818]
movsd xmm1, qword [esi + ecx + 0x20]
comisd xmm4, xmm1
movsd qword [ebp - 0x7f0], xmm0
jbe 0x482958
movsd xmm0, qword [esi + ecx + 0x10]
comisd xmm0, xmm4
movsd xmm3, qword [0x4cc6d0]
jbe 0x482a35
movsd qword [ebp - 0x7f0], xmm0
jmp 0x482a35
movsd xmm2, qword [esi + ecx + 0x10]
comisd xmm4, xmm2
jbe 0x482984
movsd xmm3, qword [0x4cc6d0]
movaps xmm0, xmm1
subsd xmm0, qword [ebp - 0x7e8]
movsd qword [ebp - 0x7f0], xmm0
jmp 0x482a35
movsd xmm0, qword [esi + ecx + 0x70]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x482a0d
cmp byte [esi + ecx + 0x1f8], 0
jne 0x482a0d
movsd xmm0, qword [ebp - 0x7e8]
addsd xmm2, xmm1
mulsd xmm0, qword [0x4cc6d0]
sub esp, 8
mulsd xmm2, qword [0x4cc6d0]
subsd xmm2, xmm0
movsd qword [ebp - 0x7e8], xmm2
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004afec0
movsd xmm3, qword [0x4cc6d0]
add esp, 8
movsd xmm4, qword [0x4d29a8]
movsd xmm5, qword [0x4cc6d8]
mov ecx, dword [edi + 0x68]
fstp qword [ebp - 0x7e8]
movsd xmm0, qword [ebp - 0x7e8]
movsd qword [ebp - 0x7f0], xmm0
jmp 0x482a35
movsd xmm3, qword [0x4cc6d0]
addsd xmm2, xmm1
movsd xmm0, qword [ebp - 0x7e8]
mulsd xmm0, xmm3
mulsd xmm2, xmm3
subsd xmm2, xmm0
movsd qword [ebp - 0x7f0], xmm2
movsd xmm2, qword [esi + ecx + 0x28]
xorps xmm1, xmm1
comisd xmm4, xmm2
jbe 0x482a5c
movsd xmm0, qword [esi + ecx + 0x18]
comisd xmm0, xmm4
jbe 0x482aee
movaps xmm1, xmm0
jmp 0x482aee
movsd xmm1, qword [esi + ecx + 0x18]
comisd xmm4, xmm1
jbe 0x482a75
movaps xmm1, xmm2
subsd xmm1, qword [ebp - 0x818]
jmp 0x482aee
movsd xmm0, qword [esi + ecx + 0x70]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x482ad6
cmp byte [esi + ecx + 0x1f8], 0
jne 0x482ad6
movsd xmm0, qword [ebp - 0x818]
addsd xmm1, xmm2
mulsd xmm0, xmm3
sub esp, 8
mulsd xmm1, xmm3
subsd xmm1, xmm0
movsd qword [ebp - 0x7e8], xmm1
fld qword [ebp - 0x7e8]
fstp qword [esp]
call fcn.004afec0
mov ecx, dword [edi + 0x68]
add esp, 8
fstp qword [ebp - 0x7e8]
movsd xmm1, qword [ebp - 0x7e8]
jmp 0x482aee
movsd xmm0, qword [ebp - 0x818]
addsd xmm1, xmm2
mulsd xmm0, xmm3
mulsd xmm1, xmm3
subsd xmm1, xmm0
cmp byte [esi + ecx + 0x69], 0
addsd xmm1, qword [ebp - 0x804]
movsd xmm0, qword [ebp - 0x810]
addsd xmm1, qword [edi + 0x1c8]
je 0x482b11
push 0
jmp 0x482b13
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 - 0x7f4]
movsd qword [esp], xmm0
movsd xmm0, qword [ebp - 0x7f0]
addsd xmm0, qword [ebp - 0x7fc]
push ebx
sub esp, 0x10
addsd xmm0, qword [edi + 0x1c0]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.004341f0
fstp st(0)
xorps xmm6, xmm6
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 0x4816e0
mov eax, dword [edi + 0x94]
test eax, eax
je 0x482b9e
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.004ae734
mov esp, ebp
pop ebp
ret