Function at 0x4b6140
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5f0d8a
mov eax, dword fs:[0]
push eax
sub esp, 0x528
mov eax, dword [0x615cbc]
xor eax, esp
mov dword [esp + 0x4f0], eax
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0x538]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov eax, ecx
mov edx, dword [eax + 0xc]
mov esi, dword [eax + edx*4]
movq xmm1, qword [esi + 0xf8]
movq xmm2, qword [esi + 0x100]
movq xmm3, qword [esi + 0x108]
mov ecx, dword [eax + 8]
mov edi, dword [eax + ecx*4]
movsd qword [esp + 0x1d4], xmm0
movsd qword [esp + 0x1cc], xmm0
movsd qword [esp + 0x1c4], xmm0
movsd xmm0, qword [edi + 0xf0]
subsd xmm0, xmm1
movsd qword [esp + 0x1c4], xmm0
movsd xmm0, qword [edi + 0xf8]
mov dword [esp + 0xd4], eax
lea eax, [edi + 0x138]
subsd xmm0, xmm2
push eax
movsd qword [esp + 0x1d0], xmm0
movsd xmm0, qword [edi + 0x100]
lea eax, [esp + 0x88]
lea ebx, [esi + 0x140]
subsd xmm0, xmm3
push eax
mov ecx, ebx
mov dword [esp + 0xc0], edi
mov dword [esp + 0x7c], esi
movsd qword [esp + 0x1b4], xmm1
movsd qword [esp + 0x1bc], xmm2
movsd qword [esp + 0x1c4], xmm3
movsd qword [esp + 0x1dc], xmm0
call fcn.004a8ae0
lea ecx, [esp + 0x84]
call fcn.004a88b0
fld qword [0x616240]
fcompi st(1)
fstp st(0)
jbe 0x4b8884
lea ecx, [esp + 0x1c4]
call fcn.004a88b0
fst qword [esp + 0x6c]
fld qword [0x5ff758]
xorps xmm0, xmm0
fxch st(1)
movsd qword [esp + 0x184], xmm0
fcompi st(1)
fstp st(0)
movsd qword [esp + 0x17c], xmm0
movsd qword [esp + 0x174], xmm0
jbe 0x4b638f
push ebx
lea ecx, [esp + 0x190]
push ecx
lea ecx, [esp + 0x1cc]
call fcn.004a8ae0
lea ecx, [esp + 0x18c]
call fcn.004a8b50
fstp st(0)
push ebx
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0x194]
call fcn.004a8ae0
movsd xmm1, qword [esp + 0x84]
movsd xmm2, qword [esp + 0x8c]
movsd xmm3, qword [esp + 0x94]
movdqa xmm4, xmm2
mulsd xmm2, qword [esp + 0x1cc]
movdqa xmm5, xmm3
mulsd xmm3, qword [esp + 0x1d4]
movapd xmm0, xmm1
mulsd xmm0, qword [esp + 0x1c4]
addsd xmm0, xmm2
xorps xmm2, xmm2
addsd xmm0, xmm3
comisd xmm2, xmm0
movq qword [esp + 0x174], xmm1
movsd qword [esp + 0x17c], xmm4
movsd qword [esp + 0x184], xmm5
movsd qword [esp + 0x6c], xmm0
jbe 0x4b6395
movsd xmm2, qword [0x5fc740]
xorpd xmm1, xmm2
xorpd xmm4, xmm2
xorpd xmm5, xmm2
xorpd xmm0, xmm2
movsd qword [esp + 0x174], xmm1
movsd qword [esp + 0x17c], xmm4
movsd qword [esp + 0x184], xmm5
movsd qword [esp + 0x6c], xmm0
jmp 0x4b6395
movsd xmm0, qword [esp + 0x6c]
movsd xmm1, qword [0x616240]
mulsd xmm1, qword [0x5fc870]
comisd xmm1, xmm0
mov ecx, esi
jbe 0x4b6951
movsd xmm1, qword [edi + 0xc8]
fldz
movsd xmm0, qword [edi + 0x80]
sub esp, 0x10
fstp qword [esp + 8]
addsd xmm0, xmm1
movsd qword [esp + 0x144], xmm0
fld qword [esp + 0x144]
fstp qword [esp]
call fcn.00548590
xorps xmm0, xmm0
fstp qword [esp + 0x84]
mov eax, dword [esi]
mov edx, dword [eax + 0x90]
push 0
lea ecx, [esp + 0x88]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [0x616648]
push ecx
mov ecx, esi
movsd qword [esp + 0x9c], xmm0
call edx
mov ebx, eax
test ebx, ebx
je 0x4b78f1
xorps xmm0, xmm0
movsd qword [esp + 0x244], xmm0
movsd qword [esp + 0x23c], xmm0
movsd qword [esp + 0x234], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
movsd qword [esp + 0x18c], 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
movsd qword [esp + 0x12c], xmm0
movsd qword [esp + 0x124], xmm0
movsd xmm1, qword [ebx + 0x10]
movsd xmm0, qword [ebx + 0x18]
lea ecx, [esp + 0x44]
push ecx
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
lea edx, [esp + 0x190]
push edx
movsd qword [esp + 0x4c], xmm0
mov eax, dword [ebx]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x23c]
push ecx
mov ecx, ebx
call edx
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x138]
push ecx
mov ecx, esi
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [esi]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x124], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x1b0]
push ecx
mov ecx, esi
movq qword [esp + 0x134], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x264], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x26c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x138]
push ecx
mov ecx, edi
movq qword [esp + 0x27c], xmm0
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [edi]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x124], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x1b0]
push ecx
mov ecx, edi
movq qword [esp + 0x134], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x24c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x254], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x264]
movq qword [esp + 0x25c], xmm0
push eax
lea ecx, [esp + 0x1b0]
push ecx
lea ecx, [esp + 0x254]
call fcn.004a8ae0
mov edx, dword [esp + 0xd4]
cmp dword [edx + 8], 1
movsd xmm2, qword [esp + 0x1ac]
movq xmm0, qword [esp + 0x1b4]
movq xmm1, qword [esp + 0x1bc]
jne 0x4b6628
movsd xmm3, qword [0x5fc740]
xorpd xmm2, xmm3
xorpd xmm0, xmm3
xorpd xmm1, xmm3
mulsd xmm0, qword [esp + 0x194]
mulsd xmm2, qword [esp + 0x18c]
mulsd xmm1, qword [esp + 0x19c]
addsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
comisd xmm1, xmm0
jbe 0x4b6675
mov eax, dword [ebx]
mov edx, dword [eax + 0x50]
mov ecx, ebx
call edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x90]
push ecx
call fcn.005c1090
add esp, 8
fld qword [esp + 0x84]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x32c]
fld qword [esp + 0x9c]
fstp qword [esp]
call fcn.004ae130
fld qword [esp + 0x84]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x30c]
fld qword [esp + 0xa4]
mov dword [esp + 0x550], 0
fstp qword [esp]
call fcn.004ae130
push 0x88
mov byte [esp + 0x544], 1
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 2
test eax, eax
je 0x4b6706
lea edx, [esp + 0x2fc]
push edx
lea ecx, [esp + 0x320]
push ecx
mov ecx, eax
call fcn.004ac780
jmp 0x4b6708
xor eax, eax
mov esi, dword [esp + 0xd4]
mov edx, dword [esi + 0xc]
movsd xmm0, qword [ebx + 0x10]
mov dword [esp + edx*4 + 0x6c], eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x190]
push edx
movsd qword [esp + 0x4c], xmm0
mov eax, dword [ebx]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x23c]
push ecx
mov ecx, ebx
mov byte [esp + 0x54c], 1
call edx
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x118]
push ecx
mov ecx, edi
call fcn.0046af30
fldz
movq xmm0, qword [eax]
mov edx, dword [edi]
mov edx, dword [edx + 0x84]
movsd qword [esp + 0x124], xmm0
movq xmm1, qword [eax + 8]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x288]
movsd qword [esp + 0x98], xmm0
xorps xmm0, xmm0
push ecx
mov ecx, edi
movsd qword [esp + 0x13c], xmm1
movsd qword [esp + 0x94], xmm1
movsd qword [esp + 0x294], xmm0
movsd qword [esp + 0x28c], xmm0
movsd qword [esp + 0x2ac], xmm0
movsd qword [esp + 0x2a4], xmm0
movsd qword [esp + 0x29c], xmm0
movsd qword [esp + 0x2c4], xmm0
movsd qword [esp + 0x2bc], xmm0
movsd qword [esp + 0x2b4], xmm0
movsd qword [esp + 0x2dc], xmm0
movsd qword [esp + 0x2d4], xmm0
movsd qword [esp + 0x2cc], xmm0
call edx
movsd xmm0, qword [esp + 0x2ac]
mulsd xmm0, qword [esp + 0x194]
movsd xmm1, qword [esp + 0x2a4]
mulsd xmm1, qword [esp + 0x18c]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x2b4]
mulsd xmm1, qword [esp + 0x19c]
addsd xmm0, xmm1
comisd xmm0, xmmword [0x5fa830]
jbe 0x4b6873
movsd xmm0, qword [0x616648]
addsd xmm0, qword [esp + 0x8c]
jmp 0x4b6884
movsd xmm0, qword [esp + 0x8c]
subsd xmm0, qword [0x616648]
fld qword [esp + 0x84]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x34c]
fld qword [esp + 0x9c]
movsd qword [esp + 0xa4], xmm0
fstp qword [esp]
call fcn.004ae130
fld qword [esp + 0x84]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x36c]
fld qword [esp + 0xa4]
mov byte [esp + 0x550], 3
fstp qword [esp]
call fcn.004ae130
push 0x88
mov byte [esp + 0x544], 4
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 5
test eax, eax
je 0x4b691b
lea ecx, [esp + 0x35c]
push ecx
lea edx, [esp + 0x340]
push edx
mov ecx, eax
call fcn.004ac780
jmp 0x4b691d
xor eax, eax
movzx edx, byte [ebx + 0x38]
mov ecx, dword [esi + 8]
neg edx
sbb edx, edx
mov dword [esp + ecx*4 + 0x6c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
and edx, 0x18
push edx
push eax
push ecx
push ebx
mov ecx, esi
mov byte [esp + 0x550], 4
call fcn.004af6e0
xor eax, eax
jmp 0x4b8887
movsd xmm1, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x48]
mov edx, dword [esi]
mov edx, dword [edx + 0x68]
push 1
lea eax, [esp + 0x2d8]
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
push eax
movsd qword [esp + 0x13c], xmm0
mov dword [esp + 0x2fc], 0
call edx
movsd xmm1, qword [esp + 0x2dc]
movsd xmm0, qword [esp + 0x2ec]
movsd qword [esp + 0x54], xmm1
movsd qword [esp + 0x44], xmm0
mulsd xmm0, xmm1
movsd xmm1, qword [0x5ff758]
xorpd xmm1, xmmword [0x5fc740]
comisd xmm1, xmm0
jbe 0x4b69e4
movsd xmm1, qword [esp + 0x134]
xorps xmm0, xmm0
comisd xmm1, xmm0
jbe 0x4b69de
movsd qword [esp + 0x54], xmm0
jmp 0x4b69e4
movsd qword [esp + 0x44], xmm0
fldz
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esp + 0x54]
fstp qword [esp]
call fcn.00548560
fstp qword [esp + 0x5c]
fldz
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esp + 0x64]
fstp qword [esp]
call fcn.00548560
fst qword [esp + 0x64]
fld qword [esp + 0x5c]
mov byte [esp + 0x53], 1
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4b6a3e
movsd xmm3, qword [esp + 0x5c]
movsd xmm4, qword [esp + 0x64]
mov byte [esp + 0x53], 0
jmp 0x4b6a4a
movsd xmm4, qword [esp + 0x5c]
movsd xmm3, qword [esp + 0x64]
movsd xmm1, qword [edi + 0xc8]
movsd xmm0, qword [edi + 0x80]
movsd xmm2, qword [0x5ff758]
addsd xmm0, xmm1
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
movsd xmm1, qword [esp + 0x6c]
movapd xmm5, xmm0
subsd xmm5, xmm2
comisd xmm5, xmm1
movsd qword [esp + 0x22c], xmm0
ja 0x4b8884
movapd xmm5, xmm0
addsd xmm5, xmm4
subsd xmm5, xmm2
comisd xmm1, xmm5
ja 0x4b78f1
subsd xmm3, xmm0
addsd xmm3, xmm2
comisd xmm3, xmm1
ja 0x4b78f1
fldz
sub esp, 0x10
fstp qword [esp + 8]
subsd xmm1, xmm0
mov ecx, esi
movsd qword [esp], xmm1
call fcn.00548590
fst qword [esp + 0x134]
fld qword [esp + 0x54]
movsd xmm1, qword [esp + 0x44]
fsub qword [0x5ff758]
mov edi, 1
fcompi st(1)
fstp st(0)
ja 0x4b6b2c
movsd xmm0, qword [esp + 0x134]
movapd xmm2, xmm1
addsd xmm2, qword [0x5ff758]
comisd xmm0, xmm2
ja 0x4b6b2c
cmp byte [esp + 0x53], 0
movsd qword [esp + 0x44], xmm0
jne 0x4b6b3d
movsd xmm0, qword [esp + 0x54]
movsd qword [esp + 0x5c], xmm0
jmp 0x4b6b43
movsd xmm0, qword [esp + 0x54]
mov edi, 2
movsd qword [esp + 0x44], xmm0
movsd qword [esp + 0x5c], xmm1
fldz
movsd xmm0, qword [esp + 0x22c]
addsd xmm0, qword [esp + 0x6c]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
movsd qword [esp], xmm0
call fcn.00548590
fstp qword [esp + 0x134]
movsd xmm0, qword [esp + 0x5c]
movsd xmm4, qword [esp + 0x44]
comisd xmm0, xmm4
jbe 0x4b6b86
movapd xmm3, xmm4
jmp 0x4b6b8a
movapd xmm3, xmm0
comisd xmm0, xmm4
jbe 0x4b6b96
movapd xmm2, xmm0
jmp 0x4b6b9a
movapd xmm2, xmm4
movsd xmm5, qword [0x5ff758]
movsd xmm1, qword [esp + 0x134]
subsd xmm3, xmm5
comisd xmm1, xmm3
jbe 0x4b6be1
addsd xmm2, xmm5
comisd xmm2, xmm1
jbe 0x4b6be1
cmp edi, 1
jle 0x4b6bd7
cmp byte [esp + 0x53], 0
jne 0x4b6bd7
movapd xmm4, xmm1
movsd qword [esp + 0x44], xmm4
jmp 0x4b6be1
movapd xmm0, xmm1
movsd qword [esp + 0x5c], xmm0
subsd xmm0, xmm4
mulsd xmm0, qword [0x5fe0b0]
push 0x41
lea ecx, [esp + 0xb0]
movsd qword [esp + 0x138], xmm0
call fcn.00412c50
push 0x41
lea ecx, [esp + 0x7c]
mov dword [esp + 0x544], 6
call fcn.00412c50
push 0x41
lea ecx, [esp + 0xc0]
mov byte [esp + 0x544], 7
call fcn.00412cb0
push 0x41
lea ecx, [esp + 0xcc]
mov byte [esp + 0x544], 8
call fcn.00412cb0
push 0x41
lea ecx, [esp + 0xdc]
mov byte [esp + 0x544], 9
call fcn.00412c50
push 0x41
lea ecx, [esp + 0xa4]
mov byte [esp + 0x544], 0xa
call fcn.00412c50
push 0x41
lea ecx, [esp + 0xf4]
mov byte [esp + 0x544], 0xb
call fcn.00412cb0
push 0x41
lea ecx, [esp + 0xe8]
mov byte [esp + 0x544], 0xc
call fcn.00412cb0
push ebx
lea eax, [esp + 0x1f8]
push eax
lea ecx, [esp + 0x17c]
mov byte [esp + 0x548], 0xd
call fcn.004a8ae0
fld qword [esi + 0xc8]
movsd xmm0, qword [esp + 0x44]
movsd qword [esp + 0x54], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x16c], 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
call sub.MSVCR90.dll__CIsin
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0xc]
fmul qword [eax + ecx*8 + 0x18]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x64], edi
fstp qword [esp + 0x124]
jmp 0x4b6d34
mov esi, dword [esp + 0x74]
fldz
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esp + 0x64]
fstp qword [esp]
call fcn.00548560
fstp qword [esp + 0x20c]
movsd xmm0, qword [esp + 0x54]
subsd xmm0, qword [esp + 0x124]
movsd xmm3, qword [esi + 0x150]
movsd xmm1, qword [esi + 0x140]
movsd xmm2, qword [esi + 0x148]
lea eax, [esi + 0x140]
mulsd xmm3, xmm0
addsd xmm3, qword [esp + 0x1bc]
mulsd xmm1, xmm0
addsd xmm1, qword [esp + 0x1ac]
mulsd xmm2, xmm0
addsd xmm2, qword [esp + 0x1b4]
movsd xmm0, qword [esp + 0x6c]
movapd xmm7, xmm3
movsd xmm3, qword [esp + 0x20c]
movapd xmm5, xmm1
movsd xmm1, qword [0x5fc860]
movapd xmm6, xmm2
movsd xmm2, qword [esp + 0x22c]
subsd xmm0, xmm3
movapd xmm4, xmm0
subsd xmm4, xmm2
andpd xmm4, xmm1
movsd xmm1, qword [0x5ff758]
comisd xmm1, xmm4
ja 0x4b71bd
movsd xmm4, qword [0x5fc860]
addsd xmm0, xmm2
andpd xmm0, xmm4
comisd xmm1, xmm0
ja 0x4b71bd
mov edx, dword [esp + 0x78]
movapd xmm0, xmm2
mulsd xmm0, xmm2
movsd qword [esp + 0x44], xmm0
movsd xmm2, qword [esp + 0x44]
movapd xmm1, xmm3
mulsd xmm1, xmm3
movapd xmm0, xmm1
subsd xmm0, xmm2
movsd xmm2, qword [esp + 0x6c]
divsd xmm0, xmm2
addsd xmm0, xmm2
mulsd xmm0, qword [0x5fb9c8]
movapd xmm2, xmm0
andpd xmm2, xmm4
comisd xmm2, xmm3
jbe 0x4b6e6c
mov ecx, dword [esp + 0xa0]
xorps xmm3, xmm3
cmp edi, 0x3f
jmp 0x4b785b
movsd xmm3, qword [esp + 0x17c]
movsd xmm4, qword [esp + 0x184]
movapd xmm2, xmm0
mulsd xmm2, xmm0
subsd xmm1, xmm2
movsd xmm2, qword [esp + 0x174]
mulsd xmm2, xmm0
mulsd xmm3, xmm0
mulsd xmm4, xmm0
sqrtsd xmm1, xmm1
addsd xmm2, xmm5
movsd xmm5, qword [esp + 0x1fc]
lea edi, [ebx + ebx*2]
addsd xmm3, xmm6
movsd xmm6, qword [esp + 0x204]
add edi, edi
add edi, edi
add edi, edi
lea eax, [edi + edx]
movapd xmm0, xmm1
mulsd xmm0, qword [esp + 0x1f4]
addsd xmm0, xmm2
movq qword [eax], xmm0
mulsd xmm5, xmm1
addsd xmm5, xmm3
movq qword [eax + 8], xmm5
mulsd xmm6, xmm1
addsd xmm4, xmm7
addsd xmm6, xmm4
movq qword [eax + 0x10], xmm6
mov eax, dword [esp + 0xa0]
movsd xmm5, qword [esp + 0x1fc]
movsd xmm6, qword [esp + 0x204]
add eax, edi
movapd xmm0, xmm1
mulsd xmm0, qword [esp + 0x1f4]
mulsd xmm5, xmm1
subsd xmm2, xmm0
movq qword [eax], xmm2
mulsd xmm6, xmm1
subsd xmm3, xmm5
movq qword [eax + 8], xmm3
subsd xmm4, xmm6
movq qword [eax + 0x10], xmm4
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xbc]
lea eax, [edi + ecx]
mov esi, ebx
shl esi, 4
lea ecx, [esi + edx]
push eax
lea edx, [esp + 0x300]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xbc]
push edx
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x44]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc8]
add eax, edi
push eax
lea edx, [esi + ecx]
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x250]
push eax
mov dword [esp + 0x4c], edx
call fcn.0046af30
mov ecx, dword [esp + 0x44]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xf0]
lea eax, [edi + ecx]
lea ecx, [esi + edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb8]
push eax
lea edx, [esp + 0x268]
push edx
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x44]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xe4]
add eax, edi
push eax
lea edx, [esi + ecx]
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x238]
push eax
mov dword [esp + 0x4c], edx
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x44]
xorps xmm3, xmm3
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movsd xmm4, qword [0x5fc860]
test ebx, ebx
jle 0x4b73ca
mov eax, dword [esp + 0xbc]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b70b0
movsd xmm0, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x4b70a3
subsd xmm0, qword [0x616648]
jmp 0x4b70ab
addsd xmm0, qword [0x616648]
movsd qword [esi + eax], xmm0
mov eax, dword [esp + 0xc8]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b7104
movsd xmm0, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x4b70f7
subsd xmm0, qword [0x616648]
jmp 0x4b70ff
addsd xmm0, qword [0x616648]
movsd qword [esi + eax], xmm0
mov eax, dword [esp + 0xf0]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b7158
movsd xmm0, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x4b714b
subsd xmm0, qword [0x616648]
jmp 0x4b7153
addsd xmm0, qword [0x616648]
movsd qword [esi + eax], xmm0
mov eax, dword [esp + 0xe4]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b73ca
movsd xmm1, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmm3
jbe 0x4b71ab
subsd xmm1, qword [0x616648]
movsd qword [esi + eax], xmm1
jmp 0x4b73ca
addsd xmm1, qword [0x616648]
movsd qword [esi + eax], xmm1
jmp 0x4b73ca
mov ecx, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x174]
movsd xmm1, qword [esp + 0x17c]
movsd xmm2, qword [esp + 0x184]
lea edi, [ebx + ebx*2]
add edi, edi
add edi, edi
add edi, edi
lea eax, [edi + ecx]
mulsd xmm0, xmm3
mulsd xmm1, xmm3
addsd xmm0, xmm5
movq qword [eax], xmm0
mulsd xmm2, xmm3
addsd xmm1, xmm6
movq qword [eax + 8], xmm1
addsd xmm2, xmm7
movq qword [eax + 0x10], xmm2
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xbc]
lea eax, [edi + edx]
mov esi, ebx
push eax
shl esi, 4
lea edx, [esi + ecx]
mov ecx, dword [esp + 0xbc]
lea eax, [esp + 0x190]
push eax
mov dword [esp + 0x4c], edx
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x44]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xc8]
lea eax, [edi + ecx]
lea ecx, [esi + edx]
push eax
lea edx, [esp + 0x88]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x78]
push edx
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x44]
xorps xmm3, xmm3
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movsd xmm4, qword [0x5fc860]
test ebx, ebx
jle 0x4b734b
mov eax, dword [esp + 0xbc]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b72f7
movsd xmm0, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x4b72ea
subsd xmm0, qword [0x616648]
jmp 0x4b72f2
addsd xmm0, qword [0x616648]
movsd qword [esi + eax], xmm0
mov eax, dword [esp + 0xc8]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b734b
movsd xmm1, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmm3
jbe 0x4b733e
subsd xmm1, qword [0x616648]
jmp 0x4b7346
addsd xmm1, qword [0x616648]
movsd qword [esi + eax], xmm1
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
movq xmm0, qword [eax + edi]
movq qword [ecx + edi], xmm0
movq xmm0, qword [eax + edi + 8]
movq qword [ecx + edi + 8], xmm0
movq xmm0, qword [eax + edi + 0x10]
movq qword [ecx + edi + 0x10], xmm0
mov edx, dword [esp + 0xbc]
movq xmm0, qword [esi + edx]
add eax, edi
add ecx, edi
mov ecx, dword [esp + 0xf0]
movq qword [ecx + esi], xmm0
movq xmm0, qword [esi + edx + 8]
lea eax, [esi + edx]
add ecx, esi
movq qword [ecx + 8], xmm0
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xe4]
movq xmm0, qword [esi + edx]
lea eax, [esi + edx]
add ecx, esi
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movsd xmm0, qword [esp + 0x20c]
andpd xmm0, xmm4
comisd xmm0, xmmword [0x5ff758]
jbe 0x4b75ca
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
lea eax, [esi + edx]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
push eax
lea eax, [esp + 0x100]
push eax
call edx
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x15c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0xc8]
add eax, esi
push eax
lea eax, [esp + 0x100]
push eax
movq qword [esp + 0x174], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x14c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x164]
movq qword [esp + 0x15c], xmm0
call fcn.004a8ae0
mov edx, dword [esp + 0xac]
movq xmm0, qword [esp + 0xfc]
lea eax, [edi + edx]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x104]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0x10c]
movq qword [eax + 0x10], xmm0
mov eax, dword [esp + 0xac]
lea ecx, [edi + eax]
call fcn.004a8b50
fstp st(0)
mov ecx, dword [esp + 0xf0]
lea eax, [esi + ecx]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
push eax
lea eax, [esp + 0x100]
push eax
call edx
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x15c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0xe4]
add esi, eax
push esi
lea eax, [esp + 0x100]
push eax
movq qword [esp + 0x174], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x14c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x144]
movq qword [esp + 0x154], xmm0
push eax
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x164]
call fcn.004a8ae0
mov edx, dword [esp + 0xd8]
movq xmm0, qword [esp + 0xfc]
lea eax, [edi + edx]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x104]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0x10c]
movq qword [eax + 0x10], xmm0
mov eax, dword [esp + 0xd8]
lea ecx, [edi + eax]
call fcn.004a8b50
fstp st(0)
xorps xmm3, xmm3
jmp 0x4b7624
mov ecx, dword [esp + 0xd8]
movq xmm0, qword [esp + 0x1f4]
movq qword [edi + ecx], xmm0
movq xmm0, qword [esp + 0x1fc]
lea eax, [edi + ecx]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0x204]
movq qword [eax + 0x10], xmm0
mov edx, dword [esp + 0xac]
movq xmm0, qword [eax]
lea ecx, [edi + edx]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov edx, dword [esp + 0x78]
test ebx, ebx
jle 0x4b784e
mov esi, dword [esp + 0xac]
movsd xmm1, qword [edi + edx + 8]
subsd xmm1, qword [edi + edx - 0x10]
movsd xmm4, qword [edi + esi + 8]
movsd xmm0, qword [edi + edx]
subsd xmm0, qword [edi + edx - 0x18]
movsd xmm2, qword [edi + edx + 0x10]
subsd xmm2, qword [edi + edx - 8]
lea eax, [edi + esi]
mulsd xmm4, xmm1
movsd xmm1, qword [eax]
mulsd xmm1, xmm0
movsd xmm0, qword [eax + 0x10]
addsd xmm4, xmm1
mulsd xmm0, xmm2
addsd xmm4, xmm0
comisd xmm3, xmm4
movsd xmm4, qword [0x5fc740]
jbe 0x4b76c1
movsd xmm0, qword [eax]
xorpd xmm0, xmm4
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 8]
xorpd xmm0, xmm4
movsd qword [eax + 8], xmm0
movsd xmm0, qword [eax + 0x10]
xorpd xmm0, xmm4
movsd qword [eax + 0x10], xmm0
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xd8]
movsd xmm1, qword [edi + ecx + 8]
subsd xmm1, qword [edi + ecx - 0x10]
movsd xmm5, qword [eax + edi + 8]
movsd xmm0, qword [edi + ecx]
subsd xmm0, qword [edi + ecx - 0x18]
movsd xmm2, qword [edi + ecx + 0x10]
subsd xmm2, qword [edi + ecx - 8]
add eax, edi
mulsd xmm5, xmm1
movsd xmm1, qword [eax]
mulsd xmm1, xmm0
movsd xmm0, qword [eax + 0x10]
addsd xmm5, xmm1
mulsd xmm0, xmm2
addsd xmm5, xmm0
comisd xmm3, xmm5
jbe 0x4b7757
movsd xmm0, qword [eax]
xorpd xmm0, xmm4
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 8]
xorpd xmm0, xmm4
movsd qword [eax + 8], xmm0
movsd xmm0, qword [eax + 0x10]
xorpd xmm0, xmm4
movsd qword [eax + 0x10], xmm0
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
cmp ebx, 1
jne 0x4b7855
movsd xmm1, qword [edx + 0x20]
subsd xmm1, qword [edx + 8]
movsd xmm5, qword [esi + 8]
movsd xmm0, qword [edx + 0x18]
subsd xmm0, qword [edx]
movsd xmm2, qword [edx + 0x28]
subsd xmm2, qword [edx + 0x10]
mulsd xmm5, xmm1
movsd xmm1, qword [esi]
mulsd xmm1, xmm0
movsd xmm0, qword [esi + 0x10]
addsd xmm5, xmm1
mulsd xmm0, xmm2
addsd xmm5, xmm0
comisd xmm3, xmm5
jbe 0x4b77da
movsd xmm0, qword [esi]
xorpd xmm0, xmm4
movsd qword [esi], xmm0
mov eax, esi
movsd xmm0, qword [eax + 8]
xorpd xmm0, xmm4
movsd qword [eax + 8], xmm0
movsd xmm0, qword [eax + 0x10]
xorpd xmm0, xmm4
movsd qword [eax + 0x10], xmm0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xd8]
movsd xmm0, qword [ecx + 0x18]
subsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 0x20]
mulsd xmm0, qword [eax]
subsd xmm1, qword [ecx + 8]
movsd xmm5, qword [eax + 8]
movsd xmm2, qword [ecx + 0x28]
subsd xmm2, qword [ecx + 0x10]
mulsd xmm5, xmm1
addsd xmm5, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, xmm2
addsd xmm5, xmm0
comisd xmm3, xmm5
jbe 0x4b7855
movsd xmm0, qword [eax]
xorpd xmm0, xmm4
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 8]
xorpd xmm0, xmm4
movsd qword [eax + 8], xmm0
movsd xmm0, qword [eax + 0x10]
xorpd xmm0, xmm4
movsd qword [eax + 0x10], xmm0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
inc ebx
cmp dword [esp + 0x64], 0x3f
movsd xmm0, qword [esp + 0x54]
addsd xmm0, qword [esp + 0x134]
movsd qword [esp + 0x54], xmm0
jne 0x4b787e
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 0x54], xmm0
mov edi, dword [esp + 0x64]
inc edi
cmp edi, 0x41
mov dword [esp + 0x64], edi
jl 0x4b6d30
test ebx, ebx
jne 0x4b78fb
lea ecx, [esp + 0xe4]
call fcn.00428180
lea ecx, [esp + 0xf0]
call fcn.00428180
lea ecx, [esp + 0xa0]
call fcn.00428180
lea ecx, [esp + 0xd8]
call fcn.00428180
lea ecx, [esp + 0xc8]
call fcn.00428180
lea ecx, [esp + 0xbc]
call fcn.00428180
lea ecx, [esp + 0x78]
call fcn.00428180
lea ecx, [esp + 0xac]
call fcn.00428180
mov eax, 3
jmp 0x4b8887
lea eax, [ebx + ebx*2]
add eax, eax
movsd qword [esp + 0x94], xmm3
movsd qword [esp + 0x8c], xmm3
movsd qword [esp + 0x84], xmm3
add eax, eax
add eax, eax
movsd xmm0, qword [eax + edx - 0x18]
subsd xmm0, qword [eax + ecx - 0x18]
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [eax + edx - 0x10]
subsd xmm0, qword [eax + ecx - 0x10]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [eax + edx - 8]
subsd xmm0, qword [eax + ecx - 8]
lea ecx, [esp + 0x84]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x5c], eax
movsd qword [esp + 0x94], xmm0
call fcn.004a88b0
fld qword [0x5ff780]
fcompi st(1)
fstp st(0)
jbe 0x4b7ba6
lea esi, [ebx + ebx - 1]
push esi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x48], esi
call fcn.00412980
push esi
lea ecx, [esp + 0x7c]
call fcn.00412980
push esi
lea ecx, [esp + 0xc0]
call fcn.00412b00
push esi
lea ecx, [esp + 0xcc]
call fcn.00412b00
cmp ebx, 1
jle 0x4b7b91
mov eax, dword [esp + 0x5c]
mov esi, ebx
shl esi, 4
lea edi, [eax + 0x18]
add eax, 0xffffffe8
lea ecx, [esi - 0x10]
dec ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], ebx
jmp 0x4b79f0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
movq xmm0, qword [edx + eax - 0x18]
lea eax, [edx + eax - 0x18]
movq qword [edi + ecx - 0x18], xmm0
movq xmm0, qword [eax + 8]
lea ecx, [edi + ecx - 0x18]
movq qword [ecx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov eax, dword [esp + 0xd8]
lea ecx, [edx + eax - 0x18]
mov edx, dword [esp + 0xac]
lea eax, [esp + 0xfc]
push eax
lea ebx, [edi + edx - 0x18]
call fcn.004a8d80
movq xmm0, qword [eax]
mov edx, dword [esp + 0x5c]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebx + 0x10], xmm0
mov ecx, dword [esp + 0xf0]
movq xmm0, qword [edx + ecx - 0x10]
lea eax, [edx + ecx - 0x10]
mov ecx, dword [esp + 0xbc]
movq qword [ecx + esi], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + esi + 8], xmm0
mov eax, dword [esp + 0xe4]
movq xmm0, qword [edx + eax - 0x10]
add ecx, esi
mov ecx, dword [esp + 0xc8]
movq qword [ecx + esi], xmm0
movq xmm0, qword [edx + eax - 8]
lea eax, [edx + eax - 0x10]
add ecx, esi
movq qword [ecx + 8], xmm0
mov eax, dword [esp + 0xbc]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
movsd xmm3, qword [0x5fc860]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b7b1e
movsd xmm0, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmmword [0x5fa830]
jbe 0x4b7b11
subsd xmm0, qword [0x616648]
jmp 0x4b7b19
addsd xmm0, qword [0x616648]
movsd qword [esi + eax], xmm0
mov eax, dword [esp + 0xc8]
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b7b76
movsd xmm1, qword [esi + eax]
movsd xmm2, qword [esi + eax - 0x10]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmmword [0x5fa830]
jbe 0x4b7b69
subsd xmm1, qword [0x616648]
jmp 0x4b7b71
addsd xmm1, qword [0x616648]
movsd qword [esi + eax], xmm1
sub dword [esp + 0x64], 0x18
sub dword [esp + 0x5c], 0x10
add edi, 0x18
add esi, 0x10
sub dword [esp + 0x6c], 1
jne 0x4b79f0
mov edx, dword [esp + 0x44]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], 1
jmp 0x4b8073
xorps xmm0, xmm0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [eax]
subsd xmm0, qword [ecx]
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [eax + 8]
subsd xmm0, qword [ecx + 8]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [eax + 0x10]
subsd xmm0, qword [ecx + 0x10]
lea ecx, [esp + 0x84]
movsd qword [esp + 0x94], xmm0
call fcn.004a88b0
fld qword [0x5ff780]
fcompi st(1)
fstp st(0)
jbe 0x4b806b
lea esi, [ebx + ebx - 1]
push esi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x58], esi
call fcn.00412980
push esi
lea ecx, [esp + 0x7c]
call fcn.00412980
push esi
lea ecx, [esp + 0xc0]
call fcn.00412b00
push esi
lea ecx, [esp + 0xcc]
call fcn.00412b00
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x4b7d3f
mov ecx, dword [esp + 0x5c]
xor edi, edi
mov esi, ebx
mov dword [esp + 0x6c], edi
shl esi, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
lea ecx, [edx + eax - 0x18]
push ecx
lea edx, [edi + eax]
push edx
call fcn.0042c3d0
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x6c]
lea edx, [ecx + eax - 0x18]
push edx
add eax, edi
push eax
call fcn.0042c3d0
mov ecx, dword [esp + 0xcc]
movq xmm2, qword [esi + ecx - 0x10]
mov edx, dword [esp + 0x7c]
movq xmm0, qword [ecx + edx]
movq xmm1, qword [ecx + edx + 8]
sub dword [esp + 0x74], 0x18
movq qword [ecx + edx], xmm2
movq xmm2, qword [esi + ecx - 8]
lea eax, [esi + ecx - 0x10]
add ecx, edx
movq qword [ecx + 8], xmm2
movq qword [eax], xmm0
movq qword [eax + 8], xmm1
mov ecx, dword [esp + 0xd8]
movq xmm2, qword [esi + ecx - 0x10]
movq xmm0, qword [ecx + edx]
movq xmm1, qword [ecx + edx + 8]
lea eax, [esi + ecx - 0x10]
add ecx, edx
movq qword [ecx], xmm2
movq xmm2, qword [eax + 8]
movq qword [ecx + 8], xmm2
add edx, 0x10
add esp, 0x10
add edi, 0x18
sub esi, 0x10
sub dword [esp + 0x44], 1
movq qword [eax], xmm0
movq qword [eax + 8], xmm1
mov dword [esp + 0x6c], edx
jne 0x4b7c81
movsd xmm0, qword [0x5fc740]
xor esi, esi
cmp ebx, 4
jl 0x4b7e54
lea edx, [ebx - 4]
shr edx, 2
xor ecx, ecx
inc edx
lea esi, [edx*4]
jmp 0x4b7d70
mov eax, dword [esp + 0xac]
movsd xmm1, qword [eax + ecx]
xorpd xmm1, xmm0
movsd qword [eax + ecx], xmm1
movsd xmm1, qword [eax + ecx + 8]
xorpd xmm1, xmm0
movsd qword [eax + ecx + 8], xmm1
movsd xmm1, qword [eax + ecx + 0x10]
add eax, ecx
xorpd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
mov eax, dword [esp + 0xac]
movsd xmm1, qword [ecx + eax + 0x18]
xorpd xmm1, xmm0
movsd qword [ecx + eax + 0x18], xmm1
movsd xmm1, qword [ecx + eax + 0x20]
lea eax, [ecx + eax + 0x18]
xorpd xmm1, xmm0
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
xorpd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
mov eax, dword [esp + 0xac]
movsd xmm1, qword [ecx + eax + 0x30]
lea eax, [ecx + eax + 0x30]
xorpd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
xorpd xmm1, xmm0
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
xorpd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
mov eax, dword [esp + 0xac]
movsd xmm1, qword [ecx + eax + 0x48]
lea eax, [ecx + eax + 0x48]
xorpd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
xorpd xmm1, xmm0
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
add ecx, 0x60
sub edx, 1
xorpd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
jne 0x4b7d70
cmp esi, ebx
jge 0x4b7eaa
lea ecx, [esi + esi*2]
add ecx, ecx
add ecx, ecx
mov edx, ebx
add ecx, ecx
sub edx, esi
jmp 0x4b7e70
mov eax, dword [esp + 0xac]
movsd xmm1, qword [eax + ecx]
add eax, ecx
xorpd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
xorpd xmm1, xmm0
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
add ecx, 0x18
sub edx, 1
xorpd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
jne 0x4b7e70
cmp ebx, 1
jle 0x4b8059
mov edi, dword [esp + 0x5c]
xorps xmm4, xmm4
movsd xmm3, qword [0x5fc860]
mov eax, ebx
mov esi, 0x18
shl eax, 4
add edi, esi
dec ebx
mov dword [esp + 0x6c], 0x10
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x6c]
nop
mov ecx, dword [esp + 0xa0]
movq xmm0, qword [ecx + esi]
mov edx, dword [esp + 0x78]
movq qword [edi + edx - 0x18], xmm0
movq xmm0, qword [ecx + esi + 8]
movq qword [edi + edx - 0x10], xmm0
movq xmm0, qword [ecx + esi + 0x10]
movq qword [edi + edx - 8], xmm0
add ecx, esi
mov ecx, dword [esp + 0xd8]
movq xmm0, qword [ecx + esi]
lea edx, [edi + edx - 0x18]
mov edx, dword [esp + 0xac]
movq qword [edi + edx - 0x18], xmm0
movq xmm0, qword [ecx + esi + 8]
movq qword [edi + edx - 0x10], xmm0
movq xmm0, qword [ecx + esi + 0x10]
movq qword [edi + edx - 8], xmm0
add ecx, esi
mov ecx, dword [esp + 0xf0]
movq xmm0, qword [ecx + ebx]
lea edx, [edi + edx - 0x18]
mov edx, dword [esp + 0xbc]
movq qword [edx + eax], xmm0
movq xmm0, qword [ecx + ebx + 8]
movq qword [edx + eax + 8], xmm0
add ecx, ebx
mov ecx, dword [esp + 0xe4]
movq xmm0, qword [ecx + ebx]
add edx, eax
mov edx, dword [esp + 0xc8]
movq qword [edx + eax], xmm0
movq xmm0, qword [ecx + ebx + 8]
add ecx, ebx
add edx, eax
movq qword [edx + 8], xmm0
mov ecx, dword [esp + 0xbc]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b7fee
movsd xmm0, qword [eax + ecx]
movsd xmm2, qword [eax + ecx - 0x10]
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmm4
jbe 0x4b7fe1
subsd xmm0, qword [0x616648]
jmp 0x4b7fe9
addsd xmm0, qword [0x616648]
movsd qword [eax + ecx], xmm0
mov ecx, dword [esp + 0xc8]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [0x5ff700]
jbe 0x4b8042
movsd xmm1, qword [eax + ecx]
movsd xmm2, qword [eax + ecx - 0x10]
movapd xmm0, xmm1
subsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x4b8035
subsd xmm1, qword [0x616648]
jmp 0x4b803d
addsd xmm1, qword [0x616648]
movsd qword [eax + ecx], xmm1
add esi, 0x18
add edi, 0x18
add ebx, 0x10
add eax, 0x10
sub dword [esp + 0x44], 1
jne 0x4b7ee0
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x5c], 1
jmp 0x4b8077
mov dword [esp + 0x5c], 2
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0xd4]
fld qword [0x5ff788]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
sub esp, 0x10
fstp qword [esp + 8]
lea edx, [esp + 0xd8]
fld qword [esi + 0x38]
fstp qword [esp]
push edx
fld qword [esi + eax*8 + 0x18]
mov eax, dword [esi + eax*4]
lea edx, [esp + 0xd0]
push edx
lea edx, [esp + 0xc4]
push edx
lea edx, [esp + 0x94]
push edx
push ebx
sub esp, 8
fstp qword [esp]
push eax
fld qword [esi + ecx*8 + 0x18]
mov ecx, dword [esi + ecx*4]
sub esp, 8
fstp qword [esp]
push ecx
lea ecx, [esp + 0x478]
call fcn.00562b60
cmp byte [esp + 0x43c], 0
mov byte [esp + 0x540], 0xe
je 0x4b811a
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x444]
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x44c]
mov dword [esp + edx*4 + 0x44], eax
mov edx, dword [esp + 0x448]
mov dword [esp + ecx*4 + 0x44], edx
jmp 0x4b81dc
push 0xe0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0xf
test eax, eax
je 0x4b814e
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x7c]
push edx
push ebx
mov ecx, eax
call fcn.005094b0
jmp 0x4b8150
xor eax, eax
push 0x88
mov byte [esp + 0x544], 0xe
mov edi, eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0x10
test eax, eax
je 0x4b818a
mov ecx, dword [esp + 0xbc]
push ebx
push ecx
push ebx
mov ecx, eax
call fcn.004a5b50
jmp 0x4b818c
xor eax, eax
mov edx, dword [esi + 8]
push 0x88
mov byte [esp + 0x544], 0xe
mov dword [esp + edx*4 + 0x48], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0x11
test eax, eax
je 0x4b81cb
mov ecx, dword [esp + 0xc8]
push ebx
push ecx
push ebx
mov ecx, eax
call fcn.004a5b50
jmp 0x4b81cd
xor eax, eax
mov edx, dword [esi + 0xc]
mov byte [esp + 0x540], 0xe
mov dword [esp + edx*4 + 0x44], eax
xorps xmm0, xmm0
movsd qword [esp + 0x11c], xmm0
movsd qword [esp + 0x114], xmm0
movsd qword [esp + 0x224], xmm0
movsd qword [esp + 0x21c], xmm0
movsd qword [esp + 0x214], xmm0
movsd qword [esp + 0x1ec], xmm0
movsd qword [esp + 0x1e4], xmm0
movsd qword [esp + 0x1dc], xmm0
movsd xmm1, qword [edi + 0x10]
movsd xmm0, qword [edi + 0x18]
lea ecx, [esp + 0x1a4]
push ecx
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
lea edx, [esp + 0x1e0]
push edx
movsd qword [esp + 0x1ac], xmm0
mov eax, dword [edi]
mov edx, dword [eax + 0x80]
lea ecx, [esp + 0x21c]
push ecx
mov ecx, edi
call edx
mov ebx, dword [esp + 0xb8]
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, ebx
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x114], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebx
movq qword [esp + 0x124], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x15c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x7c]
movq qword [esp + 0x174], xmm0
call fcn.0046af30
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x114], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x100]
push eax
movq qword [esp + 0x124], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x14c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x164]
movq qword [esp + 0x15c], xmm0
call fcn.004a8ae0
movsd xmm2, qword [esp + 0xfc]
movq xmm0, qword [esp + 0x104]
cmp dword [esi + 8], 1
movq xmm1, qword [esp + 0x10c]
jne 0x4b83ae
movsd xmm3, qword [0x5fc740]
xorpd xmm2, xmm3
xorpd xmm0, xmm3
xorpd xmm1, xmm3
mulsd xmm0, qword [esp + 0x1e4]
mulsd xmm2, qword [esp + 0x1dc]
mulsd xmm1, qword [esp + 0x1ec]
addsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
comisd xmm1, xmm0
jbe 0x4b83f9
mov edx, dword [edi]
mov eax, dword [edx + 0x50]
mov ecx, edi
call eax
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
movzx eax, byte [edi + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
neg eax
sbb eax, eax
and eax, 0x18
push eax
push ecx
push edx
push edi
mov ecx, esi
call fcn.004af6e0
cmp dword [esp + 0x5c], 1
jle 0x4b8780
fld qword [0x5ff788]
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x64]
mov ecx, dword [esi + 8]
sub esp, 0x10
fstp qword [esp + 8]
lea edx, [esp + 0xf4]
fld qword [esi + 0x38]
fstp qword [esp]
push edx
fld qword [esi + eax*8 + 0x18]
mov eax, dword [esi + eax*4]
lea edx, [esp + 0x104]
push edx
lea edx, [esp + 0xf0]
push edx
lea edx, [esp + 0xbc]
push edx
push edi
sub esp, 8
fstp qword [esp]
push eax
fld qword [esi + ecx*8 + 0x18]
mov ecx, dword [esi + ecx*4]
sub esp, 8
fstp qword [esp]
push ecx
lea ecx, [esp + 0x3b8]
call fcn.00562b60
cmp byte [esp + 0x37c], 0
mov byte [esp + 0x540], 0x12
je 0x4b84c2
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x384]
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x38c]
mov dword [esp + edx*4 + 0x44], eax
mov edx, dword [esp + 0x388]
mov dword [esp + ecx*4 + 0x44], edx
jmp 0x4b858f
push 0xe0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0x13
test eax, eax
je 0x4b84f9
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0xa4]
push edx
push edi
mov ecx, eax
call fcn.005094b0
jmp 0x4b84fb
xor eax, eax
push 0x88
mov byte [esp + 0x544], 0x12
mov edi, eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0x14
test eax, eax
je 0x4b8539
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xf0]
push ecx
push edx
push ecx
mov ecx, eax
call fcn.004a5b50
jmp 0x4b853b
xor eax, eax
mov ecx, dword [esi + 0xc]
push 0x88
mov byte [esp + 0x544], 0x12
mov dword [esp + ecx*4 + 0x48], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x540], 0x15
test eax, eax
je 0x4b857e
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xe4]
push ecx
push edx
push ecx
mov ecx, eax
call fcn.004a5b50
jmp 0x4b8580
xor eax, eax
mov ecx, dword [esi + 8]
mov byte [esp + 0x540], 0x12
mov dword [esp + ecx*4 + 0x44], eax
movsd xmm1, qword [edi + 0x10]
movsd xmm0, qword [edi + 0x18]
lea eax, [esp + 0x1a4]
push eax
addsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
lea ecx, [esp + 0x1e0]
movsd qword [esp + 0x1a8], xmm0
mov edx, dword [edi]
mov edx, dword [edx + 0x80]
push ecx
lea eax, [esp + 0x21c]
push eax
mov ecx, edi
call edx
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, ebx
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x114], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebx
movq qword [esp + 0x124], xmm0
call edx
movq xmm0, qword [eax]
mov ebx, dword [esp + 0x74]
movq qword [esp + 0x15c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, ebx
movq qword [esp + 0x174], xmm0
call fcn.0046af30
movq xmm0, qword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x74]
movq qword [esp + 0x114], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebx
movq qword [esp + 0x124], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x14c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x164]
movq qword [esp + 0x15c], xmm0
call fcn.004a8ae0
cmp dword [esi + 8], 1
movsd xmm2, qword [esp + 0xfc]
movq xmm0, qword [esp + 0x104]
movq xmm1, qword [esp + 0x10c]
jne 0x4b870f
movsd xmm3, qword [0x5fc740]
xorpd xmm2, xmm3
xorpd xmm0, xmm3
xorpd xmm1, xmm3
mulsd xmm0, qword [esp + 0x1e4]
mulsd xmm2, qword [esp + 0x1dc]
mulsd xmm1, qword [esp + 0x1ec]
mov ebx, dword [esp + 0x48]
addsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
comisd xmm1, xmm0
jbe 0x4b875c
mov edx, dword [edi]
mov eax, dword [edx + 0x50]
mov ecx, edi
call eax
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x40]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x44]
push 0
push ebx
push ecx
push edi
mov ecx, esi
call fcn.004af6e0
lea ecx, [esp + 0x37c]
mov byte [esp + 0x540], 0xe
call fcn.00560aa0
lea ecx, [esp + 0x43c]
mov byte [esp + 0x540], 0xd
call fcn.00560aa0
mov eax, dword [esp + 0xe4]
mov esi, dword [sym.imp.MSVCR90.dll_free]
xor edi, edi
cmp eax, edi
je 0x4b87ad
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xe4], edi
mov dword [esp + 0xec], edi
cmp eax, edi
je 0x4b87cc
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf8], edi
cmp eax, edi
je 0x4b87eb
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa8], edi
cmp eax, edi
je 0x4b880a
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xe0], edi
cmp eax, edi
je 0x4b8829
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc8], edi
mov dword [esp + 0xd0], edi
cmp eax, edi
je 0x4b8848
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc4], edi
cmp eax, edi
je 0x4b8864
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xac]
mov dword [esp + 0x78], edi
mov dword [esp + 0x80], edi
cmp eax, edi
je 0x4b8880
push eax
call esi
add esp, 4
xor eax, eax
jmp 0x4b8887
or eax, 0xffffffff
mov ecx, dword [esp + 0x538]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4f0]
xor ecx, esp
call fcn.00423eca
mov esp, ebp
pop ebp
ret