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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x114
movq xmm0, qword [0x6906d0]
movq xmm1, qword [0x6906d8]
mov dword [esp], 0x717fc0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], str.DSMDYN
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x18], 0
call fcn.005b4070
mov eax, dword [ebp + 8]
mov edx, dword [0x6c5af8]
shl edx, 2
neg edx
add edx, dword [0x6c5ad8]
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov esi, dword [edx + ecx*4]
test esi, esi
jle 0x5af424
mov eax, dword [0x6c5c08]
mov ecx, dword [0x6c5be8]
mov ebx, dword [0x6c5c10]
mov dword [esp + 0x3c], eax
mov edx, dword [0x6c5c18]
mov edi, dword [0x6c5c40]
mov eax, dword [0x6c5c38]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ebx
mov ecx, dword [0x6c5c14]
mov dword [esp + 0x20], edx
mov ebx, dword [0x6c5c44]
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], eax
cmp esi, 8
jl 0x5affeb
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
imul edi, edx
imul edx, ebx
add edi, dword [esp + 0x20]
mov dword [esp + 0x48], edi
sub edi, edx
mov dword [esp + 0x28], edx
shl eax, 3
sub edi, eax
add edi, 8
and edi, 0xf
je 0x5af285
test edi, 7
jne 0x5affeb
mov edi, 1
lea eax, [edi + 8]
cmp esi, eax
jl 0x5affeb
mov edx, esi
sub edx, edi
and edx, 7
neg edx
add edx, esi
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x3c]
sub dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
shl edx, 3
imul eax, dword [esp + 0x34]
neg edx
add edx, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x30], eax
test edi, edi
jbe 0x5af2fd
mov dword [esp + 0x28], esi
xor eax, eax
mov edx, dword [esp + 0x30]
pxor xmm0, xmm0
mov esi, dword [esp + 0x48]
movsd xmm1, qword [esi + eax*8 + 8]
movsd qword [edx + eax*8 + 8], xmm1
movsd qword [esi + eax*8 + 8], xmm0
inc eax
cmp eax, edi
jb 0x5af2e2
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
lea edx, [eax + edi*8 + 8]
test dl, 0xf
je 0x5af365
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x44]
pxor xmm0, xmm0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
nop
movups xmm1, xmmword [esi + edi*8 + 8]
movups xmm2, xmmword [esi + edi*8 + 0x18]
movups xmm3, xmmword [esi + edi*8 + 0x28]
movups xmm4, xmmword [esi + edi*8 + 0x38]
movups xmmword [edx + edi*8 + 8], xmm1
movups xmmword [edx + edi*8 + 0x18], xmm2
movups xmmword [edx + edi*8 + 0x28], xmm3
movups xmmword [edx + edi*8 + 0x38], xmm4
movups xmmword [esi + edi*8 + 8], xmm0
movups xmmword [esi + edi*8 + 0x18], xmm0
movups xmmword [esi + edi*8 + 0x28], xmm0
movups xmmword [esi + edi*8 + 0x38], xmm0
add edi, 8
cmp edi, eax
jb 0x5af320
jmp 0x5af3c3
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x44]
pxor xmm0, xmm0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
nop dword [eax]
movups xmm1, xmmword [esi + edi*8 + 8]
movups xmm2, xmmword [esi + edi*8 + 0x18]
movups xmm3, xmmword [esi + edi*8 + 0x28]
movups xmm4, xmmword [esi + edi*8 + 0x38]
movups xmmword [edx + edi*8 + 8], xmm1
movups xmmword [esi + edi*8 + 8], xmm0
movups xmmword [edx + edi*8 + 0x18], xmm2
movups xmmword [esi + edi*8 + 0x18], xmm0
movups xmmword [edx + edi*8 + 0x28], xmm3
movups xmmword [esi + edi*8 + 0x28], xmm0
movups xmmword [edx + edi*8 + 0x38], xmm4
movups xmmword [esi + edi*8 + 0x38], xmm0
add edi, 8
cmp edi, eax
jb 0x5af380
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x28]
cmp esi, dword [esp + 0x44]
jbe 0x5af424
neg ebx
neg ecx
mov edi, dword [esp + 0x2c]
add ebx, edi
imul ebx, dword [esp + 0x24]
add ecx, edi
imul ecx, dword [esp + 0x34]
pxor xmm0, xmm0
mov eax, dword [esp + 0x40]
shl eax, 3
mov edx, dword [esp + 0x20]
sub edx, eax
mov eax, dword [esp + 0x3c]
add ebx, edx
shl eax, 3
mov edx, dword [esp + 0x38]
sub edx, eax
mov eax, dword [esp + 0x44]
add ecx, edx
movsd xmm1, qword [ebx + eax*8 + 8]
movsd qword [ecx + eax*8 + 8], xmm1
movsd qword [ebx + eax*8 + 8], xmm0
inc eax
cmp eax, esi
jb 0x5af40d
mov eax, dword [0x6c5e90]
shl eax, 2
neg eax
add eax, dword [0x6c5e70]
mov edx, dword [esp + 0x2c]
cmp dword [eax + edx*4], 0
je 0x5aff11
mov ebx, 1
mov esi, dword [0x76e588]
mov ecx, ebx
test esi, esi
jle 0x5aff11
xor edx, edx
mov eax, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x2c]
mov edi, dword [0x6c6070]
shl edi, 2
mov esi, dword [esp + 0x8c]
neg edi
add edi, dword [0x6c6050]
lea edx, [esi*4]
mov dword [esp + 0x90], edx
mov eax, dword [edi + edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jne 0x5afeef
mov edx, dword [0x6c5e90]
neg edx
add edx, ecx
mov ecx, dword [0x6c5e70]
mov eax, dword [esp + 0x80]
inc eax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], eax
cmp eax, dword [ecx + edx*4]
jg 0x5aff4f
mov edx, dword [0x6c5eb8]
shl edx, 2
neg edx
add edx, dword [0x6c5e98]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + edx]
mov dword [esp + 0xd0], ecx
test ecx, ecx
jle 0x5af67f
mov esi, dword [0x6c5f1c]
neg esi
mov ebx, dword [esp + 0x8c]
add esi, ebx
imul esi, dword [0x6c5f18]
mov eax, dword [ebp + 8]
mov edx, dword [0x6c5eec]
neg edx
add edx, ebx
mov ecx, dword [0x6c5f10]
shl ecx, 2
imul edx, dword [0x6c5ee8]
mov eax, dword [eax]
mov edi, dword [0x6c5ef0]
sub edi, ecx
mov ecx, dword [0x6c5ee0]
add esi, edi
shl ecx, 2
sub eax, dword [0x6c5c74]
mov edi, dword [0x6c5ec0]
sub edi, ecx
mov ecx, dword [0x6c82d8]
add edx, edi
shl ecx, 3
imul eax, dword [0x6c5c70]
neg ecx
add ecx, dword [0x6c82b8]
mov edi, dword [0x6c5c68]
shl edi, 3
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x6c5c48]
sub ecx, edi
add eax, ecx
mov ecx, dword [0x6c5b5c]
neg ecx
add ecx, ebx
mov edi, dword [0x6c82b0]
shl edi, 3
imul ecx, dword [0x6c5b58]
neg edi
add edi, dword [0x6c8290]
mov ebx, dword [0x6c5b50]
shl ebx, 3
mov dword [esp + 0x9c], edi
mov edi, dword [0x6c5b30]
sub edi, ebx
add ecx, edi
mov dword [esp + 0x68], 1
mov dword [esp + 0x94], ecx
mov dword [esp + 0xb4], esi
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xb4]
mov edi, dword [edx + ecx*4]
mov esi, dword [esi + ecx*4]
test esi, esi
jne 0x5af622
mov esi, dword [esp + 0x94]
movsd xmm0, qword [eax + edi*8]
xorps xmm0, xmmword [0x6906c0]
mov edi, dword [esp + 0x9c]
movsd xmm1, qword [esi + ecx*8]
movsd qword [ebx + ecx*8], xmm0
movsd qword [edi + ecx*8], xmm1
jmp 0x5af671
test edi, edi
jne 0x5af64a
movsd xmm0, qword [eax + esi*8]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x9c]
movsd qword [ebx + ecx*8], xmm0
movsd xmm1, qword [esi + ecx*8]
movsd qword [edi + ecx*8], xmm1
jmp 0x5af671
movsd xmm0, qword [eax + esi*8]
mov esi, dword [esp + 0x94]
subsd xmm0, qword [eax + edi*8]
mov edi, dword [esp + 0x9c]
movsd xmm1, qword [esi + ecx*8]
movsd qword [ebx + ecx*8], xmm0
movsd qword [edi + ecx*8], xmm1
inc ecx
cmp ecx, dword [esp + 0xd0]
jle 0x5af5e6
mov edx, dword [0x6c5e68]
shl edx, 2
neg edx
add edx, dword [0x6c5e48]
mov eax, dword [esp + 0x90]
cmp dword [eax + edx], 1
je 0x5aff29
cmp dword [esp + 0xd0], 0
jle 0x5afeef
mov edx, dword [0x6c5f1c]
neg edx
mov esi, dword [esp + 0x8c]
add edx, esi
imul edx, dword [0x6c5f18]
mov ecx, dword [0x6c5f10]
shl ecx, 2
mov ebx, dword [0x6c5ef0]
sub ebx, ecx
add edx, ebx
mov dword [esp + 0xc4], edx
mov edx, dword [0x6c5eec]
neg edx
add edx, esi
imul edx, dword [0x6c5ee8]
mov ebx, dword [0x6c5ee0]
shl ebx, 2
mov ecx, dword [0x6c5ec0]
sub ecx, ebx
add edx, ecx
mov dword [esp + 0xcc], edx
mov edx, dword [0x6c82d8]
shl edx, 3
neg edx
mov ecx, dword [0x6c82b8]
mov edi, dword [0x6c6010]
mov eax, dword [0x6c5fd0]
mov dword [esp + 0x100], edi
lea ebx, [ecx + edx]
mov dword [esp + 0xf8], ebx
lea edx, [ecx + edx + 8]
mov ecx, 1
and edx, 0xf
mov ebx, dword [0x6c82b0]
cmovne edx, ecx
shl ebx, 3
neg ebx
add ebx, dword [0x6c8290]
mov dword [esp + 0x108], ebx
lea ebx, [edx + 8]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xa4], ebx
mov ebx, ecx
sub ebx, edx
and ebx, 7
neg ebx
add ebx, ecx
mov ecx, dword [0x6c6020]
neg ecx
mov dword [esp + 0xd4], edx
add ecx, esi
mov edx, dword [0x6c6014]
imul edx, edi
imul ecx, dword [0x6c601c]
mov dword [esp + 0x70], edx
sub edx, edi
add ecx, dword [0x6c5fe8]
neg edx
mov dword [esp + 0xfc], ebx
add edx, ecx
mov ebx, dword [0x6c6008]
shl ebx, 3
mov dword [esp + 0x74], ebx
sub edx, ebx
mov ebx, dword [0x6c5fe0]
neg ebx
mov dword [esp + 0xbc], edx
add ebx, esi
mov edx, dword [0x6c5fd4]
imul edx, eax
imul ebx, dword [0x6c5fdc]
mov dword [esp + 0x78], edx
sub edx, eax
add ebx, dword [0x6c5fa8]
neg edx
mov esi, dword [0x6c5fc8]
add edx, ebx
shl esi, 3
sub edx, esi
mov dword [esp + 0xc0], edx
lea edx, [edi + edi*2]
neg edx
mov edi, dword [esp + 0x70]
add edx, edi
neg edx
mov dword [esp + 0x104], eax
lea eax, [eax + eax*2]
add edx, ecx
neg eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x74]
sub edx, ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x78]
add eax, edx
neg eax
add eax, ebx
sub eax, esi
mov dword [esp + 0x60], eax
mov eax, dword [0x6c6010]
mov dword [esp + 0x7c], esi
mov dword [esp + 0xac], 0
lea eax, [eax + eax*4]
neg eax
add eax, edi
neg eax
mov edi, dword [esp + 0x54]
add eax, edi
sub eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [0x6c5fd0]
lea eax, [eax + eax*4]
neg eax
add eax, edx
neg eax
add eax, ebx
sub eax, esi
mov esi, dword [0x6c6010]
mov dword [esp + 0x5c], eax
lea eax, [esi*8]
neg eax
add eax, esi
mov esi, dword [esp + 0x70]
add esi, eax
mov eax, dword [0x6c5fd0]
sub edi, esi
sub edi, ecx
mov esi, dword [0x6c5f4c]
neg esi
lea ecx, [eax*8]
neg ecx
add ecx, eax
add edx, ecx
mov ecx, dword [esp + 0x8c]
add esi, ecx
imul esi, dword [0x6c5f48]
sub ebx, edx
mov edx, dword [0x6c5f40]
shl edx, 3
mov eax, dword [0x6c5f20]
sub eax, edx
add esi, eax
mov dword [esp + 0xb8], esi
mov esi, dword [0x6c5fa4]
neg esi
add esi, ecx
imul esi, dword [0x6c5fa0]
mov eax, dword [0x6c5f98]
shl eax, 3
mov edx, dword [0x6c5f78]
sub edx, eax
add esi, edx
mov edx, dword [ebp + 8]
mov eax, dword [0x6c5c44]
neg eax
add eax, dword [edx]
imul eax, dword [0x6c5c40]
mov dword [esp + 0xc8], esi
mov esi, dword [0x6c5c38]
shl esi, 3
mov edx, dword [0x6c5c18]
sub edx, esi
add eax, edx
mov edx, dword [0x6c84ac]
neg edx
add edx, ecx
imul edx, dword [0x6c84a8]
mov ecx, dword [0x6c84a0]
shl ecx, 3
mov esi, dword [0x6c8480]
sub esi, ecx
sub ebx, dword [esp + 0x7c]
add edx, esi
mov dword [esp + 0xa0], edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edi
cmp dword [esp + 0xd0], 8
jl 0x5aff1e
mov edx, dword [esp + 0xd0]
cmp edx, dword [esp + 0xa4]
jl 0x5aff1e
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
pxor xmm1, xmm1
mov edx, dword [esp + 0xfc]
cmp dword [esp + 0xd4], 0
lea ebx, [ebx + eax*8]
lea edi, [ecx + eax*8]
jbe 0x5afa34
xor esi, esi
xor ecx, ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov eax, ecx
nop dword [eax]
nop dword [eax]
mov edx, dword [esp + 0x108]
movsd xmm2, qword [ecx + ebx + 8]
movsd xmm0, qword [eax + edi + 8]
mulsd xmm2, qword [edx + esi*8 + 8]
mov edx, dword [esp + 0xf8]
add ecx, dword [esp + 0x100]
add eax, dword [esp + 0x104]
mulsd xmm0, qword [edx + esi*8 + 8]
inc esi
addsd xmm2, xmm0
addsd xmm1, xmm2
cmp esi, dword [esp + 0xd4]
jb 0x5af9e0
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0xd4]
pxor xmm0, xmm0
mov dword [esp + 0xa8], ecx
movaps xmm3, xmm0
movaps xmm2, xmm0
lea esi, [esi + eax*8]
mov dword [esp + 0xd8], esi
movsd xmm3, xmm1
mov esi, dword [esp + 0x60]
movaps xmm1, xmm2
lea esi, [esi + eax*8]
mov dword [esp + 0xe8], esi
mov esi, dword [esp + 0x64]
lea esi, [esi + eax*8]
mov dword [esp + 0xec], esi
mov esi, dword [esp + 0x5c]
lea esi, [esi + eax*8]
mov dword [esp + 0xdc], esi
mov esi, dword [esp + 0x54]
lea esi, [esi + eax*8]
mov dword [esp + 0xe0], esi
mov esi, dword [esp + 0x50]
lea esi, [esi + eax*8]
mov dword [esp + 0xe4], esi
mov esi, dword [esp + 0x108]
lea ecx, [esi + ecx*8 + 8]
test cl, 0xf
je 0x5afc34
mov dword [esp + 0xf0], edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x100]
mov ebx, esi
imul ebx, edi
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0xf0]
add edx, ebx
movups xmm4, xmmword [ecx + edi*8 + 8]
movsd xmm6, qword [edx + 8]
mov ecx, dword [esp + 0x104]
movhpd xmm6, qword [edx + esi + 8]
mov edx, ecx
imul edx, edi
mulpd xmm6, xmm4
add eax, edx
movsd xmm5, qword [eax + 8]
movhpd xmm5, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
mulpd xmm5, xmmword [eax + edi*8 + 8]
mov eax, dword [esp + 0xd8]
addpd xmm6, xmm5
addpd xmm3, xmm6
add eax, ebx
movsd xmm5, qword [eax + 8]
movhpd xmm5, qword [eax + esi + 8]
mov eax, dword [esp + 0x108]
movups xmm7, xmmword [eax + edi*8 + 0x18]
mov eax, dword [esp + 0xe8]
mulpd xmm5, xmm7
add eax, edx
movsd xmm4, qword [eax + 8]
movhpd xmm4, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
mulpd xmm4, xmmword [eax + edi*8 + 0x18]
addpd xmm5, xmm4
mov eax, dword [esp + 0xec]
addpd xmm0, xmm5
add eax, ebx
add ebx, dword [esp + 0xe0]
movsd xmm5, qword [eax + 8]
movhpd xmm5, qword [eax + esi + 8]
mov eax, dword [esp + 0x108]
movups xmm6, xmmword [eax + edi*8 + 0x28]
mov eax, dword [esp + 0xdc]
mulpd xmm5, xmm6
add eax, edx
add edx, dword [esp + 0xe4]
movsd xmm4, qword [eax + 8]
movhpd xmm4, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
mulpd xmm4, xmmword [eax + edi*8 + 0x28]
addpd xmm5, xmm4
addpd xmm2, xmm5
movsd xmm5, qword [ebx + 8]
movhpd xmm5, qword [ebx + esi + 8]
mov ebx, dword [esp + 0x108]
movsd xmm4, qword [edx + 8]
movhpd xmm4, qword [edx + ecx + 8]
movups xmm7, xmmword [ebx + edi*8 + 0x38]
mulpd xmm4, xmmword [eax + edi*8 + 0x38]
mulpd xmm5, xmm7
addpd xmm5, xmm4
add edi, 8
addpd xmm1, xmm5
cmp edi, dword [esp + 0xfc]
jb 0x5afade
jmp 0x5afd9c
mov dword [esp + 0xf0], edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x100]
mov ebx, esi
imul ebx, edi
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0xf0]
add edx, ebx
movsd xmm5, qword [edx + 8]
movhpd xmm5, qword [edx + esi + 8]
mulpd xmm5, xmmword [ecx + edi*8 + 8]
mov ecx, dword [esp + 0x104]
mov edx, ecx
imul edx, edi
add eax, edx
movsd xmm4, qword [eax + 8]
movhpd xmm4, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
mulpd xmm4, xmmword [eax + edi*8 + 8]
mov eax, dword [esp + 0xd8]
addpd xmm5, xmm4
addpd xmm3, xmm5
add eax, ebx
movsd xmm7, qword [eax + 8]
movhpd xmm7, qword [eax + esi + 8]
mov eax, dword [esp + 0x108]
mulpd xmm7, xmmword [eax + edi*8 + 0x18]
mov eax, dword [esp + 0xe8]
add eax, edx
movsd xmm6, qword [eax + 8]
movhpd xmm6, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
mulpd xmm6, xmmword [eax + edi*8 + 0x18]
mov eax, dword [esp + 0xec]
addpd xmm7, xmm6
addpd xmm0, xmm7
add eax, ebx
add ebx, dword [esp + 0xe0]
movsd xmm5, qword [eax + 8]
movhpd xmm5, qword [eax + esi + 8]
mov eax, dword [esp + 0x108]
mulpd xmm5, xmmword [eax + edi*8 + 0x28]
mov eax, dword [esp + 0xdc]
add eax, edx
add edx, dword [esp + 0xe4]
movsd xmm4, qword [eax + 8]
movhpd xmm4, qword [eax + ecx + 8]
mov eax, dword [esp + 0xf8]
movsd xmm6, qword [edx + 8]
movhpd xmm6, qword [edx + ecx + 8]
mulpd xmm4, xmmword [eax + edi*8 + 0x28]
mulpd xmm6, xmmword [eax + edi*8 + 0x38]
addpd xmm5, xmm4
movsd xmm4, qword [ebx + 8]
movhpd xmm4, qword [ebx + esi + 8]
mov ebx, dword [esp + 0x108]
addpd xmm2, xmm5
mulpd xmm4, xmmword [ebx + edi*8 + 0x38]
addpd xmm4, xmm6
add edi, 8
addpd xmm1, xmm4
cmp edi, dword [esp + 0xfc]
jb 0x5afc57
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
addpd xmm3, xmm0
addpd xmm2, xmm1
addpd xmm3, xmm2
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
imul edi, edx
imul esi, edx
cmp edx, dword [esp + 0xd0]
jae 0x5afe4d
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xac], eax
lea ebx, [ebx + eax*8]
lea ecx, [ecx + eax*8]
nop dword [eax]
mov eax, dword [esp + 0x108]
movsd xmm1, qword [esi + ebx + 8]
movsd xmm0, qword [edi + ecx + 8]
mulsd xmm1, qword [eax + edx*8 + 8]
mov eax, dword [esp + 0xf8]
add esi, dword [esp + 0x100]
add edi, dword [esp + 0x104]
mulsd xmm0, qword [eax + edx*8 + 8]
inc edx
addsd xmm1, xmm0
addsd xmm3, xmm1
cmp edx, dword [esp + 0xd0]
jb 0x5afe00
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0xcc]
movsd xmm0, qword [edx + eax*8 + 8]
movsd qword [ecx + eax*8 + 8], xmm0
mov ecx, dword [ebx + eax*4 + 4]
movsd qword [edx + eax*8 + 8], xmm3
mov edx, dword [esi + eax*4 + 4]
test ecx, ecx
je 0x5afeb2
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x98]
movsd xmm0, qword [ebx + eax*8 + 8]
addsd xmm0, qword [esi + eax*8 + 8]
addsd xmm0, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm0
test edx, edx
je 0x5afee1
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xa0]
movsd xmm0, qword [esi + edx*8]
subsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, qword [ebx + eax*8 + 8]
movsd qword [esi + edx*8], xmm0
inc eax
cmp eax, dword [esp + 0xd0]
jb 0x5af973
mov ebx, dword [esp + 0x8c]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x88]
jg 0x5aff11
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
jmp 0x5af474
add esp, 0x114
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
pxor xmm3, xmm3
jmp 0x5afdc1
lea eax, [esp + 0x84]
push eax
push dword [ebp + 8]
call fcn.00573bd0
add esp, 8
mov eax, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
jmp 0x5af6a1
mov dword [esp + 0x20], 0
lea ebx, [esp + 0x20]
mov dword [ebx + 0x20], 0x26
lea eax, [esp + 0x40]
mov dword [eax + 4], str.ERROR_during_solution_of_transformers_
push 0x120
push eax
push 0x6906a0
push 0x8384ff00
push 6
push ebx
call fcn.005b4d50
mov dword [esp + 0x38], 0
lea eax, [esp + 0x60]
mov dword [eax], 0x2e
mov dword [eax + 4], str.Transformer_Subsystem_Numbers_are_mis_aligned_
push 0x120
push eax
push 0x6906a8
push 0x8384ff00
push 6
push ebx
call fcn.005b4d50
push 0x22
push 0x6906b0
push 0x717fc0
call fcn.00471080
add esp, 0x3c
mov eax, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
lea edx, [eax*4]
mov dword [esp + 0x90], edx
jmp 0x5af4d9
mov dword [esp + 0x44], 0
jmp 0x5af3cb