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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f0
mov eax, dword [0x101935e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0xa8], eax
cmp dword [ebx + 0x66], 0
mov dword [ebp - 0x9c], ecx
je 0x100d1f9b
test dword [ebx + 0x4c], 0x200
lea esi, [eax + 0x44]
push 0xc
pop ecx
lea edi, [ebp - 0x1f0]
rep movsd dword es:[edi], dword [esi]
jne 0x100d1e9f
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 0x174]
mov ecx, esi
call dword [0x10151aac]
call esi
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebx + 0x66]
push dword [edi + 0xb2]
push dword [edi + 4]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov dword [ebp - 0xc4], eax
pop ecx
pop ecx
cmp esi, 2
jbe 0x100d1fd2
test dword [edi + 8], 0x1000
lea ecx, [ebx + 0xe2]
lea eax, [ebx + 0xd6]
je 0x100d1fae
mov esi, eax
lea edi, [ebp - 0x108]
mov eax, dword [ebp - 0xa8]
movsd dword es:[edi], dword [esi]
movss xmm1, dword [eax + 0x78]
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x1f0]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [ebp - 0xd0]
push eax
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x108]
movss xmm0, dword [ebp - 0x108]
lea edi, [ebp - 0xd0]
subss xmm0, xmm1
mov esi, ecx
push eax
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x108], xmm0
movss xmm0, dword [ebp - 0x104]
subss xmm0, xmm1
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x100]
subss xmm0, xmm1
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x100], xmm0
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0xd0], xmm0
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0xcc]
addss xmm1, dword [ebp - 0xc8]
movss dword [ebp - 0xcc], xmm0
movss dword [ebp - 0xc8], xmm1
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
add esp, 0x10
test al, al
jne 0x100d1fcc
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10143940
leave
ret 0xc
lea edx, [ebp - 0xfc]
push edx
lea edx, [ebp - 0x1f0]
push edx
push ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
add esp, 0x10
test al, al
je 0x100d1f9b
jmp 0x100d1fd2
mov edi, dword [ebp - 0xa8]
mov eax, dword [ebx + 0x28]
xor ecx, ecx
xor dl, dl
inc ecx
mov byte [ebp - 0x95], dl
mov byte [ebp - 0xaf], dl
cmp dword [eax + 0x2ac], 0
je 0x100d2074
mov esi, dword [eax]
push ecx
push 0
push 0x432
mov ecx, dword [esi + 0x1c]
push eax
call dword [0x10151aac]
call dword [esi + 0x1c]
mov ecx, dword [ebx + 0x28]
dec eax
neg eax
sbb al, al
mov esi, dword [ecx]
inc al
mov dword [ebp - 0xbc], eax
xor eax, eax
inc eax
push eax
push 0
push 0x431
push ecx
mov ecx, dword [esi + 0x1c]
call dword [0x10151aac]
call dword [esi + 0x1c]
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x100d206e
mov eax, dword [edi + 0xb2]
xor edx, edx
inc edx
mov ecx, dword [eax + 0x44]
mov eax, ecx
shr eax, 0x14
test dl, al
jne 0x100d206b
shr ecx, 9
test dl, cl
je 0x100d2060
cmp byte [ebp - 0xbc], 0
jne 0x100d206b
xor ecx, ecx
inc ecx
mov byte [ebp - 0xaf], cl
jmp 0x100d206e
xor ecx, ecx
inc ecx
mov dl, byte [ebp - 0x95]
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x1c]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xa4], esi
cmp eax, 5
jg 0x100d2631
cmp eax, 4
jge 0x100d2380
cmp eax, ecx
je 0x100d217b
add eax, 0xfffffffe
cmp eax, ecx
ja 0x100d3318
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x100d20df
lea ecx, [ebp - 0xfc]
push ecx
lea ecx, [ebp - 0x1c0]
push ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0xfc]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
xor ecx, ecx
inc ecx
movsd xmm0, qword [edi + 0x86]
movsd xmm1, qword [ebp - 0xec]
comisd xmm0, xmm1
jbe 0x100d2373
movsd xmm0, qword [ebp - 0xfc]
xor eax, eax
movsd xmm2, qword [ebp - 0xf4]
and dword [edi + 0x80], 0
movsd qword [edi + 0x86], xmm1
mov word [edi + 0x84], ax
mov eax, dword [ebx + 0x5c]
cvtpd2ps xmm0, xmm0
mov dword [edi + 0xae], eax
cvtpd2ps xmm2, xmm2
movss dword [edi + 0x8e], xmm0
xorps xmm0, xmm0
cvtpd2ps xmm1, xmm1
movss dword [edi + 0x92], xmm2
movss dword [edi + 0x96], xmm1
and dword [edi + 0x9a], 0
and dword [edi + 0x9e], 0
and dword [edi + 0xa2], 0
movss dword [edi + 0xa6], xmm0
movss dword [edi + 0xaa], xmm0
jmp 0x100d2379
lea eax, [ebp - 0x64]
push eax
lea eax, [ebx + 0xe2]
push eax
lea eax, [ebx + 0xd6]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov esi, dword [esi]
lea eax, [ebp - 0x40]
add esp, 0xc
mov ecx, dword [esi + 0x78]
push edi
push eax
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0xa4]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
mov bl, al
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x40]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x64]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x58]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x4c]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x64]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x34]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
lea ecx, [ebp - 0x10]
or bl, al
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp - 0x9c]
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x34]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x4c]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x10]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x40]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x58]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
push edi
or bl, al
lea ecx, [ebp - 0x34]
mov eax, dword [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x64]
push ecx
mov esi, dword [eax]
push dword [ebp - 0x9c]
push eax
mov ecx, dword [esi + 0x78]
call dword [0x10151aac]
call dword [esi + 0x78]
or al, bl
je 0x100d2373
and dword [edi + 0x80], 0
xor eax, eax
mov word [edi + 0x84], ax
lea ecx, [eax + 1]
jmp 0x100d2379
mov cl, byte [ebp - 0x95]
mov al, cl
jmp 0x100d1f9d
movss xmm0, dword [edi + 0x78]
and dword [ebp - 0xa0], 0
cmp dword [ebx + 0x66], 0
movss dword [ebp - 0xb8], xmm0
movss xmm0, dword [0x10164f74]
movss dword [ebp - 0xac], xmm0
jbe 0x100d3318
xor eax, eax
mov dword [ebp - 0xb4], eax
test dword [edi + 8], 0x1000
jne 0x100d2510
mov esi, dword [ebx + 0x62]
lea edi, [ebp - 0xd0]
add esi, eax
lea eax, [ebp - 0x84]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov esi, dword [ebp - 0x9c]
test esi, esi
je 0x100d240f
push esi
lea eax, [ebp - 0x84]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebx + 0x62]
add eax, dword [ebp - 0xb4]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, dword [ebx + 0x28]
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [eax + 0x10c]
mov eax, dword [eax + 0x1c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x3c]
mov ecx, esi
call dword [0x10151aac]
call esi
movss xmm0, dword [ebp - 0xd0]
lea edx, [ebp - 0xd0]
addss xmm0, dword [0x1015f978]
mov eax, dword [ebx + 0x28]
push edx
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [ebp - 0xcc]
addss xmm0, dword [0x1015f978]
movss dword [ebp - 0xcc], xmm0
mov eax, dword [eax + 0x10c]
mov eax, dword [eax + 0x1c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
mov ecx, esi
call dword [0x10151aac]
call esi
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x84]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, dword [ebx + 0x62]
mov esi, dword [ebp - 0xb4]
movss xmm2, dword [ebp - 0xcc]
movss xmm1, dword [ebp - 0xc8]
movss xmm0, dword [ebp - 0xd0]
subss xmm2, dword [eax + esi + 4]
subss xmm1, dword [eax + esi + 8]
subss xmm0, dword [eax + esi]
lea eax, [ebp - 0x108]
push eax
movss dword [ebp - 0x104], xmm2
movss dword [ebp - 0x100], xmm1
movss dword [ebp - 0x108], xmm0
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov edi, dword [ebp - 0xa8]
fstp dword [ebp - 0xbc]
movss xmm0, dword [ebp - 0xbc]
movss dword [ebp - 0xb8], xmm0
jmp 0x100d2516
mov esi, dword [ebp - 0xb4]
mov eax, dword [ebx + 0x62]
add eax, esi
push eax
lea eax, [ebp - 0x1f0]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
movss xmm0, dword [ebp - 0xb8]
fstp dword [ebp - 0xc0]
comiss xmm0, dword [ebp - 0xc0]
pop ecx
pop ecx
jbe 0x100d2601
movss xmm0, dword [ebp - 0xac]
comiss xmm0, dword [ebp - 0xc0]
jbe 0x100d2601
mov ecx, dword [ebx + 0x62]
mov eax, dword [ebp - 0x9c]
add ecx, esi
test eax, eax
je 0x100d2579
push ecx
lea ecx, [ebp - 0x1a0]
push ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
jmp 0x100d258a
mov esi, ecx
lea edi, [ebp - 0x160]
lea eax, [ebp - 0x160]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [ebp - 0x17c]
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
push 0xd
inc ecx
movsd dword es:[edi], dword [esi]
push ecx
lea ecx, [ebp - 0x94]
push ecx
movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x17c]
push ecx
push eax
movsd dword es:[edi], dword [esi]
mov esi, dword [eax]
mov ecx, dword [esi + 0x40]
call dword [0x10151aac]
call dword [esi + 0x40]
mov edi, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa0]
mov dl, byte [ebp - 0x95]
test eax, 0x4000
jne 0x100d260d
movss xmm0, dword [ebp - 0xc0]
xor eax, eax
inc eax
mov dword [edi + 0x80], ecx
or dl, al
mov word [edi + 0x84], ax
mov byte [ebp - 0x95], dl
movss dword [ebp - 0xac], xmm0
jmp 0x100d260d
mov ecx, dword [ebp - 0xa0]
mov dl, byte [ebp - 0x95]
mov eax, dword [ebp - 0xb4]
inc ecx
add eax, 0xc
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xb4], eax
cmp ecx, dword [ebx + 0x66]
jb 0x100d23b6
jmp 0x100d3310
cmp eax, 7
jle 0x100d31ec
cmp eax, 0xf
jg 0x100d3318
cmp dword [ebx + 0x122], 0
je 0x100d31d4
mov esi, dword [ebp - 0x9c]
test esi, esi
je 0x100d2668
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov byte [ebp - 0xad], al
jmp 0x100d266f
mov byte [ebp - 0xad], 0
cmp dword [edi + 0xb6], 0
jne 0x100d268f
push dword [edi + 0xb2]
mov ecx, ebx
call fcn.100d37d4
test al, al
jne 0x100d268f
and dword [ebp - 8], 0
jmp 0x100d2695
xor eax, eax
inc eax
mov dword [ebp - 8], eax
movss xmm0, dword [edi + 0x78]
and dword [ebp - 0xdc], 0
cmp dword [ebx + 0x122], 0
mulss xmm0, xmm0
movss dword [ebp - 0xd4], xmm0
jbe 0x100d31d4
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], ecx
jmp 0x100d26d2
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebx + 0x102]
add eax, ecx
cmp dword [ebx + 0x10a], 0
mov dword [ebp - 0xa0], eax
mov ecx, dword [eax]
mov eax, dword [ebx + 0x9e]
mov dword [ebp - 0xac], ecx
je 0x100d27a4
mov eax, dword [ebx + 0x10a]
mov esi, dword [ebx + 0x9e]
movzx ecx, word [edx + eax]
mov eax, dword [ebp - 0xac]
mov eax, dword [esi + eax*4]
imul eax, dword [eax + ecx*4], 0xc
add eax, dword [ebx + 0x62]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
mov eax, dword [ebx + 0x10a]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x50], xmm0
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x48], xmm0
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x40], xmm0
movzx ecx, word [edx + eax + 2]
mov eax, dword [ebp - 0xac]
mov eax, dword [esi + eax*4]
imul eax, dword [eax + ecx*4], 0xc
add eax, dword [ebx + 0x62]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
mov eax, dword [ebx + 0x10a]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x38], xmm0
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x30], xmm0
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x28], xmm0
movzx ecx, word [edx + eax + 4]
mov edx, esi
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0x9c]
mov eax, dword [edx + eax*4]
imul eax, dword [eax + ecx*4], 0xc
jmp 0x100d2810
mov eax, dword [eax + ecx*4]
mov edx, dword [ebx + 0x9e]
imul eax, dword [eax], 0xc
add eax, dword [ebx + 0x62]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x50], xmm0
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x48], xmm0
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x40], xmm0
mov eax, dword [edx + ecx*4]
imul eax, dword [eax + 4], 0xc
add eax, dword [ebx + 0x62]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x38], xmm0
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x30], xmm0
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x28], xmm0
mov eax, dword [edx + ecx*4]
imul eax, dword [eax + 8], 0xc
add eax, dword [ebx + 0x62]
cmp byte [ebp - 0xad], 0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x18], xmm0
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x10], xmm0
je 0x100d2875
push 6
pop ecx
lea esi, [ebp - 0x50]
lea edi, [ebp - 0x1c0]
rep movsd dword es:[edi], dword [esi]
push 6
pop ecx
lea esi, [ebp - 0x20]
lea edi, [ebp - 0x50]
rep movsd dword es:[edi], dword [esi]
push 6
pop ecx
lea esi, [ebp - 0x1c0]
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x9c]
test dword [edi + 8], 0x1000
je 0x100d2d34
movss xmm0, dword [edi + 0x78]
lea eax, [ebp - 0x154]
push eax
push ecx
movss dword [esp], xmm0
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x1f0]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
movss xmm1, dword [ebp - 0x154]
add esp, 0x14
test al, al
jne 0x100d28cb
ucomiss xmm1, dword [0x10155c28]
lahf
test ah, 0x44
jnp 0x100d319d
comiss xmm1, dword [ebp - 0xd4]
ja 0x100d319d
test al, al
jne 0x100d28e9
comiss xmm1, dword [edi + 0xba]
ja 0x100d319d
movss xmm0, dword [edi + 0xba]
comiss xmm0, xmm1
mov byte [ebp - 0xae], 0
jbe 0x100d290e
xor eax, eax
movss dword [edi + 0xba], xmm1
inc eax
mov byte [ebp - 0xae], al
test esi, esi
je 0x100d293f
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x150]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0xfc]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x9c]
movsd xmm0, qword [edi + 0x14]
lea eax, [ebp - 0x150]
subsd xmm0, qword [ebp - 0xfc]
push eax
movsd qword [ebp - 0x150], xmm0
movsd xmm0, qword [edi + 0x1c]
subsd xmm0, qword [ebp - 0xf4]
movsd qword [ebp - 0x148], xmm0
movsd xmm0, qword [edi + 0x24]
subsd xmm0, qword [ebp - 0xec]
movsd qword [ebp - 0x140], xmm0
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
cmp byte [ebp - 0xae], 0
fstp dword [ebp - 0xac]
movss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0xe0], xmm0
jne 0x100d29be
cvtps2pd xmm1, xmm0
movsd xmm0, qword [edi + 0x86]
comisd xmm0, xmm1
jbe 0x100d319d
movsd xmm0, qword [ebp - 0xfc]
xor eax, eax
movsd xmm2, qword [ebp - 0xf4]
inc eax
movsd xmm1, qword [ebp - 0xec]
or byte [ebp - 0x95], al
mov eax, dword [ebp - 0xdc]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
movss dword [edi + 0x8e], xmm0
movss dword [edi + 0x92], xmm2
cvtpd2ps xmm1, xmm1
movss dword [edi + 0x96], xmm1
mov dword [edi + 0x80], eax
mov eax, 0x12b
mov word [edi + 0x84], ax
test esi, esi
je 0x100d2a80
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x194]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x50]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x9c]
rep movsd dword es:[edi], dword [esi]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x38]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x9c]
rep movsd dword es:[edi], dword [esi]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x50]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
movsd xmm0, qword [ebp - 0x150]
lea eax, [ebp - 0xb8]
movsd xmm2, qword [ebp - 0x148]
add esp, 0x10
movsd xmm1, qword [ebp - 0x140]
xor ecx, ecx
cvtpd2ps xmm0, xmm0
push eax
lea eax, [ebp - 0xb4]
push eax
push ecx
cvtpd2ps xmm2, xmm2
push ebx
cvtpd2ps xmm1, xmm1
movss dword [edi + 0x9a], xmm0
movss dword [edi + 0x9e], xmm2
movss dword [edi + 0xa2], xmm1
mov esi, dword [ebx]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb8], ecx
mov esi, dword [esi + 0x19c]
mov ecx, esi
call dword [0x10151aac]
call esi
mov eax, dword [ebp - 0xa0]
mov ecx, ebx
push dword [eax]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0xac], eax
mov dword [edi + 0xae], eax
test esi, esi
je 0x100d2d1c
mov edx, dword [ebp - 0xb8]
test edx, edx
je 0x100d2d1c
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebx + 0x10a]
mov eax, dword [eax]
test ecx, ecx
je 0x100d2bdc
mov edx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb4]
mov edi, dword [edx]
movzx ecx, word [esi + ecx]
mov edx, dword [ebp - 0xb8]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x120], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 0x10a]
movzx ecx, word [esi + eax + 2]
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0xa0]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x138], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x134], eax
mov eax, dword [ebx + 0x10a]
movzx ecx, word [esi + eax + 4]
mov esi, dword [edi]
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xa8]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + ecx*4]
jmp 0x100d2c23
mov eax, dword [esi + eax*4]
mov ecx, dword [eax]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x120], eax
mov eax, dword [edx + ecx*8 + 4]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x11c], eax
mov eax, dword [ecx]
mov eax, dword [esi + eax*4]
mov ecx, dword [eax + 4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x138], eax
mov eax, dword [edx + ecx*8 + 4]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x134], eax
mov eax, dword [ecx]
mov eax, dword [esi + eax*4]
mov ecx, dword [eax + 8]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x128], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xac]
test eax, eax
je 0x100d2ccd
mov esi, dword [eax]
lea ecx, [ebp - 0x1a8]
push 0
push ecx
lea ecx, [ebp - 0x120]
mov esi, dword [esi + 0x98]
push ecx
push eax
mov ecx, esi
call dword [0x10151aac]
call esi
mov eax, dword [edi + 0xae]
lea ecx, [ebp - 0x90]
push 0
push ecx
lea ecx, [ebp - 0x138]
mov esi, dword [eax]
push ecx
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151aac]
call esi
mov eax, dword [edi + 0xae]
lea ecx, [ebp - 0x19c]
push 0
push ecx
lea ecx, [ebp - 0x128]
mov esi, dword [eax]
push ecx
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151aac]
call esi
lea eax, [ebp - 0x1a8]
lea ecx, [ebp - 0x90]
lea edx, [ebp - 0x19c]
jmp 0x100d2cdf
lea eax, [ebp - 0x120]
lea ecx, [ebp - 0x138]
lea edx, [ebp - 0x128]
lea esi, [ebp - 0x170]
push esi
push edx
push ecx
push eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x50]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, dword [ebp - 0x170]
add esp, 0x20
mov dword [edi + 0xa6], eax
mov eax, dword [ebp - 0x16c]
mov dword [edi + 0xaa], eax
movss xmm0, dword [ebp - 0xe0]
cvtps2pd xmm0, xmm0
movsd qword [edi + 0x86], xmm0
jmp 0x100d319d
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x1f0]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
add esp, 0xc
test al, al
je 0x100d319d
test esi, esi
je 0x100d2d87
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x194]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0xfc]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x9c]
movsd xmm0, qword [edi + 0x14]
lea eax, [ebp - 0x150]
subsd xmm0, qword [ebp - 0xfc]
push eax
movsd qword [ebp - 0x150], xmm0
movsd xmm0, qword [edi + 0x1c]
subsd xmm0, qword [ebp - 0xf4]
movsd qword [ebp - 0x148], xmm0
movsd xmm0, qword [edi + 0x24]
subsd xmm0, qword [ebp - 0xec]
movsd qword [ebp - 0x140], xmm0
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
cmp byte [ebp - 0xaf], 0
fstp qword [ebp - 0xe4]
je 0x100d2e34
movsd xmm0, qword [ebp - 0xfc]
lea eax, [ebp - 0x160]
cvtpd2ps xmm0, xmm0
mov ecx, dword [ebx + 0x28]
push eax
movss dword [ebp - 0x160], xmm0
movsd xmm0, qword [ebp - 0xf4]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x15c], xmm0
movsd xmm0, qword [ebp - 0xec]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x158], xmm0
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
test al, al
je 0x100d319d
movsd xmm0, qword [edi + 0x86]
movsd xmm1, qword [ebp - 0xe4]
comisd xmm0, xmm1
jbe 0x100d319d
movsd xmm0, qword [ebp - 0xfc]
xor eax, eax
movsd xmm2, qword [ebp - 0xf4]
inc eax
or byte [ebp - 0x95], al
mov eax, dword [ebp - 0xdc]
movsd qword [edi + 0x86], xmm1
movsd xmm1, qword [ebp - 0xec]
mov dword [edi + 0x80], eax
mov eax, 0x12b
mov word [edi + 0x84], ax
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
movss dword [edi + 0x8e], xmm0
movss dword [edi + 0x92], xmm2
cvtpd2ps xmm1, xmm1
movss dword [edi + 0x96], xmm1
test esi, esi
je 0x100d2f18
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x194]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x50]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x9c]
rep movsd dword es:[edi], dword [esi]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x38]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x9c]
rep movsd dword es:[edi], dword [esi]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
push 6
pop ecx
mov esi, eax
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x50]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
movsd xmm0, qword [ebp - 0x150]
add esp, 0x10
movsd xmm2, qword [ebp - 0x148]
mov ecx, ebx
movsd xmm1, qword [ebp - 0x140]
mov eax, dword [ebp - 0xa0]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm1, xmm1
movss dword [edi + 0x9a], xmm0
movss dword [edi + 0x9e], xmm2
movss dword [edi + 0xa2], xmm1
push dword [eax]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov dword [edi + 0xae], eax
xor ecx, ecx
mov esi, dword [ebx]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xd8], ecx
push eax
mov esi, dword [esi + 0x19c]
push ecx
mov dword [ebp - 0xc4], ecx
mov ecx, esi
push ebx
call dword [0x10151aac]
call esi
mov esi, dword [ebp - 0xd8]
test esi, esi
je 0x100d319d
mov edx, dword [ebp - 0xc4]
test edx, edx
je 0x100d319d
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
mov ecx, dword [esi + eax*4]
test ecx, ecx
je 0x100d319d
mov eax, dword [ebx + 0x10a]
test eax, eax
je 0x100d3064
mov esi, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xa0]
movzx eax, word [esi + eax]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x130], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebx + 0x10a]
movzx ecx, word [esi + eax + 2]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x110], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0x10a]
movzx ecx, word [esi + eax + 4]
mov esi, edi
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xa8]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + ecx*4]
jmp 0x100d30a4
mov ecx, dword [ecx]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x130], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [esi + eax*4]
mov ecx, dword [eax + 4]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x110], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [esi + eax*4]
mov ecx, dword [eax + 8]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x118], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x114], eax
mov eax, dword [edi + 0xae]
test eax, eax
je 0x100d314e
mov esi, dword [eax]
lea ecx, [ebp - 0x178]
push 0
push ecx
lea ecx, [ebp - 0x130]
mov esi, dword [esi + 0x98]
push ecx
push eax
mov ecx, esi
call dword [0x10151aac]
call esi
mov eax, dword [edi + 0xae]
lea ecx, [ebp - 0x104]
push 0
push ecx
lea ecx, [ebp - 0x110]
mov esi, dword [eax]
push ecx
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151aac]
call esi
mov eax, dword [edi + 0xae]
lea ecx, [ebp - 0xcc]
push 0
push ecx
lea ecx, [ebp - 0x118]
mov esi, dword [eax]
push ecx
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151aac]
call esi
lea eax, [ebp - 0x178]
lea ecx, [ebp - 0x104]
lea edx, [ebp - 0xcc]
jmp 0x100d3160
lea eax, [ebp - 0x130]
lea ecx, [ebp - 0x110]
lea edx, [ebp - 0x118]
lea esi, [ebp - 0x168]
push esi
push edx
push ecx
push eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x50]
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, dword [ebp - 0x168]
add esp, 0x20
mov dword [edi + 0xa6], eax
mov eax, dword [ebp - 0x164]
mov dword [edi + 0xaa], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xbc]
inc eax
mov edx, dword [ebp - 0xc0]
add ecx, 0x11
add edx, 6
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xc0], edx
cmp eax, dword [ebx + 0x122]
jb 0x100d26cc
cmp dword [ebx + 0xbe], 0
jne 0x100d330a
mov al, byte [ebp - 0x95]
jmp 0x100d1f9d
and dword [ebp - 0xbc], 0
cmp dword [ebx + 0x12a], 0
jbe 0x100d3318
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebx + 0x11a]
mov eax, dword [ebx + 0x102]
add edx, ecx
mov dword [ebp - 0xd4], edx
imul ecx, dword [edx], 0x11
mov esi, dword [edx + 8]
mov eax, dword [ecx + eax]
mov ecx, dword [ebx + 0x10a]
mov dword [ebp - 0xe0], eax
test ecx, ecx
je 0x100d3271
imul edx, dword [edx], 6
add edx, ecx
mov ecx, eax
mov eax, dword [ebx + 0x9e]
mov ecx, dword [eax + ecx*4]
mov eax, esi
and eax, 3
shr esi, 2
and esi, 3
movzx eax, word [edx + eax*2]
imul eax, dword [ecx + eax*4], 0xc
add eax, dword [ebx + 0x62]
mov dword [ebp - 0xe0], eax
movzx eax, word [edx + esi*2]
imul ecx, dword [ecx + eax*4], 0xc
mov eax, dword [ebp - 0xe0]
jmp 0x100d3290
mov ecx, dword [ebx + 0x9e]
mov ecx, dword [ecx + eax*4]
mov eax, esi
and eax, 3
shr esi, 2
and esi, 3
imul eax, dword [ecx + eax*4], 0xc
add eax, dword [ebx + 0x62]
imul ecx, dword [ecx + esi*4], 0xc
mov edx, dword [ebp - 0xa4]
add ecx, dword [ebx + 0x62]
push edi
push ecx
mov esi, dword [edx]
push eax
push dword [ebp - 0x9c]
mov ecx, dword [esi + 0x78]
push edx
call dword [0x10151aac]
call dword [esi + 0x78]
mov dl, byte [ebp - 0x95]
test al, al
je 0x100d32e0
xor eax, eax
inc eax
or dl, al
mov eax, dword [ebp - 0xd4]
mov byte [ebp - 0x95], dl
mov eax, dword [eax]
mov dword [edi + 0x80], eax
mov eax, 0x12b
mov word [edi + 0x84], ax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc4]
inc eax
add ecx, 0xc
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc4], ecx
cmp eax, dword [ebx + 0x12a]
jb 0x100d3208
jmp 0x100d3310
mov dl, byte [ebp - 0x95]
test dl, dl
jne 0x100d33e9
mov eax, dword [ebx + 0xbe]
test eax, eax
je 0x100d33e9
xor esi, esi
mov dword [ebp - 0xac], esi
test eax, eax
je 0x100d33e9
mov eax, dword [ebx + 0xca]
mov ecx, ebx
push esi
mov dword [ebp - 0xe0], eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
movzx eax, ax
xor edx, edx
dec eax
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xd4], eax
test eax, eax
jle 0x100d33d0
mov eax, dword [ebp - 0xe0]
push edi
mov eax, dword [eax + esi*4]
imul ecx, dword [eax + edx*4], 0xc
imul eax, dword [eax + edx*4 + 4], 0xc
mov edx, dword [ebp - 0xa4]
add ecx, dword [ebx + 0x62]
add eax, dword [ebx + 0x62]
mov esi, dword [edx]
push eax
push ecx
push dword [ebp - 0x9c]
mov ecx, dword [esi + 0x78]
push edx
call dword [0x10151aac]
call dword [esi + 0x78]
mov edx, dword [ebp - 0xb8]
test al, al
je 0x100d33bb
xor eax, eax
mov dword [edi + 0x80], edx
inc eax
or byte [ebp - 0x95], al
mov eax, 0xc9
mov word [edi + 0x84], ax
mov esi, dword [ebp - 0xac]
inc edx
mov dword [ebp - 0xb8], edx
cmp edx, dword [ebp - 0xd4]
jl 0x100d3360
inc esi
mov dword [ebp - 0xac], esi
cmp esi, dword [ebx + 0xbe]
jb 0x100d3336
mov dl, byte [ebp - 0x95]
mov al, dl
jmp 0x100d1f9d