Function at 0x10118250
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 0x1011829b
xor eax, eax
jmp 0x101182af
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 0x101182db
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 0x1011830d
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 0x10118318
mov dword [esp + 0x120], 0
cmp ebx, 1
jne 0x10118ab0
xor ecx, ecx
mov edi, dword [esp + 0x1c0]
xor ebx, ebx
test byte [ebp + 0x10], 0xf
je 0x101183bb
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 0x101183a9
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 0x10118350
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 0x10118758
lea eax, [esi + ecx]
test al, 0xf
jne 0x101185b0
mov eax, dword [esp + 0x168]
lea edx, [ecx + eax]
test dl, 0xf
jne 0x101185b0
mov eax, dword [esp + 0x164]
lea edx, [ecx + eax]
test dl, 0xf
jne 0x101185b0
cmp dword [esp + 0x28], 0
jle 0x1011899e
mov eax, edi
cdq
sub edi, dword [esp + 0x94]
sbb edx, 0
add edi, 0xf
adc edx, 0
jns 0x10118451
add edi, 0xf
adc edx, 0
mov eax, dword [esp + 0x168]
shrd edi, edx, 4
vmovdqu xmm1, xmmword [0x104c4fb0]
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 [0x104c4fa0]
vmovdqu xmm7, xmmword [0x104c4fc0]
vmovdqu xmm4, xmmword [0x104c4fd0]
lea eax, [ecx + ebx]
vmovdqu xmm3, xmmword [0x104c4f50]
vmovdqu xmm1, xmmword [0x104c4f60]
vmovdqu xmm2, xmmword [0x104c4f70]
mov dword [esp + 0x160], esi
vmovdqu xmm6, xmmword [0x104c4f80]
vmovdqu xmm5, xmmword [0x104c4f90]
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 0x10118504
jmp 0x10118997
mov eax, edi
cdq
sub edi, dword [esp + 0x94]
sbb edx, 0
add edi, 0xf
adc edx, 0
jns 0x101185cb
add edi, 0xf
adc edx, 0
shrd edi, edx, 4
cmp dword [esp + 0x28], 0
jle 0x1011899e
mov edx, dword [esp + 0x168]
lea eax, [esi + ecx]
mov dword [esp + 0xa4], eax
vmovdqu xmm0, xmmword [0x104c4f80]
vmovdqu xmmword [esp], xmm0
lea eax, [edx + ecx]
mov edx, dword [esp + 0x164]
mov dword [esp + 0xa0], eax
vmovdqu xmm6, xmmword [0x104c4fb0]
mov dword [esp + 0x10], 0
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x10]
vmovdqu xmm7, xmmword [0x104c4fa0]
vmovdqu xmm5, xmmword [0x104c4fc0]
vmovdqu xmm4, xmmword [0x104c4fd0]
lea edx, [ecx + ebx]
vmovdqu xmm3, xmmword [0x104c4f50]
vmovdqu xmm1, xmmword [0x104c4f60]
vmovdqu xmm0, xmmword [0x104c4f70]
vmovdqu xmmword [esp + 0x70], xmm6
mov dword [esp + 0x18], eax
mov dword [esp + 0x160], esi
vmovdqu xmm2, xmmword [0x104c4f90]
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 0x101186a6
jmp 0x10118997
mov edi, dword [ebp + 0x10]
add edi, ebx
test edi, 0x3f
je 0x10118884
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 0x1011887d
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 [0x104c4f90]
vpshufb xmm2, xmm7, xmmword [0x104c4f50]
vpshufb xmm3, xmm0, xmmword [0x104c4f60]
vpshufb xmm5, xmm7, xmmword [0x104c4f80]
vpshufb xmm7, xmm7, xmmword [0x104c4fb0]
vpshufb xmm0, xmm0, xmmword [0x104c4fc0]
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 [0x104c4f70]
vpshufb xmm6, xmm1, xmmword [0x104c4fa0]
vpshufb xmm1, xmm1, xmmword [0x104c4fd0]
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 0x101187a5
mov esi, dword [esp + 0x160]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
test eax, eax
jle 0x1011899e
cdq
add eax, 0xf
mov dword [esp], 0
adc edx, 0
jns 0x101188aa
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 [0x104c4f50]
vpshufb xmm4, xmm1, xmmword [0x104c4f60]
vpshufb xmm6, xmm2, xmmword [0x104c4f70]
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 [0x104c4f80]
vpshufb xmm4, xmm1, xmmword [0x104c4f90]
vpshufb xmm6, xmm2, xmmword [0x104c4fa0]
vpor xmm5, xmm3, xmm4
vpor xmm7, xmm5, xmm6
vmovntdq xmmword [edi + ebx + 0x10], xmm7
vpshufb xmm0, xmm0, xmmword [0x104c4fb0]
vpshufb xmm1, xmm1, xmmword [0x104c4fc0]
vpshufb xmm2, xmm2, xmmword [0x104c4fd0]
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 0x101188e0
mov esi, dword [esp + 0x160]
cmp dword [esp + 0x94], 0
je 0x10119452
mov edx, dword [esp + 0x94]
shr edx, 1
test edx, edx
jbe 0x1011946c
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 0x10118a00
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 0x10119452
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 0x10119452
jl 0x10119452
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 0x10118bb6
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 0x10118bab
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 0x10118b4c
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 0x10118fce
mov esi, dword [esp + 0x160]
add esi, edi
mov dword [esp + 0x190], esi
add esi, ecx
test esi, 0xf
jne 0x10118dd7
mov esi, dword [esp + 0x168]
add esi, edi
mov dword [esp + 0x78], esi
add esi, ecx
test esi, 0xf
jne 0x10118dd7
mov esi, dword [esp + 0x164]
add esi, edi
mov dword [esp + 0x74], esi
add esi, ecx
test esi, 0xf
jne 0x10118dd7
cmp dword [esp + 0x15c], 0
jle 0x101192b2
cdq
sub eax, dword [esp + 0x124]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10118c80
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
mov edx, dword [esp + 0x16c]
xor esi, esi
vmovdqu xmm5, xmmword [0x104c4f80]
vmovdqu xmm7, xmmword [0x104c4fb0]
vmovdqu xmm4, xmmword [0x104c4fc0]
add edx, ebx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x194]
vmovdqu xmm3, xmmword [0x104c4fd0]
vmovdqu xmm2, xmmword [0x104c4f50]
vmovdqu xmm1, xmmword [0x104c4f60]
add edx, ebx
vmovdqu xmm0, xmmword [0x104c4f70]
vmovdqu xmmword [esp + 0x10], xmm5
add dword [esp + 0x190], ecx
add dword [esp + 0x78], ecx
add dword [esp + 0x74], ecx
vmovdqu xmm6, xmmword [0x104c4f90]
vmovdqu xmm5, xmmword [0x104c4fa0]
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 0x10118d23
jmp 0x101192ab
cdq
sub eax, dword [esp + 0x124]
sbb edx, 0
add eax, 0xf
adc edx, 0
jns 0x10118df0
add eax, 0xf
adc edx, 0
shrd eax, edx, 4
cmp dword [esp + 0x15c], 0
jle 0x101192b2
mov esi, dword [esp + 0x16c]
vmovdqu xmm1, xmmword [0x104c4fb0]
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 [0x104c4fa0]
vmovdqu xmm7, xmmword [0x104c4fc0]
vmovdqu xmm4, xmmword [0x104c4fd0]
add ebx, esi
mov esi, dword [esp + 0x168]
vmovdqu xmm3, xmmword [0x104c4f50]
vmovdqu xmm1, xmmword [0x104c4f60]
vmovdqu xmm2, xmmword [0x104c4f70]
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 [0x104c4f80]
vmovdqu xmm5, xmmword [0x104c4f90]
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 0x10118efd
jmp 0x101192ab
mov edx, dword [esp + 0x194]
add edx, ebx
test dl, 0x3f
je 0x10119151
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 0x1011914a
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 [0x104c4f50]
vpshufb xmm6, xmm0, xmmword [0x104c4f90]
vpshufb xmm3, xmm0, xmmword [0x104c4f60]
vpshufb xmm5, xmm7, xmmword [0x104c4f80]
vpshufb xmm7, xmm7, xmmword [0x104c4fb0]
vpshufb xmm0, xmm0, xmmword [0x104c4fc0]
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 [0x104c4f70]
vpshufb xmm6, xmm1, xmmword [0x104c4fa0]
vpshufb xmm1, xmm1, xmmword [0x104c4fd0]
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 0x1011904f
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1a8], ebx
test esi, esi
jle 0x101192b2
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 0x101191ca
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 [0x104c4f50]
vmovdqu xmm1, xmmword [ebx + ecx]
mov ebx, dword [esp + 0x19c]
vpshufb xmm4, xmm1, xmmword [0x104c4f60]
vmovdqu xmm2, xmmword [ebx + ecx]
vpshufb xmm6, xmm2, xmmword [0x104c4f70]
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 [0x104c4f80]
vpshufb xmm4, xmm1, xmmword [0x104c4f90]
vpshufb xmm6, xmm2, xmmword [0x104c4fa0]
vpor xmm5, xmm3, xmm4
vpor xmm7, xmm5, xmm6
vmovntdq xmmword [edx + ebx + 0x10], xmm7
vpshufb xmm0, xmm0, xmmword [0x104c4fb0]
vpshufb xmm1, xmm1, xmmword [0x104c4fc0]
vpshufb xmm2, xmm2, xmmword [0x104c4fd0]
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 0x101191e3
mov edi, dword [esp + 0xa4]
cmp dword [esp + 0x124], 0
je 0x10119422
mov eax, dword [esp + 0x124]
shr eax, 1
test eax, eax
jbe 0x10119476
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 0x10119340
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 0x10119422
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 0x10118ae0
cmp dword [esp + 0x120], 0
je 0x1011945f
sfence
add esp, 0x1c4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 1
jmp 0x10118a69
mov edx, 1
jmp 0x101193d0