Function at 0x1001b4f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x28
mov esi, esp
lea edi, [ebp + 8]
mov eax, dword [0x10080800]
xor eax, ebp
mov dword [esi + 0x20], eax
cmp dword [0x10081da4], 0xa
mov edx, dword [0x10081dc0]
mov eax, dword [0x10081dbc]
jl 0x1001b534
mov ecx, dword [0x10081da8]
lea ebx, [ecx + 1]
imul ebx, ecx
and ebx, 1
jne 0x1001b5f9
push eax
sub esp, 0xb4
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0x3fc
mov dword [esi + 0x14], esp
push eax
sub esp, 0xffc
mov dword [esi + 4], esp
cmp eax, 0xa
mov dword [esi + 0x10], ebx
jl 0x1001b58e
lea eax, [edx + 1]
imul eax, edx
and eax, 1
je 0x1001b58e
nop dword [eax]
jmp 0x1001b570
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b598
mov eax, dword [edi]
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
mov edx, dword [0x10081dc0]
mov eax, dword [0x10081dbc]
cmp eax, 0xa
jl 0x1001b5cd
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
je 0x1001b5cd
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b580
mov eax, dword [edi]
jmp 0x1001b580
mov ebx, dword [0x10081da8]
mov ecx, dword [0x10081da4]
mov dword [esi + 0xc], ecx
lea ecx, [ebx + 1]
imul ecx, ebx
mov ebx, dword [esi + 0xc]
and ecx, 1
cmp ebx, 0xa
jl 0x1001b732
test ecx, ecx
je 0x1001b732
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
nop word cs:[eax + eax]
push eax
sub esp, 0xb4
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
cmp eax, 0xa
jl 0x1001b63e
test ecx, ecx
je 0x1001b63e
jmp 0x1001b720
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b648
mov eax, dword [edi]
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
mov edx, dword [0x10081dc0]
mov ecx, dword [0x10081dbc]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x1001b680
test eax, eax
je 0x1001b680
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b630
mov eax, dword [edi]
jmp 0x1001b630
push eax
sub esp, 0xb4
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
cmp ecx, 0xa
jl 0x1001b6ae
test eax, eax
je 0x1001b6ae
jmp 0x1001b730
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b6b8
mov eax, dword [edi]
mov ecx, ebx
push 1
push 0x40
push 0x20
push eax
call fcn.1002be90
mov edx, dword [0x10081dc0]
mov eax, dword [0x10081dbc]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x1001b6f0
test ecx, ecx
je 0x1001b6f0
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x1001b6a0
mov eax, dword [edi]
jmp 0x1001b6a0
cmp dword [0x10081da4], 0xa
jl 0x1001b534
mov ebx, dword [0x10081da8]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0xc]
inc ebx
imul ebx, dword [esi + 0xc]
and ebx, 1
jne 0x1001b610
jmp 0x1001b534
jmp 0x1001b720
jmp 0x1001b730
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x5c], 0
je 0x1001b762
mov eax, esp
cmp dword [0x10081de0], 0xa
jl 0x1001b782
mov ecx, dword [0x10081ddc]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
mov ebx, dword [esi + 4]
je 0x1001b785
nop word [eax + eax]
jmp 0x1001b760
xor eax, eax
cmp ebx, 0xa
jl 0x1001bdfc
test ecx, ecx
je 0x1001bdfc
nop word cs:[eax + eax]
jmp 0x1001b780
mov ebx, dword [esi + 4]
movdqa xmm2, xmmword [0x10072a40]
xor ecx, ecx
movdqa xmm0, xmmword [0x10072a50]
movdqa xmm1, xmmword [0x10072a60]
mov edx, dword [esi + 0x14]
nop word cs:[eax + eax]
movdqa xmm3, xmm2
movdqa xmm4, xmm2
pslld xmm4, 0x1f
psrad xmm4, 0x1f
psrld xmm3, 1
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm0
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
pslld xmm3, 0x1f
psrld xmm4, 1
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm0
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
psrld xmm3, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm0
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
psrld xmm4, 1
pslld xmm3, 0x1f
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm0
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
pslld xmm4, 0x1f
psrad xmm4, 0x1f
psrld xmm3, 1
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm0
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
pslld xmm3, 0x1f
psrld xmm4, 1
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm0
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm3, xmm4
psrld xmm3, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm5, xmm4
pandn xmm5, xmm3
pxor xmm3, xmm0
pand xmm3, xmm4
por xmm3, xmm5
movdqa xmm4, xmm3
psrld xmm4, 1
pslld xmm3, 0x1f
psrad xmm3, 0x1f
movdqa xmm5, xmm3
pandn xmm5, xmm4
pxor xmm4, xmm0
pand xmm4, xmm3
por xmm4, xmm5
movdqu xmmword [edx + ecx*4], xmm4
add ecx, 4
paddd xmm2, xmm1
cmp ecx, 0x100
jne 0x1001b7b0
mov esp, eax
cmp dword [0x10081da4], 0xa
jl 0x1001bc92
mov eax, dword [0x10081da8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x1001bc92
movdqa xmm2, xmmword [0x10072a40]
cmp dword [0x10081de0], 0xa
jl 0x1001b94c
mov eax, dword [0x10081ddc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1001bc80
xor eax, eax
movdqa xmm3, xmm2
nop word cs:[eax + eax]
movdqa xmm4, xmm3
movdqa xmm5, xmm3
pslld xmm5, 0x1f
psrad xmm5, 0x1f
psrld xmm4, 1
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
pslld xmm4, 0x1f
psrld xmm5, 1
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
psrld xmm4, 1
pslld xmm5, 0x1f
psrad xmm5, 0x1f
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm5, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
pslld xmm5, 0x1f
psrad xmm5, 0x1f
psrld xmm4, 1
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
pslld xmm4, 0x1f
psrld xmm5, 1
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
psrld xmm4, 1
pslld xmm5, 0x1f
psrad xmm5, 0x1f
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm5, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqu xmmword [edx + eax*4], xmm5
add eax, 4
paddd xmm3, xmm1
cmp eax, 0x100
jne 0x1001b960
cmp dword [0x10081de0], 0xa
jl 0x1001bad0
mov eax, dword [0x10081ddc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1001bc90
xor eax, eax
movdqa xmm3, xmm2
nop word cs:[eax + eax]
movdqa xmm4, xmm3
movdqa xmm5, xmm3
pslld xmm5, 0x1f
psrad xmm5, 0x1f
psrld xmm4, 1
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
pslld xmm4, 0x1f
psrld xmm5, 1
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
psrld xmm4, 1
pslld xmm5, 0x1f
psrad xmm5, 0x1f
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm5, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
pslld xmm5, 0x1f
psrad xmm5, 0x1f
psrld xmm4, 1
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
pslld xmm4, 0x1f
psrld xmm5, 1
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqa xmm4, xmm5
psrld xmm4, 1
pslld xmm5, 0x1f
psrad xmm5, 0x1f
movdqa xmm6, xmm5
pandn xmm6, xmm4
pxor xmm4, xmm0
pand xmm4, xmm5
por xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm5, 1
pslld xmm4, 0x1f
psrad xmm4, 0x1f
movdqa xmm6, xmm4
pandn xmm6, xmm5
pxor xmm5, xmm0
pand xmm5, xmm4
por xmm5, xmm6
movdqu xmmword [edx + eax*4], xmm5
add eax, 4
paddd xmm3, xmm1
cmp eax, 0x100
jne 0x1001bae0
cmp dword [0x10081da4], 0xa
jl 0x1001bc50
mov eax, dword [0x10081da8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1001b92f
mov eax, esp
cmp dword [0x10081de0], 0xa
jl 0x1001b785
mov ecx, dword [0x10081ddc]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x1001b785
jmp 0x1001b760
jmp 0x1001bc80
jmp 0x1001bc90
mov dword [esi + 8], 0
mov ecx, dword [esi + 0x10]
push 0
push 0x1000
push ebx
call fcn.1001be80
mov edx, dword [0x10081da8]
mov ebx, dword [0x10081da4]
cmp ebx, 0xa
jl 0x1001bce7
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
je 0x1001bce7
mov ebx, dword [esi + 0x10]
mov ecx, ebx
push 0
push 0x1000
push dword [esi + 4]
call fcn.1001be80
mov ecx, ebx
push 0
push 0x1000
push dword [esi + 4]
jmp 0x1001bca4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [eax + ecx + 0xc], 6
mov dword [esi + 0xc], ebx
mov dword [esi + 0x18], edx
jne 0x1001bd62
mov edx, dword [esi + 8]
not edx
xor eax, eax
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + eax]
xor cl, dl
movzx ecx, cl
mov dword [esi + 8], ecx
shr edx, 8
mov ecx, dword [esi + 0x14]
mov ebx, dword [esi + 8]
xor edx, dword [ecx + ebx*4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + eax + 1]
xor cl, dl
movzx ecx, cl
shr edx, 8
mov ebx, dword [esi + 0x14]
xor edx, dword [ebx + ecx*4]
add eax, 2
cmp eax, 0x1000
jne 0x1001bd00
not edx
mov dword [esi + 8], edx
cmp dword [esi + 0xc], 0xa
mov ebx, dword [esi + 4]
jl 0x1001bc99
mov ecx, dword [esi + 0x18]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
je 0x1001bc99
nop
jmp 0x1001bd60
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
mov eax, dword [esi + 8]
jle 0x1001bdea
not eax
mov ebx, eax
cmp ecx, 1
mov dword [esi + 0x1c], ecx
jne 0x1001bd84
xor eax, eax
mov edx, dword [esi + 4]
mov ecx, ebx
jmp 0x1001bdc4
and ecx, 0xfffffffe
mov dword [esi + 8], ecx
xor eax, eax
mov ecx, ebx
mov edx, dword [esi + 4]
movzx ebx, byte [edx + eax]
xor bl, cl
movzx ebx, bl
shr ecx, 8
mov edx, dword [esi + 0x14]
xor ecx, dword [edx + ebx*4]
mov edx, dword [esi + 4]
movzx ebx, byte [edx + eax + 1]
xor bl, cl
movzx ebx, bl
shr ecx, 8
mov edx, dword [esi + 0x14]
xor ecx, dword [edx + ebx*4]
mov edx, dword [esi + 4]
add eax, 2
cmp dword [esi + 8], eax
jne 0x1001bd8e
test byte [esi + 0x1c], 1
je 0x1001bde0
movzx eax, byte [edx + eax]
mov edx, ecx
xor al, dl
movzx eax, al
shr edx, 8
mov ecx, dword [esi + 0x14]
xor edx, dword [ecx + eax*4]
mov ecx, edx
mov eax, ecx
not eax
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x18]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jge 0x1001b76d
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x10]
call fcn.1001c100
mov ecx, edi
call fcn.10001770
cmp dword [0x10081da4], 0xa
jl 0x1001be5f
mov eax, dword [0x10081da8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x1001be5f
mov ebx, dword [esi + 0x10]
mov ecx, ebx
call fcn.1001c100
mov ecx, edi
call fcn.10001770
mov ecx, ebx
call fcn.1001c100
mov ecx, edi
call fcn.10001770
cmp dword [0x10081da4], 0xa
jl 0x1001be5f
mov eax, dword [0x10081da8]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x1001be2a
mov ecx, dword [esi + 0x20]
xor ecx, ebp
call fcn.10035778
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret