Function at 0x1004a410
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007ad08
mov eax, dword fs:[0]
push eax
sub esp, 0x268
mov eax, dword [0x100a900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x12c], edi
movups xmm0, xmmword [edx]
mov eax, dword [eax]
movsd xmm1, qword [edx + 0xb0]
movsd xmm2, qword [edx + 0x78]
movsd xmm3, qword [edx + 0x80]
movsd xmm4, qword [edx + 0x90]
movsd xmm5, qword [edx + 0x98]
movsd xmm6, qword [edx + 0xa0]
movsd xmm7, qword [edx + 0xa8]
movsd qword [ebp - 0x19c], xmm2
movsd qword [ebp - 0x194], xmm3
movsd qword [ebp - 0x184], xmm4
movsd qword [ebp - 0x17c], xmm5
movsd qword [ebp - 0x174], xmm6
movsd qword [ebp - 0x16c], xmm7
movsd qword [ebp - 0x13c], xmm1
movsd qword [ebp - 0x164], xmm1
movups xmmword [ebp - 0x214], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [ebp - 0x204], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [ebp - 0x1f4], xmm0
movups xmm0, xmmword [edx + 0x30]
movups xmmword [ebp - 0x1e4], xmm0
movups xmm0, xmmword [edx + 0x40]
movups xmmword [ebp - 0x1d4], xmm0
movups xmm0, xmmword [edx + 0x50]
movups xmmword [ebp - 0x1c4], xmm0
movups xmm0, xmmword [edx + 0x60]
movups xmmword [ebp - 0x1b4], xmm0
movsd xmm0, qword [edx + 0x70]
movsd qword [ebp - 0x1a4], xmm0
movsd xmm0, qword [edx + 0x88]
movsd qword [ebp - 0x18c], xmm0
movsd xmm0, qword [edx + 0xb8]
movsd qword [ebp - 0x15c], xmm0
cmp eax, 1
jne 0x1004a548
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kZAxis]
jmp 0x1004a590
cmp eax, 4
jne 0x1004a555
mov ecx, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kXAxis]
jmp 0x1004a57c
cmp eax, 5
jne 0x1004a561
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kXAxis]
jmp 0x1004a590
cmp eax, 3
jne 0x1004a56d
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kYAxis]
jmp 0x1004a590
cmp eax, 2
jne 0x1004ad86
mov ecx, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kYAxis]
lea eax, [ebp - 0x154]
push eax
call fcn.10028dd0
movsd xmm1, qword [ebp - 0x13c]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [ebp + 0xc]
movsd qword [ebp - 0x134], xmm0
mov eax, dword [eax]
cmp eax, 0xf
je 0x1004aca3
cmp eax, 0x15
je 0x1004aca3
cmp eax, 0xa
je 0x1004aca3
cmp eax, 0x10
je 0x1004ac75
cmp eax, 0x16
je 0x1004ac75
cmp eax, 0x11
je 0x1004ac47
cmp eax, 0x17
je 0x1004ac47
cmp eax, 0xd
je 0x1004ac47
cmp eax, 0x12
je 0x1004ac31
cmp eax, 0x18
je 0x1004ac31
cmp eax, 0xe
je 0x1004ac31
cmp eax, 0x14
je 0x1004aae7
cmp eax, 0x1a
je 0x1004aae7
cmp eax, 0xc
je 0x1004aae7
cmp eax, 0x13
je 0x1004a958
cmp eax, 0x19
je 0x1004a958
cmp eax, 0xb
je 0x1004a958
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
mov esi, dword [sym.imp.ZwGeometry.dll_public:_bool___thiscall_ZcGeVector3d::isZeroLength_class_ZcGeTol_const__const]
lea ecx, [ebp - 0x19c]
xor edi, edi
call esi
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
test al, al
mov ecx, 1
cmovne edi, ecx
lea ecx, [ebp - 0x184]
call esi
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
test al, al
mov ecx, 1
mov eax, 0
cmovne eax, ecx
lea ecx, [ebp - 0x16c]
mov dword [ebp - 0x138], eax
call esi
mov esi, dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeVector3d___thiscall_ZcGeVector3d::crossProduct_class_ZcGeVector3d_const__]
test al, al
mov ecx, 0
mov eax, 1
cmovne ecx, eax
test edi, edi
mov edi, dword [ebp - 0x138]
mov dword [ebp - 0x130], ecx
je 0x1004a80a
test edi, edi
jne 0x1004a781
test ecx, ecx
jne 0x1004a6f7
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x184]
call esi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
jmp 0x1004a8f7
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kXAxis]
lea ecx, [ebp - 0x19c]
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [ebp - 0x184]
push eax
movq qword [ebp - 0x18c], xmm0
call dword [sym.imp.ZwGeometry.dll_public:_bool___thiscall_ZcGeVector3d::isParallelTo_class_ZcGeVector3d_const___class_ZcGeTol_const__const]
test al, al
je 0x1004a74c
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kYAxis]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
mov esi, dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeVector3d___thiscall_ZcGeVector3d::crossProduct_class_ZcGeVector3d_const__]
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x19c]
call esi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
jmp 0x1004a8c4
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kXAxis]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
test ecx, ecx
jne 0x1004a80f
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x19c]
call dword [sym.imp.ZwGeometry.dll_public:_bool___thiscall_ZcGeVector3d::isParallelTo_class_ZcGeVector3d_const___class_ZcGeTol_const__const]
test al, al
je 0x1004a7da
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kYAxis]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x19c]
call esi
mov ecx, dword [ebp - 0x130]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x19c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18c], xmm0
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kXAxis]
test edi, edi
je 0x1004a8c4
test ecx, ecx
jne 0x1004a84a
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x19c]
call esi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x174], xmm0
jmp 0x1004a8f7
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x184]
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
lea eax, [ebp - 0x19c]
push eax
movq qword [ebp - 0x174], xmm0
call dword [sym.imp.ZwGeometry.dll_public:_bool___thiscall_ZcGeVector3d::isParallelTo_class_ZcGeVector3d_const___class_ZcGeTol_const__const]
test al, al
je 0x1004a89a
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kYAxis]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x174], xmm0
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x184]
call esi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x174], xmm0
cmp dword [ebp - 0x130], 0
je 0x1004a8f7
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x184]
call esi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x16c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x15c], xmm0
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov edi, dword [ebp - 0x12c]
mov esi, eax
mov ecx, 0x20
add esp, 0x24
rep movsd dword es:[edi], dword [esi]
mov eax, 1
jmp 0x1004adbe
movsd xmm0, qword [edx + 0x88]
lea eax, [ebp - 0x274]
movsd qword [ebp - 0x144], xmm0
lea ecx, [ebp - 0x22c]
movsd xmm0, qword [edx + 0xb8]
push eax
movsd qword [ebp - 0x154], xmm2
movsd qword [ebp - 0x14c], xmm3
movsd qword [ebp - 0x22c], xmm4
movsd qword [ebp - 0x224], xmm5
movsd qword [ebp - 0x21c], xmm6
movsd qword [ebp - 0x244], xmm7
movsd qword [ebp - 0x23c], xmm1
movsd qword [ebp - 0x234], xmm0
call fcn.10028dd0
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov esi, eax
add esp, 0x24
mov eax, dword [ebp + 0x18]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
test eax, eax
je 0x1004acf4
cmp byte [eax], 0
je 0x1004acf4
mov ecx, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kZAxis]
lea eax, [ebp - 0x274]
xorps xmm0, xmm0
push eax
movsd qword [ebp - 0x144], xmm0
movsd qword [ebp - 0x234], xmm0
call fcn.10028dd0
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
mov esi, dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeVector3d____thiscall_ZcGeVector3d::normalize_class_ZcGeTol_const__]
lea ecx, [ebp - 0x154]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x21c], xmm0
call esi
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
lea ecx, [ebp - 0x244]
call esi
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x22c]
call fcn.10028dd0
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x154]
call fcn.10028dd0
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov edi, dword [ebp - 0x12c]
jmp 0x1004ace8
lea eax, [ebp - 0x184]
movsd qword [ebp - 0x22c], xmm2
push eax
lea eax, [ebp - 0x16c]
movsd qword [ebp - 0x224], xmm3
push eax
lea eax, [ebp - 0x274]
movsd qword [ebp - 0x154], xmm4
push eax
lea ecx, [ebp - 0x19c]
movsd qword [ebp - 0x14c], xmm5
movsd qword [ebp - 0x144], xmm6
movsd qword [ebp - 0x244], xmm7
movsd qword [ebp - 0x23c], xmm1
call fcn.10028dd0
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov esi, eax
add esp, 0x24
mov eax, dword [ebp + 0x18]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
test eax, eax
je 0x1004acf4
cmp byte [eax], 0
je 0x1004acf4
mov eax, dword [sym.imp.ZwGeometry.dll_class_ZcGeVector3d_const_ZcGeVector3d::kZAxis]
lea ecx, [ebp - 0x22c]
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
mov esi, dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeVector3d____thiscall_ZcGeVector3d::normalize_class_ZcGeTol_const__]
xorps xmm0, xmm0
movsd qword [ebp - 0x21c], xmm0
movsd qword [ebp - 0x234], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x154], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x144], xmm0
call esi
push dword [sym.imp.ZwGeometry.dll_class_ZcGeTol_ZcGeContext::gTol]
lea ecx, [ebp - 0x244]
call esi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov edi, dword [ebp - 0x12c]
jmp 0x1004ace8
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x184]
jmp 0x1004acb7
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x19c]
call fcn.10028dd0
push eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebp - 0x184]
call fcn.10028dd0
jmp 0x1004acb7
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x16c]
call fcn.10028dd0
push eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebp - 0x19c]
call fcn.10028dd0
jmp 0x1004acb7
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_static_class_ZcGeMatrix3d___cdecl_ZcGeMatrix3d::alignCoordSys_class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGePoint3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const___class_ZcGeVector3d_const__]
mov ecx, 0x20
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add esp, 0x24
mov ecx, dword [ebp - 0x12c]
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeVector3d___thiscall_ZcGeMatrix3d::translation_void_]
movsd xmm0, qword [ebp - 0x28]
movsd xmm1, qword [0x1008ac98]
subsd xmm0, xmm1
call fcn.10027b70
mulsd xmm0, qword [ebp - 0x25c]
movsd qword [ebp - 0x25c], xmm0
movsd xmm0, qword [ebp - 0x20]
subsd xmm0, xmm1
call fcn.10027b70
mulsd xmm0, qword [ebp - 0x254]
movsd qword [ebp - 0x254], xmm0
movsd xmm0, qword [ebp - 0x134]
subsd xmm0, xmm1
call fcn.10027b70
mulsd xmm0, qword [ebp - 0x24c]
lea eax, [ebp - 0x25c]
mov ecx, dword [ebp - 0x12c]
push eax
movsd qword [ebp - 0x24c], xmm0
call dword [sym.imp.ZwGeometry.dll_public:_class_ZcGeMatrix3d____thiscall_ZcGeMatrix3d::setTranslation_class_ZcGeVector3d_const__]
mov eax, 1
jmp 0x1004adbe
push 0x10089dec
lea ecx, [ebp - 0x28]
call fcn.10025300
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
call fcn.10024c10
cmp dword [eax + 0x14], 8
jb 0x1004adaa
mov eax, dword [eax]
push eax
call dword [sym.imp.ZwDatabase.dll_zcutPrintf]
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.10025de0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10073ea5
mov esp, ebp
pop ebp
ret 0x14