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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x204
movzx eax, word [ecx + 0x16]
mov edx, 0x80
mov dword [esp + 4], ecx
push ebx
push esi
push edi
cmp ax, dx
jb 0x1013b398
movzx eax, word [ecx + 0x14]
cmp ax, dx
jb 0x1013b398
mov esi, dword [ecx + 0x188]
xor eax, eax
mov ecx, 4
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
nop
mov ebx, ecx
and eax, 7
add eax, eax
and ebx, 0x1c
mov ecx, esi
mov dword [esp + 0x50], eax
xor edi, edi
mov dword [esp + 0x54], ebx
and ecx, 3
mov dword [esp + 0x48], ecx
nop dword [eax]
mov edx, edi
and edx, 1
mov ecx, edx
or ecx, eax
mov eax, esi
add ecx, ecx
shr eax, cl
and eax, 3
cmp dword [esp + 0x48], eax
jne 0x101393f9
lea ecx, [edx + edx]
mov eax, esi
or ecx, ebx
shr eax, 4
mov edx, esi
shr edx, cl
xor edx, eax
test dl, 3
jne 0x101393f9
mov ecx, dword [esp + 0x50]
lea ebx, [edi - 1]
and ebx, 1
mov edx, esi
or ecx, ebx
mov eax, esi
add ecx, ecx
shr eax, 2
shr edx, cl
xor edx, eax
test dl, 3
jne 0x101393f5
lea ecx, [ebx + ebx]
mov edx, esi
mov ebx, dword [esp + 0x54]
mov eax, esi
or ecx, ebx
shr eax, 6
shr edx, cl
xor edx, eax
test dl, 3
jne 0x101393f9
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
add edi, 2
cmp edi, 8
jle 0x10139350
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
add ecx, 8
add eax, 2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], eax
cmp ecx, 0x24
jle 0x10139330
test edx, edx
jne 0x10139401
lea eax, [edx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x2c], edx
jmp 0x101393bc
mov edx, dword [esp + 0x10]
xor edi, edi
push 8
xor esi, esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], esi
movzx ecx, word [edx + 0x16]
mov eax, ecx
shr eax, 1
mov dword [esp + 0x80], eax
movzx eax, word [edx + 0x14]
mov ebx, eax
inc eax
shr ebx, 1
mov dword [esp + 0x8c], ebx
lea ebx, [ecx + 1]
shr ebx, 1
mov dword [esp + 0x60], ebx
xor ebx, ebx
shr eax, 1
push ecx
mov ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
call fcn.10135670
mov dword [esp + 0x74], eax
xor edx, edx
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0x16]
shl ecx, 2
test ecx, ecx
je 0x10139488
mov ecx, dword [esp + 0x74]
mov ebx, eax
xor eax, eax
mov word [ecx + edx*2], ax
inc edx
movzx eax, word [ebx + 0x16]
shl eax, 2
cmp edx, eax
jl 0x10139472
mov ebx, dword [esp + 0x38]
cmp dword [esp + 0x58], esi
jbe 0x101396f0
mov ebx, dword [esp + 0x10]
mov edx, 1
movzx eax, word [ebx + 0x1e]
movzx ecx, word [ebx + 0x492bc]
mov edi, dword [ebx + 0x188]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x7c]
sar edx, cl
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x5c]
lea eax, [eax*2 - 2]
mov dword [esp + 0x40], ecx
sar eax, cl
mov dword [esp + 0x78], eax
lea eax, [edx*2 - 2]
mov dword [esp + 0x3c], edi
sar eax, cl
xor ebx, ebx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], eax
mov eax, ebx
mov esi, ebx
mov ebx, dword [esp + 0x10]
and eax, 7
sar esi, cl
mov ecx, dword [esp + 0x10]
lea edx, [eax*4]
mov dword [esp + 0x30], edx
movzx eax, word [ecx + 0x1e]
mov ecx, edx
imul esi, eax
mov eax, edi
shr eax, cl
mov ecx, dword [ebx + 8]
and eax, 3
lea eax, [eax + esi*4]
lea eax, [ecx + eax*2]
mov ecx, edx
mov dword [esp + 0x14], eax
or ecx, 2
mov eax, dword [esp + 0x54]
mov edx, edi
add eax, esi
shr edx, cl
and edx, 3
lea eax, [edx + eax*4]
mov edx, ebx
mov ebx, dword [esp + 0x24]
inc ebx
mov edi, ebx
mov ecx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov eax, ebx
and eax, 7
sar edi, cl
lea esi, [eax*4]
movzx eax, word [edx + 0x1e]
imul edi, eax
mov ecx, esi
mov eax, dword [esp + 0x3c]
or esi, 2
shr eax, cl
mov ecx, dword [edx + 8]
and eax, 3
mov edx, dword [esp + 0x3c]
lea eax, [eax + edi*4]
lea eax, [ecx + eax*2]
mov ecx, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x54]
shr edx, cl
add eax, edi
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 8]
lea edi, [ecx + eax*2]
movzx eax, word [edx + 0x14]
mov dword [esp + 0x20], edi
cmp ebx, eax
jne 0x101395be
mov edi, dword [esp + 0x74]
mov ebx, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov edx, dword [edx + 0x188]
mov ebx, dword [esp + 0x10]
sar esi, cl
imul esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
shr edx, cl
mov ecx, dword [ebx + 8]
and edx, 3
lea eax, [edx + esi*4]
lea eax, [ecx + eax*2]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
add eax, esi
lea eax, [edx + eax*4]
lea eax, [ecx + eax*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x90]
add eax, esi
mov esi, dword [esp + 0x50]
lea eax, [edx + eax*4]
lea eax, [ecx + eax*2]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
movzx edx, word [eax]
cmp word [esp + 0x38], dx
jbe 0x10139631
mov edx, dword [esp + 0x38]
movzx edx, dx
movzx ecx, word [ecx]
mov word [esp + 0x38], dx
mov edx, dword [esp + 0x28]
cmp dx, cx
jbe 0x10139645
movzx ecx, dx
mov edx, dword [esp + 0x2c]
mov word [esp + 0x28], cx
movzx ecx, word [ebx]
cmp dx, cx
jbe 0x10139659
movzx ecx, dx
mov dx, cx
movzx ecx, word [edi]
mov dword [esp + 0x2c], edx
cmp si, cx
jbe 0x1013966b
movzx ecx, si
mov si, cx
cmp eax, dword [esp + 0x30]
jae 0x1013968f
movups xmm0, xmmword [esp + 0x14]
movaps xmm1, xmmword [0x10276e70]
paddd xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
mov edi, dword [esp + 0x20]
jmp 0x10139614
cmp eax, dword [esp + 0x44]
jbe 0x101396bc
cmp eax, dword [esp + 0x60]
jae 0x101396bc
lea ecx, [esp + 0x34]
add eax, 0x10
add ebx, 0x10
mov dword [esp + 0x14], eax
mov edi, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
jmp 0x10139620
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
add ebx, 2
sub dword [esp + 0x4c], 1
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x50], esi
mov dword [esp + 0x24], ebx
jne 0x101394f1
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
cmp bx, di
jbe 0x101396f2
movzx ecx, bx
jmp 0x101396f5
xor edx, edx
movzx ecx, di
movzx eax, dx
cmp dx, si
ja 0x10139700
movzx eax, si
cmp cx, ax
jbe 0x10139714
cmp bx, di
jbe 0x1013970f
movzx eax, bx
jmp 0x1013971f
movzx eax, di
jmp 0x1013971f
movzx eax, dx
cmp dx, si
ja 0x1013971f
movzx eax, si
mov dx, ax
mov dword [esp + 0x24], eax
test dx, dx
je 0x1013b38f
movzx eax, dx
mov ecx, 0xf
mov dword [esp + 0x60], ecx
cmp eax, 0x100
jb 0x1013974e
mov ecx, 7
shr eax, 8
mov dword [esp + 0x60], ecx
cmp eax, 0x10
jb 0x1013975d
shr eax, 4
sub ecx, 4
mov dword [esp + 0x60], ecx
cmp eax, 4
jb 0x1013976c
shr eax, 2
sub ecx, 2
mov dword [esp + 0x60], ecx
cmp eax, 2
jb 0x10139776
dec ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x58]
mov eax, 1
shl eax, cl
shl dx, cl
mov word [esp + 0x80], dx
movd xmm0, eax
pshufd xmm0, xmm0, 0
movaps xmmword [esp + 0x1c0], xmm0
test ebx, ebx
je 0x1013999c
xor esi, esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x24], esi
nop
mov ebx, dword [esp + 0x10]
mov eax, esi
and eax, 7
shl eax, 2
mov dword [esp + 0x40], eax
movzx ecx, word [ebx + 0x492bc]
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0x188]
mov eax, edx
movzx ebx, word [ebx + 0x1e]
sar esi, cl
mov ecx, dword [esp + 0x40]
shr eax, cl
and eax, 3
imul esi, ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x10]
movzx ecx, word [ebx + 0x492bc]
lea eax, [eax + esi*4]
lea eax, [edi + eax*2]
mov dword [esp + 0x14], eax
mov eax, 1
sar eax, cl
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], eax
or ecx, 2
add eax, esi
shr edx, cl
and edx, 3
mov ecx, ebx
lea eax, [edx + eax*4]
movzx ecx, word [ecx + 0x492bc]
lea eax, [edi + eax*2]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x18], eax
inc edi
mov eax, edi
mov esi, edi
and eax, 7
sar esi, cl
imul esi, dword [esp + 0x48]
lea edx, [eax*4]
mov eax, ebx
mov ecx, edx
or edx, 2
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, ebx
and eax, 3
mov ebx, dword [ecx + 8]
mov ecx, edx
lea eax, [eax + esi*4]
lea eax, [ebx + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
mov eax, dword [esp + 0x30]
shr edx, cl
add eax, esi
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
lea eax, [ebx + eax*2]
mov dword [esp + 0x20], eax
movzx eax, word [edx + 0x14]
cmp edi, eax
jne 0x1013989f
mov eax, dword [esp + 0x74]
mov ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
movzx ecx, word [edx + 0x492bc]
mov edi, dword [esp + 0x24]
movzx eax, word [edx + 0x1e]
mov esi, dword [edx + 0x188]
mov edx, dword [edx + 8]
mov ebx, dword [esp + 0x10]
sar edi, cl
mov ecx, dword [esp + 0x40]
imul edi, eax
shr esi, cl
mov ecx, dword [esp + 0x7c]
and esi, 3
lea eax, [esi + edi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x48], eax
lea eax, [ecx*2 - 2]
movzx ecx, word [ebx + 0x492bc]
mov ebx, dword [esp + 0x5c]
sar eax, cl
add eax, edi
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x30], eax
lea eax, [ebx*2 - 2]
sar eax, cl
add eax, edi
mov edi, dword [esp + 0x48]
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
movzx ecx, word [esp + 0x60]
shl word [eax], cl
movzx ecx, word [esp + 0x60]
shl word [esi], cl
mov esi, dword [esp + 0x60]
mov cx, si
shl word [ebx], cl
shl word [edx], cl
cmp eax, dword [esp + 0x30]
jae 0x1013995a
movups xmm0, xmmword [esp + 0x14]
movaps xmm1, xmmword [0x10276e70]
paddd xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
jmp 0x10139910
cmp eax, edi
jbe 0x10139982
cmp eax, dword [esp + 0x78]
jae 0x10139982
lea esi, [esp + 0x34]
add eax, 0x10
add ebx, 0x10
mov dword [esp + 0x14], eax
mov edx, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edx
jmp 0x10139920
mov esi, dword [esp + 0x24]
add esi, 2
sub dword [esp + 0x54], 1
mov dword [esp + 0x24], esi
jne 0x101397b0
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
xor esi, esi
movzx ecx, word [edi + 0x16]
movzx eax, word [edi + 0x14]
imul ecx, eax
push 2
push ecx
mov ecx, edi
call fcn.10135670
movzx ecx, word [edi + 0x16]
mov dword [esp + esi + 0xc8], eax
movzx eax, word [edi + 0x14]
imul ecx, eax
push 2
push ecx
mov ecx, edi
call fcn.10135670
mov dword [esp + esi + 0xb8], eax
add esi, 4
cmp esi, 0x10
jl 0x101399a2
movaps xmm0, xmmword [0x10276e30]
mov ecx, edi
mov esi, dword [esp + 0xc8]
push 1
push esi
movups xmmword [esp + 0x138], xmm0
push 4
movaps xmm0, xmmword [0x10276e40]
push dword [edi + 8]
movups xmmword [esp + 0xe8], xmm0
push 0
movaps xmm0, xmmword [0x10276e50]
movups xmmword [esp + 0x28], xmm0
call fcn.1013c5b0
push 1
push esi
push 1
push esi
push 1
mov ecx, edi
call fcn.1013b6e0
push 1
push dword [esp + 0xd0]
lea eax, [esp + 0x138]
mov ecx, edi
push 1
push esi
push eax
call fcn.1013ce90
push 1
push dword [esp + 0xd4]
lea eax, [esp + 0xe0]
mov ecx, edi
push 1
push esi
push eax
call fcn.1013ce90
push 1
push dword [esp + 0xd8]
lea eax, [esp + 0x1c]
mov ecx, edi
push 1
push esi
push eax
call fcn.1013ce90
mov edx, dword [edi + 0x188]
mov ecx, edx
movaps xmm0, xmmword [0x10276ef0]
mov eax, edx
shr ecx, 6
and eax, 3
and ecx, 3
movups xmmword [esp + 0x14], xmm0
mov al, byte [eax + edi + 0x1d4]
movaps xmm0, xmmword [0x10276f00]
movups xmmword [esp + 0xd8], xmm0
cmp al, byte [ecx + edi + 0x1d4]
jne 0x10139ac6
mov esi, 1
jmp 0x10139aec
mov ecx, edx
xor esi, esi
shr edx, 2
and edx, 3
shr ecx, 4
and ecx, 3
mov al, byte [edx + edi + 0x1d4]
mov edx, 2
cmp al, byte [ecx + edi + 0x1d4]
cmove esi, edx
movss xmm2, dword [0x1039c510]
xor edx, edx
xor ecx, ecx
nop dword [eax + eax]
mov eax, esi
sub eax, 0
je 0x10139bdc
sub eax, 1
je 0x10139b75
sub eax, 1
jne 0x10139c15
movss xmm1, dword [esp + edx + 0xd8]
movaps xmm0, xmm2
divss xmm0, xmm1
movss dword [esp + ecx + 0xf8], xmm1
cvttss2si eax, xmm0
movss dword [esp + ecx + 0xf4], xmm1
movaps xmm0, xmm2
movss xmm1, dword [esp + edx + 0x14]
divss xmm0, xmm1
mov dword [esp + ecx + 0x188], eax
mov dword [esp + ecx + 0x184], eax
movss dword [esp + ecx + 0xfc], xmm1
movss dword [esp + ecx + 0xf0], xmm1
cvttss2si eax, xmm0
jmp 0x10139c07
movss xmm1, dword [esp + edx + 0xd8]
movaps xmm0, xmm2
divss xmm0, xmm1
movss dword [esp + ecx + 0xfc], xmm1
cvttss2si eax, xmm0
movss dword [esp + ecx + 0xf0], xmm1
movaps xmm0, xmm2
movss xmm1, dword [esp + edx + 0x14]
divss xmm0, xmm1
mov dword [esp + ecx + 0x18c], eax
mov dword [esp + ecx + 0x180], eax
movss dword [esp + ecx + 0xf8], xmm1
cvttss2si eax, xmm0
movss dword [esp + ecx + 0xf4], xmm1
mov dword [esp + ecx + 0x188], eax
mov dword [esp + ecx + 0x184], eax
jmp 0x10139c15
movss xmm1, dword [esp + edx + 0x14]
movaps xmm0, xmm2
shufps xmm1, xmm1, 0
divss xmm0, xmm1
movups xmmword [esp + ecx + 0xf0], xmm1
cvttss2si eax, xmm0
mov dword [esp + ecx + 0x188], eax
mov dword [esp + ecx + 0x184], eax
mov dword [esp + ecx + 0x180], eax
mov dword [esp + ecx + 0x18c], eax
add edx, 4
add ecx, 0x10
cmp edx, 0x10
jl 0x10139b00
test ebx, ebx
je 0x1013a20c
xor esi, esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], esi
nop word [eax + eax]
movzx ecx, word [edi + 0x492bc]
lea eax, [esi + 1]
mov dword [esp + 0x28], eax
mov edx, dword [edi + 8]
movzx edi, word [edi + 0x1e]
movd xmm0, esi
pshufd xmm5, xmm0, 0
movd xmm0, eax
mov eax, esi
and eax, 7
sar esi, cl
mov dword [esp + 0x40], ecx
imul esi, edi
pshufd xmm6, xmm0, 0
lea ebx, [eax*4]
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov dword [esp + 0x54], ebx
mov ebx, 1
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, dword [esp + 0x40]
and eax, 3
sar ebx, cl
mov ecx, dword [esp + 0x54]
or ecx, 2
lea eax, [eax + esi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
lea eax, [esi + ebx]
shr edx, cl
mov esi, dword [esp + 0x28]
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov eax, esi
and eax, 7
sar esi, cl
imul esi, edi
lea edx, [eax*4]
mov eax, dword [esp + 0x10]
mov ecx, edx
or edx, 2
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, dword [esp + 0x10]
and eax, 3
mov edi, dword [ecx + 8]
lea eax, [eax + esi*4]
mov ecx, edx
lea eax, [edi + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
lea eax, [esi + ebx]
shr edx, cl
mov ecx, dword [esp + 0x28]
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
lea ebx, [edi + eax*2]
mov dword [esp + 0x20], ebx
movzx eax, word [edx + 0x14]
cmp ecx, eax
jne 0x10139d48
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
movzx eax, word [edx + 0x1e]
xor edi, edi
mov ebx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edx
xor esi, esi
cmp dword [0x1054d7c8], 2
jl 0x10139de0
movaps xmm1, xmmword [0x10273df0]
pcmpgtd xmm1, xmmword [0x1039c610]
cwde
movaps xmm2, xmm1
pandn xmm2, xmm6
movd xmm4, ebx
pand xmm1, xmm5
por xmm2, xmm1
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
pmovzxwd xmm0, xmm0
psrad xmm2, xmm4
pmulld xmm2, xmm0
movaps xmm0, xmmword [0x1039c5f0]
pand xmm0, xmmword [0x1039c610]
psrad xmm0, xmm4
paddd xmm2, xmm0
movd xmm0, dword [esp + edi + 0xc8]
pshufd xmm0, xmm0, 0
paddd xmm2, xmm2
paddd xmm0, xmm2
movups xmmword [esp + edi*4 + 0x140], xmm0
jmp 0x10139e3d
mov edi, dword [esp + edi + 0xc8]
mov dword [esp + 0x48], edi
lea edi, [esp + 0x140]
movzx eax, ax
add edi, edx
mov dword [esp + 0x30], eax
nop dword [eax + eax]
cmp esi, 2
lea edi, [edi + 4]
mov edx, ecx
mov ecx, ebx
cmovl edx, dword [esp + 0x38]
sar edx, cl
imul edx, eax
mov eax, esi
and eax, 1
inc esi
sar eax, cl
mov ecx, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x48]
lea eax, [eax + edx*2]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x30]
cmp esi, 4
jl 0x10139e00
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
xor esi, esi
cmp dword [0x1054d7c8], 2
jl 0x10139ec1
movaps xmm1, xmmword [0x10273df0]
pcmpgtd xmm1, xmmword [0x1039c610]
cwde
movaps xmm2, xmm1
pandn xmm2, xmm6
movd xmm4, ebx
pand xmm1, xmm5
por xmm2, xmm1
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
pmovzxwd xmm0, xmm0
psrad xmm2, xmm4
pmulld xmm2, xmm0
movaps xmm0, xmmword [0x1039c5f0]
pand xmm0, xmmword [0x1039c610]
psrad xmm0, xmm4
paddd xmm2, xmm0
movd xmm0, dword [esp + edi + 0xb8]
pshufd xmm0, xmm0, 0
paddd xmm2, xmm2
paddd xmm0, xmm2
movups xmmword [esp + edi*4 + 0x1d0], xmm0
jmp 0x10139f19
mov edi, dword [esp + edi + 0xb8]
mov dword [esp + 0x48], edi
lea edi, [esp + 0x1d0]
movzx eax, ax
add edi, edx
mov dword [esp + 0x30], eax
nop dword [eax]
cmp esi, 2
lea edi, [edi + 4]
mov edx, ecx
mov ecx, ebx
cmovl edx, dword [esp + 0x38]
sar edx, cl
imul edx, eax
mov eax, esi
and eax, 1
inc esi
sar eax, cl
mov ecx, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x48]
lea eax, [eax + edx*2]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x30]
cmp esi, 4
jl 0x10139ee0
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 0x14]
mov edx, dword [esp + 0x24]
cmp ecx, eax
jne 0x10139f49
mov eax, dword [esp + 0x74]
mov dword [esp + edx + 0x14c], eax
mov dword [esp + edx + 0x148], eax
mov dword [esp + edx + 0x1dc], eax
mov dword [esp + edx + 0x1d8], eax
mov eax, dword [esp + 0x44]
add edi, 4
add edx, 0x10
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edx
cmp edi, 0x10
jl 0x10139d60
mov edx, dword [esp + 0x10]
mov ecx, ebx
mov edi, dword [esp + 0x38]
sar edi, cl
mov ecx, dword [esp + 0x54]
movzx eax, word [edx + 0x1e]
mov esi, dword [edx + 0x188]
mov edx, dword [edx + 8]
imul edi, eax
shr esi, cl
mov ecx, dword [esp + 0x7c]
and esi, 3
lea eax, [esi + edi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x30], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
sar eax, cl
mov ecx, dword [esp + 0x5c]
add eax, edi
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x48], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
sar eax, cl
add eax, edi
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x78], eax
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
movzx eax, word [ebx]
xor edx, edx
mov ebx, dword [0x1054d7c8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax]
mov dword [esp + 0x9c], eax
movzx eax, word [edi]
mov edi, 0xffff
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x20]
movzx eax, word [eax]
mov dword [esp + 0xa4], eax
movups xmm1, xmmword [esp + 0x98]
nop word [eax + eax]
mov eax, dword [esp + edx + 0x140]
movaps xmm0, xmm1
xor ecx, ecx
movzx eax, word [eax]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + edx + 0x144]
movzx eax, word [eax]
mov dword [esp + 0xac], eax
mov eax, dword [esp + edx + 0x148]
movzx eax, word [eax]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + edx + 0x14c]
movzx eax, word [eax]
mov dword [esp + 0xb4], eax
movups xmm1, xmmword [esp + 0xa8]
psubd xmm0, xmm1
movups xmmword [esp + 0x64], xmm0
movups xmmword [esp + 0x98], xmm1
cmp ebx, 2
jl 0x1013a093
pmulld xmm0, xmm0
movups xmmword [esp + 0x64], xmm0
jmp 0x1013a0a4
mov eax, dword [esp + ecx*4 + 0x64]
imul eax, eax
mov dword [esp + ecx*4 + 0x64], eax
inc ecx
cmp ecx, 4
jl 0x1013a093
xor esi, esi
nop word [eax + eax]
mov eax, dword [esp + esi*4 + 0x64]
cmp eax, dword [esp + edx + 0x180]
jge 0x1013a0e1
mov ecx, dword [esp + edx + 0x1d0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + edx + 0xf0]
cvttss2si eax, xmm0
mov dword [esp + esi*4 + 0x64], eax
mov word [ecx], ax
jmp 0x1013a0eb
mov eax, dword [esp + edx + 0x1d0]
mov word [eax], di
inc esi
add edx, 4
cmp esi, 4
jl 0x1013a0b0
cmp edx, 0x40
jl 0x1013a020
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x48]
jae 0x1013a16c
movups xmm0, xmmword [esp + 0x14]
lea eax, [esp + 0x140]
mov ecx, 4
movaps xmm1, xmmword [0x10276e70]
paddd xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
movaps xmm1, xmmword [0x10259050]
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x10]
paddd xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
sub ecx, 1
jne 0x1013a133
lea eax, [esp + 0x1d0]
mov ecx, 4
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x10]
paddd xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
sub ecx, 1
jne 0x1013a153
jmp 0x10139fc9
cmp ebx, dword [esp + 0x30]
jbe 0x1013a1ee
cmp ebx, dword [esp + 0x78]
jae 0x1013a1ee
lea eax, [esp + 0x34]
add ebx, 0x10
add edi, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov ecx, 4
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x140]
mov dword [esp + 0x1c], edi
add dword [eax], 4
lea edx, [esp + 0x34]
add dword [eax + 8], 4
lea eax, [eax + 0x10]
mov dword [eax - 0xc], edx
mov dword [eax - 4], edx
sub ecx, 1
jne 0x1013a1a2
lea eax, [esp + 0x1d0]
mov ecx, 4
nop word [eax + eax]
add dword [eax], 4
lea edx, [esp + 0x34]
add dword [eax + 8], 4
lea eax, [eax + 0x10]
mov dword [eax - 0xc], edx
mov dword [eax - 4], edx
sub ecx, 1
jne 0x1013a1d0
jmp 0x10139fd1
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
add esi, 2
sub dword [esp + 0x2c], 1
mov dword [esp + 0x38], esi
jne 0x10139c40
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xa8], 0x20
xor esi, esi
mov dword [esp + 0xac], 0x20
mov dword [esp + 0xb0], 0
mov dword [esp + 0x98], 0x38
mov dword [esp + 0x9c], 0x38
mov dword [esp + 0xa0], 0
mov dword [esp + 0x64], 0x5a
mov dword [esp + 0x68], 0x5a
mov dword [esp + 0x6c], 0
mov dword [esp + 0x14], 0x68
mov dword [esp + 0x18], 0x68
mov dword [esp + 0x1c], 0
mov eax, dword [esp + esi*4 + 0xb8]
mov ecx, edi
push 1
push eax
push 1
push eax
push 0
call fcn.1013c5b0
inc esi
cmp esi, 4
jl 0x1013a280
mov eax, dword [esp + 0xb8]
mov ecx, edi
push 1
push eax
push 1
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.1013ce90
mov eax, dword [esp + 0xbc]
mov ecx, edi
push 1
push eax
push 1
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.1013ce90
mov eax, dword [esp + 0xc0]
mov ecx, edi
push 1
push eax
push 1
push eax
lea eax, [esp + 0x74]
push eax
call fcn.1013ce90
mov eax, dword [esp + 0xc4]
mov ecx, edi
push 1
push eax
push 1
push eax
lea eax, [esp + 0x24]
push eax
call fcn.1013ce90
push 0x10
push ebx
mov ecx, edi
call fcn.10135670
mov ecx, dword [esp + 0x10]
mov edi, eax
push 0x10
push ebx
mov dword [esp + 0x48], edi
call fcn.10135670
mov ecx, dword [esp + 0x10]
mov esi, eax
push 0x10
push dword [esp + 0x60]
mov dword [esp + 0x5c], esi
call fcn.10135670
mov ecx, dword [esp + 0x10]
mov ebx, eax
push 0x10
push dword [esp + 0x60]
mov dword [esp + 0x2c], ebx
call fcn.10135670
mov edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], edx
test eax, eax
je 0x1013a3aa
lea edx, [esi + 0xc]
sub esi, edi
lea ecx, [edi + 4]
mov dword [edx - 0xc], 0
lea edx, [edx + 0x10]
mov dword [ecx - 4], 0
lea ecx, [ecx + 0x10]
mov dword [esi + ecx - 0x10], 0
mov dword [ecx - 0x10], 0
mov dword [edx - 0x14], 0
mov dword [ecx - 0xc], 0
mov dword [edx - 0x10], 0
mov dword [ecx - 8], 0
sub eax, 1
jne 0x1013a362
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x1013a404
mov esi, edx
lea ecx, [edx + 0xc]
lea eax, [ebx + 4]
sub esi, ebx
mov edx, edi
nop
mov dword [ecx - 0xc], 0
lea ecx, [ecx + 0x10]
mov dword [eax - 4], 0
lea eax, [eax + 0x10]
mov dword [esi + eax - 0x10], 0
mov dword [eax - 0x10], 0
mov dword [ecx - 0x14], 0
mov dword [eax - 0xc], 0
mov dword [ecx - 0x10], 0
mov dword [eax - 8], 0
sub edx, 1
jne 0x1013a3c0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x188]
mov eax, ecx
and eax, 3
movss xmm2, dword [edx + eax*4 + 0x72c]
mov eax, ecx
shr eax, 2
and eax, 3
movss dword [esp + 0x14], xmm2
movss xmm1, dword [edx + eax*4 + 0x72c]
mov eax, ecx
shr eax, 4
maxss xmm2, xmm1
shr ecx, 6
and eax, 3
and ecx, 3
movss dword [esp + 0x18], xmm1
movss xmm3, dword [edx + eax*4 + 0x72c]
movss xmm0, dword [edx + ecx*4 + 0x72c]
movss dword [esp + 0x1c], xmm3
maxss xmm3, xmm0
movss dword [esp + 0x20], xmm0
comiss xmm2, xmm3
ja 0x1013a475
movaps xmm2, xmm3
movzx eax, word [esp + 0x80]
mov ecx, edx
mulss xmm2, dword [0x1039c380]
mov dword [esp + 0xe8], eax
push 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push 0x40000
subss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [esp + 0xf4], eax
call fcn.10135670
cvtdq2ps xmm1, xmmword [esp + 0x1c0]
lea ebx, [esp + 0x14]
mov dword [esp + 0x48], eax
mov esi, eax
sub ebx, eax
mov edi, 4
movups xmm0, xmmword [esp + 0x14]
movss xmm5, dword [0x1039c480]
movsd xmm6, qword [0x1039c2f8]
movsd xmm7, qword [0x1039c308]
mulps xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
nop
movss xmm4, dword [ebx + esi]
xor edx, edx
movaps xmm3, xmm4
xor ecx, ecx
mulss xmm3, xmm4
mov eax, esi
movd xmm2, edx
cvtdq2ps xmm2, xmm2
comiss xmm3, xmm2
jbe 0x1013a516
mov dword [eax], 0x3f800000
jmp 0x1013a556
movaps xmm0, xmm4
movd xmm1, ecx
mulss xmm0, xmm5
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm4
comiss xmm0, xmm1
jbe 0x1013a550
cvtps2pd xmm1, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
mulsd xmm1, xmm6
divsd xmm1, xmm0
movaps xmm0, xmm7
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax], xmm0
jmp 0x1013a556
mov dword [eax], 0
add ecx, 5
inc edx
add eax, 0x10
cmp ecx, 0x50000
jl 0x1013a502
add esi, 4
sub edi, 1
jne 0x1013a4f0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x1013ad85
mov ecx, dword [esp + 0x40]
xor ebx, ebx
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x84], eax
lea eax, [ecx + 8]
mov dword [esp + 0x78], eax
mov eax, edx
sub eax, ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x30], esi
nop word [eax + eax]
mov esi, dword [esp + 0x10]
lea eax, [ebx + 1]
mov dword [esp + 0x28], eax
movd xmm0, ebx
pshufd xmm5, xmm0, 0
movzx ecx, word [esi + 0x492bc]
mov edx, dword [esi + 8]
movzx edi, word [esi + 0x1e]
mov esi, ebx
movd xmm0, eax
mov eax, ebx
and eax, 7
sar esi, cl
shl eax, 2
mov ebx, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
imul esi, edi
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, dword [esp + 0x44]
and eax, 3
sar ebx, cl
mov ecx, dword [esp + 0x2c]
or ecx, 2
pshufd xmm6, xmm0, 0
lea eax, [eax + esi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
lea eax, [ebx + esi]
shr edx, cl
mov esi, dword [esp + 0x28]
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 8]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, esi
and eax, 7
sar esi, cl
imul esi, edi
lea edx, [eax*4]
mov eax, dword [esp + 0x10]
mov ecx, edx
or edx, 2
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, dword [esp + 0x10]
and eax, 3
mov edi, dword [ecx + 8]
lea eax, [eax + esi*4]
mov ecx, edx
lea eax, [edi + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
lea eax, [ebx + esi]
shr edx, cl
mov ecx, dword [esp + 0x28]
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
lea ebx, [edi + eax*2]
mov dword [esp + 0x20], ebx
movzx eax, word [edx + 0x14]
cmp ecx, eax
jne 0x1013a6cc
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
movzx eax, word [edx + 0x1e]
xor edi, edi
mov ebx, dword [esp + 0x44]
xor edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
nop dword [eax]
nop dword [eax + eax]
xor esi, esi
cmp dword [0x1054d7c8], 2
jl 0x1013a774
movaps xmm1, xmmword [0x10273df0]
movaps xmm2, xmm5
pcmpgtd xmm1, xmmword [0x1039c610]
cwde
pand xmm2, xmm1
pandn xmm1, xmm6
movd xmm4, ebx
por xmm2, xmm1
psrad xmm2, xmm4
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
pmovzxwd xmm0, xmm0
pmulld xmm2, xmm0
movaps xmm0, xmmword [0x1039c5f0]
pand xmm0, xmmword [0x1039c610]
psrad xmm0, xmm4
paddd xmm2, xmm0
movd xmm0, dword [esp + edi + 0xc8]
pshufd xmm0, xmm0, 0
paddd xmm2, xmm2
paddd xmm0, xmm2
movups xmmword [esp + edi*4 + 0x140], xmm0
jmp 0x1013a7d5
mov edi, dword [esp + edi + 0xc8]
mov dword [esp + 0x44], edi
lea edi, [esp + 0x140]
movzx eax, ax
add edi, edx
mov dword [esp + 0x8c], eax
cmp esi, 2
lea edi, [edi + 4]
mov edx, ecx
mov ecx, ebx
cmovl edx, dword [esp + 0x80]
sar edx, cl
imul edx, eax
mov eax, esi
and eax, 1
inc esi
sar eax, cl
mov ecx, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x44]
lea eax, [eax + edx*2]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x8c]
cmp esi, 4
jl 0x1013a792
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
xor esi, esi
cmp dword [0x1054d7c8], 2
jl 0x1013a85d
movaps xmm1, xmmword [0x10273df0]
movaps xmm2, xmm5
pcmpgtd xmm1, xmmword [0x1039c610]
cwde
pand xmm2, xmm1
pandn xmm1, xmm6
movd xmm4, ebx
por xmm2, xmm1
psrad xmm2, xmm4
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
pmovzxwd xmm0, xmm0
pmulld xmm2, xmm0
movaps xmm0, xmmword [0x1039c5f0]
pand xmm0, xmmword [0x1039c610]
psrad xmm0, xmm4
paddd xmm2, xmm0
movd xmm0, dword [esp + edi + 0xb8]
pshufd xmm0, xmm0, 0
paddd xmm2, xmm2
paddd xmm0, xmm2
movups xmmword [esp + edi*4 + 0xf0], xmm0
jmp 0x1013a8bf
mov edi, dword [esp + edi + 0xb8]
mov dword [esp + 0x8c], edi
lea edi, [esp + 0xf0]
movzx eax, ax
add edi, edx
mov dword [esp + 0x44], eax
nop dword [eax + eax]
cmp esi, 2
lea edi, [edi + 4]
mov edx, ecx
mov ecx, ebx
cmovl edx, dword [esp + 0x80]
sar edx, cl
imul edx, eax
mov eax, esi
and eax, 1
inc esi
sar eax, cl
mov ecx, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x8c]
lea eax, [eax + edx*2]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x44]
cmp esi, 4
jl 0x1013a880
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 0x14]
mov edx, dword [esp + 0x3c]
cmp ecx, eax
jne 0x1013a8ef
mov eax, dword [esp + 0x74]
mov dword [esp + edx + 0x14c], eax
mov dword [esp + edx + 0x148], eax
mov dword [esp + edx + 0xfc], eax
mov dword [esp + edx + 0xf8], eax
mov eax, dword [esp + 0x50]
add edi, 4
add edx, 0x10
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
cmp edi, 0x10
jl 0x1013a6f0
mov edx, dword [esp + 0x10]
mov ecx, ebx
mov edi, dword [esp + 0x80]
sar edi, cl
mov ecx, dword [esp + 0x2c]
movzx eax, word [edx + 0x1e]
mov esi, dword [edx + 0x188]
mov edx, dword [edx + 8]
imul edi, eax
shr esi, cl
mov ecx, dword [esp + 0x7c]
and esi, 3
lea eax, [esi + edi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x50], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
sar eax, cl
mov ecx, dword [esp + 0x5c]
add eax, edi
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x8c], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
sar eax, cl
add eax, edi
mov edi, dword [esp + 0x38]
add edi, 0xc
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x24]
lea eax, [edx + eax*2]
add esi, 8
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x14]
xorps xmm6, xmm6
mov dword [esp + 0x2c], edi
xorps xmm4, xmm4
mov edi, dword [esp + 0x48]
xor ecx, ecx
movzx eax, word [edx]
movd xmm0, eax
mov eax, dword [esp + 0x18]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
movss dword [esp + 0x64], xmm0
movd xmm0, eax
movzx eax, word [ebx]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x68], xmm0
movd xmm0, eax
mov eax, dword [esp + 0x20]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
movss dword [esp + 0x6c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x70], xmm0
movups xmm2, xmmword [esp + 0x64]
nop dword [eax + eax]
mov eax, dword [esp + ecx + 0x140]
movaps xmm1, xmm2
movzx eax, word [eax]
movd xmm0, eax
mov eax, dword [esp + ecx + 0x144]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
movss dword [esp + 0x98], xmm0
movd xmm0, eax
mov eax, dword [esp + ecx + 0x148]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
movss dword [esp + 0x9c], xmm0
movd xmm0, eax
mov eax, dword [esp + ecx + 0x14c]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
movss dword [esp + 0xa0], xmm0
movd xmm0, eax
mov eax, dword [esp + ecx + 0xf0]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax]
add eax, eax
movss dword [esp + 0xa4], xmm0
movups xmm2, xmmword [esp + 0x98]
movss xmm0, dword [edi + eax*8]
mov eax, dword [esp + ecx + 0xf4]
subps xmm1, xmm2
movss dword [esp + 0xa8], xmm0
movups xmmword [esp + 0x64], xmm2
movzx eax, word [eax]
add eax, eax
movss xmm0, dword [edi + eax*8 + 4]
mov eax, dword [esp + ecx + 0xf8]
movss dword [esp + 0xac], xmm0
movzx eax, word [eax]
add eax, eax
movss xmm0, dword [edi + eax*8 + 8]
mov eax, dword [esp + ecx + 0xfc]
add ecx, 0x10
movss dword [esp + 0xb0], xmm0
movzx eax, word [eax]
add eax, eax
movss xmm0, dword [edi + eax*8 + 0xc]
movss dword [esp + 0xb4], xmm0
movups xmm0, xmmword [esp + 0xa8]
addps xmm4, xmm0
mulps xmm0, xmm1
addps xmm6, xmm0
cmp ecx, 0x40
jl 0x1013a9f0
mov eax, dword [esp + 0x78]
mulps xmm4, xmm4
mov ecx, dword [esp + 0x90]
movups xmmword [esp + 0x130], xmm6
mov edx, dword [esp + 0x94]
movss xmm0, dword [eax - 8]
movups xmm1, xmmword [esp + 0x130]
mov edi, dword [esp + 0x2c]
movaps xmm5, xmm4
mov ebx, dword [esp + 0x1c]
mulss xmm5, xmm6
movaps xmm7, xmm4
shufps xmm7, xmm4, 0x55
movaps xmm3, xmm7
addss xmm0, xmm5
movups xmmword [esp + 0xd8], xmm4
movss dword [eax - 8], xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
movaps xmm6, xmm4
mulss xmm3, xmm0
movss xmm0, dword [eax - 4]
shufps xmm6, xmm4, 0xaa
addss xmm0, xmm3
movaps xmm2, xmm6
movss dword [eax - 4], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
mulss xmm2, xmm0
movss xmm0, dword [eax]
addss xmm0, xmm2
movss dword [eax], xmm0
movups xmm0, xmmword [esp + 0xd8]
shufps xmm4, xmm0, 0xff
movss xmm0, dword [eax + 4]
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x13c]
addss xmm0, xmm1
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0xd8]
addss xmm0, dword [ecx]
movss dword [ecx], xmm0
movaps xmm0, xmm7
addss xmm0, dword [ecx + 4]
movss dword [ecx + 4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [eax + edx]
movss dword [eax + edx], xmm0
movaps xmm0, xmm4
addss xmm0, dword [ecx + 0xc]
mov edx, dword [esp + 0x84]
movss dword [ecx + 0xc], xmm0
movss xmm0, dword [esi - 8]
addss xmm1, dword [esi + 4]
addss xmm0, xmm5
movss dword [esi + 4], xmm1
movss dword [esi - 8], xmm0
movss xmm0, dword [esi - 4]
addss xmm0, xmm3
movss dword [esi - 4], xmm0
movss xmm0, dword [esi]
addss xmm0, xmm2
movss dword [esi], xmm0
movups xmm0, xmmword [esp + 0xd8]
addss xmm6, dword [esi + edx]
addss xmm0, dword [edi - 0xc]
addss xmm7, dword [edi - 8]
addss xmm4, dword [edi]
movss dword [esi + edx], xmm6
mov edx, dword [esp + 0x14]
movss dword [edi - 0xc], xmm0
movss dword [edi - 8], xmm7
movss dword [edi], xmm4
cmp edx, dword [esp + 0x8c]
jae 0x1013acc3
movups xmm0, xmmword [esp + 0x14]
lea eax, [esp + 0x140]
mov ecx, 4
movaps xmm1, xmmword [0x10276e70]
paddd xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
movaps xmm1, xmmword [0x10259050]
nop
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x10]
paddd xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
sub ecx, 1
jne 0x1013ac80
lea eax, [esp + 0xf0]
mov ecx, 4
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x10]
paddd xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
sub ecx, 1
jne 0x1013aca0
mov ebx, dword [esp + 0x1c]
add esi, 0x10
add edi, 0x10
jmp 0x1013a987
cmp edx, dword [esp + 0x50]
jbe 0x1013ad54
cmp edx, dword [esp + 0x4c]
jae 0x1013ad54
lea eax, [esp + 0x34]
add edx, 0x10
add ebx, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov ecx, 4
mov dword [esp + 0x14], edx
lea eax, [esp + 0x140]
mov dword [esp + 0x1c], ebx
nop dword [eax]
add dword [eax], 4
lea edi, [esp + 0x34]
add dword [eax + 8], 4
lea eax, [eax + 0x10]
mov dword [eax - 0xc], edi
mov dword [eax - 4], edi
sub ecx, 1
jne 0x1013ad00
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0xf0]
mov ecx, 4
nop dword [eax]
add dword [eax], 4
lea edx, [esp + 0x34]
add dword [eax + 8], 4
lea eax, [eax + 0x10]
mov dword [eax - 0xc], edx
mov dword [eax - 4], edx
sub ecx, 1
jne 0x1013ad30
add esi, 0x10
add edi, 0x10
jmp 0x1013a987
mov ebx, dword [esp + 0x80]
add ecx, 0x10
add ebx, 2
mov dword [esp + 0x90], ecx
add eax, 0x10
mov dword [esp + 0x80], ebx
sub dword [esp + 0x30], 1
mov dword [esp + 0x78], eax
jne 0x1013a5c0
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
push 0x10
push esi
call fcn.10135670
mov ecx, dword [esp + 0x10]
mov ebx, eax
push 0x10
push dword [esp + 0x60]
mov dword [esp + 0x38], ebx
call fcn.10135670
mov edi, eax
xorps xmm0, xmm0
mov eax, dword [esp + 0x58]
xorps xmm6, xmm6
mov dword [esp + 0x4c], edi
movups xmmword [esp + 0x14], xmm0
movss xmm1, dword [esp + 0x20]
movss xmm2, dword [esp + 0x1c]
movss xmm4, dword [esp + 0x18]
movss xmm5, dword [esp + 0x14]
test eax, eax
je 0x1013ae6c
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
lea edx, [esi + 0xc]
sub esi, eax
lea ecx, [eax + 4]
mov eax, dword [esp + 0x58]
nop
movss xmm3, dword [edx - 0xc]
comiss xmm3, xmm6
jbe 0x1013ae0c
movss xmm0, dword [ecx - 4]
divss xmm0, xmm3
movss dword [ecx - 4], xmm0
addss xmm5, xmm0
movss xmm3, dword [ecx + esi]
comiss xmm3, xmm6
jbe 0x1013ae26
movss xmm0, dword [ecx]
divss xmm0, xmm3
movss dword [ecx], xmm0
addss xmm4, xmm0
movss xmm3, dword [edx - 4]
comiss xmm3, xmm6
jbe 0x1013ae42
movss xmm0, dword [ecx + 4]
divss xmm0, xmm3
movss dword [ecx + 4], xmm0
addss xmm2, xmm0
movss xmm3, dword [edx]
comiss xmm3, xmm6
jbe 0x1013ae5d
movss xmm0, dword [ecx + 8]
divss xmm0, xmm3
movss dword [ecx + 8], xmm0
addss xmm1, xmm0
add ecx, 0x10
add edx, 0x10
sub eax, 1
jne 0x1013adf0
mov eax, dword [esp + 0x58]
movd xmm0, dword [esp + 0x88]
cvtdq2ps xmm0, xmm0
divss xmm5, xmm0
divss xmm4, xmm0
movd xmm0, eax
movss dword [esp + 0x64], xmm5
movss dword [esp + 0x68], xmm4
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movss dword [esp + 0x6c], xmm2
movss dword [esp + 0x70], xmm1
test eax, eax
je 0x1013aee5
mov esi, dword [esp + 0x40]
mov ecx, ebx
sub esi, ebx
mov edi, eax
nop word [eax + eax]
xor edx, edx
movss xmm0, dword [esi + ecx]
subss xmm0, dword [esp + edx*4 + 0x64]
inc edx
cvttss2si eax, xmm0
mov dword [ecx], eax
add ecx, 4
cmp edx, 4
jl 0x1013aec2
sub edi, 1
jne 0x1013aec0
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
xorps xmm0, xmm0
movups xmmword [esp + 0x14], xmm0
movss xmm3, dword [esp + 0x20]
movss xmm4, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm5, dword [esp + 0x14]
test edx, edx
je 0x1013afa1
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
lea ecx, [esi + 0xc]
sub esi, edx
lea eax, [edx + 4]
mov edx, dword [esp + 0x5c]
movss xmm1, dword [ecx - 0xc]
comiss xmm1, xmm6
jbe 0x1013af41
movss xmm0, dword [eax - 4]
divss xmm0, xmm1
movss dword [eax - 4], xmm0
addss xmm5, xmm0
movss xmm1, dword [eax + esi]
comiss xmm1, xmm6
jbe 0x1013af5b
movss xmm0, dword [eax]
divss xmm0, xmm1
movss dword [eax], xmm0
addss xmm2, xmm0
movss xmm1, dword [ecx - 4]
comiss xmm1, xmm6
jbe 0x1013af77
movss xmm0, dword [eax + 4]
divss xmm0, xmm1
movss dword [eax + 4], xmm0
addss xmm4, xmm0
movss xmm1, dword [ecx]
comiss xmm1, xmm6
jbe 0x1013af92
movss xmm0, dword [eax + 8]
divss xmm0, xmm1
movss dword [eax + 8], xmm0
addss xmm3, xmm0
add eax, 0x10
add ecx, 0x10
sub edx, 1
jne 0x1013af25
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm5, xmm0
divss xmm2, xmm0
movd xmm0, edx
movss dword [esp + 0x64], xmm5
movss dword [esp + 0x68], xmm2
cvtdq2ps xmm0, xmm0
divss xmm4, xmm0
divss xmm3, xmm0
movss dword [esp + 0x6c], xmm4
movss dword [esp + 0x70], xmm3
test edx, edx
je 0x1013b01f
mov eax, dword [esp + 0x24]
mov ebx, edx
mov esi, dword [esp + 0x38]
mov ecx, eax
sub esi, eax
sub edi, eax
nop
xor edx, edx
movss xmm0, dword [ecx + esi]
comiss xmm0, xmm6
jbe 0x1013b00d
movss xmm0, dword [ecx]
subss xmm0, dword [esp + edx*4 + 0x64]
cvttss2si eax, xmm0
mov dword [edi + ecx], eax
inc edx
add ecx, 4
cmp edx, 4
jl 0x1013aff2
sub ebx, 1
jne 0x1013aff0
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x58], 0
jbe 0x1013b302
xor esi, esi
lea eax, [ebx + 8]
mov dword [esp + 0x28], esi
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x10]
mov eax, esi
and eax, 7
shl eax, 2
mov dword [esp + 0x2c], eax
movzx ecx, word [ebx + 0x492bc]
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0x188]
mov eax, edx
movzx ebx, word [ebx + 0x1e]
sar esi, cl
mov ecx, dword [esp + 0x2c]
shr eax, cl
and eax, 3
imul esi, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x10]
movzx ecx, word [ebx + 0x492bc]
lea eax, [eax + esi*4]
lea eax, [edi + eax*2]
mov dword [esp + 0x14], eax
mov eax, 1
sar eax, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x84], eax
or ecx, 2
add eax, esi
shr edx, cl
and edx, 3
mov ecx, ebx
lea eax, [edx + eax*4]
movzx ecx, word [ecx + 0x492bc]
lea eax, [edi + eax*2]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], eax
inc edi
mov eax, edi
mov esi, edi
and eax, 7
sar esi, cl
imul esi, dword [esp + 0x88]
lea edx, [eax*4]
mov eax, ebx
mov ecx, edx
or edx, 2
mov eax, dword [eax + 0x188]
shr eax, cl
mov ecx, ebx
and eax, 3
mov ebx, dword [ecx + 8]
mov ecx, edx
lea eax, [eax + esi*4]
lea eax, [ebx + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x188]
mov eax, dword [esp + 0x84]
shr edx, cl
add eax, esi
and edx, 3
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x10]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x20], ebx
movzx eax, word [edx + 0x14]
cmp edi, eax
jne 0x1013b130
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
movzx ebx, word [edx + 0x492bc]
mov edi, dword [esp + 0x28]
mov ecx, ebx
movzx eax, word [edx + 0x1e]
mov esi, dword [edx + 0x188]
mov edx, dword [edx + 8]
sar edi, cl
mov ecx, dword [esp + 0x2c]
imul edi, eax
shr esi, cl
mov ecx, dword [esp + 0x7c]
and esi, 3
lea eax, [esi + edi*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x84], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
sar eax, cl
mov ecx, dword [esp + 0x5c]
add eax, edi
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x88], eax
lea eax, [ecx*2 - 2]
mov ecx, ebx
mov ebx, dword [esp + 0x14]
sar eax, cl
add eax, edi
mov edi, dword [esp + 0x1c]
lea eax, [esi + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x4c]
add eax, 8
mov dword [esp + 0x3c], eax
movzx eax, word [ebx]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
movzx edx, word [edi]
sub eax, dword [ebx - 8]
movzx ecx, word [ecx]
movzx esi, word [esi]
sub ecx, dword [ebx - 4]
sub edx, dword [ebx]
sub esi, dword [ebx + 4]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0xe8]
sub eax, dword [ebx - 8]
mov dword [esp + 0x64], eax
mov eax, ebx
mov ebx, dword [esp + 0xec]
sub edx, dword [eax]
sub ecx, dword [eax - 4]
sub esi, dword [eax + 4]
mov dword [esp + 0x6c], edx
xor edx, edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], esi
nop dword [eax + eax]
mov eax, dword [esp + edx + 0x14]
movzx eax, word [eax]
cmp eax, ebx
jl 0x1013b227
mov cl, byte [esp + 0x60]
shr eax, cl
mov dword [esp + edx + 0x64], eax
jmp 0x1013b249
mov eax, dword [esp + edx + 0x64]
cmp eax, edi
jle 0x1013b235
mov dword [esp + edx + 0x64], edi
jmp 0x1013b241
test eax, eax
jns 0x1013b241
mov dword [esp + edx + 0x64], 0
mov ecx, dword [esp + 0x60]
sar dword [esp + edx + 0x64], cl
add edx, 4
cmp edx, 0x10
jl 0x1013b210
mov ebx, dword [esp + 0x14]
movzx eax, word [esp + 0x64]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov word [ebx], ax
movzx eax, word [esp + 0x68]
mov word [ecx], ax
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x20]
mov word [edi], ax
movzx eax, word [esp + 0x70]
mov word [ecx], ax
cmp ebx, dword [esp + 0x88]
jae 0x1013b2b1
movups xmm0, xmmword [esp + 0x14]
add dword [esp + 0x3c], 0x10
movaps xmm1, xmmword [0x10276e70]
paddd xmm1, xmm0
movups xmmword [esp + 0x14], xmm1
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
jmp 0x1013b1b4
cmp ebx, dword [esp + 0x84]
jbe 0x1013b2e7
cmp ebx, dword [esp + 0x94]
jae 0x1013b2e7
add ebx, 0x10
lea eax, [esp + 0x34]
add edi, 0x10
mov dword [esp + 0x14], ebx
add dword [esp + 0x3c], 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
jmp 0x1013b1b4
mov esi, dword [esp + 0x28]
add dword [esp + 0x50], 0x10
add esi, 2
sub dword [esp + 0x58], 1
mov dword [esp + 0x28], esi
jne 0x1013b037
push dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x4c]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x48]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x40]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x54]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x24]
mov ecx, ebx
call fcn.10135700
push dword [esp + 0x38]
mov ecx, ebx
call fcn.10135700
xor esi, esi
nop word [eax + eax]
push dword [esp + esi + 0xc8]
mov ecx, ebx
call fcn.10135700
push dword [esp + esi + 0xb8]
mov ecx, ebx
call fcn.10135700
add esi, 4
cmp esi, 0x10
jl 0x1013b360
push dword [esp + 0x74]
mov ecx, ebx
call fcn.10135700
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret