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

Disassembly:
sub esp, 0xb8
mov eax, dword [0x1058ac14]
xor eax, esp
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xbc]
push esi
mov esi, ecx
mov dword [esp + 0x24], eax
push edi
lea ecx, [esp + 0x3c]
call fcn.10228f40
push esi
lea ecx, [esp + 0x80]
call fcn.10228ed0
movss xmm4, dword [0x103f0410]
lea eax, [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], eax
xor esi, esi
xorps xmm3, xmm3
nop dword [eax + eax]
movss xmm1, dword [eax]
mov edx, edi
comiss xmm3, xmm1
jbe 0x102290ae
xorps xmm1, xmm4
lea eax, [edi + 1]
mov dword [esp + 0x34], eax
mov ecx, eax
cmp eax, 4
jge 0x102290ec
nop dword [eax]
lea eax, [edi + ecx*4]
movaps xmm2, xmm1
movss xmm0, dword [esp + eax*4 + 0x7c]
comiss xmm3, xmm0
jbe 0x102290d4
xorps xmm0, xmm4
comiss xmm0, xmm1
jbe 0x102290dc
movaps xmm1, xmm0
comiss xmm0, xmm2
mov eax, ecx
cmovbe eax, edx
inc ecx
mov edx, eax
cmp ecx, 4
jl 0x102290c0
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jnp 0x10229595
cmp edx, edi
je 0x102291cf
lea ecx, [esp + 0x7c]
add ecx, esi
add edx, edx
mov dword [esp + 0x38], ecx
movss xmm0, dword [ecx]
mov eax, dword [esp + edx*8 + 0x7c]
mov dword [ecx], eax
mov eax, dword [esp + edx*8 + 0x3c]
movss dword [esp + edx*8 + 0x7c], xmm0
movss xmm0, dword [esp + esi + 0x3c]
mov dword [esp + esi + 0x3c], eax
mov eax, dword [esp + edx*8 + 0x80]
movss dword [esp + edx*8 + 0x3c], xmm0
movss xmm0, dword [esp + esi + 0x80]
mov dword [esp + esi + 0x80], eax
mov eax, dword [esp + edx*8 + 0x40]
movss dword [esp + edx*8 + 0x80], xmm0
movss xmm0, dword [esp + esi + 0x40]
mov dword [esp + esi + 0x40], eax
mov eax, dword [esp + edx*8 + 0x84]
movss dword [esp + edx*8 + 0x40], xmm0
movss xmm0, dword [esp + esi + 0x84]
mov dword [esp + esi + 0x84], eax
mov eax, dword [esp + edx*8 + 0x44]
movss dword [esp + edx*8 + 0x84], xmm0
movss xmm0, dword [esp + esi + 0x44]
mov dword [esp + esi + 0x44], eax
mov eax, dword [esp + edx*8 + 0x88]
movss dword [esp + edx*8 + 0x44], xmm0
movss xmm0, dword [esp + esi + 0x88]
mov dword [esp + esi + 0x88], eax
mov eax, dword [esp + edx*8 + 0x48]
movss dword [esp + edx*8 + 0x88], xmm0
movss xmm0, dword [esp + esi + 0x48]
mov dword [esp + esi + 0x48], eax
movss dword [esp + edx*8 + 0x48], xmm0
jmp 0x102291d9
lea eax, [esp + 0x7c]
add eax, esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
cmp eax, 4
jge 0x10229364
lea eax, [esp + 0x3c]
mov edx, dword [esp + 0x30]
add eax, esi
lea ecx, [esp + 0x7c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x80]
add eax, esi
mov dword [esp + 0x20], eax
lea eax, [esp + 0x40]
add eax, esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x84]
add eax, esi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x44]
add eax, esi
mov dword [esp + 0x14], eax
lea eax, [esp + 0x88]
add eax, esi
mov dword [esp + 0x10], eax
lea eax, [esp + 0x48]
add eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
add eax, edi
mov edi, dword [esp + 0x38]
add esi, 0x10
mov dword [esp + 8], esi
lea ecx, [ecx + eax*4]
mov eax, esi
mov esi, dword [esp + 0x24]
nop word [eax + eax]
movss xmm2, dword [ecx]
add ecx, 0x10
divss xmm2, dword [edx]
mov edx, dword [esp + 0x20]
movss xmm0, dword [esp + eax + 0x7c]
movaps xmm1, xmm2
mulss xmm1, dword [edi]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esi]
movss dword [esp + eax + 0x7c], xmm0
movss xmm0, dword [esp + eax + 0x3c]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [edx]
mov edx, dword [esp + 0x1c]
movss dword [esp + eax + 0x3c], xmm0
movss xmm0, dword [esp + eax + 0x80]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [edx]
mov edx, dword [esp + 0x18]
movss dword [esp + eax + 0x80], xmm0
movss xmm0, dword [esp + eax + 0x40]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [edx]
mov edx, dword [esp + 0x14]
movss dword [esp + eax + 0x40], xmm0
movss xmm0, dword [esp + eax + 0x84]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [edx]
mov edx, dword [esp + 0x10]
movss dword [esp + eax + 0x84], xmm0
movss xmm0, dword [esp + eax + 0x44]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [edx]
mov edx, dword [esp + 0xc]
movss dword [esp + eax + 0x44], xmm0
movss xmm0, dword [esp + eax + 0x88]
mulss xmm2, dword [edx]
subss xmm0, xmm1
mov edx, dword [esp + 0x30]
movss dword [esp + eax + 0x88], xmm0
movss xmm0, dword [esp + eax + 0x48]
subss xmm0, xmm2
movss dword [esp + eax + 0x48], xmm0
add eax, 0x10
cmp eax, 0x40
jl 0x10229260
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x34]
jmp 0x10229367
add esi, 0x10
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [esp + 0x30]
add ecx, 4
add eax, 0x14
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
cmp ecx, 0x10
jl 0x102290a0
lea edx, [esp + 0x88]
mov edi, 3
lea eax, [esp + 0xb8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
xor ecx, ecx
movss xmm1, dword [eax]
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jnp 0x10229589
movss xmm0, dword [esp + ecx + 0xac]
divss xmm0, xmm1
movss dword [esp + ecx + 0xac], xmm0
movss xmm0, dword [esp + ecx + 0x6c]
divss xmm0, xmm1
movss dword [esp + ecx + 0x6c], xmm0
movss xmm0, dword [esp + ecx + 0xb0]
divss xmm0, xmm1
movss dword [esp + ecx + 0xb0], xmm0
movss xmm0, dword [esp + ecx + 0x70]
divss xmm0, xmm1
movss dword [esp + ecx + 0x70], xmm0
movss xmm0, dword [esp + ecx + 0xb4]
divss xmm0, xmm1
movss dword [esp + ecx + 0xb4], xmm0
movss xmm0, dword [esp + ecx + 0x74]
divss xmm0, xmm1
movss dword [esp + ecx + 0x74], xmm0
movss xmm0, dword [esp + ecx + 0xb8]
divss xmm0, xmm1
movss dword [esp + ecx + 0xb8], xmm0
movss xmm0, dword [esp + ecx + 0x78]
divss xmm0, xmm1
movss dword [esp + ecx + 0x78], xmm0
test edi, edi
jle 0x1022955a
xor eax, eax
mov esi, edi
nop word [eax + eax]
movss xmm2, dword [edx]
add edx, 0x10
movss xmm0, dword [esp + eax + 0x7c]
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0xac]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0x6c]
movss dword [esp + eax + 0x7c], xmm0
movss xmm0, dword [esp + eax + 0x3c]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0xb0]
movss dword [esp + eax + 0x3c], xmm0
movss xmm0, dword [esp + eax + 0x80]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0x70]
movss dword [esp + eax + 0x80], xmm0
movss xmm0, dword [esp + eax + 0x40]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0xb4]
movss dword [esp + eax + 0x40], xmm0
movss xmm0, dword [esp + eax + 0x84]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0x74]
movss dword [esp + eax + 0x84], xmm0
movss xmm0, dword [esp + eax + 0x44]
subss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + ecx + 0xb8]
movss dword [esp + eax + 0x44], xmm0
movss xmm0, dword [esp + eax + 0x88]
mulss xmm2, dword [esp + ecx + 0x78]
subss xmm0, xmm1
movss dword [esp + eax + 0x88], xmm0
movss xmm0, dword [esp + eax + 0x48]
subss xmm0, xmm2
movss dword [esp + eax + 0x48], xmm0
add eax, 0x10
sub esi, 1
jne 0x10229460
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
sub ecx, 0x10
sub eax, 0x14
sub edx, 4
dec edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
cmp ecx, 0xffffffd0
jge 0x102293a5
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x3c]
push eax
call fcn.10228ed0
jmp 0x102295a8
cmp byte [esp + 0xc8], 0
jne 0x102295c5
jmp 0x1022959f
cmp byte [esp + 0xc8], 0
jne 0x102295e8
mov ecx, dword [esp + 0x28]
call fcn.10228f40
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x28]
pop edi
pop esi
xor ecx, esp
call fcn.1026b168
add esp, 0xb8
ret 8
push str.Cannot_invert_singular_matrix.
lea ecx, [esp + 0x84]
call fcn.10228fe0
push 0x103ff2e0
lea eax, [esp + 0x84]
push eax
call fcn.1026cad5
push str.Cannot_invert_singular_matrix.
lea ecx, [esp + 0x84]
call fcn.10228fe0
push 0x103ff2e0
lea eax, [esp + 0x84]
push eax
call fcn.1026cad5
int3