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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5f0ae2
mov eax, dword fs:[0]
push eax
sub esp, 0x324
push ebx
push ebp
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0x338]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov ebx, dword [edi + eax*4]
mov esi, dword [edi + ecx*4]
movsd xmm0, qword [esi + 0x150]
mulsd xmm0, qword [ebx + 0x138]
movsd xmm1, qword [esi + 0x148]
mulsd xmm1, qword [ebx + 0x130]
lea eax, [esi + 0x148]
lea ebp, [ebx + 0x130]
addsd xmm0, xmm1
movsd xmm1, qword [eax + 0x10]
mulsd xmm1, qword [ebp + 0x10]
addsd xmm0, xmm1
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
movsd xmm1, qword [0x616240]
comisd xmm1, xmm0
jbe 0x4b1b2d
xorps xmm0, xmm0
fldz
mov edx, dword [ebx]
mov edx, dword [edx + 0x80]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x220]
push ecx
mov ecx, ebx
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x22c], xmm0
movsd qword [esp + 0x224], xmm0
movsd qword [esp + 0x244], xmm0
movsd qword [esp + 0x23c], xmm0
movsd qword [esp + 0x234], xmm0
movsd qword [esp + 0x25c], xmm0
movsd qword [esp + 0x254], xmm0
movsd qword [esp + 0x24c], xmm0
movsd qword [esp + 0x274], xmm0
movsd qword [esp + 0x26c], xmm0
movsd qword [esp + 0x264], xmm0
call edx
movsd xmm3, qword [esp + 0x224]
subsd xmm3, qword [esi + 0x100]
movsd xmm1, qword [esp + 0x22c]
subsd xmm1, qword [esi + 0x108]
mulsd xmm1, qword [ebp + 8]
movsd xmm0, qword [ebp]
movsd xmm2, qword [esp + 0x234]
subsd xmm2, qword [esi + 0x110]
mulsd xmm2, qword [ebp + 0x10]
movsd xmm4, qword [0x5fc860]
mulsd xmm0, xmm3
movsd xmm3, qword [esi + 0xc8]
addsd xmm0, xmm1
movsd xmm1, qword [esi + 0x80]
addsd xmm0, xmm2
movsd xmm2, qword [esi + 0xd0]
addsd xmm1, xmm3
xorps xmm3, xmm3
comisd xmm3, xmm2
movsd xmm3, qword [0x5ff758]
andpd xmm0, xmm4
jbe 0x4b1649
movapd xmm6, xmm2
movapd xmm5, xmm1
andpd xmm6, xmm4
andpd xmm5, xmm4
subsd xmm6, xmm3
comisd xmm6, xmm5
jbe 0x4b1649
xorpd xmm2, xmmword [0x5fc740]
andpd xmm1, xmm4
addsd xmm1, xmm2
subsd xmm1, xmm3
comisd xmm0, xmm1
jbe 0x4b1677
mov eax, 3
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
comisd xmm0, xmm3
ja 0x4b259c
lea eax, [esi + 0x148]
push eax
lea eax, [esp + 0x100]
push eax
mov ecx, ebp
call fcn.004a8ae0
fld qword [0x5ff770]
sub esp, 8
fstp qword [esp]
lea eax, [esi + 0x148]
push eax
lea ecx, [esi + 0x118]
push ecx
lea ecx, [esp + 0x10c]
call fcn.004a9d00
fstp qword [esp + 0x34]
mov cl, byte [0x618838]
movsd xmm1, qword [0x616648]
movsd xmm2, qword [0x5ff770]
mov eax, 1
test cl, cl
jne 0x4b1713
movsd xmm0, qword [esp + 0x34]
movsd xmm3, qword [0x5fc860]
andpd xmm0, xmm3
comisd xmm2, xmm0
jbe 0x4b1713
xorps xmm0, xmm0
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x3c], xmm1
movsd xmm0, qword [0x5ff700]
addsd xmm0, qword [esp + 0x34]
movapd xmm3, xmm1
subsd xmm3, xmm2
comisd xmm0, xmm3
movsd qword [esp + eax*8 + 0x34], xmm0
jbe 0x4b173f
subsd xmm0, xmm1
movsd qword [esp + eax*8 + 0x34], xmm0
inc eax
mov dword [esp + 0x18], eax
test cl, cl
jne 0x4b1774
movsd xmm0, qword [esp + eax*8 + 0x2c]
movsd xmm3, qword [0x5fc860]
andpd xmm0, xmm3
comisd xmm2, xmm0
jbe 0x4b1774
xorps xmm0, xmm0
movsd qword [esp + eax*8 + 0x2c], xmm0
movsd qword [esp + eax*8 + 0x34], xmm1
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4b1b14
cmp byte [edi + 0x40], 0
mov edx, dword [esp + 0x20]
movsd xmm0, qword [esp + edx*8 + 0x34]
movsd qword [esp + 0x7c], xmm0
je 0x4b17ac
push 0
mov ecx, esi
call fcn.0043d480
test al, al
jne 0x4b17ac
xorps xmm0, xmm0
jmp 0x4b17b1
movsd xmm0, qword [esi + 0x30]
cmp byte [edi + 0x40], 0
movsd qword [esp + 0x84], xmm0
je 0x4b17d7
push 1
mov ecx, esi
call fcn.0043d480
test al, al
jne 0x4b17d7
movsd xmm0, qword [0x616648]
jmp 0x4b17dc
movsd xmm0, qword [esi + 0x38]
mov eax, dword [esi]
mov edx, dword [eax + 0x90]
push 0
lea ecx, [esp + 0x80]
push ecx
mov ecx, esi
movsd qword [esp + 0x94], xmm0
call edx
mov ebp, eax
test ebp, ebp
je 0x4b165b
xorps xmm0, xmm0
movsd qword [esp + 0x204], xmm0
movsd qword [esp + 0x1fc], xmm0
movsd qword [esp + 0x1f4], xmm0
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0xbc], xmm0
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0x5c], xmm0
movsd qword [esp + 0x54], xmm0
movsd qword [esp + 0x4c], xmm0
movsd qword [esp + 0x17c], xmm0
movsd qword [esp + 0x174], xmm0
movsd qword [esp + 0x16c], xmm0
movsd xmm1, qword [ebp + 0x10]
movsd xmm0, qword [ebp + 0x18]
lea ecx, [esp + 0x24]
push ecx
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
lea edx, [esp + 0xb8]
push edx
movsd qword [esp + 0x2c], xmm0
mov eax, dword [ebp]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, ebp
call edx
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, ebx
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x64], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xe8]
push ecx
mov ecx, ebx
movq qword [esp + 0x74], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x4c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x54], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, esi
movq qword [esp + 0x64], xmm0
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [esi]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x64], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xe8]
push ecx
mov ecx, esi
movq qword [esp + 0x74], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x16c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x174], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x16c]
lea ecx, [esp + 0xe4]
push eax
push ecx
movq qword [esp + 0x184], xmm0
lea ecx, [esp + 0x54]
call fcn.004a8ae0
cmp dword [edi + 8], 1
movsd xmm2, qword [esp + 0xe4]
movq xmm0, qword [esp + 0xec]
movq xmm1, qword [esp + 0xf4]
jne 0x4b19c4
movsd xmm3, qword [0x5fc740]
xorpd xmm2, xmm3
xorpd xmm0, xmm3
xorpd xmm1, xmm3
mulsd xmm0, qword [esp + 0xbc]
mulsd xmm2, qword [esp + 0xb4]
mulsd xmm1, qword [esp + 0xc4]
addsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
comisd xmm1, xmm0
jbe 0x4b1a12
mov edx, dword [ebp]
mov eax, dword [edx + 0x50]
mov ecx, ebp
call eax
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.005c1090
add esp, 8
fld qword [esp + 0x7c]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x2b4]
fld qword [esp + 0x94]
fstp qword [esp]
call fcn.004ae130
fld qword [esp + 0x7c]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x294]
fld qword [esp + 0x9c]
mov dword [esp + 0x350], 0
fstp qword [esp]
call fcn.004ae130
push 0x88
mov byte [esp + 0x344], 1
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0xb0], eax
mov byte [esp + 0x340], 2
test eax, eax
je 0x4b1aa0
lea ecx, [esp + 0x284]
push ecx
lea edx, [esp + 0x2a8]
push edx
mov ecx, eax
call fcn.004ac780
jmp 0x4b1aa2
xor eax, eax
fld qword [0x5ff758]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebx]
sub esp, 0x10
fstp qword [esp + 8]
mov dword [esp + ecx*4 + 0x3c], eax
fld qword [edi + 0x38]
mov eax, dword [edx + 0x94]
fstp qword [esp]
push ebp
mov ecx, ebx
mov byte [esp + 0x354], 1
call eax
mov ecx, dword [edi + 8]
mov dword [esp + ecx*4 + 0x2c], eax
movzx eax, byte [ebp + 0x38]
mov edx, dword [esp + 0x30]
neg eax
sbb eax, eax
and eax, 0x18
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
push ebp
mov ecx, edi
call fcn.004af6e0
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x20], eax
jl 0x4b1784
xor eax, eax
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebp
call fcn.004a8ae0
lea ecx, [esp + 0xfc]
call fcn.004a88b0
fld qword [0x616240]
fcompi st(1)
fstp st(0)
jbe 0x4b259c
xorps xmm0, xmm0
fldz
mov edx, dword [ebx]
mov edx, dword [edx + 0x80]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x190]
push ecx
mov ecx, ebx
movsd qword [esp + 0x44], xmm0
movsd qword [esp + 0x4c], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
movsd qword [esp + 0x1b4], xmm0
movsd qword [esp + 0x1ac], xmm0
movsd qword [esp + 0x1a4], xmm0
movsd qword [esp + 0x1cc], xmm0
movsd qword [esp + 0x1c4], xmm0
movsd qword [esp + 0x1bc], xmm0
movsd qword [esp + 0x1e4], xmm0
movsd qword [esp + 0x1dc], xmm0
movsd qword [esp + 0x1d4], xmm0
call edx
movsd xmm3, qword [esp + 0x194]
movsd xmm1, qword [esp + 0x19c]
subsd xmm1, qword [esi + 0x108]
mulsd xmm1, qword [ebp + 8]
subsd xmm3, qword [esi + 0x100]
movsd xmm2, qword [esp + 0x1a4]
subsd xmm2, qword [esi + 0x110]
movsd xmm0, qword [ebp]
mulsd xmm2, qword [ebp + 0x10]
lea eax, [esi + 0x100]
mulsd xmm0, xmm3
addsd xmm0, xmm1
movsd xmm1, qword [0x5fc860]
addsd xmm0, xmm2
movsd xmm2, qword [esi + 0xc8]
andpd xmm0, xmm1
movsd xmm1, qword [esi + 0x80]
addsd xmm1, xmm2
movsd qword [esp + 0x24], xmm1
addsd xmm1, qword [0x5ff758]
comisd xmm0, xmm1
movsd qword [esp + 0x2c], xmm0
ja 0x4b165b
fld qword [0x5ff758]
mov edx, dword [ebx]
mov edx, dword [edx + 0x78]
sub esp, 8
fstp qword [esp]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x19c]
push eax
mov ecx, ebx
call edx
movsd xmm0, qword [esp + 0x2c]
subsd xmm0, qword [esp + 0x24]
movsd xmm3, qword [0x5fc860]
movsd xmm2, qword [0x5ff758]
andpd xmm0, xmm3
comisd xmm2, xmm0
mov byte [esp + 0x1f], 0
jbe 0x4b1de2
movsd xmm0, qword [esi + 0xd0]
movapd xmm1, xmm0
andpd xmm1, xmm3
comisd xmm2, xmm1
ja 0x4b165b
movsd xmm2, qword [esi + 0x120]
movsd xmm3, qword [esi + 0x128]
movapd xmm1, xmm0
mulsd xmm1, qword [esi + 0x118]
mulsd xmm2, xmm0
mulsd xmm3, xmm0
movsd xmm0, qword [esp + 0x194]
addsd xmm0, xmm1
movsd qword [esp + 0xe4], xmm0
movsd xmm0, qword [esp + 0x19c]
addsd xmm0, xmm2
lea eax, [esp + 0xe4]
movsd qword [esp + 0xec], xmm0
movsd xmm0, qword [esp + 0x1a4]
push eax
lea ecx, [esp + 0x118]
push ecx
addsd xmm0, xmm3
mov ecx, esi
mov byte [esp + 0x27], 1
mov dword [esp + 0x20], 1
movsd qword [esp + 0xfc], xmm0
call fcn.0046af30
cmp byte [0x618838], 0
movq xmm0, qword [eax]
movsd qword [esp + 0x34], xmm0
movq xmm1, qword [eax + 8]
movq qword [esp + 0x3c], xmm1
movsd qword [esp + 0x7c], xmm0
jne 0x4b21d3
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
movsd xmm1, qword [0x5ff770]
comisd xmm1, xmm0
jbe 0x4b21d3
xorps xmm0, xmm0
movsd qword [esp + 0x7c], xmm0
movsd xmm0, qword [0x616648]
movsd qword [esp + 0x84], xmm0
mov dword [esp + 0x18], 2
jmp 0x4b21d3
movsd xmm3, qword [esi + 0xd0]
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x128]
mulsd xmm2, xmm3
mulsd xmm1, xmm3
movapd xmm0, xmm3
mulsd xmm0, qword [esi + 0x118]
movsd xmm3, qword [esi + 0x100]
addsd xmm0, xmm3
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [esi + 0x108]
addsd xmm1, xmm0
movsd qword [esp + 0x6c], xmm1
movsd xmm1, qword [esi + 0x110]
addsd xmm2, xmm1
movsd qword [esp + 0x74], xmm2
movsd xmm2, qword [esp + 0x194]
subsd xmm2, xmm3
movsd qword [esp + 0xb4], xmm2
movsd xmm2, qword [esp + 0x19c]
subsd xmm2, xmm0
movsd xmm0, qword [esp + 0x1a4]
subsd xmm0, xmm1
lea ecx, [esp + 0xb4]
movsd qword [esp + 0xbc], xmm2
movsd qword [esp + 0xc4], xmm0
call fcn.004a88b0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x24]
movsd xmm4, qword [esp + 0xb4]
addsd xmm4, qword [esp + 0x64]
movsd xmm5, qword [esp + 0xbc]
addsd xmm5, qword [esp + 0x6c]
movsd xmm6, qword [esp + 0xc4]
addsd xmm6, qword [esp + 0x74]
movapd xmm1, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [esp + 0x2c]
movapd xmm2, xmm0
mulsd xmm2, xmm0
movsd xmm0, qword [esi + 0x118]
subsd xmm1, xmm2
movsd xmm2, qword [esi + 0x128]
sqrtsd xmm3, xmm1
movsd xmm1, qword [esi + 0x120]
push ebp
lea eax, [esi + 0x100]
push eax
lea edx, [esp + 0x104]
mulsd xmm0, xmm3
mulsd xmm1, xmm3
mulsd xmm2, xmm3
addsd xmm0, xmm4
addsd xmm1, xmm5
addsd xmm2, xmm6
push edx
lea ecx, [esp + 0xa0]
movsd qword [esp + 0x30], xmm3
movsd qword [esp + 0x70], xmm4
movsd qword [esp + 0x78], xmm5
movsd qword [esp + 0x80], xmm6
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xb0], xmm2
mov dword [esp + 0x24], 0
call fcn.0042e9d0
xorps xmm0, xmm0
movsd qword [esp + 0x5c], xmm0
movsd qword [esp + 0x54], xmm0
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esp + 0x94]
subsd xmm0, qword [eax]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esp + 0x9c]
subsd xmm0, qword [eax + 8]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [esp + 0xa4]
subsd xmm0, qword [eax + 0x10]
lea ecx, [esp + 0x4c]
movsd qword [esp + 0x5c], xmm0
call fcn.004a88b0
fld qword [0x5ff758]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4b2057
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, esi
call fcn.0046af30
cmp byte [0x618838], 0
movq xmm0, qword [eax]
movsd qword [esp + 0x34], xmm0
movq xmm1, qword [eax + 8]
movq qword [esp + 0x3c], xmm1
movsd qword [esp + 0x7c], xmm0
mov dword [esp + 0x18], 1
jne 0x4b2057
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
movsd xmm1, qword [0x5ff770]
comisd xmm1, xmm0
jbe 0x4b2057
xorps xmm0, xmm0
movsd qword [esp + 0x7c], xmm0
movsd xmm0, qword [0x616648]
movsd qword [esp + 0x84], xmm0
mov dword [esp + 0x18], 2
movsd xmm0, qword [esi + 0xd0]
movsd xmm3, qword [esp + 0x24]
comisd xmm0, xmm3
jbe 0x4b21d3
movsd xmm0, qword [esi + 0x118]
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x128]
mulsd xmm1, xmm3
mulsd xmm0, xmm3
mulsd xmm2, xmm3
movsd xmm3, qword [esp + 0x64]
subsd xmm3, xmm0
movsd xmm0, qword [esp + 0x6c]
push ebp
subsd xmm0, xmm1
movsd xmm1, qword [esp + 0x78]
lea eax, [esi + 0x100]
push eax
lea edx, [esp + 0x104]
subsd xmm1, xmm2
push edx
lea ecx, [esp + 0xa0]
movq qword [esp + 0xa0], xmm3
movq qword [esp + 0xa8], xmm0
movq qword [esp + 0xb0], xmm1
call fcn.0042e9d0
xorps xmm0, xmm0
movsd qword [esp + 0x5c], xmm0
movsd qword [esp + 0x54], xmm0
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esp + 0x94]
subsd xmm0, qword [eax]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esp + 0x9c]
subsd xmm0, qword [eax + 8]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [esp + 0xa4]
subsd xmm0, qword [eax + 0x10]
lea ecx, [esp + 0x4c]
movsd qword [esp + 0x5c], xmm0
call fcn.004a88b0
fld qword [0x5ff758]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4b21d3
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, esi
call fcn.0046af30
movq xmm0, qword [eax]
movsd qword [esp + 0x34], xmm0
movq xmm1, qword [eax + 8]
mov eax, dword [esp + 0x18]
movsd qword [esp + eax*8 + 0x7c], xmm0
inc eax
cmp byte [0x618838], 0
movq qword [esp + 0x3c], xmm1
mov dword [esp + 0x18], eax
jne 0x4b21d3
movsd xmm1, qword [0x5fc860]
movsd xmm0, qword [esp + eax*8 + 0x74]
lea eax, [esp + eax*8 + 0x7c]
andpd xmm0, xmm1
movsd xmm1, qword [0x5ff770]
comisd xmm1, xmm0
jbe 0x4b21d3
xorps xmm0, xmm0
inc dword [esp + 0x18]
movsd qword [eax - 8], xmm0
movsd xmm0, qword [0x616648]
movsd qword [eax], xmm0
xor edx, edx
cmp byte [esp + 0x1f], dl
mov dword [esp + 0x20], 0
setne dl
cmp dword [esp + 0x18], 0
mov dword [esp + 0xb0], edx
jle 0x4b1b14
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + eax*8 + 0x7c]
mov al, byte [edi + 0x40]
movsd qword [esp + 0xcc], xmm0
test al, al
je 0x4b2215
xorps xmm0, xmm0
jmp 0x4b221a
movsd xmm0, qword [esi + 0x40]
movsd qword [esp + 0xd4], xmm0
test al, al
je 0x4b2231
movsd xmm0, qword [0x616648]
jmp 0x4b2236
movsd xmm0, qword [esi + 0x48]
mov edx, dword [esi]
mov edx, dword [edx + 0x90]
push 1
lea eax, [esp + 0xd0]
push eax
mov ecx, esi
movsd qword [esp + 0xe4], xmm0
call edx
mov ebp, eax
test ebp, ebp
je 0x4b165b
xorps xmm0, xmm0
movsd qword [esp + 0x1ec], xmm0
movsd qword [esp + 0x1e4], xmm0
movsd qword [esp + 0x1dc], xmm0
movsd qword [esp + 0x134], xmm0
movsd qword [esp + 0x12c], xmm0
movsd qword [esp + 0x124], xmm0
movsd qword [esp + 0x164], xmm0
movsd qword [esp + 0x15c], xmm0
movsd qword [esp + 0x154], xmm0
movsd qword [esp + 0x14c], xmm0
movsd qword [esp + 0x144], xmm0
movsd qword [esp + 0x13c], xmm0
movsd xmm1, qword [ebp + 0x10]
movsd xmm0, qword [ebp + 0x18]
lea ecx, [esp + 0x20c]
push ecx
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
lea edx, [esp + 0x128]
push edx
movsd qword [esp + 0x214], xmm0
mov eax, dword [ebp]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x1e4]
push ecx
mov ecx, ebp
call edx
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, ebx
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x34], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebx
movq qword [esp + 0x44], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x154], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x15c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, esi
movq qword [esp + 0x16c], xmm0
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [esi]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x34], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, esi
movq qword [esp + 0x44], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x13c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x13c]
lea ecx, [esp + 0x26c]
push eax
push ecx
movq qword [esp + 0x154], xmm0
lea ecx, [esp + 0x15c]
call fcn.004a8ae0
cmp dword [edi + 8], 1
movsd xmm2, qword [esp + 0x26c]
movq xmm0, qword [esp + 0x274]
movq xmm1, qword [esp + 0x27c]
jne 0x4b2439
movsd xmm3, qword [0x5fc740]
xorpd xmm2, xmm3
xorpd xmm0, xmm3
xorpd xmm1, xmm3
mulsd xmm0, qword [esp + 0x12c]
movsd xmm3, qword [esp + 0x124]
mulsd xmm1, qword [esp + 0x134]
mulsd xmm3, xmm2
addsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
comisd xmm1, xmm0
jbe 0x4b248b
mov edx, dword [ebp]
mov eax, dword [edx + 0x50]
mov ecx, ebp
call eax
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0xd8]
push edx
call fcn.005c1090
add esp, 8
fld qword [esp + 0xd4]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x2d4]
fld qword [esp + 0xdc]
fstp qword [esp]
call fcn.004ae130
fld qword [esp + 0xdc]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x2f4]
fld qword [esp + 0xdc]
mov dword [esp + 0x350], 3
fstp qword [esp]
call fcn.004ae130
push 0x88
mov byte [esp + 0x344], 4
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x340], 5
test eax, eax
je 0x4b251c
lea ecx, [esp + 0x2e4]
push ecx
lea edx, [esp + 0x2c8]
push edx
mov ecx, eax
call fcn.004ac780
jmp 0x4b251e
xor eax, eax
fld qword [0x5ff758]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebx]
sub esp, 0x10
fstp qword [esp + 8]
mov dword [esp + ecx*4 + 0x34], eax
fld qword [edi + 0x38]
mov eax, dword [edx + 0x94]
fstp qword [esp]
push ebp
mov ecx, ebx
mov byte [esp + 0x354], 4
call eax
mov ecx, dword [edi + 8]
mov dword [esp + ecx*4 + 0x24], eax
movzx eax, byte [ebp + 0x38]
mov edx, dword [esp + 0x28]
neg eax
sbb eax, eax
and eax, 0x18
or eax, dword [esp + 0xb0]
mov ecx, edi
push eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ebp
call fcn.004af6e0
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x20], eax
jl 0x4b21f6
jmp 0x4b1b14
or eax, 0xffffffff
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret