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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xa4
mov ebx, 0x43
mov edi, dword [ecx]
mov byte [0x717374], bl
mov byte [0x717376], bl
mov ebx, 0x20
mov byte [0x717370], 0x49
mov byte [0x717371], 0x4e
mov byte [0x717372], 0x44
mov byte [0x717373], 0x55
mov byte [0x717375], 0x4d
mov byte [0x717377], bl
mov byte [0x717378], bl
mov byte [0x717379], bl
mov byte [0x71737a], bl
mov byte [0x71737b], bl
movsd xmm1, qword [0x6903b0]
test edi, edi
jle 0x5a733f
mov ebx, edi
shr ebx, 1
mov dword [esp + 0x10], ebx
lea ebx, [edi + edi*4]
mov dword [esp], 0
mov dword [esp + 0xc], ebx
shl ebx, 3
mov dword [esp + 8], eax
mov dword [esp + 0x1c], ebx
movsd xmm0, qword [0x690390]
mov dword [esp + 0x74], edx
mov dword [esp + 4], ecx
mov eax, dword [esp]
lea edx, [eax + 1]
mov dword [esp], edx
cmp edi, edx
jge 0x5a6938
mov ecx, dword [esp + 0x1c]
jmp 0x5a694b
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*2]
shl edx, 4
movsd qword [edx + ecx + 0x7171e0], xmm0
lea edx, [eax + 2]
cmp edx, edi
ja 0x5a69e7
mov edx, edi
sub edx, eax
dec edx
mov dword [esp + 0x18], edx
cmp edx, 4
jl 0x5a745d
mov esi, dword [esp + 0xc]
lea ebx, [eax + eax*2]
shl ebx, 4
xor edx, edx
mov ecx, dword [esp + 0x18]
pxor xmm2, xmm2
and ecx, 0xfffffffc
lea ebx, [ebx + esi*8]
mov esi, edx
add edx, 4
movsd qword [esi + ebx + 0x717208], xmm2
movhpd qword [esi + ebx + 0x717230], xmm2
movsd qword [esi + ebx + 0x717258], xmm2
movhpd qword [esi + ebx + 0x717280], xmm2
add esi, 0xa0
cmp edx, ecx
jb 0x5a6984
lea edx, [ecx + ecx*4]
shl edx, 3
cmp ecx, dword [esp + 0x18]
jae 0x5a69e7
mov esi, dword [esp + 0xc]
lea ebx, [eax + eax*2]
shl ebx, 4
pxor xmm2, xmm2
lea ebx, [ebx + esi*8]
mov esi, dword [esp + 0x18]
inc ecx
movsd qword [edx + ebx + 0x717208], xmm2
add edx, 0x28
cmp ecx, esi
jb 0x5a69d6
cmp dword [esp + 0x10], 0
jbe 0x5a7453
mov ecx, dword [esp + 8]
xor edx, edx
mov esi, dword [esp + 0x10]
lea ebx, [ecx + eax*8]
xor ecx, ecx
movsd xmm2, qword [ecx + ebx]
inc edx
movsd xmm3, qword [ecx + ebx + 0x28]
movsd qword [ecx + eax*8 + 0x7171e0], xmm2
movsd qword [ecx + eax*8 + 0x717208], xmm3
add ecx, 0x50
cmp edx, esi
jb 0x5a6a01
lea edx, [edx + edx + 1]
lea ecx, [edx - 1]
cmp ecx, edi
jae 0x5a6a51
lea ecx, [edx + edx*4]
mov edx, dword [esp + 8]
lea esi, [ecx*8]
lea ebx, [edx + ecx*8]
movsd xmm2, qword [ebx + eax*8 - 0x28]
movsd qword [esi + eax*8 + 0x7171b8], xmm2
mov eax, dword [esp]
cmp eax, edi
jae 0x5a6b22
cmp dword [esp], 0
jle 0x5a6b03
mov edx, eax
cmp edx, edi
mov ecx, edi
cmovb ecx, edx
mov dword [esp + 0x14], ecx
cmp ecx, 4
jb 0x5a6b1e
mov ebx, eax
xor edx, edx
pxor xmm2, xmm2
and ecx, 0xfffffffc
lea esi, [ebx*8]
mov ebx, dword [esp + 0xc]
lea ebx, [esi + ebx*8]
mov esi, edx
add edx, 4
movsd qword [esi + ebx + 0x7171e0], xmm2
movhpd qword [esi + ebx + 0x717208], xmm2
movsd qword [esi + ebx + 0x717230], xmm2
movhpd qword [esi + ebx + 0x717258], xmm2
add esi, 0xa0
cmp edx, ecx
jb 0x5a6a97
lea edx, [ecx + ecx*4]
shl edx, 3
cmp ecx, dword [esp + 0x14]
jae 0x5a6928
mov ebx, dword [esp]
shl ebx, 3
pxor xmm2, xmm2
mov esi, dword [esp + 0xc]
lea ebx, [ebx + esi*8]
mov esi, dword [esp + 0x14]
inc ecx
movsd qword [edx + ebx + 0x7171e0], xmm2
add edx, 0x28
cmp ecx, esi
jb 0x5a6aed
jmp 0x5a6928
mov edx, eax
inc edx
mov dword [esp], edx
cmp edi, edx
jl 0x5a694b
test eax, eax
jl 0x5a694b
jmp 0x5a6938
xor ecx, ecx
jmp 0x5a6ac8
mov ebx, 1
mov eax, 0xffffffff
mov dword [esp + 0x68], edi
mov dword [esp + 0x98], edi
lea esi, [ebx + ebx*4]
lea edx, [ebx*8]
mov dword [esp + 0x7c], edx
lea edi, [esi*8]
movsd xmm0, qword [edx + edi + 0x7171b0]
andps xmm0, xmmword [0x6902c0]
comisd xmm1, xmm0
jb 0x5a6ff4
cmp ebx, dword [esp + 0x98]
je 0x5a73ca
lea ecx, [ebx + 1]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x50], ecx
lea edx, [eax - 1]
mov dword [esp + 0x78], edx
comisd xmm1, xmmword [edi + ecx*8 + 0x7171b0]
jb 0x5a6bb8
mov edx, ecx
mov ecx, dword [esp + 0x98]
cmp edx, ecx
jge 0x5a7368
inc edx
comisd xmm1, xmmword [edi + edx*8 + 0x7171b0]
jae 0x5a6b99
mov dword [esp + 0x50], edx
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x50]
add edx, eax
jne 0x5a6c9b
mov edx, dword [esp + 0x98]
add edx, edx
cmp edx, ebx
jl 0x5a700c
mov ecx, dword [esp + 0x98]
lea ecx, [eax + ecx*2 + 1]
cmp ecx, 4
jl 0x5a7353
mov eax, ecx
xor esi, esi
and eax, 0xfffffffc
mov dword [esp + 0x3c], eax
lea eax, [edi + ebx*8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x9c], ebx
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x60], edi
nop dword [eax]
add ebx, 4
lea edi, [esi + ecx + 0x7171b0]
movsd xmm0, qword [edi]
movsd xmm2, qword [edi + 0x28]
lea edi, [esi + ecx + 0x717200]
movsd qword [ecx + esi + 0x7171b0], xmm0
movsd qword [ecx + esi + 0x7171d8], xmm2
movsd xmm3, qword [edi]
movsd xmm4, qword [edi + 0x28]
movsd qword [ecx + esi + 0x717200], xmm3
movsd qword [ecx + esi + 0x717228], xmm4
add ecx, 0xa0
cmp ebx, eax
jb 0x5a6c20
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x9c]
lea esi, [eax + eax*4]
shl esi, 3
cmp eax, ecx
jae 0x5a700c
inc eax
add esi, 0x28
cmp eax, ecx
jb 0x5a6c8e
jmp 0x5a700c
cmp edx, 0x140
jg 0x5a6caf
cmp edx, 0xfffffec0
jge 0x5a6e55
mov edx, dword [esp + 0x98]
add edx, edx
cmp edx, ebx
jl 0x5a700c
mov ecx, dword [esp + 0x98]
lea eax, [eax + ecx*2 + 1]
mov dword [esp + 0x4c], eax
cmp eax, 4
jl 0x5a735a
mov dword [esp + 0x90], edx
lea ecx, [edi + ebx*8]
mov edx, eax
xor eax, eax
and edx, 0xfffffffc
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
lea ecx, [edx*8]
mov dword [esp + 0x48], esi
lea edx, [ecx + esi*8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x9c], ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x60], edi
add ebx, 4
lea edi, [esi + ecx + 0x7171b0]
movsd xmm3, qword [edi]
movsd xmm4, qword [edi + 0x28]
lea edi, [edx + ecx + 0x7171b0]
movsd xmm0, qword [edi]
movsd xmm2, qword [edi + 0x28]
lea edi, [esi + ecx + 0x717200]
movsd qword [ecx + esi + 0x7171b0], xmm0
movsd qword [ecx + esi + 0x7171d8], xmm2
movsd qword [ecx + edx + 0x7171b0], xmm3
movsd qword [ecx + edx + 0x7171d8], xmm4
movsd xmm7, qword [edi]
movsd xmm0, qword [edi + 0x28]
lea edi, [edx + ecx + 0x717200]
movsd xmm5, qword [edi]
movsd xmm6, qword [edi + 0x28]
movsd qword [ecx + esi + 0x717200], xmm5
movsd qword [ecx + esi + 0x717228], xmm6
movsd qword [ecx + edx + 0x717200], xmm7
movsd qword [ecx + edx + 0x717228], xmm0
add ecx, 0xa0
cmp ebx, eax
jb 0x5a6d2e
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x9c]
lea ecx, [eax + eax*4]
shl ecx, 3
mov dword [esp + 0x5c], ecx
cmp eax, dword [esp + 0x4c]
jae 0x5a700c
mov dword [esp + 0x60], edi
lea ecx, [edi + ebx*8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x50]
shl ecx, 3
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x4c]
lea ecx, [ecx + esi*8]
mov esi, dword [esp + 0x5c]
movsd xmm2, qword [esi + ecx + 0x7171b0]
inc eax
movsd xmm0, qword [esi + ebx + 0x7171b0]
movsd qword [esi + ecx + 0x7171b0], xmm0
movsd qword [esi + ebx + 0x7171b0], xmm2
add esi, 0x28
cmp eax, edi
jb 0x5a6e19
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x9c]
jmp 0x5a700c
mov edx, dword [esp + 0x98]
add edx, edx
cmp edx, ebx
jl 0x5a700c
mov ecx, dword [esp + 0x98]
lea eax, [eax + ecx*2 + 1]
mov dword [esp + 0x54], eax
cmp eax, 4
jl 0x5a7361
mov dword [esp + 0x90], edx
lea ecx, [edi + ebx*8]
mov edx, eax
xor eax, eax
and edx, 0xfffffffc
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], eax
lea ecx, [edx*8]
mov dword [esp + 0x48], esi
lea edx, [ecx + esi*8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x9c], ebx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x60], edi
add ebx, 4
lea edi, [esi + ecx + 0x7171b0]
movsd xmm3, qword [edi]
movsd xmm4, qword [edi + 0x28]
lea edi, [edx + ecx + 0x7171b0]
movsd xmm0, qword [edi]
movsd xmm2, qword [edi + 0x28]
lea edi, [esi + ecx + 0x717200]
movsd qword [ecx + esi + 0x7171b0], xmm0
movsd qword [ecx + esi + 0x7171d8], xmm2
movsd qword [ecx + edx + 0x7171b0], xmm3
movsd qword [ecx + edx + 0x7171d8], xmm4
movsd xmm7, qword [edi]
movsd xmm0, qword [edi + 0x28]
lea edi, [edx + ecx + 0x717200]
movsd xmm5, qword [edi]
movsd xmm6, qword [edi + 0x28]
movsd qword [ecx + esi + 0x717200], xmm5
movsd qword [ecx + esi + 0x717228], xmm6
movsd qword [ecx + edx + 0x717200], xmm7
movsd qword [ecx + edx + 0x717228], xmm0
add ecx, 0xa0
cmp ebx, eax
jb 0x5a6ed4
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x9c]
lea ecx, [eax + eax*4]
shl ecx, 3
mov dword [esp + 0x58], ecx
cmp eax, dword [esp + 0x54]
jae 0x5a700c
mov dword [esp + 0x60], edi
lea ecx, [edi + ebx*8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x50]
shl ecx, 3
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x54]
lea ecx, [ecx + esi*8]
mov esi, dword [esp + 0x58]
movsd xmm0, qword [esi + ebx + 0x7171b0]
inc eax
movsd xmm2, qword [esi + ecx + 0x7171b0]
movsd qword [esi + ecx + 0x7171b0], xmm0
movsd qword [esi + ebx + 0x7171b0], xmm2
add esi, 0x28
cmp eax, edi
jb 0x5a6fbb
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x9c]
jmp 0x5a700c
mov ecx, dword [esp + 0x98]
lea eax, [eax - 1]
mov dword [esp + 0x78], eax
lea edx, [ebx + 1]
mov dword [esp + 0x6c], edx
lea edx, [ecx + ecx]
mov eax, dword [esp + 0x7c]
movsd xmm0, qword [0x690390]
divsd xmm0, qword [eax + edi + 0x7171b0]
cmp edx, ebx
jle 0x5a711b
mov ecx, dword [esp + 0x78]
lea ecx, [edx + ecx + 1]
mov eax, ecx
shr eax, 1
mov dword [esp + 0x80], eax
test eax, eax
jbe 0x5a7449
mov eax, dword [esp + 0x6c]
xor esi, esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x9c], ebx
mov edi, dword [esp + 0x80]
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + ebx*8]
mov dword [esp + 0x64], eax
xor eax, eax
mov ebx, dword [esp + 0x64]
movsd xmm2, qword [eax + ebx + 0x7171b0]
andps xmm2, xmmword [0x6902c0]
comisd xmm2, xmm1
jbe 0x5a709b
movsd xmm2, qword [eax + ebx + 0x7171b0]
mulsd xmm2, xmm0
movsd qword [eax + ebx + 0x7171b0], xmm2
movsd xmm2, qword [eax + ebx + 0x7171d8]
andps xmm2, xmmword [0x6902c0]
comisd xmm2, xmm1
jbe 0x5a70c7
movsd xmm2, qword [eax + ebx + 0x7171d8]
mulsd xmm2, xmm0
movsd qword [eax + ebx + 0x7171d8], xmm2
inc esi
add eax, 0x50
cmp esi, edi
jb 0x5a706f
mov edi, dword [esp + 0x60]
lea eax, [esi + esi + 1]
mov ebx, dword [esp + 0x9c]
lea esi, [eax - 1]
cmp esi, ecx
jae 0x5a711b
add eax, dword [esp + 0x6c]
lea eax, [eax + eax*4]
shl eax, 3
movsd xmm2, qword [eax + ebx*8 + 0x717188]
andps xmm2, xmmword [0x6902c0]
comisd xmm2, xmm1
jbe 0x5a711b
movsd xmm2, qword [eax + ebx*8 + 0x717188]
mulsd xmm2, xmm0
movsd qword [eax + ebx*8 + 0x717188], xmm2
cmp dword [esp + 0x98], 0
jle 0x5a7432
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x70], 0
mov dword [esp + 0x90], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x84], eax
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x94], ecx
lea esi, [eax*8]
shr ecx, 1
mov dword [esp + 0x8c], esi
lea esi, [esi + ebx*8]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], ebx
mov ecx, esi
mov edx, dword [esp + 0x70]
lea eax, [edx + 1]
cmp eax, dword [esp + 0x9c]
je 0x5a727c
mov ebx, dword [esp + 0x9c]
cmp ebx, dword [esp + 0x90]
jge 0x5a727c
cmp dword [esp + 0xa0], 0
jbe 0x5a7428
mov ebx, dword [esp + 0x8c]
xor esi, esi
mov dword [esp + 0x88], eax
mov eax, esi
lea ebx, [ebx + edx*8]
nop dword [eax + eax]
nop dword [eax + eax]
movsd xmm0, qword [edi + edx*8 + 0x7171b8]
inc esi
mulsd xmm0, qword [eax + ecx + 0x7171b0]
movsd xmm2, qword [eax + ebx + 0x7171b8]
movsd xmm4, qword [eax + ebx + 0x7171e0]
subsd xmm2, xmm0
movsd qword [eax + ebx + 0x7171b8], xmm2
movsd xmm3, qword [edi + edx*8 + 0x7171b8]
mulsd xmm3, qword [eax + ecx + 0x7171d8]
subsd xmm4, xmm3
movsd qword [eax + ebx + 0x7171e0], xmm4
add eax, 0x50
cmp esi, dword [esp + 0xa0]
jb 0x5a71d0
mov eax, dword [esp + 0x88]
lea ebx, [esi + esi + 1]
lea esi, [ebx - 1]
cmp esi, dword [esp + 0x94]
jae 0x5a727c
movsd xmm0, qword [edi + edx*8 + 0x7171b8]
lea ebx, [ebx + ebx*4]
shl ebx, 3
mov esi, dword [esp + 0x84]
mulsd xmm0, qword [ecx + ebx + 0x717188]
lea esi, [ebx + esi*8]
movsd xmm2, qword [esi + edx*8 + 0x717190]
subsd xmm2, xmm0
movsd qword [esi + edx*8 + 0x717190], xmm2
mov edx, eax
cmp eax, dword [esp + 0x98]
jb 0x5a717c
nop
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
cmp ebx, dword [esp + 0x68]
jle 0x5a6b37
mov edi, dword [esp + 0x98]
lea ebx, [edi + edi*4]
shl ebx, 3
mov ecx, edi
mov edx, dword [esp + 0x74]
xor eax, eax
shr ecx, 1
mov dword [esp], ebx
test edi, edi
jle 0x5a7336
test ecx, ecx
jbe 0x5a734c
mov esi, dword [esp + 0x74]
xor ebx, ebx
mov edx, dword [esp]
mov dword [esp + 0x98], edi
lea esi, [esi + eax*8]
mov edi, ebx
lea edx, [edx + eax*8]
movsd xmm0, qword [edi + edx + 0x7171e0]
inc ebx
movsd xmm1, qword [edi + edx + 0x717208]
movsd qword [edi + esi], xmm0
movsd qword [edi + esi + 0x28], xmm1
add edi, 0x50
cmp ebx, ecx
jb 0x5a72dd
mov edi, dword [esp + 0x98]
lea ebx, [ebx + ebx + 1]
lea edx, [ebx - 1]
cmp edx, edi
jae 0x5a7336
lea esi, [ebx + edi]
lea edx, [esi + esi*4]
shl edx, 3
lea esi, [ebx + ebx*4]
mov ebx, dword [esp + 0x74]
movsd xmm0, qword [edx + eax*8 + 0x7171b8]
lea ebx, [ebx + esi*8]
movsd qword [ebx + eax*8 - 0x28], xmm0
inc eax
cmp eax, edi
jb 0x5a72b9
add esp, 0xa4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, 1
jmp 0x5a730d
xor eax, eax
jmp 0x5a6c80
xor eax, eax
jmp 0x5a6ddd
xor eax, eax
jmp 0x5a6f83
mov dword [esp + 0x50], edx
push 0x28
push 0x6904ec
push 0x690220
push 0x690224
push 0x76e2e8
push 0x76e2e0
mov dword [esp + 0x18], eax
call fcn.0053e690
push 0xc
push 0x690228
movsd xmm1, qword [0x6903b0]
push 0x717370
call fcn.00471080
mov eax, dword [esp + 0x24]
add esp, 0x24
movsd xmm1, qword [0x6903b0]
mov edx, dword [esp + 4]
mov ecx, dword [edx]
mov dword [esp + 0x98], ecx
jmp 0x5a6bb8
push 0x28
push str.Unable_to_find_the_inverse_of_the_matrix
push 0x690220
push 0x690224
push 0x76e2e8
push 0x76e2e0
mov dword [esp + 0x18], eax
call fcn.0053e690
push 0xc
push 0x690228
movsd xmm1, qword [0x6903b0]
push 0x717370
call fcn.00471080
mov eax, dword [esp + 0x24]
add esp, 0x24
movsd xmm1, qword [0x6903b0]
mov edx, dword [esp + 4]
mov ecx, dword [edx]
mov dword [esp + 0x98], ecx
jmp 0x5a6b73
mov ebx, 1
jmp 0x5a7238
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
cmp ebx, dword [esp + 0x68]
jle 0x5a6b37
jmp 0x5a733f
mov eax, 1
jmp 0x5a70de
mov edx, 1
jmp 0x5a6a2a
xor ecx, ecx
jmp 0x5a69b5