Function at 0x10241da0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
sub esp, 0x2f8
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x2f4], eax
mov ecx, dword [ebp + 0x18]
mov eax, ecx
and eax, 0xfffffff0
mov edx, dword [ebp + 0x24]
sub ecx, eax
mov dword [esp + 0x58], eax
mov dword [ebp + 0x18], ecx
push esi
mov esi, dword [ebp + 0xc]
lea eax, [ecx + ecx]
mov dword [esp + 0x34], edx
mov ecx, 0x108f0a88
mov dword [esp + 0x20], 0
sub ecx, eax
mov eax, 1
cmp dword [ebp + 0x2c], 0
push edi
mov edi, dword [ebp + 0x28]
vmovdqu ymm0, ymmword [ecx]
mov ecx, 4
mov dword [esp + 0x78], edi
cmovne eax, ecx
mov dword [esp + 0x40], eax
lea eax, [esi + esi]
mov dword [esp + 0x3c], eax
lea eax, [edi + 0x20]
mov dword [esp + 0x58], eax
mov eax, edx
sub eax, edi
lea edi, [esi*4]
vmovdqu ymmword [esp + 0x80], ymm0
vpxor xmm0, xmm0, xmm0
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
push 0x80
mov dword [esp + 0x30], eax
lea eax, [esp + 0x264]
push 0
vmovdqu ymmword [esp + 0x248], ymm0
push eax
vzeroupper
call fcn.10513d40
push 0x80
vpxor xmm0, xmm0, xmm0
push 0
lea eax, [esp + 0x1d4]
vmovdqu ymmword [esp + 0x1b4], ymm0
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm0, ymmword [esp + 0x298]
mov eax, dword [esp + 0x58]
lea edx, [esi + esi*2]
vmovdqu ymm2, ymmword [esp + 0x258]
vmovdqu ymm1, ymmword [esp + 0x1f8]
vmovdqu ymm3, ymmword [esp + 0x1b8]
vmovdqu ymm5, ymmword [esp + 0x2d8]
vmovdqu ymm7, ymmword [esp + 0x2b8]
vmovdqu ymm6, ymmword [esp + 0x238]
mov ecx, dword [esp + 0x44]
add esp, 0x18
vmovdqu ymmword [esp + 0xa0], ymm0
vmovdqu ymm0, ymmword [esp + 0x260]
vmovdqu ymmword [esp + 0xc0], ymm0
vmovdqu ymm0, ymmword [esp + 0x200]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, edi
vmovdqu ymmword [esp + 0x100], ymm0
vmovdqu ymm0, ymmword [esp + 0x1c0]
mov dword [esp + 0x30], eax
vmovdqu ymmword [esp + 0xe0], ymm2
vmovdqu ymmword [esp + 0x120], ymm1
vmovdqu ymmword [esp + 0x140], ymm0
vmovdqu ymmword [esp + 0x160], ymm3
nop dword [eax]
cmp dword [ebp + 0x2c], 0
mov edi, eax
mov dword [esp + 0x28], 0
je 0x10241f67
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x20]
cmp eax, 4
jge 0x10241f67
mov dword [esp + 0x34], eax
lea edi, [esi*4]
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x34]
cwde
vmovd xmm0, eax
vpbroadcastw ymm4, xmm0
vmovdqu ymmword [esp + 0x180], ymm4
jle 0x102420f6
mov edi, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
lea eax, [ecx + edi*2]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
add eax, edi
lea eax, [ecx + eax*2]
mov dword [esp + 0x4c], eax
lea eax, [edx + edi]
mov edx, dword [esp + 0x44]
lea eax, [ecx + eax*2]
mov dword [esp + 0x48], eax
sub edx, ecx
lea eax, [edi + esi*2]
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x68]
lea eax, [ecx + eax*2]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
dec eax
shr eax, 4
inc eax
mov edi, eax
shl edi, 4
mov dword [esp + 0x28], edi
mov edi, ecx
mov ecx, dword [esp + 0x30]
nop dword [eax]
vpmullw ymm3, ymm4, ymmword [edx + edi]
vpmullw ymm2, ymm4, ymmword [edi]
vpmaddwd ymm0, ymm3, ymmword [esi]
vpaddd ymm4, ymm0, ymmword [esp + 0xe0]
vpmaddwd ymm0, ymm2, ymmword [esi]
vpaddd ymm1, ymm0, ymmword [esp + 0x160]
vpmaddwd ymm0, ymm3, ymmword [ecx]
mov edx, dword [esp + 0x54]
lea edi, [edi + 0x20]
add dword [esp + 0x54], 0x20
lea esi, [esi + 0x20]
vmovdqu ymmword [esp + 0xe0], ymm4
vpaddd ymm4, ymm0, ymmword [esp + 0xc0]
vpmaddwd ymm0, ymm2, ymmword [ecx]
vmovdqu ymmword [esp + 0x160], ymm1
vpaddd ymm1, ymm0, ymmword [esp + 0x140]
vpmaddwd ymm0, ymm3, ymmword [edx]
vmovdqu ymmword [esp + 0xc0], ymm4
vpaddd ymm4, ymm0, ymmword [esp + 0xa0]
vpmaddwd ymm0, ymm2, ymmword [edx]
mov edx, dword [esp + 0x48]
lea ecx, [ecx + 0x20]
add dword [esp + 0x48], 0x20
vmovdqu ymmword [esp + 0x140], ymm1
vpaddd ymm1, ymm0, ymmword [esp + 0x120]
vpmaddwd ymm0, ymm3, ymmword [edx]
vpaddd ymm7, ymm0, ymm7
vpmaddwd ymm0, ymm2, ymmword [edx]
mov edx, dword [esp + 0x4c]
add dword [esp + 0x4c], 0x20
vmovdqu ymmword [esp + 0x120], ymm1
vpaddd ymm1, ymm0, ymmword [esp + 0x100]
vpmaddwd ymm0, ymm3, ymmword [edx]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm2, ymmword [edx]
mov edx, dword [esp + 0x5c]
vmovdqu ymmword [esp + 0xa0], ymm4
vmovdqu ymm4, ymmword [esp + 0x180]
vmovdqu ymmword [esp + 0x100], ymm1
vpaddd ymm6, ymm0, ymm6
sub eax, 1
jne 0x10241ff0
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x2c]
lea edx, [esi + esi*2]
lea edi, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x1024221a
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
vmovdqu ymm0, ymmword [esi + eax*2]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov esi, dword [ebp + 0xc]
vpmullw ymm3, ymm0, ymm4
vmovdqu ymm0, ymmword [ecx + eax*2]
add eax, dword [esp + 0x24]
vpand ymm0, ymm0, ymmword [esp + 0x80]
vpmullw ymm2, ymm0, ymm4
vpmaddwd ymm0, ymm3, ymmword [ecx + eax*2]
vpaddd ymm4, ymm0, ymmword [esp + 0xe0]
vpmaddwd ymm0, ymm2, ymmword [ecx + eax*2]
vpaddd ymm1, ymm0, ymmword [esp + 0x160]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
add eax, esi
vmovdqu ymmword [esp + 0xe0], ymm4
vmovdqu ymmword [esp + 0x160], ymm1
vpmaddwd ymm0, ymm3, ymmword [ecx + eax*2]
vpaddd ymm4, ymm0, ymmword [esp + 0xc0]
vpmaddwd ymm0, ymm2, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm1, ymm0, ymmword [esp + 0x140]
vmovdqu ymmword [esp + 0xc0], ymm4
vmovdqu ymmword [esp + 0x140], ymm1
lea eax, [eax + esi*2]
add eax, dword [esp + 0x24]
vpmaddwd ymm0, ymm3, ymmword [ecx + eax*2]
vpaddd ymm4, ymm0, ymmword [esp + 0xa0]
vpmaddwd ymm0, ymm2, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm1, ymm0, ymmword [esp + 0x120]
add eax, edx
add eax, dword [esp + 0x24]
vmovdqu ymmword [esp + 0x120], ymm1
vmovdqu ymmword [esp + 0xa0], ymm4
vpmaddwd ymm0, ymm3, ymmword [ecx + eax*2]
vpaddd ymm7, ymm0, ymm7
vpmaddwd ymm0, ymm2, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm1, ymm0, ymmword [esp + 0x100]
add eax, edi
add eax, dword [esp + 0x24]
vmovdqu ymmword [esp + 0x100], ymm1
vpmaddwd ymm0, ymm3, ymmword [ecx + eax*2]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm2, ymmword [ecx + eax*2]
vpaddd ymm6, ymm0, ymm6
jmp 0x1024222d
vmovdqu ymm4, ymmword [esp + 0xa0]
lea edi, [esi*4]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x34]
add dword [esp + 0x20], eax
imul eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x44]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x34]
imul eax, esi
mov esi, dword [ebp + 0x20]
cmp dword [esp + 0x20], esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + eax*2]
mov eax, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
jl 0x10241f40
vmovdqu ymm2, ymmword [esp + 0xe0]
vphaddd ymm0, ymm2, ymmword [esp + 0xc0]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
vphaddd ymm1, ymm4, ymm7
vphaddd ymm3, ymm0, ymm1
mov eax, dword [esp + 0x70]
vextracti128 xmm0, ymm5, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm5
vpaddq ymm2, ymm0, ymm1
vextracti128 xmm0, ymm6, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm6
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm2, ymm0
vpunpckhqdq ymm0, ymm2, ymm0
vpaddq ymm1, ymm0, ymm1
add dword [esp + 0x3c], 2
vextracti128 xmm0, ymm1, 1
vpaddq xmm2, xmm0, xmm1
vextracti128 xmm0, ymm3, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm3
vmovdqu ymm3, ymmword [esp + 0x160]
vpaddq ymm0, ymm0, ymm1
vmovdqu ymm1, ymmword [esp + 0x120]
vphaddd ymm1, ymm1, ymmword [esp + 0x100]
vmovdqu ymmword [edx], ymm0
vphaddd ymm0, ymm3, ymmword [esp + 0x140]
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vmovq qword [eax + ecx], xmm2
mov eax, dword [esp + 0x24]
add edx, 0x28
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [ecx - 0x20], ymm0
inc eax
mov dword [esp + 0x38], edx
vmovhps qword [ecx], xmm2
add ecx, 0x28
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], ecx
vpxor xmm0, xmm0, xmm0
cmp eax, 5
jl 0x10241e33
cmp dword [ebp + 0x2c], 0
mov ecx, 1
mov eax, ecx
mov dword [esp + 0x44], ecx
mov edx, 4
mov dword [esp + 0x58], 5
cmovne eax, edx
mov dword [esp + 0x68], eax
lea eax, [esi + esi]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x78]
add eax, 0xd0
mov dword [esp + 0x5c], eax
nop dword [eax + eax]
mov eax, 0xcccccccd
mul ecx
push 0xa0
mov edi, edx
mov edx, dword [ebp + 8]
shr edi, 2
mov dword [esp + 0x28], edi
push 0
lea eax, [edx + edi*2]
mov dword [esp + 0x28], eax
lea eax, [edi + edi*4]
sub ecx, eax
imul ecx, esi
add ecx, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x44], edi
lea eax, [edx + ecx*2]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x1a8]
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm2, ymmword [esp + 0x20c]
vmovdqu ymm3, ymmword [esp + 0x1ec]
vmovdqu ymm4, ymmword [esp + 0x1cc]
vmovdqu ymm5, ymmword [esp + 0x1ac]
mov edx, dword [esp + 0x2c]
lea ecx, [esi*4]
mov eax, dword [ebp + 0x20]
add esp, 0xc
nop word [eax + eax]
cmp dword [ebp + 0x2c], 0
mov dword [esp + 0x70], ecx
mov dword [esp + 0x28], 0
je 0x10242450
sub eax, dword [esp + 0x34]
cmp eax, 4
cmovl edi, eax
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x60], 0
movsx eax, di
vmovd xmm0, eax
vpbroadcastw ymm6, xmm0
jle 0x10242500
mov ecx, dword [esp + 0x2c]
lea eax, [edx + esi*8]
mov dword [esp + 0x30], eax
lea eax, [esi + esi*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x40]
add eax, edx
add edx, dword [esp + 0x74]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
dec eax
shr eax, 4
inc eax
mov esi, eax
mov dword [esp + 0x38], eax
shl esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x70]
nop dword [eax + eax]
vpmullw ymm1, ymm6, ymmword [ecx]
vpmaddwd ymm0, ymm1, ymmword [edx]
mov eax, dword [esp + 0x30]
lea ecx, [ecx + 0x20]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edi]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [eax]
add eax, 0x20
lea edx, [edx + 0x20]
sub dword [esp + 0x38], 1
lea esi, [esi + 0x20]
vpaddd ymm2, ymm0, ymm2
lea edi, [edi + 0x20]
mov dword [esp + 0x30], eax
jne 0x102424b0
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x3c]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x10242562
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
vmovdqu ymm0, ymmword [edx + eax*2]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov edx, dword [esp + 0x20]
add eax, esi
vpmullw ymm1, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm5, ymm0, ymm5
lea eax, [eax + esi*2]
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, esi
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, ecx
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x1024256d
mov edx, dword [esp + 0x20]
lea ecx, [esi*4]
add dword [esp + 0x34], edi
mov eax, edi
imul eax, esi
add eax, eax
add dword [esp + 0x2c], eax
add edx, eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], edx
cmp dword [esp + 0x34], eax
jl 0x10242430
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
inc edi
mov dword [esp + 0x24], edi
vphaddd ymm1, ymm3, ymm2
vphaddd ymm0, ymm5, ymm4
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [eax], ymm0
cmp edi, 5
jge 0x102428a4
mov eax, dword [esp + 0x44]
mov ecx, 5
cdq
idiv ecx
lea ecx, [esi*4]
imul edx, esi
add edx, eax
mov eax, dword [ebp + 8]
lea eax, [eax + edx*2]
mov dword [esp + 0x70], eax
lea eax, [edi + esi]
add eax, eax
mov dword [esp + 0x34], eax
lea eax, [esi + esi]
add eax, edi
add eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
add eax, edi
lea eax, [eax + eax*4]
shl eax, 3
add eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], eax
nop word [eax + eax]
mov eax, dword [esp + 0x70]
lea edi, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
mov eax, ecx
mov dword [esp + 0x38], edx
vpxor xmm3, xmm3, xmm3
vpxor xmm4, xmm4, xmm4
vpxor xmm5, xmm5, xmm5
vpxor xmm6, xmm6, xmm6
vpxor xmm2, xmm2, xmm2
mov dword [esp + 0x30], eax
nop dword [eax + eax]
cmp dword [ebp + 0x2c], 0
mov ecx, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], 0
je 0x1024268b
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x2c]
cmp eax, 4
jge 0x1024268b
mov dword [esp + 0x48], eax
lea ecx, [esi*4]
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x48]
cwde
vmovd xmm0, eax
vpbroadcastw ymm7, xmm0
jle 0x10242762
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
add eax, esi
mov ecx, dword [esp + 0x20]
lea edi, [edx + esi*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
add eax, esi
lea eax, [edx + eax*2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
add eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
add eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
dec eax
shr eax, 4
inc eax
mov edx, eax
mov dword [esp + 0x30], eax
shl edx, 4
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x6c]
nop dword [eax + eax]
vpmullw ymm1, ymm7, ymmword [ecx]
vpmaddwd ymm0, ymm1, ymmword [edi]
mov eax, dword [esp + 0x3c]
lea ecx, [ecx + 0x20]
add dword [esp + 0x3c], 0x20
lea edi, [edi + 0x20]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edx]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [eax]
mov eax, dword [esp + 0x4c]
lea esi, [esi + 0x20]
add dword [esp + 0x4c], 0x20
lea edx, [edx + 0x20]
sub dword [esp + 0x30], 1
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [eax]
vpaddd ymm2, ymm0, ymm2
jne 0x10242700
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x38]
lea edi, [esi + esi*2]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x102427e1
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
vmovdqu ymm0, ymmword [esi + eax*2]
add eax, dword [esp + 0x24]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov esi, dword [ebp + 0xc]
vpmullw ymm1, ymm0, ymm7
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
add eax, esi
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, dword [esp + 0x24]
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, dword [esp + 0x24]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, ecx
add eax, dword [esp + 0x24]
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x102427eb
lea ecx, [esi*4]
lea edi, [esi + esi*2]
mov eax, dword [esp + 0x48]
add dword [esp + 0x2c], eax
imul eax, esi
mov esi, dword [ebp + 0x20]
add eax, eax
add dword [esp + 0x20], eax
add edx, eax
cmp dword [esp + 0x2c], esi
mov eax, ecx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], eax
jl 0x10242660
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
add dword [esp + 0x54], 2
inc eax
add dword [esp + 0x34], 2
vphaddd ymm1, ymm5, ymm6
vphaddd ymm0, ymm3, ymm4
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [edx], ymm0
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm0, ymm0
vpunpckhqdq ymm0, ymm0, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovq qword [edi + 0x20], xmm0
add edx, 0x28
mov dword [esp + 0x24], eax
add edi, 0x28
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], edi
cmp eax, 5
jl 0x10242620
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
add eax, 0x410
mov dword [esp + 0x5c], eax
add ecx, 5
mov eax, dword [esp + 0x58]
add eax, 0x19
mov dword [esp + 0x44], ecx
mov dword [esp + 0x58], eax
cmp eax, 0x7d
jl 0x102423a0
cmp dword [ebp + 0x2c], 0
mov eax, 1
mov edx, 4
mov dword [esp + 0x30], 0xa
cmovne eax, edx
mov ecx, 2
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x78]
add eax, 0x1a0
mov dword [esp + 0x54], ecx
mov dword [esp + 0x38], eax
nop
mov eax, 0xcccccccd
mul ecx
push 0xa0
mov edi, edx
mov edx, dword [ebp + 8]
shr edi, 2
mov dword [esp + 0x28], edi
push 0
lea eax, [edx + edi*2]
mov dword [esp + 0x34], eax
lea eax, [edi + edi*4]
sub ecx, eax
imul ecx, esi
add ecx, edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x48], edi
lea eax, [edx + ecx*2]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1a8]
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm2, ymmword [esp + 0x1ec]
vmovdqu ymm3, ymmword [esp + 0x1cc]
vmovdqu ymm4, ymmword [esp + 0x1ac]
mov edx, dword [esp + 0x38]
lea ecx, [esi*4]
mov eax, dword [ebp + 0x20]
add esp, 0xc
nop dword [eax]
cmp dword [ebp + 0x2c], 0
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x20], 0
je 0x102429a0
sub eax, dword [esp + 0x44]
cmp eax, 4
cmovl edi, eax
mov dword [esp + 0x40], edi
cmp dword [esp + 0x60], 0
movsx eax, di
vmovd xmm0, eax
vpbroadcastw ymm5, xmm0
jle 0x10242a25
mov ecx, dword [esp + 0x34]
lea eax, [edx + esi*8]
mov dword [esp + 0x74], eax
lea eax, [esi + esi*2]
mov edi, dword [esp + 0x74]
lea eax, [edx + eax*2]
add edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
dec eax
shr eax, 4
inc eax
mov esi, eax
shl esi, 4
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x64]
lea ecx, [ecx + 0x20]
lea edx, [edx + 0x20]
lea esi, [esi + 0x20]
lea edi, [edi + 0x20]
vpmullw ymm1, ymm5, ymmword [ecx - 0x20]
vpmaddwd ymm0, ymm1, ymmword [edx - 0x20]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [esi - 0x20]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edi - 0x20]
vpaddd ymm2, ymm0, ymm2
sub eax, 1
jne 0x102429e6
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x40]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x10242a78
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
vmovdqu ymm0, ymmword [edx + eax*2]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov edx, dword [esp + 0x2c]
lea eax, [eax + esi*2]
vpmullw ymm1, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x20]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, esi
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x20]
add eax, ecx
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x10242a83
mov edx, dword [esp + 0x2c]
lea ecx, [esi*4]
add dword [esp + 0x44], edi
mov eax, edi
imul eax, esi
add eax, eax
add dword [esp + 0x34], eax
add edx, eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x44], eax
jl 0x10242980
vphaddd ymm1, ymm2, ymmword [esp + 0x200]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
inc edi
mov dword [esp + 0x24], edi
vphaddd ymm0, ymm4, ymm3
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [eax], ymm0
cmp edi, 5
jge 0x10242db4
mov eax, dword [esp + 0x54]
mov ecx, 5
cdq
idiv ecx
lea ecx, [esi*4]
imul edx, esi
add edx, eax
mov eax, dword [ebp + 8]
lea eax, [eax + edx*2]
mov dword [esp + 0x6c], eax
lea eax, [edi + esi]
add eax, eax
mov dword [esp + 0x48], eax
lea eax, [edi + esi*2]
add eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
add eax, edi
lea eax, [eax + eax*4]
shl eax, 3
add eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
lea edi, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x68], edx
vpxor xmm3, xmm3, xmm3
vpxor xmm4, xmm4, xmm4
vpxor xmm5, xmm5, xmm5
vpxor xmm6, xmm6, xmm6
vpxor xmm2, xmm2, xmm2
mov dword [esp + 0x40], eax
nop
cmp dword [ebp + 0x2c], 0
mov ecx, eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], 0
je 0x10242b9b
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x2c]
cmp eax, 4
jge 0x10242b9b
mov dword [esp + 0x3c], eax
lea ecx, [esi*4]
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x3c]
cwde
vmovd xmm0, eax
vpbroadcastw ymm7, xmm0
jle 0x10242c72
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
add eax, esi
mov ecx, dword [esp + 0x20]
lea edi, [edx + esi*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x64]
add eax, esi
lea eax, [edx + eax*2]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
add eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
add eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
dec eax
shr eax, 4
inc eax
mov edx, eax
mov dword [esp + 0x40], eax
shl edx, 4
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x74]
nop dword [eax + eax]
vpmullw ymm1, ymm7, ymmword [ecx]
vpmaddwd ymm0, ymm1, ymmword [edi]
mov eax, dword [esp + 0x58]
lea ecx, [ecx + 0x20]
add dword [esp + 0x58], 0x20
lea edi, [edi + 0x20]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edx]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [eax]
mov eax, dword [esp + 0x5c]
lea esi, [esi + 0x20]
add dword [esp + 0x5c], 0x20
lea edx, [edx + 0x20]
sub dword [esp + 0x40], 1
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [eax]
vpaddd ymm2, ymm0, ymm2
jne 0x10242c10
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x68]
lea edi, [esi + esi*2]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x10242cf1
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
vmovdqu ymm0, ymmword [esi + eax*2]
add eax, dword [esp + 0x24]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov esi, dword [ebp + 0xc]
vpmullw ymm1, ymm0, ymm7
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
add eax, esi
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, dword [esp + 0x24]
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, dword [esp + 0x24]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, ecx
add eax, dword [esp + 0x24]
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x10242cfb
lea ecx, [esi*4]
lea edi, [esi + esi*2]
mov eax, dword [esp + 0x3c]
add dword [esp + 0x2c], eax
imul eax, esi
mov esi, dword [ebp + 0x20]
add eax, eax
add dword [esp + 0x20], eax
add edx, eax
cmp dword [esp + 0x2c], esi
mov eax, ecx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x68], edx
mov dword [esp + 0x40], eax
jl 0x10242b70
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
add dword [esp + 0x4c], 2
inc eax
add dword [esp + 0x48], 2
vphaddd ymm1, ymm5, ymm6
vphaddd ymm0, ymm3, ymm4
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [edx], ymm0
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm0, ymm0
vpunpckhqdq ymm0, ymm0, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovq qword [edi + 0x20], xmm0
add edx, 0x28
mov dword [esp + 0x24], eax
add edi, 0x28
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], edi
cmp eax, 5
jl 0x10242b33
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
add eax, 0x410
mov dword [esp + 0x38], eax
add ecx, 5
mov eax, dword [esp + 0x30]
add eax, 0x19
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], eax
cmp eax, 0x7d
jl 0x10242900
cmp dword [ebp + 0x2c], 0
mov eax, 1
mov edx, 4
mov dword [esp + 0x54], 0xf
cmovne eax, edx
mov ecx, 3
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
add eax, 0x270
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
nop
mov eax, 0xcccccccd
mul ecx
push 0xa0
mov edi, edx
mov edx, dword [ebp + 8]
shr edi, 2
push 0
mov dword [esp + 0x2c], edi
lea eax, [edx + edi*2]
mov dword [esp + 0x74], eax
lea eax, [edi + edi*4]
sub ecx, eax
imul ecx, esi
add ecx, edi
lea eax, [edx + ecx*2]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1a8]
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm3, ymmword [esp + 0x1cc]
vmovdqu ymm2, ymmword [esp + 0x1ac]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x6c]
mov eax, dword [ebp + 0x20]
xor edx, edx
cmp dword [ebp + 0x2c], edx
je 0x10242e96
sub eax, dword [esp + 0x38]
cmp eax, 4
cmovl ecx, eax
mov dword [esp + 0x30], ecx
movsx eax, cx
vmovd xmm0, eax
vpbroadcastw ymm4, xmm0
cmp dword [esp + 0x60], edx
jle 0x10242f00
mov ecx, dword [esp + 0x20]
lea eax, [edi + esi*8]
mov dword [esp + 0x6c], eax
lea eax, [esi + esi*2]
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x60]
dec eax
shr eax, 4
inc eax
mov esi, eax
shl esi, 4
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x6c]
nop
lea ecx, [ecx + 0x20]
lea edx, [edx + 0x20]
lea esi, [esi + 0x20]
vpmullw ymm1, ymm4, ymmword [ecx - 0x20]
vpmaddwd ymm0, ymm1, ymmword [edx - 0x20]
vpaddd ymm2, ymm0, ymm2
vpmaddwd ymm0, ymm1, ymmword [esi - 0x20]
vpaddd ymm3, ymm0, ymm3
sub eax, 1
jne 0x10242ed0
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
cmp dword [ebp + 0x18], 0
je 0x10242f36
mov eax, dword [esp + 0x20]
vmovdqu ymm0, ymmword [eax + edx*2]
vpand ymm0, ymm0, ymmword [esp + 0x80]
lea eax, [edx + esi*2]
add eax, esi
vpmullw ymm1, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edi + eax*2]
lea eax, [edx + esi*4]
vpaddd ymm2, ymm0, ymm2
vpmaddwd ymm0, ymm1, ymmword [edi + eax*2]
vpaddd ymm3, ymm0, ymm3
mov edx, dword [esp + 0x38]
mov eax, ecx
imul eax, esi
add edx, ecx
mov dword [esp + 0x38], edx
add eax, eax
add dword [esp + 0x20], eax
add edi, eax
mov eax, dword [ebp + 0x20]
cmp edx, eax
jl 0x10242e81
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
inc edi
mov dword [esp + 0x24], edi
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm2, ymm0, ymm1
vextracti128 xmm0, ymm3, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm3
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm2, ymm0
vpunpckhqdq ymm0, ymm2, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovdqu xmmword [eax], xmm0
cmp edi, 5
jge 0x10243284
mov eax, dword [esp + 0x4c]
mov ecx, 5
cdq
idiv ecx
lea ecx, [esi*4]
imul edx, esi
add edx, eax
mov eax, dword [ebp + 8]
lea eax, [eax + edx*2]
mov dword [esp + 0x6c], eax
lea eax, [edi + esi]
add eax, eax
mov dword [esp + 0x3c], eax
lea eax, [edi + esi*2]
add eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
add eax, edi
lea eax, [eax + eax*4]
shl eax, 3
add eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
nop dword [eax]
mov eax, dword [esp + 0x6c]
lea edi, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, ecx
mov dword [esp + 0x68], edx
vpxor xmm3, xmm3, xmm3
vpxor xmm4, xmm4, xmm4
vpxor xmm5, xmm5, xmm5
vpxor xmm6, xmm6, xmm6
vpxor xmm2, xmm2, xmm2
mov dword [esp + 0x50], eax
nop dword [eax + eax]
cmp dword [ebp + 0x2c], 0
mov ecx, eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], 0
je 0x1024306b
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x2c]
cmp eax, 4
jge 0x1024306b
mov dword [esp + 0x58], eax
lea ecx, [esi*4]
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x58]
cwde
vmovd xmm0, eax
vpbroadcastw ymm7, xmm0
jle 0x10243142
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
add eax, esi
mov ecx, dword [esp + 0x20]
lea edi, [edx + esi*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x64]
add eax, esi
lea eax, [edx + eax*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
add eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
dec eax
shr eax, 4
inc eax
mov edx, eax
mov dword [esp + 0x50], eax
shl edx, 4
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x74]
nop dword [eax + eax]
vpmullw ymm1, ymm7, ymmword [ecx]
vpmaddwd ymm0, ymm1, ymmword [edi]
mov eax, dword [esp + 0x30]
lea ecx, [ecx + 0x20]
add dword [esp + 0x30], 0x20
lea edi, [edi + 0x20]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edx]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [eax]
mov eax, dword [esp + 0x38]
lea esi, [esi + 0x20]
add dword [esp + 0x38], 0x20
lea edx, [edx + 0x20]
sub dword [esp + 0x50], 1
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [eax]
vpaddd ymm2, ymm0, ymm2
jne 0x102430e0
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x68]
lea edi, [esi + esi*2]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x102431c1
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
vmovdqu ymm0, ymmword [esi + eax*2]
add eax, dword [esp + 0x24]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov esi, dword [ebp + 0xc]
vpmullw ymm1, ymm0, ymm7
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
add eax, esi
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, dword [esp + 0x24]
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, dword [esp + 0x24]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, ecx
add eax, dword [esp + 0x24]
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x102431cb
lea ecx, [esi*4]
lea edi, [esi + esi*2]
mov eax, dword [esp + 0x58]
add dword [esp + 0x2c], eax
imul eax, esi
mov esi, dword [ebp + 0x20]
add eax, eax
add dword [esp + 0x20], eax
add edx, eax
cmp dword [esp + 0x2c], esi
mov eax, ecx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x68], edx
mov dword [esp + 0x50], eax
jl 0x10243040
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
add dword [esp + 0x5c], 2
inc eax
add dword [esp + 0x3c], 2
vphaddd ymm1, ymm5, ymm6
vphaddd ymm0, ymm3, ymm4
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [edx], ymm0
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm0, ymm0
vpunpckhqdq ymm0, ymm0, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovq qword [edi + 0x20], xmm0
add edx, 0x28
mov dword [esp + 0x24], eax
add edi, 0x28
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], edi
cmp eax, 5
jl 0x10243000
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, 0x410
mov dword [esp + 0x48], eax
add ecx, 5
mov eax, dword [esp + 0x54]
add eax, 0x19
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
cmp eax, 0x7d
jl 0x10242e10
cmp dword [ebp + 0x2c], 0
mov ecx, 4
mov eax, 1
mov dword [esp + 0x4c], ecx
mov edx, ecx
mov dword [esp + 0x54], 0x14
cmovne eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
add eax, 0x340
mov dword [esp + 0x48], eax
nop dword [eax]
mov eax, 0xcccccccd
mul ecx
push 0xa0
mov edi, edx
mov edx, dword [ebp + 8]
shr edi, 2
push 0
mov dword [esp + 0x2c], edi
lea eax, [edx + edi*2]
mov dword [esp + 0x28], eax
lea eax, [edi + edi*4]
sub ecx, eax
imul ecx, esi
add ecx, edi
mov edi, dword [ebp + 0x1c]
lea eax, [edx + ecx*2]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1a8]
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm2, ymmword [esp + 0x1ac]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [ebp + 0x20]
xor edx, edx
cmp dword [ebp + 0x2c], edx
je 0x10243353
sub eax, edi
cmp eax, 4
cmovl ecx, eax
mov dword [esp + 0x30], ecx
movsx eax, cx
vmovd xmm0, eax
vpbroadcastw ymm3, xmm0
cmp dword [esp + 0x60], edx
jle 0x102433a3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + esi*8]
mov eax, dword [esp + 0x60]
dec eax
shr eax, 4
inc eax
mov dword [esp + 0x38], eax
shl dword [esp + 0x38], 4
lea ecx, [ecx + 0x20]
lea edx, [edx + 0x20]
vpmullw ymm1, ymm3, ymmword [ecx - 0x20]
vpmaddwd ymm0, ymm1, ymmword [edx - 0x20]
vpaddd ymm2, ymm0, ymm2
sub eax, 1
jne 0x10243382
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
cmp dword [ebp + 0x18], 0
je 0x102433d1
mov eax, dword [esp + 0x2c]
vmovdqu ymm0, ymmword [eax + edx*2]
vpand ymm0, ymm0, ymmword [esp + 0x80]
lea eax, [edx + esi*4]
mov edx, dword [esp + 0x20]
vpmullw ymm1, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x102433d5
mov edx, dword [esp + 0x20]
mov eax, ecx
add edi, ecx
imul eax, esi
add eax, eax
add dword [esp + 0x2c], eax
add edx, eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], edx
cmp edi, eax
jl 0x10243340
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
inc edi
mov dword [esp + 0x24], edi
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm2, ymm0, ymm1
vmovdqu ymm0, ymmword [esp + 0x1c0]
vpmovsxdq ymm1, xmmword [esp + 0x1c0]
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm2, ymm0
vpunpckhqdq ymm0, ymm2, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovdqu xmmword [eax], xmm0
cmp edi, 5
jge 0x10243724
mov eax, dword [esp + 0x4c]
mov ecx, 5
cdq
idiv ecx
lea ecx, [esi*4]
imul edx, esi
add edx, eax
mov eax, dword [ebp + 8]
lea eax, [eax + edx*2]
mov dword [esp + 0x6c], eax
lea eax, [edi + esi]
add eax, eax
mov dword [esp + 0x3c], eax
lea eax, [edi + esi*2]
add eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
add eax, edi
lea eax, [eax + eax*4]
shl eax, 3
add eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
lea edi, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, ecx
mov dword [esp + 0x68], edx
vpxor xmm3, xmm3, xmm3
vpxor xmm4, xmm4, xmm4
vpxor xmm5, xmm5, xmm5
vpxor xmm6, xmm6, xmm6
vpxor xmm2, xmm2, xmm2
mov dword [esp + 0x50], eax
cmp dword [ebp + 0x2c], 0
mov ecx, eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], 0
je 0x1024350b
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x2c]
cmp eax, 4
jge 0x1024350b
mov dword [esp + 0x58], eax
lea ecx, [esi*4]
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x58]
cwde
vmovd xmm0, eax
vpbroadcastw ymm7, xmm0
jle 0x102435e2
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
add eax, esi
mov ecx, dword [esp + 0x20]
lea edi, [edx + esi*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x64]
add eax, esi
lea eax, [edx + eax*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
add eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
dec eax
shr eax, 4
inc eax
mov edx, eax
mov dword [esp + 0x50], eax
shl edx, 4
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x74]
nop dword [eax + eax]
vpmullw ymm1, ymm7, ymmword [ecx]
vpmaddwd ymm0, ymm1, ymmword [edi]
mov eax, dword [esp + 0x30]
lea ecx, [ecx + 0x20]
add dword [esp + 0x30], 0x20
lea edi, [edi + 0x20]
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [edx]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [eax]
mov eax, dword [esp + 0x38]
lea esi, [esi + 0x20]
add dword [esp + 0x38], 0x20
lea edx, [edx + 0x20]
sub dword [esp + 0x50], 1
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [eax]
vpaddd ymm2, ymm0, ymm2
jne 0x10243580
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x68]
lea edi, [esi + esi*2]
lea ecx, [esi*4]
cmp dword [ebp + 0x18], 0
je 0x10243661
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
vmovdqu ymm0, ymmword [esi + eax*2]
add eax, dword [esp + 0x24]
vpand ymm0, ymm0, ymmword [esp + 0x80]
mov esi, dword [ebp + 0xc]
vpmullw ymm1, ymm0, ymm7
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
add eax, esi
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm4, ymm0, ymm4
lea eax, [eax + esi*2]
add eax, dword [esp + 0x24]
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, dword [esp + 0x24]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
mov eax, dword [esp + 0x28]
add eax, ecx
add eax, dword [esp + 0x24]
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [edx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x1024366b
lea ecx, [esi*4]
lea edi, [esi + esi*2]
mov eax, dword [esp + 0x58]
add dword [esp + 0x2c], eax
imul eax, esi
mov esi, dword [ebp + 0x20]
add eax, eax
add dword [esp + 0x20], eax
add edx, eax
cmp dword [esp + 0x2c], esi
mov eax, ecx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x68], edx
mov dword [esp + 0x50], eax
jl 0x102434e0
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
add dword [esp + 0x5c], 2
inc eax
add dword [esp + 0x3c], 2
vphaddd ymm1, ymm5, ymm6
vphaddd ymm0, ymm3, ymm4
vphaddd ymm0, ymm0, ymm1
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [edx], ymm0
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm0, ymm0
vpunpckhqdq ymm0, ymm0, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovq qword [edi + 0x20], xmm0
add edx, 0x28
mov dword [esp + 0x24], eax
add edi, 0x28
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], edi
cmp eax, 5
jl 0x102434a5
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, 0x410
mov dword [esp + 0x48], eax
add ecx, 5
mov eax, dword [esp + 0x54]
add eax, 0x19
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
cmp eax, 0x7d
jl 0x102432e0
cmp dword [ebp + 0x2c], 0
mov edx, 4
mov ecx, 1
mov dword [esp + 0x48], 0x19
cmovne ecx, edx
mov eax, 5
mov dword [esp + 0x74], ecx
lea ecx, [esi + esi]
lea edx, [ecx + ecx]
mov dword [esp + 0x24], eax
vpxor xmm0, xmm0, xmm0
mov dword [esp + 0x6c], edx
cdq
mov edi, 5
idiv edi
mov edi, dword [ebp + 8]
imul edx, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
lea edi, [edi + eax*2]
mov dword [esp + 0x64], edi
mov edi, dword [ebp + 8]
add edx, eax
add eax, dword [esp + 0x48]
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], ecx
lea edx, [edi + edx*2]
lea eax, [eax + eax*4]
mov dword [esp + 0x7c], edx
shl eax, 3
lea edi, [esi*4]
add eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov dword [esp + 0x54], eax
nop word [eax + eax]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x74]
push 0x80
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x1c4]
push 0
mov dword [esp + 0x34], edx
vmovdqu ymmword [esp + 0x1a8], ymm0
push eax
vzeroupper
call fcn.10513d40
vmovdqu ymm2, ymmword [esp + 0x22c]
vmovdqu ymm3, ymmword [esp + 0x20c]
vmovdqu ymm4, ymmword [esp + 0x1ec]
vmovdqu ymm5, ymmword [esp + 0x1cc]
vmovdqu ymm6, ymmword [esp + 0x1ac]
mov ecx, dword [esp + 0x68]
lea edx, [esi + esi*2]
mov eax, edi
add esp, 0xc
mov dword [esp + 0x40], eax
nop dword [eax + eax]
cmp dword [ebp + 0x2c], 0
mov edi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x28], 0
je 0x10243897
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x20], edi
cmp eax, 4
jge 0x10243897
lea edi, [esi*4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], edi
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x58]
cwde
vmovd xmm0, eax
vpbroadcastw ymm7, xmm0
jle 0x10243976
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
add eax, esi
mov edx, dword [esp + 0x2c]
lea edi, [ecx + esi*2]
lea eax, [ecx + eax*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
add eax, esi
lea eax, [ecx + eax*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x70]
dec eax
shr eax, 4
inc eax
mov ecx, eax
mov dword [esp + 0x40], eax
shl ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
nop word [eax + eax]
vpmullw ymm1, ymm7, ymmword [edx]
vpmaddwd ymm0, ymm1, ymmword [edi]
mov eax, dword [esp + 0x30]
lea edx, [edx + 0x20]
add dword [esp + 0x30], 0x20
lea edi, [edi + 0x20]
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [esi]
vpaddd ymm5, ymm0, ymm5
vpmaddwd ymm0, ymm1, ymmword [ecx]
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [eax]
mov eax, dword [esp + 0x38]
lea esi, [esi + 0x20]
add dword [esp + 0x38], 0x20
lea ecx, [ecx + 0x20]
sub dword [esp + 0x40], 1
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [eax]
vpaddd ymm2, ymm0, ymm2
jne 0x10243910
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x5c]
lea edi, [esi*4]
lea edx, [esi + esi*2]
mov dword [esp + 0x20], edi
cmp dword [ebp + 0x18], 0
je 0x102439f0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
vmovdqu ymm0, ymmword [edi + eax*2]
mov edi, dword [esp + 0x44]
add eax, edi
vpand ymm0, ymm0, ymmword [esp + 0x80]
vpmullw ymm1, ymm0, ymm7
vpmaddwd ymm0, ymm1, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, esi
vpaddd ymm6, ymm0, ymm6
vpmaddwd ymm0, ymm1, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
vpaddd ymm5, ymm0, ymm5
lea eax, [eax + esi*2]
add eax, edi
vpmaddwd ymm0, ymm1, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, edx
vpaddd ymm4, ymm0, ymm4
vpmaddwd ymm0, ymm1, ymmword [ecx + eax*2]
mov eax, dword [esp + 0x28]
add eax, edi
mov edi, dword [esp + 0x20]
add eax, edi
vpaddd ymm3, ymm0, ymm3
vpmaddwd ymm0, ymm1, ymmword [ecx + eax*2]
vpaddd ymm2, ymm0, ymm2
jmp 0x102439fa
lea edi, [esi*4]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x58]
add dword [esp + 0x34], eax
imul eax, esi
mov esi, dword [ebp + 0x20]
add eax, eax
add dword [esp + 0x2c], eax
add ecx, eax
cmp dword [esp + 0x34], esi
mov eax, edi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x40], eax
jl 0x10243860
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
inc dword [esp + 0x44]
inc eax
add dword [esp + 0x3c], 2
add dword [esp + 0x4c], 2
vphaddd ymm1, ymm6, ymm5
vphaddd ymm0, ymm4, ymm3
vphaddd ymm0, ymm1, ymm0
vpmovsxdq ymm1, xmm0
vextracti128 xmm0, ymm0, 1
vpmovsxdq ymm0, xmm0
vpaddq ymm0, ymm0, ymm1
vmovdqu ymmword [ecx], ymm0
vextracti128 xmm0, ymm2, 1
vpmovsxdq ymm0, xmm0
vpmovsxdq ymm1, xmm2
vpaddq ymm0, ymm0, ymm1
vpunpcklqdq ymm1, ymm0, ymm0
vpunpckhqdq ymm0, ymm0, ymm0
vpaddq ymm1, ymm0, ymm1
vextracti128 xmm0, ymm1, 1
vpaddq xmm0, xmm0, xmm1
vmovq qword [edx + 0x20], xmm0
add edx, 0x28
mov dword [esp + 0x50], eax
add ecx, 0x28
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x68], ecx
vpxor xmm0, xmm0, xmm0
cmp eax, 5
jl 0x102437e0
mov edi, dword [esp + 0x48]
lea ecx, [esi + esi]
mov eax, dword [esp + 0x24]
add edi, 0x19
add eax, 5
mov dword [esp + 0x48], edi
mov dword [esp + 0x24], eax
cmp edi, 0x7d
jl 0x10243780
push dword [esp + 0x78]
push 0x19
vzeroupper
call fcn.102470c0
mov ecx, dword [esp + 0x304]
add esp, 8
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret