Function at 0x4b6f70
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x57556f
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
push ebx
push esi
push edi
mov eax, dword [0x59ad00]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x44], ebx
xor edi, edi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x1c0], edi
cmp eax, 0x31
jne 0x4b7023
mov esi, dword [ecx + 0x54]
push esi
lea ecx, [esp + 0x2c]
call fcn.0045cdc0
test esi, esi
jle 0x4b70b0
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebp + 8]
add ebx, dword [esp + 0x28]
push edi
lea edx, [esp + 0x98]
push edx
call fcn.004c1410
movq xmm0, qword [eax]
add dword [esp + 0x24], 0x10
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
inc edi
movq qword [ebx + 8], xmm0
cmp edi, esi
jl 0x4b6fe5
mov ebx, dword [esp + 0x44]
jmp 0x4b70b0
cmp eax, 0x13
jne 0x4b70c7
mov ecx, dword [ecx + 0x54]
cmp ecx, 4
jle 0x4b70c7
mov esi, ecx
push esi
lea ecx, [esp + 0x2c]
call fcn.0045cdc0
xor ecx, ecx
cmp esi, edi
jle 0x4b70b0
xor edx, edx
lea esp, [esp]
mov eax, dword [ebp + 8]
cmp ecx, dword [eax + 0x54]
jge 0x4b7063
test ecx, ecx
js 0x4b7063
mov eax, dword [eax + 0x48]
add eax, edi
jmp 0x4b7066
mov eax, dword [eax + 0x48]
movq xmm2, qword [eax + 0x10]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0x7c], xmm2
movq xmm2, qword [eax + 0x18]
movq qword [esp + 0x84], xmm2
movq xmm2, qword [eax + 0x20]
mov eax, dword [esp + 0x28]
movq qword [eax + edx], xmm0
movq qword [eax + edx + 8], xmm1
inc ecx
add edi, 0x28
add edx, 0x10
movq qword [esp + 0x8c], xmm2
cmp ecx, esi
jl 0x4b7050
cmp esi, 2
jge 0x4b70e1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4b70c7
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xorps xmm0, xmm0
mov ecx, dword [esp + 0x28]
jne 0x4b7259
sub esp, 8
movsd qword [esp], xmm0
push ecx
lea edx, [esp + 0xa0]
push edx
mov ecx, ebx
call fcn.004a0e60
xorps xmm0, xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd qword [esp + 0x7c], xmm0
mov byte [esp + 0x70], 1
mov dword [esp + 0x74], 0
mov esi, vtable.CGeom_Point.0
mov dword [esp + 0x6c], esi
movq xmm1, qword [eax]
movq qword [esp + 0x7c], xmm1
movq xmm1, qword [eax + 8]
movq qword [esp + 0x84], xmm1
movq xmm1, qword [eax + 0x10]
mov edi, 0xa
movq qword [esp + 0x8c], xmm1
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x28]
sub esp, 8
add eax, 0x10
movsd qword [esp], xmm0
push eax
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
mov byte [esp + 0x1d0], 1
call fcn.004a0e60
xorps xmm0, xmm0
movsd qword [esp + 0xd4], xmm0
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xc4], xmm0
mov byte [esp + 0xb8], 1
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb4], esi
movq xmm0, qword [eax]
movq qword [esp + 0xc4], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xcc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xd4], xmm0
mov dword [esp + 0xc0], edi
push 0xe0
mov byte [esp + 0x1c4], 2
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x1c0], 3
test eax, eax
je 0x4b7242
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x70]
push edx
mov ecx, eax
call fcn.00495900
mov esi, eax
mov eax, vtable.CGeom_Abs.0
mov dword [esp + 0xb4], eax
mov dword [esp + 0x6c], eax
jmp 0x4b796c
mov eax, vtable.CGeom_Abs.0
xor esi, esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x6c], eax
jmp 0x4b796c
lea edi, [esi - 1]
movsd qword [esp + 0x3c], xmm0
movsd qword [esp + 0x34], xmm0
mov eax, edi
add eax, eax
movsd xmm0, qword [ecx + eax*8]
subsd xmm0, qword [ecx]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, qword [ecx + 8]
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], edi
movsd qword [esp + 0x3c], xmm0
call fcn.00472ec0
fld qword [0x57e398]
fcompi st(1)
fstp st(0)
jbe 0x4b72c3
cmp esi, 3
jne 0x4b72be
lea eax, [esp + 0x28]
push eax
push esi
mov ecx, ebx
call fcn.004b4a10
mov esi, eax
jmp 0x4b796c
dec edi
mov dword [esp + 0x24], edi
mov eax, edi
cdq
sub eax, edx
sar eax, 1
shl eax, 4
mov edi, eax
mov eax, dword [esp + 0x28]
movsd xmm0, qword [eax + edi]
movsd xmm1, qword [eax + edi + 8]
subsd xmm0, qword [eax]
subsd xmm1, qword [eax + 8]
lea ecx, [esp + 0x34]
movq qword [esp + 0x34], xmm0
movq qword [esp + 0x3c], xmm1
call fcn.004733c0
fld qword [0x57e370]
fcompi st(1)
fstp st(0)
jbe 0x4b731c
lea ecx, [esp + 0x28]
push ecx
push esi
mov ecx, ebx
call fcn.004b4a10
mov esi, eax
jmp 0x4b796c
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x24]
shl ecx, 4
movsd qword [esp + 0x64], xmm0
movsd qword [esp + 0x5c], xmm0
movsd xmm0, qword [eax + ecx]
subsd xmm0, qword [eax + edi]
movsd qword [esp + 0x5c], xmm0
movsd xmm0, qword [eax + ecx + 8]
subsd xmm0, qword [eax + edi + 8]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x5c]
movsd qword [esp + 0x64], xmm0
call fcn.00472ec0
fld qword [0x57e370]
fcompi st(1)
fstp st(0)
jbe 0x4b7385
lea edx, [esp + 0x28]
push edx
push esi
mov ecx, ebx
call fcn.004b4a10
mov esi, eax
jmp 0x4b796c
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x38]
call fcn.00472e60
fstp qword [esp + 0xac]
movsd xmm0, qword [0x57e370]
movsd xmm1, qword [esp + 0xac]
movsd xmm2, qword [0x57ca30]
andpd xmm1, xmm2
comisd xmm0, xmm1
movsd qword [esp + 0xdc], xmm0
jbe 0x4b75bf
mov edi, 1
cmp esi, edi
jle 0x4b7447
mov ecx, 0x10
mov dword [esp + 0x24], ecx
jmp 0x4b73e4
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
movsd xmm0, qword [ecx + eax]
movsd xmm1, qword [ecx + eax + 8]
subsd xmm0, qword [eax]
subsd xmm1, qword [eax + 8]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x38]
movq qword [esp + 0x60], xmm0
movq qword [esp + 0x68], xmm1
call fcn.00472e60
fstp qword [esp + 0xac]
movsd xmm0, qword [esp + 0xac]
andpd xmm0, xmmword [0x57ca30]
comisd xmm0, xmmword [esp + 0xdc]
ja 0x4b7371
add dword [esp + 0x24], 0x10
inc edi
cmp edi, esi
jl 0x4b73e0
xorps xmm0, xmm0
mov eax, dword [esp + 0x28]
sub esp, 8
movsd qword [esp], xmm0
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, ebx
call fcn.004a0e60
xorps xmm0, xmm0
movsd qword [esp + 0xd4], xmm0
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xc4], xmm0
mov byte [esp + 0xb8], 1
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb4], vtable.CGeom_Point.0
movq xmm1, qword [eax]
movq qword [esp + 0xc4], xmm1
movq xmm1, qword [eax + 8]
movq qword [esp + 0xcc], xmm1
movq xmm1, qword [eax + 0x10]
mov edi, 0xa
movq qword [esp + 0xd4], xmm1
mov dword [esp + 0xc0], edi
mov edx, dword [esp + 0x28]
sub esp, 8
add esi, esi
lea esi, [edx + esi*8 - 0x10]
movsd qword [esp], xmm0
push esi
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
mov byte [esp + 0x1d0], 4
call fcn.004a0e60
xorps xmm0, xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd qword [esp + 0x7c], xmm0
mov byte [esp + 0x70], 1
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], vtable.CGeom_Point.0
movq xmm0, qword [eax]
movq qword [esp + 0x7c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x84], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x8c], xmm0
mov dword [esp + 0x78], edi
push 0xe0
mov byte [esp + 0x1c4], 5
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x1c0], 6
test eax, eax
je 0x4b75a8
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0xb8]
push edx
mov ecx, eax
call fcn.00495900
mov esi, eax
mov eax, vtable.CGeom_Abs.0
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb4], eax
jmp 0x4b796c
mov eax, vtable.CGeom_Abs.0
xor esi, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb4], eax
jmp 0x4b796c
cmp esi, 8
jge 0x4b75e1
lea eax, [esp + 0x28]
push eax
push esi
mov ecx, ebx
call fcn.004b4a10
lea ecx, [esp + 0x28]
mov esi, eax
call fcn.004b1260
jmp 0x4b797e
mov eax, dword [esp + 0x28]
movsd xmm3, qword [0x57b6c0]
movsd xmm1, qword [eax + edi + 8]
addsd xmm1, qword [eax + 8]
mov ecx, dword [esp + 0x44]
movsd xmm2, qword [eax + edi]
addsd xmm2, qword [eax + ecx]
movsd xmm0, qword [eax]
addsd xmm0, qword [eax + edi]
movsd xmm5, qword [esp + 0x34]
movsd xmm6, qword [esp + 0x64]
mulsd xmm1, xmm3
mulsd xmm0, xmm3
movapd xmm4, xmm1
movsd xmm1, qword [eax + ecx + 8]
addsd xmm1, qword [eax + edi + 8]
mulsd xmm2, xmm3
mulsd xmm1, xmm3
movsd xmm3, qword [esp + 0x5c]
mulsd xmm0, xmm5
movapd xmm7, xmm2
movsd xmm2, qword [esp + 0x3c]
mulsd xmm4, xmm2
addsd xmm0, xmm4
xorpd xmm0, xmmword [0x57ca20]
mulsd xmm7, xmm3
mulsd xmm1, xmm6
addsd xmm1, xmm7
xorpd xmm1, xmmword [0x57ca20]
movapd xmm7, xmm2
mulsd xmm7, xmm3
mulsd xmm3, xmm0
movapd xmm4, xmm6
mulsd xmm6, xmm0
xorps xmm0, xmm0
mulsd xmm4, xmm5
mulsd xmm2, xmm1
movsd qword [esp + 0x4c], xmm0
movsd qword [esp + 0x44], xmm0
subsd xmm4, xmm7
mulsd xmm5, xmm1
subsd xmm2, xmm6
divsd xmm2, xmm4
subsd xmm3, xmm5
divsd xmm3, xmm4
movsd qword [esp + 0xe4], xmm2
movsd qword [esp + 0xec], xmm3
movsd xmm0, qword [eax]
subsd xmm0, xmm2
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [eax + 8]
subsd xmm0, xmm3
lea ecx, [esp + 0x44]
movsd qword [esp + 0x4c], xmm0
call fcn.00472ec0
fstp qword [esp + 0x44]
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0x94], xmm0
movsd xmm0, qword [eax + edi]
subsd xmm0, qword [eax]
movsd qword [esp + 0x94], xmm0
movsd xmm0, qword [eax + edi + 8]
subsd xmm0, qword [eax + 8]
lea ecx, [esp + 0x94]
movsd qword [esp + 0x9c], xmm0
call fcn.00472ec0
fdivr qword [esp + 0x44]
fld qword [0x57c140]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4b7759
lea ecx, [esp + 0x28]
push ecx
jmp 0x4b75c9
mov edi, 2
cmp esi, edi
jle 0x4b77ec
mov eax, 0x20
mov dword [esp + 0x24], eax
jmp 0x4b7775
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0x94], xmm0
movsd xmm0, qword [eax + ecx]
subsd xmm0, qword [esp + 0xe4]
movsd qword [esp + 0x94], xmm0
movsd xmm0, qword [eax + ecx + 8]
subsd xmm0, qword [esp + 0xec]
lea ecx, [esp + 0x94]
movsd qword [esp + 0x9c], xmm0
call fcn.00472ec0
fsub qword [esp + 0x44]
fabs
fld qword [esp + 0xdc]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x4b7946
add dword [esp + 0x24], 0x10
inc edi
cmp edi, esi
jl 0x4b7771
xorps xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, ebx
call fcn.004a0e60
push eax
lea ecx, [esp + 0x160]
call fcn.0045c440
xorps xmm0, xmm0
mov edx, dword [esp + 0x28]
sub esp, 8
movsd qword [esp], xmm0
push edx
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
mov byte [esp + 0x1d0], 7
call fcn.004a0e60
push eax
lea ecx, [esp + 0x138]
call fcn.0045c440
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
sub esp, 8
add esi, esi
lea esi, [ecx + esi*8 - 0x10]
movsd qword [esp], xmm0
push esi
lea edx, [esp + 0xa0]
push edx
mov ecx, ebx
mov byte [esp + 0x1d0], 8
call fcn.004a0e60
push eax
lea ecx, [esp + 0x110]
call fcn.0045c440
xorps xmm3, xmm3
comisd xmm3, xmmword [esp + 0xac]
movq xmm0, qword [ebx + 0x130]
movq xmm1, qword [ebx + 0x138]
movq xmm2, qword [ebx + 0x140]
mov byte [esp + 0x1c0], 9
movsd qword [esp + 0xf4], xmm0
movsd qword [esp + 0xfc], xmm1
movsd qword [esp + 0x104], xmm2
jbe 0x4b78fe
movsd xmm3, qword [0x57ca20]
xorpd xmm0, xmm3
xorpd xmm1, xmm3
xorpd xmm2, xmm3
movsd qword [esp + 0xf4], xmm0
movsd qword [esp + 0xfc], xmm1
movsd qword [esp + 0x104], xmm2
push 0x118
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x1c0], 0xa
test eax, eax
je 0x4b7950
lea ecx, [esp + 0xf4]
push ecx
lea edx, [esp + 0x110]
push edx
lea ecx, [esp + 0x13c]
push ecx
lea edx, [esp + 0x168]
push edx
mov ecx, eax
call fcn.004836f0
mov esi, eax
jmp 0x4b7952
lea edx, [esp + 0x28]
push edx
jmp 0x4b75c9
xor esi, esi
mov eax, vtable.CGeom_Abs.0
mov dword [esp + 0x10c], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4b797e
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4