Function at 0x10117020
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x1c4
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 4]
mov dword [esp + 0x168], eax
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 0x18]
mov esi, dword [edx]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x1c0], eax
cmp eax, 0x200
jge 0x1011706b
xor eax, eax
jmp 0x1011707f
lea eax, [esp + 0x90]
push eax
call fcn.102673c0
mov eax, dword [esp + 0x90]
mov edx, dword [ebp + 0xc]
lea ecx, [edx + edx*2]
cmp ecx, dword [ebp + 0x14]
jne 0x101170ab
mov ecx, dword [esp + 0x1c0]
mov edx, ecx
imul edx, ebx
mov edi, 1
cmp ecx, dword [ebp + 0xc]
cmove ecx, edx
cmove ebx, edi
mov dword [esp + 0x1c0], ecx
test eax, eax
je 0x101170dd
mov edx, dword [esp + 0x1c0]
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
lea edi, [edx + edx*2]
imul edi, ebx
mov edx, 1
cmp edi, eax
mov eax, 0
cmovle edx, eax
mov dword [esp + 0x120], edx
jmp 0x101170e8
mov dword [esp + 0x120], 0
cmp ebx, 1
jne 0x10117880
xor ecx, ecx
mov edi, dword [esp + 0x1c0]
xor ebx, ebx
test byte [ebp + 0x10], 0xf
je 0x1011718b
xor edx, edx
xor eax, eax
mov dword [esp + 0x98], ebx
mov ebx, eax
mov dword [esp + 0x160], esi
mov eax, ecx
mov ecx, edx
mov edx, edi
dec ebx
inc ecx
mov esi, dword [esp + 0x1c0]
lea edi, [esi + ebx]
cmp edi, 0xffffffff
je 0x10117179
mov esi, dword [ebp + 0x10]
lea eax, [ecx + ecx*2]
mov edx, dword [esp + 0x160]
mov dword [esp + 0x98], eax
add esi, eax
movzx eax, byte [ecx + edx - 1]
mov byte [esi - 3], al
mov eax, dword [esp + 0x168]
movzx edx, byte [ecx + eax - 1]
mov eax, ecx
mov byte [esi - 2], dl
mov edx, dword [esp + 0x164]
movzx edx, byte [ecx + edx - 1]
mov byte [esi - 1], dl
mov edx, edi
test esi, 0xf
jne 0x10117120
mov ebx, dword [esp + 0x98]
mov ecx, eax
mov esi, dword [esp + 0x160]
mov edi, edx
mov eax, edi
mov edx, edi
and eax, 0xf
sub edx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x94], eax
mov eax, edx
mov dword [esp + 0x28], edx
cmp dword [esp + 0x120], 0
jne 0x10117528
lea eax, [esi + ecx]
test al, 0xf
jne 0x10117380
mov eax, dword [esp + 0x168]
lea edx, [ecx + eax]
test dl, 0xf
jne 0x10117380
mov eax, dword [esp + 0x164]
lea edx, [ecx + eax]
test dl, 0xf
jne 0x10117380
cmp dword [esp + 0x28], 0
jle 0x1011776e
mov eax, edi
cdq
sub edi, dword [esp + 0x94]
sbb edx, 0
add edi, 0xf
adc edx, 0
jns 0x10117221
add edi, 0xf
adc edx, 0
mov eax, dword [esp + 0x168]
shrd edi, edx, 4
vmovdqu xmm1, xmmword [0x104c4f20]
lea edx, [esi + ecx]
mov dword [esp + 8], edx
lea edx, [eax + ecx]
mov eax, dword [esp + 0x164]
mov dword [esp + 4], edx
vmovdqu xmmword [esp + 0x20], xmm1
mov dword [esp], 0
lea edx, [eax + ecx]
mov ecx, dword [ebp + 0x10]
vmovdqu xmm0, xmmword [0x104c4f10]
vmovdqu xmm7, xmmword [0x104c4f30]
vmovdqu xmm4, xmmword [0x104c4f40]
lea eax, [ecx + ebx]
vmovdqu xmm3, xmmword [0x104c4ec0]
vmovdqu xmm1, xmmword [0x104c4ed0]
vmovdqu xmm2, xmmword [0x104c4ee0]
mov dword [esp + 0x160], esi
vmovdqu xmm6, xmmword [0x104c4ef0]
vmovdqu xmm5, xmmword [0x104c4f00]
vmovdqu xmmword [esp + 0x10], xmm2
vmovdqu xmmword [esp + 0x30], xmm1
vmovdqu xmmword [esp + 0x40], xmm3
vmovdqu xmmword [esp + 0x50], xmm4
vmovdqu xmmword [esp + 0x60], xmm7
vmovdqu xmmword [esp + 0x70], xmm0
mov dword [esp + 0x9c], edi
mov esi, dword [esp]
mov ecx, esi
shl ecx, 4
mov edi, dword [esp + 8]
mov ebx, dword [esp + 4]
vmovdqu xmm3, xmmword [edi + ecx]
vmovdqu xmm4, xmmword [ebx + ecx]
lea ebx, [esi + esi*2]
vpshufb xmm7, xmm3, xmmword [esp + 0x40]
vpshufb xmm1, xmm4, xmmword [esp + 0x30]
vmovdqu xmm2, xmmword [edx + ecx]
vpor xmm0, xmm7, xmm1
vpshufb xmm7, xmm2, xmmword [esp + 0x10]
vpor xmm1, xmm0, xmm7
inc esi
vpshufb xmm0, xmm3, xmm6
vpshufb xmm7, xmm4, xmm5
vpshufb xmm3, xmm3, xmmword [esp + 0x20]
vpshufb xmm4, xmm4, xmmword [esp + 0x60]
mov edi, dword [esp + 0xc]
vpor xmm0, xmm0, xmm7
vpshufb xmm7, xmm2, xmmword [esp + 0x70]
vpshufb xmm2, xmm2, xmmword [esp + 0x50]
shl ebx, 4
lea ecx, [edi + ecx + 0x10]
mov edi, dword [esp + 0x80]
vpor xmm3, xmm3, xmm4
vpor xmm0, xmm0, xmm7
vpor xmm2, xmm3, xmm2
vmovdqu xmmword [eax + ebx], xmm1
vmovdqu xmmword [eax + ebx + 0x10], xmm0
vmovdqu xmmword [eax + ebx + 0x20], xmm2
lea ebx, [edi + ebx + 0x30]
cmp esi, dword [esp + 0x9c]
jb 0x101172d4
jmp 0x10117767
mov eax, edi
cdq
sub edi, dword [esp + 0x94]
sbb edx, 0
add edi, 0xf
adc edx, 0
jns 0x1011739b
add edi, 0xf
adc edx, 0
shrd edi, edx, 4
cmp dword [esp + 0x28], 0
jle 0x1011776e
mov edx, dword [esp + 0x168]
lea eax, [esi + ecx]
mov dword [esp + 0xa4], eax
vmovdqu xmm0, xmmword [0x104c4ef0]
vmovdqu xmmword [esp], xmm0
lea eax, [edx + ecx]
mov edx, dword [esp + 0x164]
mov dword [esp + 0xa0], eax
vmovdqu xmm6, xmmword [0x104c4f20]
mov dword [esp + 0x10], 0
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x10]
vmovdqu xmm7, xmmword [0x104c4f10]
vmovdqu xmm5, xmmword [0x104c4f30]
vmovdqu xmm4, xmmword [0x104c4f40]
lea edx, [ecx + ebx]
vmovdqu xmm3, xmmword [0x104c4ec0]
vmovdqu xmm1, xmmword [0x104c4ed0]
vmovdqu xmm0, xmmword [0x104c4ee0]
vmovdqu xmmword [esp + 0x70], xmm6
mov dword [esp + 0x18], eax
mov dword [esp + 0x160], esi
vmovdqu xmm2, xmmword [0x104c4f00]
vmovdqu xmmword [esp + 0x20], xmm0
vmovdqu xmmword [esp + 0x30], xmm1
vmovdqu xmmword [esp + 0x40], xmm3
vmovdqu xmmword [esp + 0x50], xmm4
vmovdqu xmmword [esp + 0x60], xmm5
vmovdqu xmmword [esp + 0x80], xmm7
mov dword [esp + 0x9c], edi
vmovdqu xmm6, xmmword [esp]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, esi
shl ecx, 4
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
vmovdqu xmm4, xmmword [edi + ecx]
vmovdqu xmm5, xmmword [ebx + ecx]
vpshufb xmm7, xmm4, xmmword [esp + 0x40]
vpshufb xmm1, xmm5, xmmword [esp + 0x30]
mov edi, dword [esp + 0x18]
vpor xmm0, xmm7, xmm1
lea ebx, [esi + esi*2]
inc esi
shl ebx, 4
vmovdqu xmm3, xmmword [edi + ecx]
vpshufb xmm7, xmm3, xmmword [esp + 0x20]
vpor xmm1, xmm0, xmm7
vpshufb xmm0, xmm4, xmm6
vpshufb xmm7, xmm5, xmm2
vpshufb xmm4, xmm4, xmmword [esp + 0x70]
vpshufb xmm5, xmm5, xmmword [esp + 0x60]
vpor xmm0, xmm0, xmm7
vpor xmm4, xmm4, xmm5
vpshufb xmm7, xmm3, xmmword [esp + 0x80]
vpshufb xmm3, xmm3, xmmword [esp + 0x50]
mov edi, dword [esp + 0x1c]
vpor xmm0, xmm0, xmm7
vmovdqu xmmword [edx + ebx], xmm1
vpor xmm3, xmm4, xmm3
vmovdqu xmmword [edx + ebx + 0x10], xmm0
vmovdqu xmmword [edx + ebx + 0x20], xmm3
lea ecx, [edi + ecx + 0x10]
lea ebx, [eax + ebx + 0x30]
cmp esi, dword [esp + 0x9c]
jb 0x10117476
jmp 0x10117767
mov edi, dword [ebp + 0x10]
add edi, ebx
test edi, 0x3f
je 0x10117654
mov dword [esp], 0
lea edi, [esi + ecx]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x168]
mov dword [esp + 0x160], esi
mov esi, dword [esp]
add edi, ecx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x164]
lea edx, [edi + ecx]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x24], edx
add edi, ebx
mov dword [esp + 0x1c], edi
inc esi
mov edi, esi
shl edi, 4
neg edi
add edi, dword [esp + 0x28]
cmp edi, 0xfffffff0
je 0x1011764d
mov ecx, esi
shl ecx, 4
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
vmovdqu xmm0, xmmword [edx + ecx - 0x10]
vmovdqu xmm7, xmmword [ebx + ecx - 0x10]
vpshufb xmm6, xmm0, xmmword [0x104c4f00]
vpshufb xmm2, xmm7, xmmword [0x104c4ec0]
vpshufb xmm3, xmm0, xmmword [0x104c4ed0]
vpshufb xmm5, xmm7, xmmword [0x104c4ef0]
vpshufb xmm7, xmm7, xmmword [0x104c4f20]
vpshufb xmm0, xmm0, xmmword [0x104c4f30]
mov edx, dword [esp + 0x24]
lea ebx, [esi + esi*2]
shl ebx, 4
vpor xmm2, xmm2, xmm3
vmovdqu xmmword [esp], xmm6
vmovdqu xmm1, xmmword [edx + ecx - 0x10]
vpshufb xmm4, xmm1, xmmword [0x104c4ee0]
vpshufb xmm6, xmm1, xmmword [0x104c4f10]
vpshufb xmm1, xmm1, xmmword [0x104c4f40]
vpor xmm3, xmm5, xmmword [esp]
vpor xmm5, xmm7, xmm0
vpor xmm4, xmm2, xmm4
lea edx, [eax + ebx]
vmovdqu xmmword [edx - 0x30], xmm4
vpor xmm2, xmm3, xmm6
vpor xmm0, xmm5, xmm1
vmovdqu xmmword [eax + ebx - 0x20], xmm2
vmovdqu xmmword [eax + ebx - 0x10], xmm0
mov eax, edi
add ecx, dword [esp + 0x10]
add ebx, dword [esp + 0x18]
test dl, 0x3f
jne 0x10117575
mov esi, dword [esp + 0x160]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
test eax, eax
jle 0x1011776e
cdq
add eax, 0xf
mov dword [esp], 0
adc edx, 0
jns 0x1011767a
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov dword [esp + 0x14], eax
lea edi, [esi + ecx]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x168]
mov eax, dword [esp]
mov dword [esp + 0x160], esi
add edi, ecx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x164]
lea edx, [edi + ecx]
mov ecx, dword [ebp + 0x10]
lea edi, [ecx + ebx]
mov ecx, eax
shl ecx, 4
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
vmovdqu xmm0, xmmword [esi + ecx]
vmovdqu xmm1, xmmword [ebx + ecx]
vmovdqu xmm2, xmmword [edx + ecx]
vpshufb xmm3, xmm0, xmmword [0x104c4ec0]
vpshufb xmm4, xmm1, xmmword [0x104c4ed0]
vpshufb xmm6, xmm2, xmmword [0x104c4ee0]
vpor xmm5, xmm3, xmm4
lea ebx, [eax + eax*2]
shl ebx, 4
vpor xmm7, xmm5, xmm6
inc eax
vmovntdq xmmword [edi + ebx], xmm7
vpshufb xmm3, xmm0, xmmword [0x104c4ef0]
vpshufb xmm4, xmm1, xmmword [0x104c4f00]
vpshufb xmm6, xmm2, xmmword [0x104c4f10]
vpor xmm5, xmm3, xmm4
vpor xmm7, xmm5, xmm6
vmovntdq xmmword [edi + ebx + 0x10], xmm7
vpshufb xmm0, xmm0, xmmword [0x104c4f20]
vpshufb xmm1, xmm1, xmmword [0x104c4f30]
vpshufb xmm2, xmm2, xmmword [0x104c4f40]
vpor xmm0, xmm0, xmm1
vpor xmm0, xmm0, xmm2
vmovntdq xmmword [edi + ebx + 0x20], xmm0
mov esi, dword [esp + 4]
lea ecx, [esi + ecx + 0x10]
mov esi, dword [esp + 8]
lea ebx, [esi + ebx + 0x30]
cmp eax, dword [esp + 0x14]
jb 0x101176b0
mov esi, dword [esp + 0x160]
cmp dword [esp + 0x94], 0
je 0x10118222
mov edx, dword [esp + 0x94]
shr edx, 1
test edx, edx
jbe 0x1011823c
mov eax, dword [ebp + 0x10]
xor edi, edi
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 0x98], ebx
add eax, ebx
mov dword [esp + 0x14], eax
lea eax, [esi + ecx]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x160], esi
add eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x164]
add eax, ecx
mov dword [esp + 0x10], eax
nop
mov ecx, dword [esp + 0xc]
lea ebx, [edi + edi*2]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
movzx eax, byte [ecx + edi*2]
mov ecx, dword [esp + 0x14]
mov byte [ecx + ebx*2], al
movzx eax, byte [esi + edi*2]
mov byte [ecx + ebx*2 + 1], al
mov eax, dword [esp + 0xc]
movzx edx, byte [edx + edi*2]
mov byte [ecx + ebx*2 + 2], dl
movzx edx, byte [eax + edi*2 + 1]
mov byte [ecx + ebx*2 + 3], dl
movzx edx, byte [esi + edi*2 + 1]
mov esi, dword [esp + 0x10]
mov byte [ecx + ebx*2 + 4], dl
movzx eax, byte [esi + edi*2 + 1]
inc edi
mov byte [ecx + ebx*2 + 5], al
cmp edi, dword [esp + 4]
jb 0x101177d0
mov ecx, dword [esp]
lea eax, [edi + edi + 1]
mov ebx, dword [esp + 0x98]
mov esi, dword [esp + 0x160]
cmp eax, dword [esp + 0x94]
ja 0x10118222
add esi, ecx
lea edi, [eax + eax*2]
mov edx, dword [ebp + 0x10]
add edx, ebx
movzx ebx, byte [eax + esi - 1]
mov esi, dword [esp + 0x168]
add esi, ecx
mov byte [edi + edx - 3], bl
add ecx, dword [esp + 0x164]
movzx ebx, byte [eax + esi - 1]
mov byte [edi + edx - 2], bl
movzx eax, byte [eax + ecx - 1]
mov byte [edi + edx - 1], al
jmp 0x10118222
jl 0x10118222
xor ecx, ecx
xor edi, edi
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x16c], eax
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x160], esi
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x128]
mov eax, dword [esp + 0x1c0]
lea esi, [ecx + ebx]
xor ecx, ecx
mov dword [esp + 0x194], esi
xor ebx, ebx
test esi, 0xf
je 0x10117986
mov esi, dword [esp + 0x160]
xor edx, edx
mov dword [esp + 0xa4], edi
add esi, edi
mov dword [esp + 0x178], esi
mov esi, dword [esp + 0x168]
add esi, edi
mov dword [esp + 0x174], esi
mov esi, dword [esp + 0x164]
add esi, edi
mov dword [esp + 0x170], esi
mov esi, eax
mov eax, ecx
mov ecx, edx
mov edx, esi
inc ecx
mov esi, ecx
neg esi
add esi, dword [esp + 0x1c0]
cmp esi, 0xffffffff
je 0x1011797b
mov edi, dword [esp + 0x194]
lea ebx, [ecx + ecx*2]
mov eax, dword [esp + 0x178]
add edi, ebx
movzx eax, byte [ecx + eax - 1]
mov byte [edi - 3], al
mov eax, dword [esp + 0x174]
movzx edx, byte [ecx + eax - 1]
mov eax, dword [esp + 0x16c]
mov byte [ebx + eax - 2], dl
mov edx, dword [esp + 0x170]
movzx edx, byte [ecx + edx - 1]
mov byte [ebx + eax - 1], dl
mov eax, ecx
mov edx, esi
test edi, 0xf
jne 0x1011791c
mov edi, dword [esp + 0xa4]
mov ecx, eax
mov eax, edx
mov edx, eax
mov esi, eax
and edx, 0xf
sub esi, edx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x124], edx
mov dword [esp + 0x15c], esi
cmp dword [esp + 0x120], 0
jne 0x10117d9e
mov esi, dword [esp + 0x160]
add esi, edi
mov dword [esp + 0x190], esi
add esi, ecx
test esi, 0xf
jne 0x10117ba7
mov esi, dword [esp + 0x168]
add esi, edi
mov dword [esp + 0x78], esi
add esi, ecx
test esi, 0xf
jne 0x10117ba7
mov esi, dword [esp + 0x164]
add esi, edi
mov dword [esp + 0x74], esi
add esi, ecx
test esi, 0xf
jne 0x10117ba7
cmp dword [esp + 0x15c], 0
jle 0x10118082
cdq
sub eax, dword [esp + 0x124]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10117a50
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0x16c]
xor esi, esi
vmovdqu xmm5, xmmword [0x104c4ef0]
vmovdqu xmm7, xmmword [0x104c4f20]
vmovdqu xmm4, xmmword [0x104c4f30]
add edx, ebx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x194]
vmovdqu xmm3, xmmword [0x104c4f40]
vmovdqu xmm2, xmmword [0x104c4ec0]
vmovdqu xmm1, xmmword [0x104c4ed0]
add edx, ebx
vmovdqu xmm0, xmmword [0x104c4ee0]
vmovdqu xmmword [esp + 0x10], xmm5
add dword [esp + 0x190], ecx
add dword [esp + 0x78], ecx
add dword [esp + 0x74], ecx
vmovdqu xmm6, xmmword [0x104c4f00]
vmovdqu xmm5, xmmword [0x104c4f10]
vmovdqu xmmword [esp], xmm0
vmovdqu xmmword [esp + 0x20], xmm1
vmovdqu xmmword [esp + 0x30], xmm2
vmovdqu xmmword [esp + 0x40], xmm3
vmovdqu xmmword [esp + 0x50], xmm4
vmovdqu xmmword [esp + 0x60], xmm7
mov dword [esp + 0xa4], edi
mov ecx, esi
shl ecx, 4
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0x78]
vmovdqu xmm3, xmmword [edi + ecx]
vmovdqu xmm4, xmmword [ebx + ecx]
lea ebx, [esi + esi*2]
mov edi, dword [esp + 0x74]
inc esi
vpshufb xmm7, xmm3, xmmword [esp + 0x30]
vpshufb xmm1, xmm4, xmmword [esp + 0x20]
vmovdqu xmm2, xmmword [edi + ecx]
vpor xmm0, xmm7, xmm1
vpshufb xmm7, xmm2, xmmword [esp]
vpor xmm1, xmm0, xmm7
vpshufb xmm0, xmm3, xmmword [esp + 0x10]
vpshufb xmm7, xmm4, xmm6
vpshufb xmm3, xmm3, xmmword [esp + 0x60]
vpshufb xmm4, xmm4, xmmword [esp + 0x50]
shl ebx, 4
vpor xmm0, xmm0, xmm7
vpshufb xmm7, xmm2, xmm5
vpshufb xmm2, xmm2, xmmword [esp + 0x40]
mov edi, dword [esp + 0x70]
vpor xmm3, xmm3, xmm4
vmovdqu xmmword [edx + ebx], xmm1
vpor xmm0, xmm0, xmm7
vpor xmm2, xmm3, xmm2
vmovdqu xmmword [edi + ebx + 0x10], xmm0
vmovdqu xmmword [edi + ebx + 0x20], xmm2
mov edi, dword [esp + 0x13c]
lea ecx, [edi + ecx + 0x10]
mov edi, dword [esp + 0x138]
lea ebx, [edi + ebx + 0x30]
cmp esi, eax
jb 0x10117af3
jmp 0x1011807b
cdq
sub eax, dword [esp + 0x124]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10117bc0
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
cmp dword [esp + 0x15c], 0
jle 0x10118082
mov esi, dword [esp + 0x16c]
vmovdqu xmm1, xmmword [0x104c4f20]
vmovdqu xmmword [esp + 0x110], xmm1
mov dword [esp + 0x94], 0
add esi, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x194]
vmovdqu xmm0, xmmword [0x104c4f10]
vmovdqu xmm7, xmmword [0x104c4f30]
vmovdqu xmm4, xmmword [0x104c4f40]
add ebx, esi
mov esi, dword [esp + 0x168]
vmovdqu xmm3, xmmword [0x104c4ec0]
vmovdqu xmm1, xmmword [0x104c4ed0]
vmovdqu xmm2, xmmword [0x104c4ee0]
lea edx, [esi + edi]
mov esi, dword [esp + 0x164]
add edx, ecx
mov dword [esp + 0x180], edx
mov dword [esp + 0x17c], eax
add dword [esp + 0x190], ecx
add esi, edi
add esi, ecx
mov dword [esp + 0x184], esi
vmovdqu xmm6, xmmword [0x104c4ef0]
vmovdqu xmm5, xmmword [0x104c4f00]
vmovdqu xmmword [esp + 0x100], xmm2
vmovdqu xmmword [esp + 0xb0], xmm1
vmovdqu xmmword [esp + 0xc0], xmm3
vmovdqu xmmword [esp + 0xd0], xmm4
vmovdqu xmmword [esp + 0xe0], xmm7
vmovdqu xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x188], ebx
mov dword [esp + 0xa4], edi
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x134]
mov ecx, esi
shl ecx, 4
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0x180]
vmovdqu xmm3, xmmword [edi + ecx]
vmovdqu xmm4, xmmword [ebx + ecx]
vpshufb xmm7, xmm3, xmmword [esp + 0xc0]
vpshufb xmm1, xmm4, xmmword [esp + 0xb0]
mov edi, dword [esp + 0x184]
vpor xmm0, xmm7, xmm1
lea ebx, [esi + esi*2]
inc esi
shl ebx, 4
vmovdqu xmm2, xmmword [edi + ecx]
vpshufb xmm7, xmm2, xmmword [esp + 0x100]
vpor xmm1, xmm0, xmm7
vpshufb xmm0, xmm3, xmm6
vpshufb xmm7, xmm4, xmm5
vpshufb xmm3, xmm3, xmmword [esp + 0x110]
vpshufb xmm4, xmm4, xmmword [esp + 0xe0]
mov edi, dword [esp + 0x188]
vpor xmm0, xmm0, xmm7
vpshufb xmm7, xmm2, xmmword [esp + 0xf0]
vpshufb xmm2, xmm2, xmmword [esp + 0xd0]
vmovdqu xmmword [edi + ebx], xmm1
vpor xmm3, xmm3, xmm4
mov edi, dword [esp + 0x18c]
vpor xmm0, xmm0, xmm7
vpor xmm2, xmm3, xmm2
vmovdqu xmmword [edx + ebx + 0x10], xmm0
vmovdqu xmmword [edx + ebx + 0x20], xmm2
lea ecx, [edi + ecx + 0x10]
lea ebx, [eax + ebx + 0x30]
cmp esi, dword [esp + 0x17c]
jb 0x10117ccd
jmp 0x1011807b
mov edx, dword [esp + 0x194]
add edx, ebx
test dl, 0x3f
je 0x10117f21
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], edi
add edx, ebx
mov dword [esp + 0x144], edx
add eax, edi
mov edx, dword [esp + 0x194]
add eax, ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x164]
add edx, ebx
mov dword [esp + 0x140], edx
mov edx, dword [esp + 0x160]
add eax, edi
add eax, ecx
mov dword [esp + 0x148], eax
add edx, edi
add edx, ecx
mov dword [esp + 0x158], edx
mov edi, dword [esp + 0xa0]
inc edi
mov eax, edi
shl eax, 4
neg eax
add eax, dword [esp + 0x15c]
cmp eax, 0xfffffff0
je 0x10117f1a
mov ecx, edi
shl ecx, 4
mov ebx, dword [esp + 0x158]
mov esi, dword [esp + 0x14c]
mov edx, dword [esp + 0x140]
vmovdqu xmm7, xmmword [ebx + ecx - 0x10]
vmovdqu xmm0, xmmword [esi + ecx - 0x10]
vpshufb xmm2, xmm7, xmmword [0x104c4ec0]
vpshufb xmm6, xmm0, xmmword [0x104c4f00]
vpshufb xmm3, xmm0, xmmword [0x104c4ed0]
vpshufb xmm5, xmm7, xmmword [0x104c4ef0]
vpshufb xmm7, xmm7, xmmword [0x104c4f20]
vpshufb xmm0, xmm0, xmmword [0x104c4f30]
mov ebx, dword [esp + 0x148]
vpor xmm2, xmm2, xmm3
vmovdqu xmmword [esp + 0x80], xmm6
mov esi, dword [esp + 0x144]
vmovdqu xmm1, xmmword [ebx + ecx - 0x10]
vpshufb xmm4, xmm1, xmmword [0x104c4ee0]
vpshufb xmm6, xmm1, xmmword [0x104c4f10]
vpshufb xmm1, xmm1, xmmword [0x104c4f40]
vpor xmm3, xmm5, xmmword [esp + 0x80]
lea ebx, [edi + edi*2]
shl ebx, 4
vpor xmm5, xmm7, xmm0
vpor xmm4, xmm2, xmm4
vpor xmm2, xmm3, xmm6
vpor xmm0, xmm5, xmm1
add ecx, dword [esp + 0x154]
add edx, ebx
vmovdqu xmmword [edx - 0x30], xmm4
vmovdqu xmmword [esi + ebx - 0x20], xmm2
vmovdqu xmmword [esi + ebx - 0x10], xmm0
mov esi, eax
add ebx, dword [esp + 0x150]
test dl, 0x3f
jne 0x10117e1f
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1a8], ebx
test esi, esi
jle 0x10118082
mov edx, dword [esp + 0x194]
mov eax, esi
mov dword [esp + 0x98], 0
add ebx, edx
mov edx, dword [esp + 0x160]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x168]
add edx, edi
add edx, ecx
mov dword [esp + 0x1a4], edx
lea edx, [ebx + edi]
add edx, ecx
mov dword [esp + 0x1a0], edx
mov edx, dword [esp + 0x164]
add edx, edi
add edx, ecx
add esi, 0xf
mov dword [esp + 0x19c], edx
cdq
adc edx, 0
jns 0x10117f9a
add esi, 0xf
adc edx, 0
mov dword [esp + 0xa4], edi
shrd esi, edx, 4
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x98]
mov ecx, edi
shl ecx, 4
mov ebx, dword [esp + 0x1a4]
vmovdqu xmm0, xmmword [ebx + ecx]
mov ebx, dword [esp + 0x1a0]
vpshufb xmm3, xmm0, xmmword [0x104c4ec0]
vmovdqu xmm1, xmmword [ebx + ecx]
mov ebx, dword [esp + 0x19c]
vpshufb xmm4, xmm1, xmmword [0x104c4ed0]
vmovdqu xmm2, xmmword [ebx + ecx]
vpshufb xmm6, xmm2, xmmword [0x104c4ee0]
vpor xmm5, xmm3, xmm4
lea ebx, [edi + edi*2]
shl ebx, 4
vpor xmm7, xmm5, xmm6
inc edi
vmovntdq xmmword [edx + ebx], xmm7
vpshufb xmm3, xmm0, xmmword [0x104c4ef0]
vpshufb xmm4, xmm1, xmmword [0x104c4f00]
vpshufb xmm6, xmm2, xmmword [0x104c4f10]
vpor xmm5, xmm3, xmm4
vpor xmm7, xmm5, xmm6
vmovntdq xmmword [edx + ebx + 0x10], xmm7
vpshufb xmm0, xmm0, xmmword [0x104c4f20]
vpshufb xmm1, xmm1, xmmword [0x104c4f30]
vpshufb xmm2, xmm2, xmmword [0x104c4f40]
vpor xmm0, xmm0, xmm1
vpor xmm0, xmm0, xmm2
vmovntdq xmmword [edx + ebx + 0x20], xmm0
mov eax, dword [esp + 0x1ac]
lea ecx, [eax + ecx + 0x10]
mov eax, dword [esp + 0x1a8]
lea ebx, [eax + ebx + 0x30]
cmp edi, esi
jb 0x10117fb3
mov edi, dword [esp + 0xa4]
cmp dword [esp + 0x124], 0
je 0x101181f2
mov eax, dword [esp + 0x124]
shr eax, 1
test eax, eax
jbe 0x10118246
mov edx, dword [esp + 0x16c]
xor esi, esi
add dword [esp + 0x194], ebx
mov dword [esp + 0x198], eax
mov dword [esp + 0xa8], ecx
add edx, ebx
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x160]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa4], edi
add edx, edi
add edx, ecx
mov dword [esp + 0x1b8], edx
mov edx, dword [esp + 0x168]
add edx, edi
add edx, ecx
mov dword [esp + 0x1bc], edx
mov edx, dword [esp + 0x164]
add edx, edi
add edx, ecx
mov dword [esp + 0x1b4], edx
nop dword [eax]
mov edi, dword [esp + 0x1b8]
lea ebx, [esi + esi*2]
mov edx, dword [esp + 0x194]
movzx ecx, byte [edi + esi*2]
mov byte [edx + ebx*2], cl
mov ecx, dword [esp + 0x1bc]
movzx eax, byte [ecx + esi*2]
mov ecx, dword [esp + 0x1b0]
mov byte [ecx + ebx*2 + 1], al
mov eax, dword [esp + 0x1b4]
movzx edx, byte [eax + esi*2]
mov byte [ecx + ebx*2 + 2], dl
movzx eax, byte [edi + esi*2 + 1]
mov edi, dword [esp + 0x194]
mov byte [edi + ebx*2 + 3], al
mov edi, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b4]
movzx edx, byte [edi + esi*2 + 1]
mov byte [ecx + ebx*2 + 4], dl
movzx edx, byte [eax + esi*2 + 1]
inc esi
mov byte [ecx + ebx*2 + 5], dl
cmp esi, dword [esp + 0x198]
jb 0x10118110
mov ecx, dword [esp + 0xa8]
lea edx, [esi + esi + 1]
mov ebx, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
cmp edx, dword [esp + 0x124]
ja 0x101181f2
mov eax, dword [esp + 0x160]
lea esi, [edx + edx*2]
add ebx, dword [ebp + 0x10]
add ebx, esi
mov esi, dword [esp + 0x128]
add eax, ecx
add eax, edx
movzx eax, byte [eax + edi - 1]
mov byte [ebx + esi - 3], al
mov eax, dword [esp + 0x168]
add eax, ecx
add ecx, dword [esp + 0x164]
add eax, edx
add ecx, edx
movzx eax, byte [eax + edi - 1]
mov byte [ebx + esi - 2], al
movzx edx, byte [ecx + edi - 1]
mov byte [ebx + esi - 1], dl
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x12c]
inc edx
add dword [esp + 0x16c], eax
add dword [esp + 0x128], eax
add edi, dword [ebp + 0xc]
mov dword [esp + 0x12c], edx
cmp edx, dword [esp + 0x130]
jb 0x101178b0
cmp dword [esp + 0x120], 0
je 0x1011822f
sfence
add esp, 0x1c4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 1
jmp 0x10117839
mov edx, 1
jmp 0x101181a0