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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x144
movq xmm0, qword [0x68fc98]
movq xmm1, qword [0x68fca0]
mov dword [esp], 0x716914
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], str.INCALCVI
movq qword [esp + 0x10], xmm1
mov dword [esp + 0x18], 0
call fcn.005b4070
mov ebx, dword [ebp + 8]
mov ecx, dword [0x6c52c8]
shl ecx, 2
mov edx, dword [0x6c5af8]
neg ecx
shl edx, 2
mov esi, dword [ebx]
neg edx
add ecx, dword [0x6c52a8]
mov eax, dword [ebp + 0x14]
add edx, dword [0x6c5ad8]
mov edi, dword [ecx + esi*4]
mov eax, dword [eax]
mov dword [esp + 0x8c], esi
mov ebx, dword [edx + esi*4]
mov dword [esp + 0x6c], edi
and eax, 1
mov dword [esp + 0x5c], eax
je 0x59d405
mov eax, dword [0x6c53f8]
shl eax, 2
neg eax
add eax, dword [0x6c53d8]
mov edx, esi
test byte [eax + edx*4], 1
je 0x59d405
push 0x68fc60
push dword [ebp + 8]
call fcn.005aed30
add esp, 8
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
and edx, 1
mov dword [esp + 0x78], edx
je 0x59d9c7
test ebx, ebx
jle 0x59da44
mov esi, dword [0x6c5c68]
mov dword [esp + 0x3c], esi
mov esi, dword [0x6c5c38]
mov dword [esp + 0x20], esi
mov esi, dword [0x6c5c10]
mov edi, dword [0x6c8060]
mov dword [esp + 0x48], esi
mov esi, dword [ebp + 0x20]
mov eax, dword [0x6c5c48]
mov ecx, dword [0x6c5c70]
mov dword [esp + 0x38], edi
mov edi, dword [0x6c5be8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov edx, dword [0x6c5c74]
mov eax, dword [0x6c8080]
mov ecx, dword [0x6c5c40]
mov dword [esp + 0x4c], edi
mov edi, dword [0x6c5c08]
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], ecx
mov edx, dword [0x6c5c18]
mov eax, dword [0x6c5c44]
mov ecx, dword [0x6c5c14]
mov dword [esp + 0x44], edi
test byte [esi], 1
jne 0x59f63d
mov esi, dword [ebp + 0x10]
movsd xmm1, qword [esi]
cmp ebx, 8
jl 0x59e31f
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x54]
imul edi, esi
imul esi, eax
mov eax, dword [esp + 0x20]
add edx, edi
mov dword [esp + 0x54], esi
lea edi, [eax*8]
mov eax, edx
sub eax, esi
sub eax, edi
lea esi, [eax + 8]
and esi, 0xf
mov dword [esp + 0x24], esi
je 0x59d4ff
test byte [esp + 0x24], 7
jne 0x59e312
mov dword [esp + 0x24], 1
mov esi, dword [esp + 0x24]
lea edi, [esi + 8]
cmp ebx, edi
jl 0x59e312
mov edi, ebx
sub edi, esi
and edi, 7
neg edi
add edi, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
lea eax, [eax + edi*8]
mov edi, dword [esp + 0x44]
sub edx, eax
mov eax, dword [esp + 0x8c]
sub eax, ecx
shl edi, 3
imul eax, dword [esp + 0x48]
neg edi
add edi, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
test esi, esi
jbe 0x59d58e
mov dword [esp + 0x20], ebx
xor esi, esi
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x24]
movsd xmm0, qword [edx + esi*8 + 8]
subsd xmm0, qword [ebx + esi*8 + 8]
mulsd xmm0, xmm1
addsd xmm0, qword [ebx + esi*8 + 8]
movsd qword [edx + esi*8 + 8], xmm0
inc esi
cmp esi, edi
jb 0x59d565
mov dword [esp + 0x24], edi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x24]
lea esi, [esi + edi*8 + 8]
test esi, 0xf
je 0x59d638
movaps xmm0, xmm1
mov dword [esp + 0x20], ebx
unpcklpd xmm0, xmm0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
nop dword [eax]
movups xmm3, xmmword [esi + edi*8 + 8]
movups xmm5, xmmword [esi + edi*8 + 0x18]
movups xmm7, xmmword [esi + edi*8 + 0x28]
movups xmm2, xmmword [edx + edi*8 + 8]
subpd xmm2, xmm3
mulpd xmm2, xmm0
addpd xmm3, xmm2
movups xmmword [edx + edi*8 + 8], xmm3
movups xmm3, xmmword [esi + edi*8 + 0x38]
movups xmm4, xmmword [edx + edi*8 + 0x18]
movups xmm6, xmmword [edx + edi*8 + 0x28]
movups xmm2, xmmword [edx + edi*8 + 0x38]
subpd xmm4, xmm5
subpd xmm6, xmm7
subpd xmm2, xmm3
mulpd xmm4, xmm0
mulpd xmm6, xmm0
mulpd xmm2, xmm0
addpd xmm5, xmm4
addpd xmm7, xmm6
addpd xmm3, xmm2
movups xmmword [edx + edi*8 + 0x18], xmm5
movups xmmword [edx + edi*8 + 0x28], xmm7
movups xmmword [edx + edi*8 + 0x38], xmm3
add edi, 8
cmp edi, ebx
jb 0x59d5c0
jmp 0x59d6bf
movaps xmm0, xmm1
mov dword [esp + 0x20], ebx
unpcklpd xmm0, xmm0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
nop dword [eax + eax]
movups xmm2, xmmword [edx + edi*8 + 8]
movups xmm3, xmmword [edx + edi*8 + 0x18]
movups xmm4, xmmword [edx + edi*8 + 0x28]
movups xmm5, xmmword [edx + edi*8 + 0x38]
subpd xmm2, xmmword [esi + edi*8 + 8]
subpd xmm3, xmmword [esi + edi*8 + 0x18]
subpd xmm4, xmmword [esi + edi*8 + 0x28]
subpd xmm5, xmmword [esi + edi*8 + 0x38]
mulpd xmm2, xmm0
mulpd xmm3, xmm0
mulpd xmm4, xmm0
mulpd xmm5, xmm0
addpd xmm2, xmmword [esi + edi*8 + 8]
addpd xmm3, xmmword [esi + edi*8 + 0x18]
addpd xmm4, xmmword [esi + edi*8 + 0x28]
addpd xmm5, xmmword [esi + edi*8 + 0x38]
movups xmmword [edx + edi*8 + 8], xmm2
movups xmmword [edx + edi*8 + 0x18], xmm3
movups xmmword [edx + edi*8 + 0x28], xmm4
movups xmmword [edx + edi*8 + 0x38], xmm5
add edi, 8
cmp edi, ebx
jb 0x59d650
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
lea esi, [edx + 1]
cmp esi, ebx
ja 0x59d737
neg ecx
mov esi, ebx
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
sub esi, edx
shl edi, 3
add ecx, dword [esp + 0x8c]
lea eax, [eax + edx*8]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x4c]
sub esi, edi
imul ecx, dword [esp + 0x48]
mov dword [esp + 0x20], 0
lea edx, [esi + edx*8]
mov esi, dword [esp + 0x20]
add ecx, edx
mov edx, dword [esp + 0x24]
movsd xmm0, qword [eax + esi*8 + 8]
subsd xmm0, qword [ecx + esi*8 + 8]
mulsd xmm0, xmm1
addsd xmm0, qword [ecx + esi*8 + 8]
movsd qword [eax + esi*8 + 8], xmm0
inc esi
cmp esi, edx
jb 0x59d70d
cmp ebx, 8
jl 0x59e2fd
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x2c]
imul ecx, eax
imul eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
add ecx, dword [esp + 0x30]
mov edi, ecx
sub edi, eax
lea esi, [edx*8]
sub edi, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
lea edx, [edi + 8]
and edx, 0xf
je 0x59d77d
test dl, 7
jne 0x59e2fd
mov edx, 1
lea eax, [edx + 8]
cmp ebx, eax
jl 0x59e2fd
mov esi, dword [esp + 0x34]
mov eax, ebx
sub eax, edx
and eax, 7
neg eax
lea edi, [esi*8]
neg edi
add eax, ebx
add edi, dword [esp + 0x38]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
lea esi, [esi + edi*8]
sub ecx, esi
test edx, edx
jbe 0x59d7e2
mov edi, dword [esp + 0x40]
xor esi, esi
movsd xmm2, qword [ecx + esi*8 + 8]
movsd xmm0, qword [edi + esi*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm2, xmm0
movsd qword [ecx + esi*8 + 8], xmm2
inc esi
cmp esi, edx
jb 0x59d7bf
mov esi, dword [esp + 0x40]
lea edi, [esi + edx*8 + 8]
test edi, 0xf
je 0x59d880
nop dword [eax]
nop dword [eax]
movups xmm2, xmmword [esi + edx*8 + 8]
movups xmm4, xmmword [esi + edx*8 + 0x18]
movups xmm6, xmmword [esi + edx*8 + 0x28]
movups xmm3, xmmword [ecx + edx*8 + 8]
movaps xmm0, xmm1
subpd xmm2, xmm3
unpcklpd xmm0, xmm0
mulpd xmm2, xmm0
addpd xmm3, xmm2
movups xmm2, xmmword [esi + edx*8 + 0x38]
movups xmmword [ecx + edx*8 + 8], xmm3
movups xmm5, xmmword [ecx + edx*8 + 0x18]
movups xmm7, xmmword [ecx + edx*8 + 0x28]
movups xmm3, xmmword [ecx + edx*8 + 0x38]
subpd xmm4, xmm5
subpd xmm6, xmm7
subpd xmm2, xmm3
mulpd xmm4, xmm0
mulpd xmm6, xmm0
mulpd xmm0, xmm2
addpd xmm5, xmm4
addpd xmm7, xmm6
addpd xmm3, xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm5
movups xmmword [ecx + edx*8 + 0x28], xmm7
movups xmmword [ecx + edx*8 + 0x38], xmm3
add edx, 8
cmp edx, eax
jb 0x59d800
jmp 0x59d8fa
movups xmm3, xmmword [ecx + edx*8 + 8]
movaps xmm0, xmm1
movups xmm2, xmmword [esi + edx*8 + 8]
subpd xmm2, xmm3
unpcklpd xmm0, xmm0
mulpd xmm2, xmm0
addpd xmm3, xmm2
movups xmmword [ecx + edx*8 + 8], xmm3
movups xmm5, xmmword [ecx + edx*8 + 0x18]
movups xmm7, xmmword [ecx + edx*8 + 0x28]
movups xmm3, xmmword [ecx + edx*8 + 0x38]
movups xmm4, xmmword [esi + edx*8 + 0x18]
movups xmm6, xmmword [esi + edx*8 + 0x28]
movups xmm2, xmmword [esi + edx*8 + 0x38]
subpd xmm4, xmm5
subpd xmm6, xmm7
subpd xmm2, xmm3
mulpd xmm4, xmm0
mulpd xmm6, xmm0
mulpd xmm0, xmm2
addpd xmm5, xmm4
addpd xmm7, xmm6
addpd xmm3, xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm5
movups xmmword [ecx + edx*8 + 0x28], xmm7
movups xmmword [ecx + edx*8 + 0x38], xmm3
add edx, 8
cmp edx, eax
jb 0x59d880
lea edx, [eax + 1]
cmp edx, ebx
ja 0x59da44
sub ebx, eax
cmp ebx, 2
jl 0x59e2f6
mov edx, dword [esp + 0x40]
mov ecx, ebx
mov esi, dword [esp + 0x24]
and ecx, 0xfffffffe
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x20]
lea edx, [edx + eax*8]
lea esi, [esi + eax*8]
movups xmm0, xmmword [edx + edi*8 + 8]
movups xmm3, xmmword [esi + edi*8 + 8]
movaps xmm2, xmm1
subpd xmm0, xmm3
unpcklpd xmm2, xmm2
mulpd xmm2, xmm0
addpd xmm3, xmm2
movups xmmword [esi + edi*8 + 8], xmm3
add edi, 2
cmp edi, ecx
jb 0x59d92f
cmp ecx, ebx
jae 0x59da44
mov esi, dword [esp + 0x34]
shl esi, 3
mov edi, dword [esp + 0x38]
sub edi, esi
mov esi, dword [esp + 0x3c]
shl esi, 3
lea edx, [edi + eax*8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
neg edx
add edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x30]
sub edi, esi
imul edx, dword [esp + 0x2c]
lea eax, [edi + eax*8]
add edx, eax
mov dword [esp + 0x28], edx
mov eax, edx
mov edx, dword [esp + 0x20]
movsd xmm2, qword [eax + ecx*8 + 8]
movsd xmm0, qword [edx + ecx*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm2, xmm0
movsd qword [eax + ecx*8 + 8], xmm2
inc ecx
cmp ecx, ebx
jb 0x59d9a2
jmp 0x59da44
test ebx, ebx
jle 0x59da44
mov esi, dword [0x6c5c48]
mov eax, dword [0x6c5c70]
mov edx, dword [0x6c5c68]
mov ecx, dword [0x6c8060]
mov edi, dword [0x6c8080]
mov dword [esp + 0x24], esi
mov esi, dword [0x6c5c74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], edi
cmp ebx, 0xc
jle 0x59f503
shl ebx, 3
neg esi
push ebx
add esi, dword [esp + 0x90]
mov eax, edx
shl eax, 3
imul esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub edx, eax
mov ecx, edi
shl ecx, 3
mov ebx, dword [esp + 0x3c]
sub ebx, ecx
lea esi, [esi + edx + 8]
add ebx, 8
push ebx
push esi
call fcn.0062a530
add esp, 0xc
mov ebx, dword [ebp + 0x1c]
mov ecx, 1
cmp dword [esp + 0x6c], 0
jle 0x59e354
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x88], 1
mov edx, dword [eax]
mov eax, dword [ebx]
and edx, 1
and eax, 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x8c]
jmp 0x59da87
mov dword [esp + 0x88], ecx
mov eax, dword [0x6c47f4]
lea esi, [ecx*4]
neg eax
mov edx, dword [0x6c47e8]
add eax, ebx
shl edx, 2
mov edi, dword [0x6c47c8]
sub edi, edx
imul eax, dword [0x6c47f0]
lea edx, [edi + ecx*4]
mov eax, dword [edx + eax]
mov dword [0x81e9c0], eax
test eax, eax
jle 0x59dad3
mov edx, dword [0x6c4f60]
neg edx
add edx, eax
mov eax, dword [0x6c4f40]
cmp dword [eax + edx*4], 0x65
je 0x59dae2
mov dword [esp + 0x98], 0
xor eax, eax
jmp 0x59daf2
mov dword [esp + 0x98], 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0x70], eax
mov eax, dword [0x6c4d8c]
neg eax
mov edx, dword [0x6c4d80]
add eax, ebx
shl edx, 2
mov edi, dword [0x6c4d60]
sub edi, edx
imul eax, dword [0x6c4d88]
lea edx, [edi + ecx*4]
test byte [edx + eax], 1
mov eax, dword [esp + 0x70]
je 0x59dc7f
cmp dword [esp + 0x58], 0
jne 0x59dc3b
test al, 1
je 0x59dc3b
mov eax, dword [0x6c53d0]
shl eax, 2
neg eax
add eax, dword [0x6c53b0]
test byte [eax + ebx*4], 1
je 0x59dc3b
cmp dword [esp + 0x4c], 0
jne 0x59dc3b
mov eax, dword [0x6c4cc8]
cmp dword [esp + 0x78], 0
je 0x59dbde
mov esi, dword [0x6c4c70]
mov edx, dword [0x6c4c90]
shl edx, 3
neg edx
lea esi, [esi + ecx*8]
add esi, edx
mov edx, dword [0x6c4ccc]
neg edx
add edx, ebx
mov edi, dword [0x6c4c9c]
imul edx, eax
neg edi
mov eax, dword [0x6c4cc0]
add edi, ebx
shl eax, 3
mov dword [esp + 0x8c], ebx
mov ebx, dword [0x6c4ca0]
sub ebx, eax
imul edi, dword [0x6c4c98]
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + ecx*8]
movsd xmm0, qword [ecx + edx]
mov ebx, dword [esp + 0x8c]
subsd xmm0, qword [esi + edi]
mulsd xmm0, qword [eax]
addsd xmm0, qword [esi + edi]
movsd qword [esi + edi], xmm0
jmp 0x59dc3b
mov esi, dword [0x6c4ccc]
neg esi
mov edx, dword [0x6c4c9c]
add esi, ebx
mov edi, dword [0x6c4cc0]
neg edx
shl edi, 3
add edx, ebx
mov dword [esp + 0x8c], ebx
imul esi, eax
imul edx, dword [0x6c4c98]
mov ebx, dword [0x6c4c90]
mov eax, dword [0x6c4ca0]
shl ebx, 3
sub eax, edi
mov edi, dword [0x6c4c70]
sub edi, ebx
mov ebx, dword [esp + 0x8c]
lea eax, [eax + ecx*8]
movsd xmm0, qword [eax + esi]
lea ecx, [edi + ecx*8]
movsd qword [ecx + edx], xmm0
lea eax, [esp + 0x98]
lea edx, [esp + 0x88]
push dword [ebp + 0xc]
push dword [ebp + 0x1c]
push 0x68fc64
push dword [ebp + 0x18]
push eax
push dword [ebp + 0x20]
push dword [ebp + 8]
push edx
call fcn.0054fb30
fstp qword [esp + 0x80]
wait
add esp, 0x20
mov ecx, dword [esp + 0x88]
lea esi, [ecx*4]
jmp 0x59dc89
pxor xmm0, xmm0
movsd qword [esp + 0x60], xmm0
mov edi, dword [0x6c4704]
neg edi
mov eax, dword [0x6c46f8]
add edi, ebx
shl eax, 2
mov edx, dword [0x6c46d8]
sub edx, eax
imul edi, dword [0x6c4700]
add edx, esi
test byte [edx + edi], 1
jne 0x59e2e9
mov ecx, dword [0x6c4854]
neg ecx
mov edx, dword [0x6c4848]
add ecx, ebx
shl edx, 2
mov eax, dword [0x6c4828]
sub eax, edx
imul ecx, dword [0x6c4850]
add eax, esi
mov edx, dword [eax + ecx]
mov ecx, dword [0x6c4824]
neg ecx
mov edi, dword [0x6c4818]
add ecx, ebx
shl edi, 2
mov eax, dword [0x6c47f8]
sub eax, edi
imul ecx, dword [0x6c4820]
add eax, esi
mov ecx, dword [eax + ecx]
mov eax, dword [0x6c8080]
shl eax, 3
mov esi, dword [0x6c8060]
test ecx, ecx
jne 0x59dd1d
sub esi, eax
movsd xmm0, qword [esi + edx*8]
jmp 0x59dd43
test edx, edx
jne 0x59dd31
sub esi, eax
movsd xmm0, qword [esi + ecx*8]
xorps xmm0, xmmword [0x68fc70]
jmp 0x59dd43
lea edx, [esi + edx*8]
sub edx, eax
lea ecx, [esi + ecx*8]
sub ecx, eax
movsd xmm0, qword [edx]
subsd xmm0, qword [ecx]
movsd xmm1, qword [esp + 0x60]
lea eax, [esp + 0x88]
addsd xmm1, xmm0
movsd qword [eax - 0x28], xmm1
push dword [ebp + 0xc]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x20]
push dword [ebp + 8]
push eax
call fcn.0054f910
fstp qword [esp + 0x68]
wait
movsd xmm1, qword [esp + 0x68]
add esp, 0x18
mov eax, dword [0x6c4bdc]
neg eax
mov esi, dword [0x6c4bd0]
add eax, ebx
shl esi, 3
mov edi, dword [0x6c4bb0]
sub edi, esi
imul eax, dword [0x6c4bd8]
mov ecx, dword [esp + 0x88]
cmp dword [esp + 0x5c], 0
lea edx, [ecx*8]
mov dword [esp + 0x68], edx
lea edx, [edi + ecx*8]
movsd xmm0, qword [edx + eax]
mulsd xmm0, qword [esp + 0x60]
addsd xmm1, xmm0
je 0x59ddf9
mov eax, dword [0x6c53f8]
shl eax, 2
neg eax
add eax, dword [0x6c53d8]
test byte [eax + ebx*4], 1
je 0x59ddf9
mov eax, dword [0x6c8058]
shl eax, 3
neg eax
add eax, dword [0x6c8038]
mov edx, dword [esp + 0x68]
movsd qword [eax + edx], xmm1
jmp 0x59de6a
cmp dword [esp + 0x78], 0
je 0x59de41
mov edx, dword [0x6c4d30]
mov eax, dword [0x6c4d5c]
neg eax
mov esi, dword [0x6c4d50]
add eax, ebx
shl esi, 3
lea edx, [edx + ecx*8]
neg esi
imul eax, dword [0x6c4d58]
add edx, esi
movsd xmm0, qword [edx + eax]
mov edi, dword [ebp + 0x10]
subsd xmm1, xmm0
mulsd xmm1, qword [edi]
addsd xmm0, xmm1
movsd qword [edx + eax], xmm0
jmp 0x59de6a
mov edi, dword [0x6c4d5c]
neg edi
mov eax, dword [0x6c4d50]
add edi, ebx
shl eax, 3
mov edx, dword [0x6c4d30]
sub edx, eax
imul edi, dword [0x6c4d58]
lea esi, [edx + ecx*8]
movsd qword [esi + edi], xmm1
mov edi, dword [0x6c46a4]
neg edi
mov eax, dword [0x6c4698]
add edi, ebx
shl eax, 2
mov edx, dword [0x6c4678]
sub edx, eax
imul edi, dword [0x6c46a0]
lea esi, [edx + ecx*4]
test byte [esi + edi], 1
jne 0x59e2bb
cmp dword [esp + 0x4c], 0
jne 0x59df07
mov eax, dword [0x6c4cfc]
neg eax
mov edx, dword [0x6c4cf0]
add eax, ebx
shl edx, 3
mov esi, dword [0x6c4cd0]
sub esi, edx
imul eax, dword [0x6c4cf8]
mov edx, dword [0x6c4d00]
lea edi, [esi + ecx*8]
movsd xmm1, qword [edi + eax]
mov eax, dword [0x6c4d2c]
neg eax
lea edx, [edx + ecx*8]
mov esi, dword [0x6c4d20]
add eax, ebx
shl esi, 3
neg esi
imul eax, dword [0x6c4d28]
add edx, esi
movsd xmm0, qword [edx + eax]
mov edi, dword [ebp + 0x10]
subsd xmm0, xmm1
mulsd xmm0, qword [edi]
addsd xmm1, xmm0
movsd qword [edx + eax], xmm1
mov edi, dword [0x6c4794]
neg edi
mov eax, dword [0x6c4788]
add edi, ebx
shl eax, 2
mov edx, dword [0x6c4768]
sub edx, eax
imul edi, dword [0x6c4790]
lea esi, [edx + ecx*4]
test byte [esi + edi], 1
je 0x59e0d8
mov esi, dword [0x6c4a00]
mov edx, dword [0x6c4a20]
shl edx, 3
neg edx
lea edi, [esi + ecx*8]
add edi, edx
mov edx, dword [0x6c4b1c]
neg edx
mov esi, dword [0x6c4b10]
add edx, ebx
shl esi, 3
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c4af0]
sub edi, esi
imul edx, dword [0x6c4b18]
mov eax, dword [0x6c4a2c]
lea esi, [edi + ecx*8]
mov edi, dword [0x6c49cc]
neg eax
neg edi
add eax, ebx
movsd xmm2, qword [esi + edx]
add edi, ebx
mov edx, dword [0x6c49c0]
shl edx, 3
mov esi, dword [0x6c49a0]
sub esi, edx
imul edi, dword [0x6c49c8]
imul eax, dword [0x6c4a28]
mulsd xmm2, qword [esp + 0x60]
mov dword [esp + 0x34], eax
lea edx, [esi + ecx*8]
movsd xmm0, qword [edx + edi]
mov edi, dword [0x6c4a90]
mov esi, dword [0x6c4abc]
neg esi
mov edx, dword [0x6c4ab0]
add esi, ebx
shl edx, 3
lea edi, [edi + ecx*8]
neg edx
imul esi, dword [0x6c4ab8]
add edi, edx
mov edx, dword [0x6c4a8c]
neg edx
mulsd xmm0, qword [edi + esi]
add edx, ebx
imul edx, dword [0x6c4a88]
addsd xmm2, xmm0
mov esi, dword [0x6c4a80]
shl esi, 3
mov edi, dword [0x6c4a60]
sub edi, esi
lea esi, [edi + ecx*8]
movsd xmm1, qword [esi + edx]
mov edx, dword [esp + 0x3c]
mov esi, dword [0x6c490c]
mulsd xmm1, qword [edx + eax]
mov edx, dword [0x6c4900]
subsd xmm2, xmm1
mov eax, dword [0x6c4908]
lea edi, [edx*8]
imul esi, eax
imul eax, ebx
mov dword [esp + 0x44], edi
mov edi, dword [0x6c48e0]
cmp dword [esp + 0x78], 0
je 0x59e076
lea edi, [edi + ecx*8]
add edi, eax
lea eax, [esi + edx*8]
sub edi, eax
mov edx, dword [ebp + 0x10]
movsd xmm0, qword [edi]
subsd xmm2, xmm0
mulsd xmm2, qword [edx]
addsd xmm0, xmm2
movsd qword [edi], xmm0
jmp 0x59e087
sub edi, esi
sub edi, dword [esp + 0x44]
add edi, eax
mov eax, dword [esp + 0x68]
movsd qword [edi + eax], xmm2
cmp dword [esp + 0x4c], 0
jne 0x59e0d8
mov edi, dword [0x6c49fc]
neg edi
mov eax, dword [0x6c49f0]
add edi, ebx
shl eax, 3
mov edx, dword [0x6c49d0]
sub edx, eax
imul edi, dword [0x6c49f8]
mov eax, dword [ebp + 0x10]
lea esi, [edx + ecx*8]
movsd xmm1, qword [esi + edi]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
movsd xmm0, qword [edx + esi]
subsd xmm0, xmm1
mulsd xmm0, qword [eax]
addsd xmm1, xmm0
movsd qword [edx + esi], xmm1
mov edi, dword [0x6c4764]
neg edi
mov eax, dword [0x6c4758]
add edi, ebx
shl eax, 2
mov edx, dword [0x6c4738]
sub edx, eax
imul edi, dword [0x6c4760]
lea esi, [edx + ecx*4]
test byte [esi + edi], 1
je 0x59e2bb
mov esi, dword [0x6c49a0]
mov edi, dword [0x6c49c0]
shl edi, 3
neg edi
lea esi, [esi + ecx*8]
add esi, edi
mov edi, dword [0x6c4ac0]
mov edx, dword [0x6c4aec]
neg edx
mov dword [esp + 0x40], esi
add edx, ebx
mov esi, dword [0x6c4ae0]
lea edi, [edi + ecx*8]
shl esi, 3
neg esi
imul edx, dword [0x6c4ae8]
add edi, esi
movsd xmm2, qword [esp + 0x60]
mulsd xmm2, qword [edi + edx]
mov edx, dword [0x6c4a90]
mov edi, dword [0x6c4abc]
neg edi
mov esi, dword [0x6c4ab0]
add edi, ebx
shl esi, 3
lea edx, [edx + ecx*8]
neg esi
imul edi, dword [0x6c4ab8]
add edx, esi
movsd xmm0, qword [edx + edi]
mov edi, dword [0x6c4a00]
mov esi, dword [0x6c4a2c]
neg esi
mov edx, dword [0x6c4a20]
add esi, ebx
shl edx, 3
lea edi, [edi + ecx*8]
neg edx
imul esi, dword [0x6c4a28]
add edi, edx
mulsd xmm0, qword [edi + esi]
mov esi, dword [0x6c4a30]
addsd xmm2, xmm0
mov edx, dword [0x6c4a5c]
lea esi, [esi + ecx*8]
neg edx
mov edi, dword [0x6c4a50]
add edx, ebx
shl edi, 3
neg edi
imul edx, dword [0x6c4a58]
add esi, edi
mov eax, dword [0x6c49cc]
neg eax
add eax, ebx
imul eax, dword [0x6c49c8]
movsd xmm1, qword [esi + edx]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov esi, dword [0x6c48dc]
mulsd xmm1, qword [edx + eax]
mov edx, dword [0x6c48d0]
subsd xmm2, xmm1
mov eax, dword [0x6c48d8]
lea edi, [edx*8]
imul esi, eax
imul eax, ebx
movsd qword [esp + 0x60], xmm2
mov dword [esp + 0x48], edi
mov edi, dword [0x6c48b0]
cmp dword [esp + 0x78], 0
je 0x59e256
movaps xmm0, xmm2
lea edi, [edi + ecx*8]
add edi, eax
lea eax, [esi + edx*8]
sub edi, eax
mov edx, dword [ebp + 0x10]
movsd xmm1, qword [edi]
subsd xmm0, xmm1
mulsd xmm0, qword [edx]
addsd xmm1, xmm0
movsd qword [edi], xmm1
jmp 0x59e26a
sub edi, esi
sub edi, dword [esp + 0x48]
add edi, eax
mov eax, dword [esp + 0x68]
movaps xmm0, xmm2
movsd qword [edi + eax], xmm0
cmp dword [esp + 0x4c], 0
jne 0x59e2bb
mov edi, dword [0x6c499c]
neg edi
mov eax, dword [0x6c4990]
add edi, ebx
shl eax, 3
mov edx, dword [0x6c4970]
sub edx, eax
imul edi, dword [0x6c4998]
mov eax, dword [ebp + 0x10]
lea esi, [edx + ecx*8]
movsd xmm1, qword [esi + edi]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
movsd xmm0, qword [edx + esi]
subsd xmm0, xmm1
mulsd xmm0, qword [eax]
addsd xmm1, xmm0
movsd qword [edx + esi], xmm1
mov edi, dword [0x6c51cc]
neg edi
mov eax, dword [0x6c51c0]
add edi, ebx
shl eax, 2
mov edx, dword [0x6c51a0]
sub edx, eax
imul edi, dword [0x6c51c8]
lea esi, [edx + ecx*4]
cmp dword [esi + edi], 5
je 0x59f38c
inc ecx
cmp ecx, dword [esp + 0x6c]
jle 0x59da80
jmp 0x59e34a
xor ecx, ecx
jmp 0x59d958
cmp ebx, 1
mov eax, 0
mov ecx, eax
jae 0x59d958
jmp 0x59da44
mov dword [esp + 0x40], 0
jmp 0x59d6c3
cmp ebx, 1
jb 0x59e300
neg eax
add eax, dword [esp + 0x8c]
imul eax, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
shl esi, 3
sub edx, esi
mov dword [esp + 0x40], 0
add eax, edx
jmp 0x59d6ce
mov dword [esp + 0x8c], ebx
mov ebx, dword [ebp + 0x1c]
cmp dword [esp + 0x5c], 0
je 0x59e37c
mov eax, dword [0x6c53f8]
shl eax, 2
neg eax
add eax, dword [0x6c53d8]
mov edx, dword [esp + 0x8c]
test byte [eax + edx*4], 1
jne 0x59f002
mov eax, dword [0x6c5e90]
shl eax, 2
neg eax
add eax, dword [0x6c5e70]
mov edx, dword [esp + 0x8c]
cmp dword [eax + edx*4], 0
jle 0x59e411
mov eax, dword [0x76e588]
test eax, eax
jle 0x59e411
mov edx, dword [ebp + 0x20]
mov dword [esp + 0xfc], 1
mov dword [esp + 0x90], eax
mov esi, dword [edx]
mov edx, dword [ebx]
xor ebx, ebx
and esi, 1
and edx, 1
mov dword [esp + 0xf8], edx
mov dword [esp + 0x94], esi
mov dword [esp + 0x74], ebx
mov esi, dword [esp + 0xfc]
sub esi, dword [0x6c6070]
mov ebx, dword [0x6c6050]
mov eax, dword [ebx + esi*4]
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x8c]
je 0x59e468
mov eax, dword [esp + 0xfc]
inc eax
mov dword [esp + 0xfc], eax
cmp eax, dword [esp + 0x90]
jle 0x59e3d5
mov dword [esp + 0x88], ecx
mov eax, dword [0x6c8bb0]
shl eax, 2
neg eax
add eax, dword [0x6c8b90]
mov edx, dword [esp + 0x8c]
cmp dword [eax + edx*4], 0
jle 0x59e440
push dword [ebp + 8]
call fcn.00549210
add esp, 4
lea eax, [esp + 0x20]
push dword [ebp + 0x20]
push dword [ebp + 0x14]
push eax
push 0x68fc64
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.0058ac30
add esp, 0x15c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [0x6c5e90]
shl edx, 2
neg edx
add edx, dword [0x6c5e70]
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
cmp eax, dword [edx + ebx*4]
jg 0x59efb0
mov edx, dword [0x6c5eb8]
shl edx, 2
mov ecx, dword [0x6c5e98]
neg edx
mov eax, dword [esp + 0xfc]
lea ebx, [ecx + eax*4]
mov ecx, 1
mov esi, dword [edx + ebx]
mov dword [esp + 0x104], esi
test esi, esi
jle 0x59edb7
mov edi, dword [0x6c5f1c]
mov dword [esp + 0xe8], edi
pxor xmm0, xmm0
mov edi, dword [0x6c5ee0]
mov dword [esp + 0xd0], edi
mov edi, dword [0x6c5f78]
mov dword [esp + 0x110], edi
mov edi, dword [0x6c5f48]
mov dword [esp + 0xbc], edi
mov edi, dword [0x6c5e68]
mov dword [esp + 0x7c], edi
mov edi, dword [0x6c847c]
mov edx, dword [0x6c5ef0]
mov dword [esp + 0x6c], edi
mov edi, dword [0x6c8470]
mov dword [esp + 0xec], edx
mov edx, dword [0x6c5ee8]
mov dword [esp + 0x64], edi
mov edi, dword [0x6c84ac]
mov dword [esp + 0xd4], edx
mov edx, dword [0x6c5fc8]
mov dword [esp + 0x5c], edi
mov edi, dword [0x6c84a0]
mov dword [esp + 0x114], edx
mov edx, dword [0x6c5f4c]
mov dword [esp + 0x54], edi
mov edi, dword [0x6c859c]
mov dword [esp + 0xc0], edx
mov edx, dword [0x6c5e48]
mov dword [esp + 0x4c], edi
mov edi, dword [0x6c8590]
mov dword [esp + 0x80], edx
mov edx, dword [0x6c8450]
mov dword [esp + 0x44], edi
mov edi, dword [0x6c85cc]
mov dword [esp + 0x70], edx
mov edx, dword [0x6c8478]
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c85c0]
mov dword [esp + 0x68], edx
mov edx, dword [0x6c8480]
mov dword [esp + 0x34], edi
mov edi, eax
mov ecx, dword [0x6c5ec0]
mov ebx, dword [0x6c5eec]
mov dword [esp + 0x60], edx
mov edx, dword [0x6c84a8]
sub edi, dword [0x6c5b5c]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xd8], ebx
mov ecx, dword [0x6c5fdc]
mov ebx, dword [0x6c5fd4]
mov esi, dword [0x6c8080]
mov dword [esp + 0x58], edx
mov edx, dword [0x6c8570]
imul edi, dword [0x6c5b58]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x118], ebx
mov ecx, dword [0x6c5fa0]
mov dword [esp + 0xf0], esi
mov ebx, dword [0x6c5f20]
mov eax, dword [0x6c8060]
mov esi, dword [0x6c5f10]
mov dword [esp + 0x50], edx
mov edx, dword [0x6c8598]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xc4], ebx
mov ecx, dword [0x6c5f40]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xe0], esi
mov ebx, dword [0x6c5b50]
mov eax, dword [0x6c5f18]
mov esi, dword [0x6c5fe0]
mov dword [esp + 0x48], edx
shl ebx, 3
mov edx, dword [0x6c85a0]
mov dword [esp + 0xb8], ecx
mov ecx, dword [0x6c5b30]
mov dword [esp + 0xe4], eax
sub ecx, ebx
mov dword [esp + 0x120], esi
add edi, ecx
mov eax, dword [0x6c5fa8]
mov ebx, 1
mov esi, dword [0x6c5fa4]
mov dword [esp + 0x40], edx
mov edx, dword [0x6c85c8]
mov dword [esp + 0x124], eax
mov dword [esp + 0xcc], esi
mov eax, dword [0x6c5fd0]
mov esi, dword [0x6c5f98]
mov dword [esp + 0x38], edx
xor edx, edx
mov dword [esp + 0x9c], edi
cmp dword [esp + 0x104], 0
jg 0x59e709
mov dword [esp + 0x100], ebx
lea ecx, [esi*8]
neg ecx
add ecx, dword [esp + 0x110]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], esi
jmp 0x59e8af
mov dword [esp + 0x100], ebx
mov dword [esp + 0x10c], esi
mov esi, dword [esp + 0xe0]
mov ecx, dword [esp + 0xfc]
mov ebx, ecx
sub ebx, dword [esp + 0xe8]
imul ebx, dword [esp + 0xe4]
lea edi, [esi*4]
neg edi
add edi, dword [esp + 0xec]
sub ecx, dword [esp + 0xd8]
imul ecx, dword [esp + 0xd4]
lea esi, [edi + edx*4]
mov edi, dword [esp + 0xd0]
mov ebx, dword [esi + ebx + 4]
lea esi, [edi*4]
neg esi
add esi, dword [esp + 0xdc]
lea edi, [esi + edx*4]
mov esi, dword [edi + ecx + 4]
test esi, esi
jne 0x59e797
mov ecx, dword [esp + 0xf0]
neg ecx
add ecx, ebx
mov ebx, dword [esp + 0xf4]
movsd xmm1, qword [ebx + ecx*8]
jmp 0x59e7c6
mov ecx, dword [esp + 0xf0]
shl ecx, 3
neg ecx
add ecx, dword [esp + 0xf4]
test ebx, ebx
jne 0x59e7bc
movsd xmm1, qword [ecx + esi*8]
xorps xmm1, xmmword [0x68fc70]
jmp 0x59e7c6
movsd xmm1, qword [ecx + ebx*8]
subsd xmm1, qword [ecx + esi*8]
cmp dword [esp + 0xf8], 0
je 0x59e826
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xfc]
sub edi, dword [esp + 0xc0]
imul edi, dword [esp + 0xbc]
lea ebx, [ecx*8]
neg ebx
add ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x10c]
lea esi, [ebx + edx*8]
lea ebx, [ecx*8]
neg ebx
addsd xmm0, qword [esi + edi + 8]
add ebx, dword [esp + 0x110]
mov dword [esp + 0x108], ebx
jmp 0x59e863
mov ecx, dword [esp + 0x10c]
mov edi, dword [esp + 0xfc]
sub edi, dword [esp + 0xcc]
imul edi, dword [esp + 0xc8]
lea ebx, [ecx*8]
neg ebx
add ebx, dword [esp + 0x110]
mov dword [esp + 0x108], ebx
lea esi, [ebx + edx*8]
addsd xmm0, qword [esi + edi + 8]
mov ebx, eax
mov edi, dword [esp + 0x114]
neg ebx
mov ecx, dword [esp + 0x118]
neg ebx
neg ecx
add ebx, dword [esp + 0x124]
shl edi, 3
add ecx, edx
sub ebx, edi
imul ecx, eax
mov esi, dword [esp + 0xfc]
lea ebx, [ebx + edx*8 + 8]
sub esi, dword [esp + 0x120]
add ecx, ebx
imul esi, dword [esp + 0x11c]
mulsd xmm1, qword [ecx + esi]
addsd xmm0, xmm1
mov dword [esp + 0x128], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
lea ecx, [edx + 2]
cmp ecx, eax
ja 0x59ea31
mov dword [esp + 0x100], ebx
mov ecx, eax
mov ebx, dword [esp + 0xf0]
sub ecx, edx
mov dword [esp + 0xa0], edx
dec ecx
mov dword [esp + 0x13c], ecx
xor ecx, ecx
lea esi, [ebx*8]
neg esi
add esi, dword [esp + 0xf4]
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xfc]
mov edi, ebx
sub edi, dword [esp + 0xe8]
imul edi, dword [esp + 0xe4]
shl esi, 2
neg esi
add esi, dword [esp + 0xec]
lea esi, [esi + edx*4]
add edi, esi
mov esi, ebx
mov dword [esp + 0x12c], edi
mov edi, dword [esp + 0xd0]
sub esi, dword [esp + 0xd8]
imul esi, dword [esp + 0xd4]
sub ebx, dword [esp + 0x120]
shl edi, 2
neg edi
add edi, dword [esp + 0xdc]
imul ebx, dword [esp + 0x11c]
lea edi, [edi + edx*4]
add esi, edi
mov dword [esp + 0x130], esi
mov esi, dword [esp + 0x118]
neg esi
mov edi, dword [esp + 0x114]
neg edi
add edi, edx
lea esi, [edx + esi + 2]
mov edx, dword [esp + 0x124]
imul esi, dword [esp + 0x128]
lea edx, [edx + edi*8]
add ebx, edx
add esi, ebx
mov dword [esp + 0xb4], esi
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
mov ebx, ecx
mov edi, dword [esp + 0x130]
mov eax, dword [esp + 0x12c]
mov edi, dword [edi + ebx*4 + 8]
mov eax, dword [eax + ebx*4 + 8]
test edi, edi
jne 0x59e9e5
movsd xmm1, qword [edx + eax*8]
jmp 0x59ea01
test eax, eax
jne 0x59e9f7
movsd xmm1, qword [edx + edi*8]
xorps xmm1, xmmword [0x68fc70]
jmp 0x59ea01
movsd xmm1, qword [edx + eax*8]
subsd xmm1, qword [edx + edi*8]
mulsd xmm1, qword [ecx + esi + 8]
inc ebx
add ecx, dword [esp + 0x128]
addsd xmm0, xmm1
cmp ebx, dword [esp + 0x13c]
jb 0x59e9c4
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x104]
mov edi, dword [esp + 0xfc]
mov ecx, edi
sub ecx, dword [esp + 0xcc]
mov esi, edi
imul ecx, dword [esp + 0xc8]
add ecx, dword [esp + 0x108]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x54]
sub esi, dword [esp + 0x5c]
imul esi, dword [esp + 0x58]
shl ecx, 3
neg ecx
add ecx, dword [esp + 0x60]
add esi, ecx
mov ecx, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x44]
sub ecx, dword [esp + 0x4c]
imul ecx, dword [esp + 0x48]
sub edi, dword [esp + 0x3c]
shl esi, 3
neg esi
add esi, dword [esp + 0x50]
add ecx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
imul edi, dword [esp + 0x38]
shl ecx, 3
neg ecx
add ecx, dword [esp + 0x40]
add edi, ecx
mov dword [esp + 0x24], edi
cmp dword [esp + 0x78], 0
je 0x59ebe3
mov esi, dword [esp + 0x9c]
mov ecx, dword [ebp + 0x10]
cmp dword [esp + 0x94], 0
movsd xmm1, qword [esi + edx*8 + 8]
subsd xmm0, xmm1
mulsd xmm0, qword [ecx]
addsd xmm1, xmm0
movsd qword [esi + edx*8 + 8], xmm1
jne 0x59ebda
mov ecx, dword [esp + 0xfc]
mov esi, ecx
sub esi, dword [esp + 0xc0]
imul esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x100], ebx
mov ebx, edx
sub ebx, dword [esp + 0xb8]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x84]
movsd xmm1, qword [esi + ebx*8]
movsd xmm0, qword [edi + edx*8 + 8]
mov ebx, dword [ebp + 0x10]
subsd xmm0, xmm1
mulsd xmm0, qword [ebx]
mov ebx, dword [esp + 0x80]
addsd xmm1, xmm0
movsd qword [edi + edx*8 + 8], xmm1
lea esi, [ebx + ecx*4]
mov ecx, dword [esp + 0x7c]
lea ebx, [ecx*4]
neg ebx
cmp dword [ebx + esi], 1
mov ebx, dword [esp + 0x100]
jne 0x59ebf0
mov edi, dword [esp + 0xfc]
mov esi, edx
sub edi, dword [esp + 0x6c]
imul edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
sub esi, dword [esp + 0x64]
lea edi, [edi + ecx + 8]
mov ecx, dword [ebp + 0x10]
movsd xmm1, qword [edi + esi*8]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
movsd xmm0, qword [esi + edx*8 + 8]
subsd xmm0, xmm1
mulsd xmm0, qword [ecx]
addsd xmm1, xmm0
movsd qword [esi + edx*8 + 8], xmm1
mov esi, dword [esp + 0x24]
movsd xmm2, qword [esi + edx*8 + 8]
subsd xmm2, qword [edi + edx*8 + 8]
mulsd xmm2, qword [ecx]
addsd xmm2, qword [edi + edx*8 + 8]
movsd qword [esi + edx*8 + 8], xmm2
movsd qword [edi + edx*8 + 8], xmm2
jmp 0x59ebf0
cmp ebx, eax
jb 0x59ebf8
jmp 0x59ed9e
mov ecx, dword [esp + 0x9c]
movsd qword [ecx + edx*8 + 8], xmm0
cmp ebx, eax
jae 0x59edad
mov edx, ebx
pxor xmm0, xmm0
test ebx, ebx
jle 0x59ed7a
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0xb0], 0
lea ecx, [edx*8]
neg ecx
add ecx, dword [esp + 0xf4]
lea edx, [edi*4]
mov dword [esp + 0xa4], ecx
mov ecx, esi
sub ecx, dword [esp + 0xe8]
neg edx
imul ecx, dword [esp + 0xe4]
add edx, dword [esp + 0xec]
add ecx, edx
mov dword [esp + 0x140], ecx
mov ecx, esi
mov edi, dword [esp + 0xd0]
sub ecx, dword [esp + 0xd8]
imul ecx, dword [esp + 0xd4]
sub esi, dword [esp + 0x120]
lea edx, [edi*4]
neg edx
add edx, dword [esp + 0xdc]
mov edi, dword [esp + 0x128]
add ecx, edx
mov edx, dword [esp + 0x118]
imul edx, edi
imul esi, dword [esp + 0x11c]
mov dword [esp + 0xac], ecx
sub edx, edi
mov ecx, dword [esp + 0x114]
neg edx
neg ecx
add ecx, ebx
add edx, dword [esp + 0x124]
mov dword [esp + 0x100], ebx
lea edi, [edx + ecx*8]
mov ecx, dword [esp + 0xb0]
add esi, edi
cmp ebx, eax
mov edi, eax
cmovb edi, ebx
mov eax, dword [esp + 0xac]
mov edx, ecx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x134], edi
mov dword [esp + 0x138], esi
mov esi, dword [esp + 0x140]
mov edi, dword [esi + edx*4 + 4]
mov esi, dword [eax + edx*4 + 4]
test esi, esi
jne 0x59ed27
movsd xmm1, qword [ebx + edi*8]
jmp 0x59ed43
test edi, edi
jne 0x59ed39
movsd xmm1, qword [ebx + esi*8]
xorps xmm1, xmmword [0x68fc70]
jmp 0x59ed43
movsd xmm1, qword [ebx + edi*8]
subsd xmm1, qword [ebx + esi*8]
mov esi, dword [esp + 0x138]
inc edx
mulsd xmm1, qword [ecx + esi + 8]
add ecx, dword [esp + 0x128]
addsd xmm0, xmm1
cmp edx, dword [esp + 0x134]
jb 0x59ed0d
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x104]
inc ebx
cmp eax, ebx
jl 0x59f649
test edx, edx
jl 0x59f649
mov dword [esp + 0x100], ebx
mov eax, dword [esp + 0x128]
jmp 0x59e717
mov eax, dword [esp + 0x104]
lea ecx, [eax + 1]
jmp 0x59e3f9
mov eax, dword [esp + 0x104]
lea ecx, [eax + 1]
cmp dword [esp + 0x94], 0
jne 0x59e3f9
mov edx, dword [esp + 0xfc]
sub edx, dword [0x6c5e68]
mov eax, dword [0x6c5e48]
cmp dword [eax + edx*4], 1
jne 0x59e3f9
mov edx, dword [ebp + 0x10]
mov ebx, dword [esp + 0xfc]
mov ecx, dword [0x6c8538]
movsd xmm1, qword [edx]
mov edx, ebx
imul edx, ecx
movaps xmm0, xmm1
imul ecx, dword [0x6c853c]
unpcklpd xmm0, xmm0
mov edi, dword [0x6c8530]
mov eax, dword [0x6c8568]
imul ebx, eax
imul eax, dword [0x6c856c]
mov dword [esp + 0x2c], ecx
lea esi, [edi*8]
mov dword [esp + 0x30], esi
lea esi, [ecx + edi*8]
mov edi, dword [0x6c8560]
neg esi
add ebx, dword [0x6c8540]
add edx, dword [0x6c8510]
add esi, edx
lea ecx, [edi*8]
sub edx, dword [esp + 0x2c]
lea edi, [eax + edi*8]
neg edi
add edi, ebx
sub ebx, eax
movups xmm3, xmmword [esi + 8]
movups xmm5, xmmword [esi + 0x18]
movups xmm2, xmmword [edi + 8]
movups xmm4, xmmword [edi + 0x18]
subpd xmm2, xmm3
subpd xmm4, xmm5
movups xmm6, xmmword [edi + 0x28]
mulpd xmm2, xmm0
mulpd xmm4, xmm0
addpd xmm3, xmm2
addpd xmm5, xmm4
movups xmm2, xmmword [edi + 0x38]
movups xmmword [edi + 8], xmm3
movups xmmword [edi + 0x18], xmm5
movups xmm7, xmmword [esi + 0x28]
movups xmm3, xmmword [esi + 0x38]
subpd xmm6, xmm7
subpd xmm2, xmm3
movups xmm5, xmmword [esi + 0x48]
movups xmm4, xmmword [edi + 0x48]
mulpd xmm6, xmm0
mulpd xmm2, xmm0
subpd xmm4, xmm5
addpd xmm7, xmm6
addpd xmm3, xmm2
movups xmm6, xmmword [edi + 0x58]
movups xmmword [edi + 0x38], xmm3
movups xmmword [edi + 0x28], xmm7
mulpd xmm4, xmm0
movups xmm2, xmmword [esi + 0x58]
addpd xmm5, xmm4
subpd xmm6, xmm2
movups xmm4, xmmword [esi + 0x68]
movups xmmword [edi + 0x48], xmm5
movups xmm3, xmmword [edi + 0x68]
mulpd xmm6, xmm0
subpd xmm3, xmm4
addpd xmm2, xmm6
movups xmm5, xmmword [edi + 0x78]
movups xmmword [edi + 0x58], xmm2
mulpd xmm3, xmm0
movups xmm7, xmmword [esi + 0x78]
addpd xmm4, xmm3
subpd xmm5, xmm7
movups xmm3, xmmword [esi + 0x88]
movups xmmword [edi + 0x68], xmm4
movups xmm2, xmmword [edi + 0x88]
mulpd xmm5, xmm0
subpd xmm2, xmm3
addpd xmm7, xmm5
movups xmm4, xmmword [edi + 0x98]
movups xmmword [edi + 0x78], xmm7
mulpd xmm2, xmm0
movups xmm5, xmmword [esi + 0x98]
addpd xmm3, xmm2
subpd xmm4, xmm5
movups xmm2, xmmword [esi + 0xa8]
movups xmmword [edi + 0x88], xmm3
movups xmm6, xmmword [edi + 0xa8]
mulpd xmm4, xmm0
subpd xmm6, xmm2
addpd xmm5, xmm4
mulpd xmm0, xmm6
movups xmmword [edi + 0x98], xmm5
addpd xmm2, xmm0
sub ebx, ecx
mov ecx, 0x18
sub edx, dword [esp + 0x30]
movups xmmword [edi + 0xa8], xmm2
movsd xmm2, qword [edx + 0xb8]
movsd xmm0, qword [ebx + 0xb8]
subsd xmm0, xmm2
mulsd xmm1, xmm0
addsd xmm2, xmm1
movsd qword [ebx + 0xb8], xmm2
jmp 0x59e3f9
mov dword [esp + 0x88], ecx
mov eax, 0x68fc68
push 0x27
push str.Error_during_solution_of_transformers.
push eax
push eax
mov ebx, 0x68fc64
push ebx
push ebx
call fcn.0053e690
push 0x2d
push str.Transformer_Subsystem_Numbers_are_mis_aligned
push 0x68fc6c
push 0x68fc68
push ebx
push ebx
call fcn.0053e690
push 0x22
push 0x68fc64
push 0x716914
call fcn.00471080
add esp, 0x3c
jmp 0x59e492
mov dword [esp + 0x88], ecx
push 0x68fc68
push dword [ebp + 8]
call fcn.005aed30
add esp, 8
mov ecx, 1
cmp dword [esp + 0x78], 0
je 0x59f1f3
cmp dword [esp + 0x6c], 0
jle 0x59e37c
mov ecx, dword [0x6c46f8]
mov dword [esp + 0x50], ecx
mov ecx, dword [0x6c4d50]
mov esi, dword [0x6c4d30]
mov edi, dword [0x6c4d58]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [0x6c46d8]
mov edx, dword [0x6c4700]
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], edi
shr ecx, 1
mov esi, dword [0x6c8038]
mov edi, dword [0x6c8058]
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], edx
mov eax, dword [0x6c4704]
mov edx, dword [0x6c4d5c]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x54], ecx
test ecx, ecx
jbe 0x59f378
mov ebx, dword [esp + 0x8c]
mov ecx, ebx
mov edi, dword [esp + 0x50]
sub ecx, eax
imul ecx, dword [esp + 0x38]
sub ebx, edx
imul ebx, dword [esp + 0x34]
xor esi, esi
shl edi, 2
neg edi
add edi, dword [esp + 0x44]
add ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edx
shl ecx, 3
neg ecx
add ecx, dword [esp + 0x40]
add ebx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], eax
shl ecx, 3
neg ecx
add ecx, dword [esp + 0x3c]
mov eax, esi
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov edi, dword [ebp + 0x10]
test byte [ebx + esi*8 + 4], 1
jne 0x59f12e
movsd xmm1, qword [eax + edx + 8]
movsd xmm0, qword [eax + ecx + 8]
subsd xmm0, xmm1
mulsd xmm0, qword [edi]
addsd xmm1, xmm0
movsd qword [eax + edx + 8], xmm1
test byte [ebx + esi*8 + 8], 1
jne 0x59f153
movsd xmm1, qword [eax + edx + 0x10]
movsd xmm0, qword [eax + ecx + 0x10]
subsd xmm0, xmm1
mulsd xmm0, qword [edi]
addsd xmm1, xmm0
movsd qword [eax + edx + 0x10], xmm1
inc esi
add eax, 0x10
cmp esi, dword [esp + 0x54]
jb 0x59f109
mov dword [esp + 0x28], esi
mov ecx, esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebx, dword [ebp + 0x1c]
lea ecx, [ecx + ecx + 1]
lea esi, [ecx - 1]
cmp esi, dword [esp + 0x6c]
jae 0x59f1e7
neg eax
mov edi, dword [esp + 0x50]
neg edi
add eax, dword [esp + 0x8c]
add edi, ecx
imul eax, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
lea esi, [esi + edi*4]
test byte [esi + eax], 1
jne 0x59f1e7
mov esi, dword [esp + 0x4c]
neg edx
shl esi, 3
mov edi, dword [esp + 0x40]
sub edi, esi
add edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x48]
shl esi, 3
imul edx, dword [esp + 0x34]
lea eax, [edi + ecx*8]
mov edi, dword [esp + 0x3c]
sub edi, esi
movsd xmm1, qword [eax + edx]
movsd xmm0, qword [edi + ecx*8]
mov ecx, dword [ebp + 0x10]
subsd xmm0, xmm1
mulsd xmm0, qword [ecx]
addsd xmm1, xmm0
movsd qword [eax + edx], xmm1
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 1]
jmp 0x59e37c
cmp dword [esp + 0x6c], 0
jle 0x59e37c
mov edx, dword [0x6c4700]
mov dword [esp + 0x38], edx
mov edx, dword [0x6c4d58]
mov esi, dword [0x6c4d30]
mov edi, dword [0x6c4d5c]
mov ecx, dword [0x6c46f8]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
mov eax, dword [0x6c46d8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x50], edi
shr edx, 1
mov ecx, dword [0x6c4d50]
mov esi, dword [0x6c8038]
mov edi, dword [0x6c8058]
mov dword [esp + 0x44], eax
mov eax, dword [0x6c4704]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], edx
test edx, edx
jbe 0x59f382
mov edx, dword [esp + 0x8c]
mov ecx, edx
mov edi, dword [esp + 0x48]
sub ecx, eax
imul ecx, dword [esp + 0x38]
xor esi, esi
sub edx, dword [esp + 0x50]
shl edi, 2
neg edi
add edi, dword [esp + 0x44]
add ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x40]
imul edx, dword [esp + 0x2c]
shl ecx, 3
neg ecx
add ecx, dword [esp + 0x34]
add edx, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, esi
mov ecx, dword [esp + 0x24]
shl edx, 3
neg edx
add edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
test byte [ebx + esi*8 + 4], 1
jne 0x59f2e1
movsd xmm0, qword [eax + edx + 8]
movsd qword [eax + ecx + 8], xmm0
test byte [ebx + esi*8 + 8], 1
jne 0x59f2f4
movsd xmm0, qword [eax + edx + 0x10]
movsd qword [eax + ecx + 0x10], xmm0
inc esi
add eax, 0x10
cmp esi, edi
jb 0x59f2ce
mov eax, dword [esp + 0x28]
lea ecx, [esi + esi + 1]
mov ebx, dword [ebp + 0x1c]
lea edx, [ecx - 1]
cmp edx, dword [esp + 0x6c]
jae 0x59f36c
neg eax
mov esi, dword [esp + 0x48]
neg esi
add eax, dword [esp + 0x8c]
add esi, ecx
imul eax, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
lea edi, [edx + esi*4]
test byte [edi + eax], 1
jne 0x59f36c
mov eax, dword [esp + 0x50]
neg eax
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
shl esi, 3
shl edi, 3
add eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x4c]
sub edx, esi
mov esi, dword [esp + 0x34]
sub esi, edi
imul eax, dword [esp + 0x2c]
movsd xmm0, qword [edx + ecx*8]
lea edi, [esi + ecx*8]
movsd qword [edi + eax], xmm0
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 1]
jmp 0x59e37c
mov ecx, 1
jmp 0x59f172
mov ecx, 1
jmp 0x59f307
mov esi, dword [0x81e9c0]
sub esi, dword [0x6c4f60]
pxor xmm3, xmm3
mov edx, dword [0x6c4f40]
movsd xmm0, qword [0x68fca8]
movsd qword [esp + 0x28], xmm0
mov eax, dword [edx + esi*4 + 4]
mov edx, dword [0x6c5da8]
mov esi, dword [0x6c5dc8]
mov dword [esp + 0x30], eax
movsd xmm5, qword [0x81e670]
lea eax, [edx + eax*8]
movaps xmm2, xmm5
lea edi, [esi*8]
sub eax, edi
movsd xmm1, qword [eax + 0x18]
comisd xmm1, xmm3
minsd xmm2, qword [eax + 0x10]
jae 0x59f3f3
movsd xmm0, qword [0x68fcb0]
movsd qword [eax + 0x10], xmm2
addsd xmm0, xmm1
cvttsd2si edi, xmm0
cmp edi, 1
je 0x59f41d
mov eax, dword [esp + 0x30]
shl esi, 3
neg esi
lea edx, [edx + eax*8]
add edx, esi
movsd qword [edx + 0x10], xmm5
jmp 0x59e2e9
movsd xmm0, qword [eax + 8]
lea edx, [esp + 0x88]
comisd xmm0, xmm3
subsd xmm5, qword [eax + 0x10]
push edx
push dword [ebp + 8]
movsd qword [edx - 0x68], xmm5
movsd xmm1, qword [edx - 0x60]
jae 0x59f44a
movsd xmm1, qword [0x68fcb0]
addsd xmm1, xmm0
movsd qword [edx - 0x60], xmm1
call fcn.004a19c0
fstp qword [esp + 0x58]
wait
movsd xmm5, qword [esp + 0x28]
movsd xmm4, qword [esp + 0x58]
add esp, 8
mov eax, dword [0x6c4d5c]
neg eax
add eax, ebx
imul eax, dword [0x6c4d58]
movsd xmm3, qword [0x68fc90]
cvttsd2si edi, qword [esp + 0x28]
mulsd xmm3, xmm5
mov esi, dword [0x6c4d50]
neg esi
mov ecx, dword [esp + 0x88]
add esi, ecx
sub edi, dword [0x6c5dc8]
mov edx, dword [0x6c5da8]
add eax, dword [0x6c4d30]
movsd xmm5, qword [0x81e670]
movsd xmm1, qword [edx + edi*8 - 8]
movsd xmm0, qword [edx + edi*8 - 0x10]
addsd xmm1, xmm4
addsd xmm0, qword [eax + esi*8]
mulsd xmm1, xmm0
andps xmm1, xmmword [0x68fc80]
mulsd xmm3, xmm1
movsd xmm2, qword [eax + esi*8]
movsd qword [edx + edi*8 - 0x10], xmm2
movsd qword [edx + edi*8 - 8], xmm4
mov esi, dword [0x6c5dc8]
addsd xmm3, qword [edx + edi*8]
movsd qword [edx + edi*8], xmm3
jmp 0x59f405
cmp ebx, 2
jl 0x59f633
mov ecx, dword [esp + 0x8c]
imul ecx, eax
imul eax, esi
add ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
lea edi, [edx*8]
mov edx, ecx
sub edx, eax
sub edx, edi
add edx, 8
and edx, 0xf
je 0x59f544
test dl, 7
jne 0x59f633
mov edx, 1
lea eax, [edx + 2]
cmp ebx, eax
jl 0x59f633
mov eax, ebx
sub eax, edx
mov edi, dword [esp + 0x2c]
and eax, 1
neg eax
add eax, ebx
mov dword [esp + 0x3c], eax
lea eax, [edi*8]
neg eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
lea edi, [edi + eax*8]
sub ecx, edi
test edx, edx
jbe 0x59f59b
mov edi, dword [esp + 0x28]
xor eax, eax
movsd xmm0, qword [edi + eax*8 + 8]
movsd qword [ecx + eax*8 + 8], xmm0
inc eax
cmp eax, edx
jb 0x59f58a
mov eax, dword [esp + 0x28]
lea edi, [eax + edx*8 + 8]
test edi, 0xf
je 0x59f5c6
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
movups xmm0, xmmword [edi + edx*8 + 8]
movups xmmword [ecx + edx*8 + 8], xmm0
add edx, 2
cmp edx, eax
jb 0x59f5b3
jmp 0x59f5df
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
movups xmm0, xmmword [edi + edx*8 + 8]
movups xmmword [ecx + edx*8 + 8], xmm0
add edx, 2
cmp edx, eax
jb 0x59f5ce
mov dword [esp + 0x3c], eax
cmp ebx, dword [esp + 0x3c]
jbe 0x59da44
neg esi
add esi, dword [esp + 0x8c]
imul esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
shl eax, 3
shl edx, 3
mov ecx, dword [esp + 0x24]
sub dword [esp + 0x38], eax
sub ecx, edx
mov eax, dword [esp + 0x38]
add esi, ecx
mov edx, dword [esp + 0x3c]
movsd xmm0, qword [eax + edx*8 + 8]
movsd qword [esi + edx*8 + 8], xmm0
inc edx
cmp edx, ebx
jb 0x59f61d
jmp 0x59da44
mov dword [esp + 0x3c], 0
jmp 0x59f5e3
mov eax, dword [ebp + 0x10]
movsd xmm1, qword [eax]
jmp 0x59d72e
mov ecx, dword [esp + 0x10c]
lea esi, [ecx*8]
neg esi
add esi, dword [esp + 0x110]
mov dword [esp + 0x108], esi
jmp 0x59e8c4