Function at 0x50c210
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5f3e33
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
xor eax, eax
mov dword [esp + 0x64], eax
movq xmm0, qword [ebx]
mov cl, byte [esi + 0x39]
movq qword [esp + 0x8c], xmm0
movq xmm0, qword [ebx + 8]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [esp + 0x9c], xmm0
movq xmm0, qword [edi]
movq qword [esp + 0xa4], xmm0
movq xmm0, qword [edi + 8]
movq qword [esp + 0xac], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esp + 0xb4], xmm0
movsd xmm0, qword [esi + 0x20]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [0x5fc888]
mov byte [esp + 0x1b], cl
mov ecx, esi
mov dword [esi + 0x88], eax
movsd qword [esi + 0x30], xmm0
call fcn.004fa390
movsd xmm0, qword [esi + 0x28]
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
comisd xmm0, xmmword [0x5ff758]
mov byte [esp + 0x13], 1
ja 0x50c2f3
mov byte [esp + 0x13], 0
movsd xmm2, qword [ebp + 0x14]
subsd xmm2, qword [ebp + 8]
xorps xmm0, xmm0
andpd xmm2, xmm1
movsd xmm1, qword [0x5fa918]
comisd xmm1, xmm2
movsd qword [esp + 0x13c], xmm0
movsd qword [esp + 0x144], xmm0
movsd qword [esp + 0x14c], xmm0
jbe 0x50c3ea
push 8
push 2
push 2
mov ecx, esi
call fcn.004fbb00
fldz
mov edx, dword [esi + 0xb4]
xorps xmm0, xmm0
movsd qword [edx + 8], xmm0
mov eax, dword [esi + 0xb4]
movsd qword [eax], xmm0
mov ecx, dword [esi + 0xb4]
movsd xmm0, qword [0x5fb270]
movsd qword [ecx + 0x18], xmm0
mov edx, dword [esi + 0xb4]
movsd qword [edx + 0x10], xmm0
mov eax, dword [esi + 0x9c]
movq xmm0, qword [ebx]
movq qword [eax], xmm0
movq xmm0, qword [ebx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [eax + 0x10], xmm0
mov eax, dword [esi + 0x9c]
movq xmm0, qword [edi]
add eax, 0x18
movq qword [eax], xmm0
movq xmm0, qword [edi + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x10], xmm0
lea eax, [esp + 0x13c]
push eax
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004eff00
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 0xbc]
mov eax, dword [esi + 0x94]
cmp ecx, eax
jl 0x50c406
mov ecx, dword [esi + 0xb4]
movsd xmm0, qword [ecx + eax*8 - 8]
mov ecx, esi
movsd qword [esp + 0x2c], xmm0
call fcn.00459f30
fstp qword [esp + 0x5c]
movsd xmm3, qword [ebp + 8]
movsd xmm7, qword [esp + 0x2c]
movsd xmm6, qword [0x5fc860]
movsd xmm1, qword [0x5fa918]
movapd xmm0, xmm3
subsd xmm0, xmm7
andpd xmm0, xmm6
comisd xmm1, xmm0
jbe 0x50c47b
cmp byte [esp + 0x13], 0
movapd xmm3, xmm7
movsd qword [ebp + 8], xmm3
jne 0x50c47b
mov eax, dword [esi + 0x9c]
movq xmm0, qword [ebx]
movq qword [eax], xmm0
movq xmm0, qword [ebx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [eax + 0x10], xmm0
movsd xmm3, qword [ebp + 8]
movsd xmm0, qword [ebp + 0x14]
movapd xmm2, xmm0
subsd xmm2, xmm7
andpd xmm2, xmm6
comisd xmm1, xmm2
jbe 0x50c49b
movapd xmm0, xmm7
movsd qword [ebp + 0x14], xmm0
movsd xmm4, qword [esp + 0x5c]
movapd xmm2, xmm3
subsd xmm2, xmm4
andpd xmm2, xmm6
comisd xmm1, xmm2
jbe 0x50c4bc
movapd xmm3, xmm4
movsd qword [ebp + 8], xmm3
movapd xmm2, xmm0
subsd xmm2, xmm4
andpd xmm2, xmm6
comisd xmm1, xmm2
jbe 0x50c519
cmp byte [esp + 0x13], 0
movapd xmm0, xmm4
movsd qword [ebp + 0x14], xmm0
jne 0x50c519
mov eax, dword [esi + 0x90]
movq xmm0, qword [edi]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x9c]
movq qword [eax + edx*8 - 0x18], xmm0
movq xmm0, qword [edi + 8]
lea eax, [eax + edx*8 - 0x18]
movq qword [eax + 8], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x10], xmm0
movsd xmm0, qword [ebp + 0x14]
movsd xmm3, qword [ebp + 8]
movsd xmm5, qword [0x5ff780]
movapd xmm1, xmm5
addsd xmm1, xmm3
comisd xmm1, xmm0
jbe 0x50c5db
cmp byte [esp + 0x1b], 0
jne 0x50c5c8
lea ecx, [ebp + 0x14]
push ecx
lea edx, [ebp + 8]
push edx
call fcn.005c1090
movq xmm0, qword [edi]
movsd xmm3, qword [ebp + 8]
movsd xmm5, qword [0x5ff780]
movsd xmm4, qword [esp + 0x64]
movsd xmm7, qword [esp + 0x34]
movsd xmm6, qword [0x5fc860]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [edi + 8]
movq qword [esp + 0x9c], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esp + 0xa4], xmm0
movq xmm0, qword [ebx]
movq qword [esp + 0xac], xmm0
movq xmm0, qword [ebx + 8]
movq qword [esp + 0xb4], xmm0
movq xmm0, qword [ebx + 0x10]
movq qword [esp + 0xbc], xmm0
movsd xmm0, qword [ebp + 0x14]
add esp, 8
jmp 0x50c5db
movsd xmm1, qword [esp + 0x1c]
addsd xmm1, xmm0
movapd xmm0, xmm1
movsd qword [ebp + 0x14], xmm0
mov eax, dword [esi + 0x98]
shr eax, 2
test al, 1
je 0x50c71e
mov ecx, esi
call fcn.00506440
mov ecx, dword [esi + 0xbc]
mov eax, dword [esi + 0x94]
cmp ecx, eax
jl 0x50c611
mov ecx, dword [esi + 0xb4]
movsd xmm0, qword [ecx + eax*8 - 8]
jmp 0x50c614
xorps xmm0, xmm0
mov ecx, esi
movsd qword [esp + 0x2c], xmm0
call fcn.00459f30
fst qword [esp + 0x5c]
fsub qword [esp + 0x2c]
mov edx, dword [esi]
mov edx, dword [edx + 0x64]
lea eax, [esp + 0x8c]
push eax
fstp qword [esp + 0x20]
mov ecx, esi
call edx
fstp qword [ebp + 8]
movsd xmm0, qword [esp + 0x8c]
subsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 0x74], xmm0
movsd xmm0, qword [esp + 0x94]
subsd xmm0, qword [esp + 0xac]
movsd qword [esp + 0x7c], xmm0
movsd xmm0, qword [esp + 0x9c]
subsd xmm0, qword [esp + 0xb4]
lea ecx, [esp + 0x74]
movsd qword [esp + 0x84], xmm0
call fcn.004a88b0
fld qword [0x5ff758]
movsd xmm2, qword [esp + 0x1c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x50c6cf
mov eax, dword [esi]
mov edx, dword [eax + 0x64]
lea ecx, [esp + 0xa4]
push ecx
mov ecx, esi
call edx
fstp qword [ebp + 0x14]
movsd xmm0, qword [ebp + 0x14]
movsd xmm3, qword [ebp + 8]
movsd xmm2, qword [esp + 0x1c]
jmp 0x50c6e1
movsd xmm3, qword [ebp + 8]
movapd xmm0, xmm2
addsd xmm0, xmm3
movsd qword [ebp + 0x14], xmm0
movsd xmm5, qword [0x5ff780]
movsd xmm4, qword [esp + 0x5c]
movsd xmm7, qword [esp + 0x2c]
movsd xmm6, qword [0x5fc860]
movapd xmm1, xmm5
addsd xmm1, xmm3
comisd xmm1, xmm0
jbe 0x50c726
movapd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm0, xmm1
movsd qword [ebp + 0x14], xmm0
jmp 0x50c726
movapd xmm2, xmm4
subsd xmm2, xmm7
movapd xmm1, xmm0
subsd xmm1, xmm3
andpd xmm1, xmm6
comisd xmm5, xmm1
jbe 0x50c74d
movapd xmm6, xmm2
addsd xmm6, xmm0
movapd xmm0, xmm6
movsd qword [ebp + 0x14], xmm0
addsd xmm1, xmm2
subsd xmm2, xmm5
comisd xmm1, xmm2
jbe 0x50c7d6
cmp byte [esp + 0x1b], 0
je 0x50c908
fld qword [esp + 0x2c]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0xc4]
fstp qword [esp]
push ecx
mov ecx, esi
movsd qword [esi + 0x10], xmm7
movsd qword [esi + 0x18], xmm4
call edx
fld qword [esi + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x7c]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
fld qword [0x5ff758]
sub esp, 8
lea eax, [esp + 0x7c]
fstp qword [esp]
push eax
lea ecx, [esp + 0xc8]
call fcn.004a8800
mov byte [esi + 0x38], al
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp byte [esp + 0x1b], 0
je 0x50c908
movapd xmm1, xmm5
addsd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x50c908
movapd xmm1, xmm4
subsd xmm1, xmm5
comisd xmm3, xmm1
jbe 0x50c818
subsd xmm3, xmm4
subsd xmm0, xmm4
movsd qword [ebp + 8], xmm3
movsd qword [ebp + 0x14], xmm0
jmp 0x50c908
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
fld qword [esp + 0x2c]
mov edx, dword [esi]
mov edx, dword [edx + 0x68]
sub esp, 8
mov ebx, eax
fstp qword [esp]
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call edx
fld qword [ebp + 8]
lea eax, [esp + 0x8c]
push eax
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x80]
fld qword [esp + 0x38]
push ecx
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call fcn.0050c210
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
fld qword [esp + 0x5c]
lea ecx, [esp + 0x74]
push ecx
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x98]
fld qword [ebp + 8]
push edx
mov edi, eax
sub esp, 8
mov ecx, edi
fstp qword [esp]
call fcn.0050c210
mov eax, dword [edi]
mov edx, dword [eax + 0x58]
push ebx
mov ecx, edi
call edx
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x50c8b3
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
mov edi, dword [esp + 0x1c]
push edi
mov ecx, esi
call fcn.0050c120
test edi, edi
je 0x50c8d7
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
mov ecx, esi
call fcn.00459ef0
fstp qword [esp + 0x2c]
mov ecx, esi
call fcn.00459f30
fstp qword [esp + 0x5c]
mov eax, dword [esi]
fld qword [esp + 0x2c]
mov edx, dword [eax + 0x64]
fstp qword [ebp + 8]
lea ecx, [esp + 0xa4]
push ecx
mov ecx, esi
call edx
fstp qword [ebp + 0x14]
mov eax, dword [esi + 0x9c]
fld qword [0x5ff758]
movq xmm0, qword [eax]
mov ecx, dword [esi + 0x90]
lea edi, [esi + 0x9c]
movq qword [esp + 0x16c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x174], xmm0
movq xmm0, qword [eax + 0x10]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8 - 0x18]
movq qword [esp + 0x17c], xmm0
movq xmm0, qword [eax]
movq qword [esp + 0x154], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
lea edx, [esp + 0x15c]
fstp qword [esp]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 0x10]
push edx
lea ecx, [esp + 0x178]
movq qword [esp + 0x170], xmm0
call fcn.004a8800
mov bl, al
test bl, bl
je 0x50ca5f
movsd xmm1, qword [0x5ff780]
movsd xmm0, qword [esp + 0x2c]
addsd xmm1, xmm0
comisd xmm1, xmmword [ebp + 8]
jbe 0x50c9fc
fld qword [esp + 0x2c]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x7c]
fstp qword [esp]
push ecx
mov ecx, esi
movsd qword [ebp + 8], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x8c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x9c], xmm0
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [ebp + 0x14]
movapd xmm1, xmm0
subsd xmm1, qword [0x5ff780]
comisd xmm2, xmm1
jbe 0x50ca65
fld qword [esp + 0x5c]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x7c]
fstp qword [esp]
push ecx
mov ecx, esi
movsd qword [ebp + 0x14], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0xa4], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xac], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xb4], xmm0
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [0x5ff780]
movsd xmm2, qword [esp + 0x2c]
movsd xmm3, qword [ebp + 8]
movapd xmm4, xmm1
addsd xmm4, xmm2
comisd xmm4, xmm3
jbe 0x50cb90
movapd xmm4, xmm0
subsd xmm4, xmm1
movsd xmm1, qword [ebp + 0x14]
comisd xmm1, xmm4
jbe 0x50cb90
test bl, bl
je 0x50cacb
mov byte [esi + 0x38], 1
movsd qword [esi + 0x10], xmm2
movsd qword [esi + 0x18], xmm0
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
fld qword [ebp + 8]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x7c]
fstp qword [esp]
push ecx
mov ecx, esi
movsd qword [esi + 0x10], xmm3
movsd qword [esi + 0x18], xmm1
call edx
fld qword [ebp + 0x14]
movq xmm0, qword [eax]
movq qword [esp + 0x8c], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0x9c], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, esi
movq qword [esp + 0xa8], xmm0
call edx
fld qword [0x5ff758]
movq xmm0, qword [eax]
movq qword [esp + 0xa4], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xac], xmm0
movq xmm0, qword [eax + 0x10]
sub esp, 8
lea eax, [esp + 0xac]
fstp qword [esp]
push eax
lea ecx, [esp + 0x98]
movq qword [esp + 0xc0], xmm0
call fcn.004a8800
mov byte [esi + 0x38], al
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp byte [esp + 0x13], 0
movq xmm0, qword [esp + 0x8c]
movq xmm1, qword [esp + 0xac]
movq xmm2, qword [esp + 0xb4]
movq qword [esp + 0xbc], xmm0
movq xmm0, qword [esp + 0x94]
movq qword [esp + 0xc4], xmm0
movq xmm0, qword [esp + 0x9c]
movq qword [esp + 0xcc], xmm0
movq xmm0, qword [esp + 0xa4]
movq qword [esp + 0x74], xmm0
movq qword [esp + 0x7c], xmm1
movq qword [esp + 0x84], xmm2
je 0x50cc9f
movsd xmm0, qword [esi + 0x28]
fld qword [ebp + 8]
mov edx, dword [esi]
mov edx, dword [edx + 0x68]
sub esp, 8
lea eax, [esp + 0xdc]
fstp qword [esp]
movsd qword [esp + 0x24], xmm0
xorps xmm0, xmm0
push eax
mov ecx, esi
movsd qword [esi + 0x28], xmm0
call edx
fld qword [ebp + 0x14]
movq xmm0, qword [eax]
movq qword [esp + 0xbc], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0xcc], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0xdc]
push ecx
mov ecx, esi
movq qword [esp + 0xd8], xmm0
call edx
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq xmm2, qword [eax + 0x10]
movsd xmm3, qword [esp + 0x1c]
movq qword [esp + 0x74], xmm0
movq qword [esp + 0x7c], xmm1
movq qword [esp + 0x84], xmm2
movsd qword [esi + 0x28], xmm3
mov ecx, dword [esi + 0x90]
cmp ecx, 2
jne 0x50cd75
mov eax, dword [edi]
movq xmm3, qword [esp + 0xbc]
movq qword [eax], xmm3
movq xmm3, qword [esp + 0xc4]
movq qword [eax + 8], xmm3
movq xmm3, qword [esp + 0xcc]
movq qword [eax + 0x10], xmm3
mov eax, dword [esi + 0x90]
mov ecx, dword [edi]
lea eax, [eax + eax*2]
movq qword [ecx + eax*8 - 0x18], xmm0
movq qword [ecx + eax*8 - 0x10], xmm1
movq qword [ecx + eax*8 - 8], xmm2
mov edx, dword [esi + 0xb4]
movsd xmm0, qword [ebp + 8]
lea eax, [ecx + eax*8 - 0x18]
movsd qword [edx + 8], xmm0
mov eax, dword [esi + 0xb4]
movsd xmm0, qword [ebp + 8]
movsd qword [eax], xmm0
mov ecx, dword [esi + 0xb4]
movsd xmm0, qword [ebp + 0x14]
movsd qword [ecx + 0x18], xmm0
mov edx, dword [esi + 0xb4]
movsd xmm0, qword [ebp + 0x14]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [ebp + 8]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [ebp + 0x14]
mov ecx, esi
movsd qword [esi + 0x18], xmm0
call fcn.004f9af0
mov byte [esi + 0x38], 0
call fcn.004fbd80
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x94]
lea ebx, [ecx + eax - 1]
mov ecx, dword [esi + 0x90]
lea edx, [ecx + eax*2]
push edx
mov ecx, edi
call fcn.00412980
test byte [esi + 0x98], 1
je 0x50cdb4
mov ecx, dword [esi + 0x90]
mov eax, dword [esi + 0x94]
lea edx, [ecx + eax*2]
push edx
lea ecx, [esi + 0xa8]
call fcn.00412880
mov ecx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
add eax, ecx
mov dword [esp + 0x28], eax
lea eax, [eax + ecx*2]
lea edi, [esi + 0xb4]
push eax
mov ecx, edi
call fcn.00412880
xor eax, eax
push ebx
lea ecx, [esp + 0xd8]
mov dword [esp + 0xdc], 1
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd8], eax
call fcn.00412980
xor eax, eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
test byte [esi + 0x98], 1
mov byte [esp + 0x1c0], 1
je 0x50ce33
push ebx
lea ecx, [esp + 0x6c]
call fcn.00412880
mov eax, dword [esi + 0x94]
xor ecx, ecx
add eax, ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], ecx
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], 1
call fcn.00412880
fld qword [ebp + 8]
mov ebx, dword [esi + 0x94]
movsd xmm0, qword [ebp + 8]
sub esp, 8
dec ebx
fstp qword [esp]
mov ecx, esi
mov byte [esp + 0x1c8], 2
mov dword [esp + 0x44], ebx
movsd qword [esi + 0x10], xmm0
call fcn.004fa3e0
movsd xmm5, qword [esp + 0x2c]
test al, al
je 0x50d376
movsd xmm1, qword [0x5ff780]
movsd xmm0, qword [ebp + 8]
movapd xmm2, xmm1
addsd xmm2, xmm5
comisd xmm0, xmm2
jbe 0x50d376
movsd xmm2, qword [esp + 0x5c]
subsd xmm2, xmm1
comisd xmm2, xmm0
movsd xmm2, qword [0x5fa918]
jbe 0x50d37e
mov eax, dword [edi]
xor ecx, ecx
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm1, xmmword [eax]
mov dword [esp + 0x48], ecx
jbe 0x50cef3
mov edx, eax
add edx, 8
inc ecx
comisd xmm1, xmmword [edx]
ja 0x50cee5
mov dword [esp + 0x48], ecx
movsd xmm4, qword [0x5fc860]
lea edx, [ecx*8]
movsd xmm1, qword [edx + eax]
subsd xmm1, xmm0
andpd xmm1, xmm4
comisd xmm2, xmm1
jbe 0x50cf49
mov eax, dword [edi]
movsd qword [edx + eax], xmm0
mov eax, dword [edi]
movsd xmm0, qword [ebp + 8]
inc ecx
lea edx, [ecx*8]
movsd xmm1, qword [eax + edx]
add eax, edx
subsd xmm1, xmm0
dec ebx
andpd xmm1, xmm4
comisd xmm2, xmm1
ja 0x50cf15
mov dword [esp + 0x48], ecx
mov dword [esp + 0x3c], ebx
mov edx, dword [esi + 0x94]
mov eax, ecx
sub eax, edx
add eax, ebx
dec edx
cmp eax, edx
mov dword [esp + 0x4c], eax
jl 0x50d386
mov edx, dword [esi + 0x90]
sub edx, dword [esi + 0x94]
add edx, ebx
cmp eax, edx
jg 0x50d386
xor eax, eax
cmp ebx, eax
jle 0x50d15c
cmp ecx, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], eax
jl 0x50d01e
mov ebx, dword [esp + 0x50]
mov edx, 8
sub edx, ebx
mov dword [esp + 0x1c], edx
add ecx, 0xfffffffc
mov edx, 0xfffffff0
sub edx, ebx
shr ecx, 2
inc ecx
lea eax, [ebx + 0x10]
lea ebx, [ecx*4]
mov dword [esp + 0x38], 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x40], ebx
jmp 0x50cfd4
mov edx, dword [esp + 0x44]
mov ebx, dword [edi]
add edx, eax
fld qword [edx + ebx]
fstp qword [eax - 0x10]
mov ebx, dword [edi]
fld qword [edx + ebx + 8]
mov ebx, dword [esp + 0x38]
add dword [esp + 0x38], 0x20
fstp qword [eax - 8]
mov edx, dword [edi]
fld qword [ebx + edx]
mov edx, dword [esp + 0x1c]
fstp qword [eax]
mov ebx, dword [edi]
add edx, eax
fld qword [edx + ebx]
add eax, 0x20
sub ecx, 1
fstp qword [eax - 0x18]
jne 0x50cfd0
movsd xmm0, qword [ebp + 8]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
cmp eax, ecx
jge 0x50d049
mov edx, dword [edi]
fld qword [edx + eax*8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
fstp qword [edx + eax*8]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
inc eax
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x50d022
movsd xmm0, qword [ebp + 8]
test ebx, ebx
jle 0x50d07a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
jmp 0x50d065
movsd xmm0, qword [ebp + 8]
mov edx, dword [esp + 0x50]
movsd qword [edx + eax*8], xmm0
inc eax
sub dword [esp + 0x1c], 1
jne 0x50d060
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x28]
cmp ecx, edx
mov eax, ecx
jge 0x50d111
sub edx, ecx
cmp edx, 4
jl 0x50d0ec
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
lea edx, [edx + ebx*8 + 0x10]
mov ebx, dword [esp + 0x28]
add ebx, 0xfffffffd
sub ebx, ecx
mov ecx, dword [esp + 0x14]
dec ebx
shr ebx, 2
lea ecx, [ecx + ebx*4 + 4]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi]
fld qword [ecx + eax*8]
add eax, 4
fstp qword [edx - 0x10]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 0x18]
add edx, 0x20
fstp qword [edx - 0x28]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 0x10]
fstp qword [edx - 0x20]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 8]
lea ecx, [ebx - 3]
cmp eax, ecx
fstp qword [edx - 0x18]
jl 0x50d0b8
mov ebx, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jge 0x50d111
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
lea ecx, [ecx + edx*8]
lea ecx, [ecx]
mov edx, dword [edi]
fld qword [edx + eax*8]
inc eax
fstp qword [ecx]
add ecx, 8
cmp eax, dword [esp + 0x28]
jl 0x50d100
mov dl, byte [esi + 0x98]
mov eax, dword [esi + 0x90]
lea ecx, [esp + 0x50]
push ecx
and dl, 1
movzx ecx, dl
mov edx, dword [esi + 0x94]
push ecx
push 0
add eax, ebx
push edx
push eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xec]
push ecx
mov ecx, esi
call fcn.00502690
mov edx, dword [esp + 0x44]
mov dword [esi + 0x90], edx
jmp 0x50d1e8
xor edx, edx
cmp dword [esi + 0x90], eax
jle 0x50d1a2
xor ecx, ecx
mov eax, dword [esi + 0x9c]
mov ebx, dword [esp + 0xd4]
movq xmm0, qword [eax + ecx]
add eax, ecx
add ebx, ecx
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
inc edx
movq qword [ebx + 0x10], xmm0
add ecx, 0x18
cmp edx, dword [esi + 0x90]
jl 0x50d168
mov eax, dword [esp + 0x28]
mov edx, dword [edi]
lea ecx, [eax*8]
mov eax, dword [esp + 0x50]
push ecx
push edx
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
test byte [esi + 0x98], 1
je 0x50d1e8
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0xa8]
mov eax, dword [esp + 0x68]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 0x9c]
movq xmm0, qword [esp + 0xbc]
mov ecx, dword [esp + 0x4c]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0xc4]
sub edx, ecx
cmp edx, 1
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0xcc]
movq qword [eax + 0x10], xmm0
jle 0x50d277
mov eax, dword [esp + 0xd4]
lea ecx, [ecx + ecx*2 + 3]
lea ecx, [eax + ecx*8]
lea eax, [edx - 1]
mov ebx, 0x18
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x9c]
movq xmm0, qword [ecx]
add eax, ebx
movq qword [eax], xmm0
movq xmm0, qword [ecx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ecx + 0x10]
add ebx, 0x18
add ecx, 0x18
sub dword [esp + 0x1c], 1
movq qword [eax + 0x10], xmm0
jne 0x50d242
mov ecx, dword [esp + 0x4c]
test byte [esi + 0x98], 1
je 0x50d2f7
xor eax, eax
cmp edx, 4
jl 0x50d2d3
mov ebx, dword [esp + 0x68]
lea ecx, [ebx + ecx*8]
mov edi, edi
mov ebx, dword [esi + 0xa8]
fld qword [ecx]
fstp qword [ebx + eax*8]
mov ebx, dword [esi + 0xa8]
fld qword [ecx + 8]
add eax, 4
fstp qword [ebx + eax*8 - 0x18]
mov ebx, dword [esi + 0xa8]
fld qword [ecx + 0x10]
add ecx, 0x20
fstp qword [ebx + eax*8 - 0x10]
mov ebx, dword [esi + 0xa8]
fld qword [ecx - 8]
fstp qword [ebx + eax*8 - 8]
lea ebx, [edx - 3]
cmp eax, ebx
jl 0x50d290
mov ecx, dword [esp + 0x4c]
cmp eax, edx
jge 0x50d2f7
mov ebx, dword [esp + 0x68]
add ecx, eax
lea ecx, [ebx + ecx*8]
fld qword [ecx]
mov ebx, dword [esi + 0xa8]
fstp qword [ebx + eax*8]
inc eax
add ecx, 8
cmp eax, edx
jl 0x50d2e0
mov ecx, dword [esp + 0x4c]
xor eax, eax
cmp dword [esi + 0x94], eax
mov dword [esi + 0x90], edx
jle 0x50d325
jmp 0x50d310
mov edx, dword [edi]
movsd xmm0, qword [ebp + 8]
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, dword [esi + 0x94]
jl 0x50d310
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
add edx, eax
cmp eax, edx
jge 0x50d35b
mov edx, dword [esp + 0x50]
add ecx, eax
lea ecx, [edx + ecx*8]
mov edx, dword [edi]
fld qword [ecx]
fstp qword [edx + eax*8]
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x90]
inc eax
add ecx, 8
cmp eax, edx
jl 0x50d340
movsd xmm0, qword [ebp + 8]
and dword [esi + 0x98], 0xfffffff7
movapd xmm5, xmm0
movsd qword [esi + 0x10], xmm0
movsd qword [esp + 0x2c], xmm5
movsd xmm2, qword [0x5fa918]
movsd xmm4, qword [0x5fc860]
mov ebx, dword [esi + 0xbc]
mov eax, dword [esi + 0x94]
cmp ebx, eax
movsd xmm0, qword [ebp + 0x14]
movsd qword [esi + 0x18], xmm0
jl 0x50d3aa
mov ecx, dword [edi]
movsd xmm3, qword [ecx + eax*8 - 8]
jmp 0x50d3ad
xorps xmm3, xmm3
movsd xmm1, qword [0x5ff780]
subsd xmm3, xmm1
comisd xmm0, xmm3
jbe 0x50d958
mov edx, dword [esi + 0x90]
lea ecx, [edx + eax]
cmp ebx, ecx
mov dword [esp + 0x14], ecx
jl 0x50d3f5
mov ebx, dword [esi + 0x98]
shr ebx, 2
test bl, 1
je 0x50d3ec
mov edx, dword [edi]
movsd xmm3, qword [edx + ecx*8 - 8]
jmp 0x50d3fd
mov ecx, dword [edi]
movsd xmm3, qword [ecx + edx*8]
jmp 0x50d3fd
movsd xmm3, qword [0x5fb270]
addsd xmm3, xmm1
comisd xmm3, xmm0
jbe 0x50d958
movapd xmm3, xmm1
addsd xmm3, xmm5
comisd xmm0, xmm3
jbe 0x50d958
movsd xmm3, qword [esp + 0x5c]
subsd xmm3, xmm1
comisd xmm3, xmm0
jbe 0x50d958
mov edx, dword [edi]
xor ecx, ecx
movapd xmm1, xmm0
lea ebx, [eax - 1]
subsd xmm1, xmm2
comisd xmm1, xmmword [edx]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x3c], ebx
jbe 0x50d45e
mov eax, edx
add eax, 8
inc ecx
comisd xmm1, xmmword [eax]
ja 0x50d450
mov dword [esp + 0x48], ecx
lea eax, [ecx*8]
movsd xmm1, qword [eax + edx]
subsd xmm1, xmm0
andpd xmm1, xmm4
comisd xmm2, xmm1
jbe 0x50d4b2
jmp 0x50d480
mov edx, dword [edi]
movsd qword [eax + edx], xmm0
mov edx, dword [edi]
movsd xmm0, qword [ebp + 0x14]
inc ecx
lea eax, [ecx*8]
movsd xmm1, qword [eax + edx]
subsd xmm1, xmm0
dec ebx
andpd xmm1, xmm4
comisd xmm2, xmm1
ja 0x50d480
mov dword [esp + 0x48], ecx
mov dword [esp + 0x3c], ebx
mov edx, dword [esi + 0x94]
mov eax, ecx
sub eax, edx
add eax, ebx
lea ebx, [edx - 1]
cmp eax, ebx
mov dword [esp + 0x4c], eax
jl 0x50d8fb
mov ebx, dword [esi + 0x90]
sub ebx, edx
mov edx, dword [esp + 0x3c]
add ebx, edx
cmp eax, ebx
jg 0x50d8fb
xor ebx, ebx
test edx, edx
jle 0x50d69a
xor eax, eax
cmp ecx, 4
mov dword [esp + 0x28], ebx
jl 0x50d592
mov ebx, dword [esp + 0x50]
mov edx, 8
sub edx, ebx
mov dword [esp + 0x1c], edx
add ecx, 0xfffffffc
mov edx, 0xfffffff0
sub edx, ebx
shr ecx, 2
inc ecx
lea eax, [ebx + 0x10]
lea ebx, [ecx*4]
mov dword [esp + 0x38], 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x28], ebx
jmp 0x50d544
mov edx, dword [esp + 0x44]
mov ebx, dword [edi]
add edx, eax
fld qword [edx + ebx]
fstp qword [eax - 0x10]
mov ebx, dword [edi]
fld qword [edx + ebx + 8]
mov ebx, dword [esp + 0x38]
add dword [esp + 0x38], 0x20
fstp qword [eax - 8]
mov edx, dword [edi]
fld qword [ebx + edx]
mov edx, dword [esp + 0x1c]
fstp qword [eax]
mov ebx, dword [edi]
add edx, eax
fld qword [edx + ebx]
add eax, 0x20
sub ecx, 1
fstp qword [eax - 0x18]
jne 0x50d540
movsd xmm0, qword [ebp + 0x14]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
cmp eax, ecx
jge 0x50d5b5
mov edx, dword [edi]
fld qword [edx + eax*8]
mov edx, dword [esp + 0x50]
fstp qword [edx + ebx*8]
inc eax
inc ebx
cmp eax, ecx
jl 0x50d596
movsd xmm0, qword [ebp + 0x14]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
test edx, edx
jle 0x50d5d5
mov eax, edx
mov edx, dword [esp + 0x50]
jmp 0x50d5c6
movsd xmm0, qword [ebp + 0x14]
movsd qword [edx + ebx*8], xmm0
inc ebx
sub eax, 1
jne 0x50d5c1
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x14]
cmp ecx, edx
mov eax, ecx
jge 0x50d655
sub edx, ecx
cmp edx, 4
jl 0x50d637
mov edx, dword [esp + 0x50]
lea edx, [edx + ebx*8 + 0x10]
mov ebx, dword [esp + 0x14]
add ebx, 0xfffffffd
sub ebx, ecx
mov ecx, dword [esp + 0x28]
dec ebx
shr ebx, 2
lea ebx, [ecx + ebx*4 + 4]
mov ecx, dword [edi]
fld qword [ecx + eax*8]
add eax, 4
fstp qword [edx - 0x10]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 0x18]
add edx, 0x20
fstp qword [edx - 0x28]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 0x10]
fstp qword [edx - 0x20]
mov ecx, dword [edi]
fld qword [ecx + eax*8 - 8]
mov ecx, dword [esp + 0x14]
fstp qword [edx - 0x18]
add ecx, 0xfffffffd
cmp eax, ecx
jl 0x50d603
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jge 0x50d655
mov edx, dword [esp + 0x50]
lea ebx, [edx + ebx*8]
mov edx, dword [edi]
fld qword [edx + eax*8]
inc eax
fstp qword [ebx]
add ebx, 8
cmp eax, ecx
jl 0x50d646
mov cl, byte [esi + 0x98]
mov ebx, dword [esi + 0x90]
add ebx, dword [esp + 0x3c]
and cl, 1
movzx edx, cl
lea eax, [esp + 0x50]
push eax
mov eax, dword [esi + 0x94]
push edx
push 0
push eax
push ebx
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0xec]
push edx
mov ecx, esi
call fcn.00502690
mov dword [esi + 0x90], ebx
jmp 0x50d730
cmp dword [esi + 0x90], 0
jle 0x50d6ea
xor ecx, ecx
jmp 0x50d6b0
mov eax, dword [esi + 0x9c]
mov edx, dword [esp + 0xd4]
movq xmm0, qword [eax + ecx]
add eax, ecx
add edx, ecx
movq qword [edx], xmm0
movq xmm0, qword [eax + 8]
movq qword [edx + 8], xmm0
movq xmm0, qword [eax + 0x10]
inc ebx
movq qword [edx + 0x10], xmm0
add ecx, 0x18
cmp ebx, dword [esi + 0x90]
jl 0x50d6b0
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
lea ecx, [eax*8]
mov eax, dword [esp + 0x50]
push ecx
push edx
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
test byte [esi + 0x98], 1
je 0x50d730
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0xa8]
mov eax, dword [esp + 0x68]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x4c]
inc ecx
lea eax, [ecx - 1]
mov dword [esp + 0x44], ecx
test eax, eax
jle 0x50d77f
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd4]
movq xmm0, qword [eax + edx]
lea ebx, [eax + edx]
mov eax, dword [esi + 0x9c]
add eax, edx
movq qword [eax], xmm0
movq xmm0, qword [ebx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ebx + 0x10]
add edx, 0x18
sub dword [esp + 0x1c], 1
movq qword [eax + 0x10], xmm0
jne 0x50d746
mov eax, dword [esi + 0x9c]
movq xmm0, qword [esp + 0x74]
lea edx, [ecx + ecx*2]
lea eax, [eax + edx*8 - 0x18]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x7c]
movq qword [eax + 8], xmm0
movq xmm0, qword [esp + 0x84]
movq qword [eax + 0x10], xmm0
test byte [esi + 0x98], 1
je 0x50d871
xor eax, eax
cmp ecx, 4
jl 0x50d855
mov ebx, dword [esp + 0x68]
mov edx, 8
sub edx, ebx
mov dword [esp + 0x38], edx
add ecx, 0xfffffffc
mov edx, 0xfffffff0
sub edx, ebx
shr ecx, 2
inc ecx
lea eax, [ebx + 0x10]
lea ebx, [ecx*4]
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x64], edx
mov dword [esp + 0x40], ebx
jmp 0x50d804
mov edx, dword [esp + 0x64]
mov ebx, dword [esi + 0xa8]
fld qword [eax - 0x10]
add edx, eax
fstp qword [edx + ebx]
mov ebx, dword [esi + 0xa8]
fld qword [eax - 8]
add eax, 0x20
fstp qword [edx + ebx + 8]
mov edx, dword [esi + 0xa8]
fld qword [eax - 0x20]
mov ebx, dword [esp + 0x1c]
add dword [esp + 0x1c], 0x20
fstp qword [ebx + edx]
mov edx, dword [esi + 0xa8]
fld qword [eax - 0x18]
add edx, dword [esp + 0x38]
sub ecx, 1
fstp qword [edx + eax - 0x20]
jne 0x50d800
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ecx
jge 0x50d871
mov edx, dword [esp + 0x68]
lea ecx, [ecx]
fld qword [edx + eax*8]
mov ebx, dword [esi + 0xa8]
fstp qword [ebx + eax*8]
inc eax
cmp eax, ecx
jl 0x50d860
xor eax, eax
mov dword [esi + 0x90], ecx
test ecx, ecx
jle 0x50d892
mov ecx, dword [esp + 0x50]
fld qword [ecx + eax*8]
mov edx, dword [edi]
fstp qword [edx + eax*8]
inc eax
cmp eax, dword [esi + 0x90]
jl 0x50d881
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
add ecx, eax
cmp eax, ecx
jge 0x50d8c1
mov edx, dword [edi]
movsd xmm0, qword [ebp + 0x14]
movsd qword [edx + eax*8], xmm0
mov ecx, dword [esi + 0x94]
add ecx, dword [esi + 0x90]
inc eax
cmp eax, ecx
jl 0x50d8a4
movsd xmm0, qword [ebp + 0x14]
and dword [esi + 0x98], 0xfffffff7
movsd qword [esi + 0x18], xmm0
movsd xmm0, qword [esp + 0x2c]
subsd xmm0, qword [0x5ff780]
comisd xmm0, xmmword [esi + 0x10]
jbe 0x50d8fb
mov edx, dword [esi]
mov edx, dword [edx + 0x64]
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
call edx
fstp qword [esi + 0x10]
mov eax, dword [esi + 0x90]
push eax
lea ecx, [esi + 0x9c]
call fcn.00412980
test byte [esi + 0x98], 1
je 0x50d928
mov ecx, dword [esi + 0x90]
push ecx
lea ecx, [esi + 0xa8]
call fcn.00412880
mov edx, dword [esi + 0x94]
add edx, dword [esi + 0x90]
mov ecx, edi
push edx
call fcn.00412880
cmp dword [esi + 0x94], 2
mov eax, dword [esi + 0x90]
jne 0x50daa4
dec eax
mov dword [esi + 0x3c], eax
jmp 0x50daf3
addsd xmm1, xmm5
comisd xmm1, xmm0
jbe 0x50d8fb
push 0xe0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
xor edi, edi
cmp eax, edi
je 0x50da56
movq xmm0, qword [esp + 0x74]
movq qword [esp + 0xfc], xmm0
movq xmm0, qword [esp + 0x7c]
mov edx, vtable.CGeom_Point.0
movq qword [esp + 0x104], xmm0
movq xmm0, qword [esp + 0x84]
mov ecx, 0xa
mov byte [esp + 0xf0], 1
mov dword [esp + 0xf4], edi
mov dword [esp + 0xec], edx
movq qword [esp + 0x10c], xmm0
mov dword [esp + 0xf8], ecx
movq xmm0, qword [esp + 0xbc]
movq qword [esp + 0x124], xmm0
movq xmm0, qword [esp + 0xc4]
movq qword [esp + 0x12c], xmm0
movq xmm0, qword [esp + 0xcc]
mov byte [esp + 0x118], 1
mov dword [esp + 0x11c], edi
mov dword [esp + 0x114], edx
movq qword [esp + 0x134], xmm0
mov dword [esp + 0x120], ecx
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0x118]
mov ebx, 3
push edx
mov ecx, eax
mov dword [esp + 0x1c8], 5
mov dword [esp + 0x6c], ebx
call fcn.004eddd0
mov edi, eax
jmp 0x50da5a
mov ebx, dword [esp + 0x64]
mov eax, vtable.CGeom_Abs.0
test bl, 2
je 0x50da6e
and ebx, 0xfffffffd
mov dword [esp + 0x114], eax
mov dword [esp + 0x1c0], 2
test bl, 1
je 0x50da85
mov dword [esp + 0xec], eax
push edi
mov ecx, esi
call fcn.00503030
mov byte [esi + 4], al
test edi, edi
je 0x50db1d
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
jmp 0x50db1d
test byte [esi + 0x98], 1
je 0x50dab5
lea ecx, [eax + eax*4]
mov dword [esi + 0x3c], ecx
jmp 0x50daf3
cmp eax, 0x96
jle 0x50dac5
mov dword [esi + 0x3c], 0x96
jmp 0x50daf3
cmp eax, 0x19
jle 0x50dad0
dec eax
mov dword [esi + 0x3c], eax
jmp 0x50daf3
cmp eax, 0xa
jle 0x50dadb
lea edx, [eax + eax - 2]
jmp 0x50daf0
cmp eax, 6
jle 0x50dae9
lea eax, [eax + eax*2 - 3]
mov dword [esi + 0x3c], eax
jmp 0x50daf3
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx - 6]
mov dword [esi + 0x3c], edx
fld qword [0x5ff758]
sub esp, 8
lea eax, [esp + 0xac]
fstp qword [esp]
push eax
lea ecx, [esp + 0x98]
call fcn.004a8800
mov ecx, esi
mov byte [esi + 0x38], al
call fcn.004fbd80
mov eax, dword [esp + 0x50]
mov esi, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x50db31
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x68]
test eax, eax
je 0x50db3f
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x50db50
push eax
call esi
add esp, 4
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18