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

Disassembly:
test dword [0xae7f00], 0xffffff80
jne 0x880748
test dword [0xae7f00], 0xffffffff
jne 0x881118
call fcn.0086b8a0
jmp fcn.00880720
push ebx
mov ebx, esp
and esp, 0xfffffff0
push edi
push esi
push ebp
sub esp, 0x84
mov dword [esp + 0x58], edx
mov edx, dword [ebx + 0x18]
mov esi, dword [edx + 4]
mov ebp, 1
xor edx, edx
mov dword [esp + 0x64], eax
test esi, esi
mov dword [esp + 0x3c], eax
jle 0x8809f8
lea edi, [esi + esi]
add edi, edi
add edi, dword [ebx + 0x18]
mov dword [esp + 0x44], edi
lea edi, [edx + edx]
add edi, edi
neg edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
mov esi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov edi, dword [edi + eax + 4]
mov eax, ecx
cdq
idiv edi
mov ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], ebp
cdq
idiv ecx
imul ebp, eax
mov ecx, eax
mov dword [esp + 0x64], ebp
mov ebp, eax
imul ebp, edi
neg ecx
add ebp, ecx
sub esi, ebp
mov ebp, dword [esp + 0x38]
neg ebp
inc ebp
cmp edi, 4
je 0x881075
cmp edi, 2
je 0x880a10
mov edx, ebp
neg edx
inc edx
cmp eax, 1
cmove ebp, edx
test ebp, ebp
je 0x880846
lea ebp, [esi + esi]
add ebp, ebp
mov edx, dword [ebx + 0x14]
lea ebp, [ebp + edx - 4]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov edx, edi
mov dword [esp + 0x24], ebp
call fcn.008818d8
xor ebp, ebp
jmp 0x88088a
lea ebp, [esi + esi]
add ebp, ebp
mov edx, dword [ebx + 0x14]
lea ebp, [ebp + edx - 4]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov edx, edi
mov dword [esp + 0x24], ebp
call fcn.008818d8
mov ebp, 1
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
add dword [esp + 0x48], 0xfffffffc
inc eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
cmp eax, edx
jl 0x8807a5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
cmp ebp, 1
je 0x8809f8
test eax, eax
jle 0x8809f8
xor edx, edx
cmp eax, 0xb
mov dword [esp + 0x60], edx
jb 0x88099d
lea esi, [eax + eax]
add esi, esi
mov edx, dword [esp + 0x58]
lea ebp, [edx + esi]
cmp ecx, ebp
jb 0x880a05
mov ebp, eax
mov esi, edx
and esi, 0xf
mov edi, ecx
je 0x880932
test esi, 3
jne 0x88099d
neg esi
lea edx, [esi + 0x10]
lea edi, [ecx + esi + 0x10]
shr edx, 2
mov ebp, eax
sub ebp, edx
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + edi*4]
mov dword [esi + edi*4], eax
inc edi
cmp edi, edx
jb 0x88091b
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x30]
and ebp, 7
neg ebp
add ebp, eax
test edi, 0xf
jne 0x88096d
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
prefetchnta byte [ecx + esi*4 + 0x40]
movaps xmm0, xmmword [ecx + esi*4]
movaps xmmword [edx + esi*4], xmm0
movaps xmm1, xmmword [ecx + esi*4 + 0x10]
movaps xmmword [edx + esi*4 + 0x10], xmm1
add esi, 8
cmp esi, ebp
jb 0x880949
mov dword [esp + 0x60], esi
jmp 0x880997
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
movups xmm0, xmmword [ecx + esi*4]
prefetchnta byte [ecx + esi*4 + 0x40]
movaps xmmword [edx + esi*4], xmm0
movups xmm1, xmmword [ecx + esi*4 + 0x10]
movaps xmmword [edx + esi*4 + 0x10], xmm1
add esi, 8
cmp esi, ebp
jb 0x880975
mov dword [esp + 0x60], esi
mov edx, esi
cmp edx, eax
jae 0x8809f8
mov edx, eax
sub edx, dword [esp + 0x60]
cmp edx, 6
jb 0x8809e4
lea edx, [eax - 6]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov edi, dword [ecx + ebp*4]
mov dword [esi + ebp*4], edi
mov edi, dword [ecx + ebp*4 + 4]
mov dword [esi + ebp*4 + 4], edi
mov edi, dword [ecx + ebp*4 + 8]
mov dword [esi + ebp*4 + 8], edi
mov edi, dword [ecx + ebp*4 + 0xc]
mov dword [esi + ebp*4 + 0xc], edi
mov edi, dword [ecx + ebp*4 + 0x10]
mov dword [esi + ebp*4 + 0x10], edi
add ebp, 5
cmp ebp, edx
jbe 0x8809b3
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x58]
mov edx, dword [ecx + esi*4]
mov dword [ebp + esi*4], edx
inc esi
cmp esi, eax
jb 0x8809ec
add esp, 0x84
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
add esi, ecx
cmp edx, esi
jb 0x88099d
jmp 0x8808e4
test ebp, ebp
je 0x880d33
lea edx, [esi + esi]
add edx, edx
mov edi, dword [ebx + 0x14]
lea edx, [edx + edi - 4]
xor ecx, ecx
lea edi, [eax + eax]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x60], edi
xor edi, edi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x4c]
test edi, edi
jle 0x880aa0
mov edi, dword [esp + 0x60]
lea edi, [edi + edi]
add edi, edi
add edi, dword [esp + 0x58]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x68]
movss xmm0, dword [esi + ecx*4]
addss xmm0, dword [esi + edx*4]
mov edi, dword [esp + 0x58]
movss dword [edi + ecx*8], xmm0
movss xmm1, dword [esi + ecx*4]
subss xmm1, dword [esi + edx*4]
mov edi, dword [esp + 0x6c]
add edx, eax
inc ebp
movss dword [edi + ecx*8 - 4], xmm1
add ecx, eax
mov edi, dword [esp + 0x4c]
cmp ebp, edi
jl 0x880a64
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
cmp eax, 2
jl 0x88088a
je 0x880c01
xor edx, edx
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x6c], edi
xor edi, edi
test ecx, ecx
jle 0x88103d
mov dword [esp + 0x68], edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x38], ebp
mov ebp, esi
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + edx]
mov dword [esp + 0x70], eax
lea eax, [eax + eax]
lea edi, [edx + edx]
mov dword [esp + 0x80], edi
cmp ecx, 2
jle 0x880bc1
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x7c], ecx
lea ecx, [ecx + edi*4 - 8]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x6c], esi
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x78]
add edi, 2
add eax, 0xfffffffe
mov dword [esp + 0x78], edi
add edx, 2
add esi, 2
mov ecx, dword [esp + 0x50]
movss xmm3, dword [ecx + edi*4]
movss xmm4, dword [ecx + edi*4 - 4]
movss xmm6, dword [ebp + 4]
movss xmm2, dword [ebp]
movss xmm0, xmm2
mulss xmm0, xmm4
movss xmm1, xmm6
mulss xmm1, xmm3
addss xmm0, xmm1
mulss xmm2, xmm3
mulss xmm6, xmm4
subss xmm2, xmm6
movss xmm7, dword [ecx + edx*4]
addss xmm7, xmm2
mov edi, dword [esp + 0x58]
add ebp, 8
movss dword [edi + esi*4], xmm7
subss xmm2, dword [ecx + edx*4]
movss dword [edi + eax*4], xmm2
movss xmm5, dword [ecx + edx*4 - 4]
addss xmm5, xmm0
movss dword [edi + esi*4 - 4], xmm5
movss xmm1, dword [ecx + edx*4 - 4]
subss xmm1, xmm0
movss dword [edi + eax*4 - 4], xmm1
mov ecx, dword [esp + 0x74]
cmp ebp, ecx
jb 0x880b25
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
add esi, dword [esp + 0x5c]
inc eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
cmp eax, ecx
jl 0x880adb
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88088a
mov ecx, eax
lea edx, [eax - 1]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
lea edx, [edi + eax - 1]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x64], edx
xor edx, edx
test edi, edi
jle 0x88088a
cmp edi, 4
jl 0x880ce1
lea edi, [edi - 4]
mov dword [esp + 0x68], edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
xorps xmm2, xmm2
subss xmm2, dword [edi + ebp*4]
movss dword [edx + ecx*4], xmm2
mov eax, dword [edi + esi*4]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [esp + 0x5c]
add ebp, eax
add ecx, dword [esp + 0x60]
add esi, eax
xorps xmm3, xmm3
subss xmm3, dword [edi + ebp*4]
movss dword [edx + ecx*4], xmm3
mov edi, dword [edi + esi*4]
add ebp, eax
mov dword [edx + ecx*4 - 4], edi
mov edi, dword [esp + 0x60]
add ecx, edi
add esi, eax
mov eax, dword [esp + 0x50]
xorps xmm4, xmm4
subss xmm4, dword [eax + ebp*4]
movss dword [edx + ecx*4], xmm4
mov eax, dword [eax + esi*4]
mov dword [edx + ecx*4 - 4], eax
add ecx, edi
mov eax, dword [esp + 0x5c]
add ebp, eax
add esi, eax
mov edx, dword [esp + 0x80]
add edx, 3
mov eax, dword [esp + 0x68]
cmp edx, eax
jle 0x880c48
mov dword [esp + 0x64], ebp
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
xorps xmm1, xmm1
mov edi, dword [esp + 0x50]
subss xmm1, dword [edi + esi*4]
mov eax, dword [esp + 0x58]
inc edx
movss dword [eax + ecx*4], xmm1
mov edi, dword [edi + ebp*4]
mov dword [eax + ecx*4 - 4], edi
mov eax, dword [esp + 0x5c]
add esi, eax
add ecx, dword [esp + 0x60]
add ebp, eax
mov eax, dword [esp + 0x4c]
cmp edx, eax
jl 0x880cf5
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
jmp 0x88088a
lea ecx, [esi + esi]
add ecx, ecx
mov edx, dword [ebx + 0x14]
lea edi, [ecx + edx - 4]
xor ecx, ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x60], edi
lea edi, [eax + eax]
mov dword [esp + 0x54], edi
xor edi, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x4c]
test edi, edi
jle 0x880dbb
mov edi, dword [esp + 0x54]
lea edi, [edi + edi]
add edi, edi
add edi, dword [esp + 0x50]
mov dword [esp + 0x68], edi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x6c]
movss xmm0, dword [esi + ecx*4]
addss xmm0, dword [esi + edx*4]
mov edi, dword [esp + 0x50]
movss dword [edi + ecx*8], xmm0
movss xmm1, dword [esi + ecx*4]
subss xmm1, dword [esi + edx*4]
mov edi, dword [esp + 0x68]
add edx, eax
inc ebp
movss dword [edi + ecx*8 - 4], xmm1
add ecx, eax
mov edi, dword [esp + 0x4c]
cmp ebp, edi
jl 0x880d7f
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
cmp eax, 2
jl 0x88088a
je 0x880f1b
xor edx, edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x68], ecx
xor ecx, ecx
test edi, edi
jle 0x881059
mov dword [esp + 0x80], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x38], ebp
mov ebp, esi
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + edx]
mov dword [esp + 0x7c], eax
lea eax, [eax + eax]
lea edi, [edx + edx]
mov dword [esp + 0x6c], edi
cmp ecx, 2
jle 0x880ed5
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x70], ecx
lea ecx, [ecx + edi*4 - 8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x68], esi
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
add edi, 2
add eax, 0xfffffffe
mov dword [esp + 0x74], edi
add edx, 2
add esi, 2
mov ecx, dword [esp + 0x58]
movss xmm3, dword [ecx + edi*4]
movss xmm4, dword [ecx + edi*4 - 4]
movss xmm6, dword [ebp + 4]
movss xmm2, dword [ebp]
movss xmm0, xmm2
mulss xmm0, xmm4
movss xmm1, xmm6
mulss xmm1, xmm3
addss xmm0, xmm1
mulss xmm2, xmm3
mulss xmm6, xmm4
subss xmm2, xmm6
movss xmm7, dword [ecx + edx*4]
addss xmm7, xmm2
mov edi, dword [esp + 0x50]
add ebp, 8
movss dword [edi + esi*4], xmm7
subss xmm2, dword [ecx + edx*4]
movss dword [edi + eax*4], xmm2
movss xmm5, dword [ecx + edx*4 - 4]
addss xmm5, xmm0
movss dword [edi + esi*4 - 4], xmm5
movss xmm1, dword [ecx + edx*4 - 4]
subss xmm1, xmm0
movss dword [edi + eax*4 - 4], xmm1
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jb 0x880e39
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
add esi, dword [esp + 0x5c]
inc eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x80], eax
cmp eax, ecx
jl 0x880df5
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88088a
mov ecx, eax
lea edx, [eax - 1]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x68], edx
lea edx, [edi + eax - 1]
xor edi, edi
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x4c]
test edi, edi
jle 0x88088a
cmp edi, 4
jl 0x880feb
lea edi, [edi - 4]
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x38], ebp
xorps xmm1, xmm1
mov edi, dword [esp + 0x58]
subss xmm1, dword [edi + edx*4]
mov eax, dword [esp + 0x50]
movss dword [eax + ecx*4], xmm1
mov ebp, dword [edi + esi*4]
mov dword [eax + ecx*4 - 4], ebp
mov ebp, dword [esp + 0x5c]
add edx, ebp
add ecx, dword [esp + 0x54]
add esi, ebp
xorps xmm2, xmm2
subss xmm2, dword [edi + edx*4]
movss dword [eax + ecx*4], xmm2
mov edi, dword [edi + esi*4]
add edx, ebp
mov dword [eax + ecx*4 - 4], edi
mov edi, dword [esp + 0x54]
add ecx, edi
add esi, ebp
mov ebp, dword [esp + 0x58]
xorps xmm4, xmm4
subss xmm4, dword [ebp + edx*4]
movss dword [eax + ecx*4], xmm4
mov ebp, dword [ebp + esi*4]
mov dword [eax + ecx*4 - 4], ebp
add ecx, edi
mov eax, dword [esp + 0x5c]
add edx, eax
add esi, eax
mov eax, dword [esp + 0x60]
add eax, 3
mov ebp, dword [esp + 0x64]
cmp eax, ebp
mov dword [esp + 0x60], eax
jle 0x880f5e
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
xorps xmm1, xmm1
mov edi, dword [esp + 0x58]
subss xmm1, dword [edi + edx*4]
mov eax, dword [esp + 0x50]
inc esi
movss dword [eax + ecx*4], xmm1
mov edi, dword [edi + ebp*4]
mov dword [eax + ecx*4 - 4], edi
mov eax, dword [esp + 0x5c]
add edx, eax
add ecx, dword [esp + 0x54]
add ebp, eax
mov eax, dword [esp + 0x4c]
cmp esi, eax
jl 0x880fff
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
jmp 0x88088a
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88088a
jmp 0x880c01
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88088a
jmp 0x880f1b
lea edx, [eax + esi]
lea ecx, [eax + edx]
mov dword [esp + 0x68], edx
lea edx, [esi + esi]
add edx, edx
mov dword [esp + 0x6c], ecx
test ebp, ebp
je 0x8810d1
mov edi, dword [ebx + 0x14]
lea ecx, [edx + edi - 4]
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x68]
add edx, edx
mov dword [esp + 0x10], ecx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x6c]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
call fcn.00883b80
jmp 0x88088a
mov edi, dword [ebx + 0x14]
lea ecx, [edx + edi - 4]
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x68]
add edx, edx
mov dword [esp + 0x10], ecx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x6c]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
call fcn.00883b80
jmp 0x88088a
push ebx
mov ebx, esp
and esp, 0xfffffff0
push edi
push esi
push ebp
sub esp, 0x84
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x18]
mov edi, dword [edx + 4]
mov esi, 1
mov ecx, eax
mov ebp, eax
xor edx, edx
test edi, edi
jle 0x8812b5
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x34]
sub edi, dword [esp + 0x40]
mov eax, dword [ebx + 0x18]
mov edi, dword [eax + edi*4 + 4]
mov eax, ecx
cdq
idiv edi
mov esi, eax
mov dword [esp + 0x44], esi
mov eax, dword [esp + 0x30]
cdq
idiv ecx
imul esi, eax
mov dword [esp + 0x58], esi
mov esi, eax
imul esi, edi
mov ecx, eax
neg ecx
add esi, ecx
sub ebp, esi
mov esi, dword [esp + 0x38]
neg esi
inc esi
cmp edi, 4
je 0x881835
cmp edi, 2
je 0x8812c2
cmp eax, 1
jne 0x8811ae
neg esi
inc esi
test esi, esi
je 0x8811f6
lea esi, [ebp + ebp]
add esi, esi
mov edx, dword [ebx + 0x14]
lea esi, [esi + edx - 4]
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov edx, edi
mov ecx, dword [esp + 0x44]
call fcn.008818d8
xor esi, esi
jmp 0x88123b
lea esi, [ebp + ebp]
add esi, esi
mov edx, dword [ebx + 0x14]
lea esi, [esi + edx - 4]
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov edx, edi
mov ecx, dword [esp + 0x44]
call fcn.008818d8
mov esi, 1
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x34]
cmp eax, edx
jl 0x881154
mov eax, dword [esp + 0x30]
cmp esi, 1
je 0x8812b5
xor ecx, ecx
test eax, eax
jle 0x8812b5
cmp eax, 6
jl 0x8812a1
lea edx, [eax - 6]
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov edi, dword [esi + ecx*4]
mov dword [ebp + ecx*4], edi
mov edi, dword [esi + ecx*4 + 4]
mov dword [ebp + ecx*4 + 4], edi
mov edi, dword [esi + ecx*4 + 8]
mov dword [ebp + ecx*4 + 8], edi
mov edi, dword [esi + ecx*4 + 0xc]
mov dword [ebp + ecx*4 + 0xc], edi
mov edi, dword [esi + ecx*4 + 0x10]
mov dword [ebp + ecx*4 + 0x10], edi
add ecx, 5
cmp ecx, edx
jle 0x881273
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov edx, dword [esi + ecx*4]
mov dword [ebp + ecx*4], edx
inc ecx
cmp ecx, eax
jl 0x8812a9
add esp, 0x84
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
test esi, esi
je 0x88157e
lea edx, [ebp + ebp]
add edx, edx
mov edi, dword [ebx + 0x14]
lea edx, [edx + edi - 4]
mov dword [esp + 0x78], edx
xor ecx, ecx
mov edx, dword [esp + 0x58]
lea edi, [eax + eax]
mov dword [esp + 0x70], edi
xor edi, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x881347
mov edi, dword [esp + 0x70]
lea edi, [edi + edi]
add edi, edi
add edi, dword [esp + 0x50]
mov dword [esp + 0x74], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x48]
fld dword [esi + ecx*4]
fadd dword [esi + edx*4]
mov edi, dword [esp + 0x50]
fstp dword [edi + ecx*8]
fld dword [esi + ecx*4]
fsub dword [esi + edx*4]
mov edi, dword [esp + 0x74]
fstp dword [edi + ecx*8 - 4]
add ecx, eax
add edx, eax
inc ebp
mov edi, dword [esp + 0x44]
cmp ebp, edi
jl 0x881317
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
cmp eax, 2
jl 0x88123b
je 0x881474
xor edx, edx
mov edi, dword [esp + 0x58]
mov dword [esp + 0x74], edi
xor edi, edi
mov ecx, dword [esp + 0x44]
test ecx, ecx
jle 0x88145d
mov dword [esp + 0x6c], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x74]
mov ebp, esi
mov ecx, dword [esp + 0x54]
lea eax, [ecx + edx]
mov dword [esp + 0x68], eax
lea eax, [eax + eax]
lea edi, [edx + edx]
mov dword [esp + 0x4c], edi
cmp ecx, 2
jle 0x881434
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x54]
lea ecx, [ecx + edi*4 - 8]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x74], esi
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
add edi, 2
mov dword [esp + 0x60], edi
add eax, 0xfffffffe
add edx, 2
add esi, 2
mov ecx, dword [esp + 0x48]
fld dword [ecx + edi*4]
fld dword [ecx + edi*4 - 4]
fld dword [ebp + 4]
fld dword [ebp]
fld st(0)
fmul st(3)
fld st(2)
fmul st(5)
faddp st(1)
fxch st(4)
fmulp st(1)
fxch st(2)
fmulp st(1)
fsubp st(1)
fld dword [ecx + edx*4]
fadd st(1)
mov edi, dword [esp + 0x50]
fstp dword [edi + esi*4]
fsub dword [ecx + edx*4]
fstp dword [edi + eax*4]
fld dword [ecx + edx*4 - 4]
fadd st(1)
fstp dword [edi + esi*4 - 4]
fld dword [ecx + edx*4 - 4]
fsubrp st(1)
fstp dword [edi + eax*4 - 4]
add ebp, 8
mov ecx, dword [esp + 0x64]
cmp ebp, ecx
jb 0x8813c6
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
add esi, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jl 0x881382
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88123b
mov dword [esp + 0x74], eax
lea ecx, [eax - 1]
mov edx, dword [esp + 0x58]
lea edx, [edx + eax - 1]
xor edi, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x88123b
cmp edi, 4
jl 0x881531
lea edi, [edi - 4]
mov dword [esp + 0x78], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x48]
fld dword [edi + edx*4]
fchs
mov eax, dword [esp + 0x50]
fstp dword [eax + ebp*4]
mov esi, dword [edi + ecx*4]
mov dword [eax + ebp*4 - 4], esi
add ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x54]
add edx, esi
add ecx, esi
fld dword [edi + edx*4]
fchs
fstp dword [eax + ebp*4]
mov edi, dword [edi + ecx*4]
mov dword [eax + ebp*4 - 4], edi
mov edi, dword [esp + 0x70]
add ebp, edi
add edx, esi
add ecx, esi
mov esi, dword [esp + 0x48]
fld dword [esi + edx*4]
fchs
fstp dword [eax + ebp*4]
mov esi, dword [esi + ecx*4]
mov dword [eax + ebp*4 - 4], esi
add ebp, edi
mov eax, dword [esp + 0x54]
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x6c]
add eax, 3
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x78]
cmp eax, esi
jle 0x8814b5
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x48]
fld dword [edi + edx*4]
fchs
mov eax, dword [esp + 0x50]
fstp dword [eax + ebp*4]
mov edi, dword [edi + ecx*4]
mov dword [eax + ebp*4 - 4], edi
add ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x54]
add edx, eax
add ecx, eax
inc esi
mov eax, dword [esp + 0x44]
cmp esi, eax
jl 0x881545
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x88123b
lea ecx, [ebp + ebp]
add ecx, ecx
mov edx, dword [ebx + 0x14]
lea edi, [ecx + edx - 4]
mov dword [esp + 0x74], edi
xor ecx, ecx
mov edx, dword [esp + 0x58]
lea edi, [eax + eax]
mov dword [esp + 0x4c], edi
xor edi, edi
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x8815fb
mov edi, dword [esp + 0x4c]
lea edi, [edi + edi]
add edi, edi
add edi, dword [esp + 0x48]
mov dword [esp + 0x78], edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x50]
fld dword [esi + ecx*4]
fadd dword [esi + edx*4]
mov edi, dword [esp + 0x48]
fstp dword [edi + ecx*8]
fld dword [esi + ecx*4]
fsub dword [esi + edx*4]
mov edi, dword [esp + 0x78]
fstp dword [edi + ecx*8 - 4]
add ecx, eax
add edx, eax
inc ebp
mov edi, dword [esp + 0x44]
cmp ebp, edi
jl 0x8815cb
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
cmp eax, 2
jl 0x88123b
je 0x881723
xor ecx, ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
xor edx, edx
test edi, edi
jle 0x88170c
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x5c]
mov edx, esi
mov ebp, dword [esp + 0x54]
lea eax, [ebp + ecx]
mov dword [esp + 0x64], eax
lea eax, [eax + eax]
lea edi, [ecx + ecx]
mov dword [esp + 0x70], edi
cmp ebp, 2
jle 0x8816e3
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x6c], ebp
mov edi, dword [esp + 0x54]
lea ebp, [ebp + edi*4 - 8]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
add edx, 2
mov dword [esp + 0x78], edx
add eax, 0xfffffffe
add ecx, 2
add edi, 2
fld dword [esi + 4]
fld dword [esi]
mov ebp, dword [esp + 0x50]
fld dword [ebp + edx*4]
fld dword [ebp + edx*4 - 4]
fld st(2)
fmul st(1)
fld st(4)
fmul st(3)
faddp st(1)
fxch st(2)
fmulp st(3)
fmulp st(3)
fxch st(2)
fsubp st(1)
fld dword [ebp + ecx*4]
fadd st(1)
mov edx, dword [esp + 0x48]
fstp dword [edx + edi*4]
fsub dword [ebp + ecx*4]
fstp dword [edx + eax*4]
fld dword [ebp + ecx*4 - 4]
fadd st(1)
fstp dword [edx + edi*4 - 4]
fld dword [ebp + ecx*4 - 4]
fsubrp st(1)
fstp dword [edx + eax*4 - 4]
add esi, 8
mov edx, dword [esp + 0x68]
cmp esi, edx
mov edx, dword [esp + 0x78]
jb 0x881673
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
add esi, dword [esp + 0x54]
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x44]
cmp eax, edx
jl 0x881632
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov ecx, eax
cdq
xor ecx, edx
sub ecx, edx
and ecx, 1
xor ecx, edx
sub ecx, edx
cmp ecx, 1
je 0x88123b
mov dword [esp + 0x70], eax
lea edx, [eax - 1]
mov dword [esp + 0x74], edx
mov edi, dword [esp + 0x58]
lea ecx, [edi + eax - 1]
xor edx, edx
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x88123b
cmp edi, 4
jl 0x8817e8
lea edi, [edi - 4]
mov dword [esp + 0x78], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x6c], edx
mov edi, dword [esp + 0x50]
fld dword [edi + ecx*4]
fchs
mov edx, dword [esp + 0x48]
fstp dword [edx + ebp*4]
mov eax, dword [edi + esi*4]
mov dword [edx + ebp*4 - 4], eax
add ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
add ecx, eax
add esi, eax
fld dword [edi + ecx*4]
fchs
fstp dword [edx + ebp*4]
mov edi, dword [edi + esi*4]
mov dword [edx + ebp*4 - 4], edi
mov edi, dword [esp + 0x4c]
add ebp, edi
add ecx, eax
add esi, eax
mov eax, dword [esp + 0x50]
fld dword [eax + ecx*4]
fchs
fstp dword [edx + ebp*4]
mov eax, dword [eax + esi*4]
mov dword [edx + ebp*4 - 4], eax
add ebp, edi
mov eax, dword [esp + 0x54]
add ecx, eax
add esi, eax
mov edx, dword [esp + 0x6c]
add edx, 3
mov eax, dword [esp + 0x78]
cmp edx, eax
jle 0x881768
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebp
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x50]
fld dword [edi + ecx*4]
fchs
mov eax, dword [esp + 0x48]
fstp dword [eax + ebp*4]
mov edi, dword [edi + esi*4]
mov dword [eax + ebp*4 - 4], edi
add ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
add ecx, eax
add esi, eax
inc edx
mov eax, dword [esp + 0x44]
cmp edx, eax
jl 0x8817fc
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x88123b
lea edx, [eax + ebp]
mov dword [esp + 0x74], edx
lea ecx, [eax + edx]
mov dword [esp + 0x78], ecx
lea edx, [ebp + ebp]
add edx, edx
test esi, esi
je 0x881892
mov edi, dword [ebx + 0x14]
lea ecx, [edx + edi - 4]
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x74]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
call fcn.00883b80
jmp 0x88123b
mov edi, dword [ebx + 0x14]
lea ecx, [edx + edi - 4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x74]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x78]
add edx, edx
add edx, edx
lea edx, [edx + edi - 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
call fcn.00883b80
jmp 0x88123b