Function at 0x140203850
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
mov r13, rdx
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x1f0
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x20], r8
mov rcx, r12
mov qword [rbp + 0x28], r9
call fcn.14005a5d0
mov rcx, r12
mov qword [rsp + 0x90], rax
call fcn.14005a250
mov rcx, r12
mov qword [rsp + 0x80], rax
call fcn.14005a2f0
mov r8, qword [rbp + 0x20]
mov r9, qword [rbp + 0x28]
mov rdx, r13
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], r12
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x20], rax
call fcn.1400712f0
mov rdx, r12
mov r15, rax
lea rax, [rsp + 0xd0]
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.14005a3c0
mov ebx, dword [r12 + 0xc]
lea ecx, [rbx + rbx*8]
add ebx, dword [r12 + 0x14]
cmp ecx, ebx
cmovb rcx, rbx
call sub.msvcrt.dll_malloc
mov r8d, dword [r12 + 0x20]
mov r14, rax
test r8d, r8d
je 0x14020442e
mov dword [rsp + 0x98], 0
lea rsi, [rsp + 0xf0]
mov eax, dword [rsp + 0x98]
mov rdi, qword [rsp + 0x90]
xor r13d, r13d
mov qword [rsp + 0x68], rax
lea rdi, [rdi + rax*8]
lea rax, [rsp + 0xce]
mov qword [rsp + 0x78], rax
mov edx, dword [rsp + 0x98]
mov r8d, r13d
mov rcx, r15
call fcn.140126c00
cmp ebx, dword [r12 + 0x28]
jb 0x140203a74
mov r8d, 2
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
call fcn.14004b6f0
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004b7f0
mov rcx, rsi
call fcn.14004b6a0
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004b7a0
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004b6f0
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004b7f0
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004b7f0
mov rcx, rsi
call fcn.14004b6a0
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.14004b7a0
mov rcx, qword [rdi]
lea rax, [r13 + r13*2]
mov rdx, r14
mov r8d, dword [r12 + 0xc]
lea rax, [rcx + rax*8]
mov rcx, qword [rax]
call sub.msvcrt.dll_memcpy
mov edx, dword [r12 + 0xc]
mov r8d, dword [r12 + 0x14]
mov rax, qword [rsp + 0x88]
add rdx, r14
mov rcx, qword [rax + r13*8]
call sub.msvcrt.dll_memcpy
mov ebx, dword [r12 + 0x14]
cmp r13, 1
jne 0x140204456
mov edx, dword [rsp + 0x98]
mov r8d, 2
mov rcx, r15
mov r13, qword [rsp + 0xe0]
call fcn.140126c00
mov qword [rsp + 0x60], rax
cmp ebx, dword [r12 + 0x28]
jae 0x140203ad8
mov r13d, 1
mov rcx, r14
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
mov rdx, r12
call fcn.140125d40
mov rcx, qword [rsp + 0x80]
call fcn.140125be0
mov rcx, qword [rsp + 0x88]
call fcn.140125c30
mov rcx, qword [rsp + 0x70]
call fcn.140125c00
mov rcx, r15
call fcn.140125c60
lea rsp, [rbp - 0x38]
mov eax, r13d
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8d, 2
mov rdx, r12
mov rcx, rsi
call fcn.14004b6f0
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004b7f0
mov rcx, rsi
call fcn.14004b6a0
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004b7a0
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004b6f0
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004b7f0
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004b7f0
mov rcx, rsi
call fcn.14004b6a0
mov rdx, r13
mov rcx, rsi
mov r8d, ebx
call fcn.14004b7a0
mov edx, dword [r12 + 0x10]
mov r10, qword [rbp + 0x10]
xor ecx, ecx
test edx, edx
je 0x140203ba1
nop dword [rax]
mov r8, qword [rdi]
mov edx, ecx
add ecx, 1
mov rax, qword [r8]
mov r9, qword [r8 + 0x30]
mov r8, qword [r8 + 0x18]
mov eax, dword [rax + rdx*4]
xor eax, dword [r10 + rdx*4]
xor eax, dword [r8 + rdx*4]
mov dword [r9 + rdx*4], eax
cmp dword [r12 + 0x10], ecx
ja 0x140203b78
mov rdx, qword [rdi]
mov r8, qword [rbp + 0x20]
mov qword [rsp + 0x20], r12
mov r9, r14
mov rcx, qword [rsp + 0x88]
mov dword [rsp + 0xe8], 0
call fcn.14014c5a0
mov rax, qword [rsp + 0x68]
mov r9, qword [rdi]
xor r8d, r8d
mov rbx, qword [rsp + 0x80]
mov edx, dword [rsp + 0x98]
mov rcx, r15
lea rax, [rax + rax*2]
mov qword [rsp + 0x78], r9
shl rax, 3
add rbx, rax
mov qword [rsp + 0x50], rax
mov r13, qword [rbx]
call fcn.140126c00
mov r9, qword [rsp + 0x78]
lea r10, [rsp + 0xa0]
mov rcx, rax
mov rdx, r10
mov r8, r13
mov qword [rsp + 0x60], r10
movdqu xmm2, xmmword [r9]
movaps xmmword [rsp + 0xa0], xmm2
mov rax, qword [r9 + 0x10]
mov r9, r12
mov qword [rsp + 0xb0], rax
call fcn.140048230
mov r13, qword [rdi]
mov r11, qword [rbx + 8]
mov rcx, r15
mov edx, dword [rsp + 0x98]
mov r8d, 1
lea r9, [r13 + 0x18]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x78], r9
call fcn.140126c00
movdqu xmm3, xmmword [r13 + 0x18]
mov r9, qword [rsp + 0x78]
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, rax
movaps xmmword [rsp + 0xa0], xmm3
mov rax, qword [r9 + 0x10]
mov r9, r12
mov rdx, r10
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xb0], rax
call fcn.140048230
mov r13, qword [rbx + 0x10]
mov rbx, qword [rdi]
mov rcx, r15
mov edx, dword [rsp + 0x98]
mov r8d, 2
lea r9, [rbx + 0x30]
mov qword [rsp + 0x78], r9
call fcn.140126c00
movdqu xmm4, xmmword [rbx + 0x30]
mov r9, qword [rsp + 0x78]
mov r8, r13
mov rcx, rax
mov rdx, qword [rsp + 0x68]
movaps xmmword [rsp + 0xa0], xmm4
mov rax, qword [r9 + 0x10]
mov r9, r12
mov qword [rsp + 0xb0], rax
call fcn.140048230
cmp dword [r12 + 0x2c], 1
je 0x140203d30
add dword [rsp + 0x98], 1
mov ebx, dword [r12 + 0x20]
mov eax, dword [rsp + 0x98]
cmp ebx, eax
jbe 0x140203dfe
mov ebx, dword [r12 + 0x14]
add ebx, dword [r12 + 0xc]
jmp 0x140203926
mov r10, qword [rdi]
mov edx, dword [rsp + 0x98]
xor r8d, r8d
mov rcx, r15
mov rbx, qword [rsp + 0x50]
add rbx, qword [rsp + 0x70]
mov r13, qword [rbx]
mov qword [rsp + 0x78], r10
call fcn.140126c00
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
xor ecx, ecx
mov r9, r13
mov rdx, rax
call fcn.14004b170
mov rax, qword [rdi]
mov rcx, r15
mov r13, qword [rbx + 8]
mov edx, dword [rsp + 0x98]
mov r8d, 1
lea r10, [rax + 0x18]
mov qword [rsp + 0x78], r10
call fcn.140126c00
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
mov r9, r13
mov rdx, rax
mov ecx, 1
call fcn.14004b170
mov r13, qword [rbx + 0x10]
mov rbx, qword [rdi]
mov rcx, r15
mov edi, dword [rsp + 0x98]
mov r8d, 2
add rbx, 0x30
mov edx, edi
add edi, 1
call fcn.140126c00
mov qword [rsp + 0x20], r12
mov r8, rbx
mov r9, r13
mov rdx, rax
mov ecx, 2
call fcn.14004b170
mov ebx, dword [r12 + 0x20]
mov dword [rsp + 0x98], edi
cmp ebx, edi
ja 0x140203d1e
lea ecx, [rbx + rbx*2]
shl rcx, 3
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
test rbx, rbx
je 0x140203e5b
mov rdi, qword [rsp + 0x90]
add rax, 0x10
mov rdx, rdi
lea r8, [rdi + rbx*8]
nop word [rax + rax]
mov rcx, qword [rdx]
add rdx, 8
add rax, 0x18
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm5, xmmword [rcx + 0x20]
mov rcx, qword [rcx + 0x40]
shufpd xmm0, xmm5, 2
movups xmmword [rax - 0x28], xmm0
mov qword [rax - 0x18], rcx
cmp rdx, r8
jne 0x140203e30
mov r9d, dword [r12 + 0x10]
test r9d, r9d
je 0x1402041ff
mov rax, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rax + 8]
mov rcx, qword [rax]
mov r8, qword [rax + 0x10]
mov rax, rdi
lea r10, [rdx + 4]
lea r11, [rcx + 4]
sub rax, r10
mov r10, rdi
cmp rax, 8
seta al
sub r10, r11
cmp r10, 8
seta r10b
and eax, r10d
cmp r9d, 1
setne r10b
test al, r10b
je 0x140204401
lea r10, [r8 + 4]
mov rax, rdi
sub rax, r10
cmp rax, 8
jbe 0x140204401
lea eax, [r9 - 1]
cmp eax, 2
jbe 0x14020444f
movdqu xmm1, xmmword [rdx]
movdqu xmm0, xmmword [rcx]
mov eax, r9d
shr eax, 2
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8]
pxor xmm0, xmm1
movaps xmmword [rsp + 0xf0], xmm0
cmp eax, 1
je 0x1402041a3
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm0, xmmword [rdx + 0x10]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x10]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x100], xmm0
cmp eax, 2
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x20]
movdqu xmm0, xmmword [rcx + 0x20]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x20]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x110], xmm0
cmp eax, 3
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x30]
movdqu xmm0, xmmword [rcx + 0x30]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x30]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x120], xmm0
cmp eax, 4
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x40]
movdqu xmm0, xmmword [rcx + 0x40]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x40]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x130], xmm0
cmp eax, 5
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x50]
movdqu xmm0, xmmword [rcx + 0x50]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x50]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x140], xmm0
cmp eax, 6
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x60]
movdqu xmm0, xmmword [rcx + 0x60]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x60]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x150], xmm0
cmp eax, 7
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x70]
movdqu xmm0, xmmword [rcx + 0x70]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x70]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x160], xmm0
cmp eax, 8
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x80]
movdqu xmm0, xmmword [rcx + 0x80]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x80]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x170], xmm0
cmp eax, 9
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0x90]
movdqu xmm0, xmmword [rcx + 0x90]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x90]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x180], xmm0
cmp eax, 0xa
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0xa0]
movdqu xmm0, xmmword [rcx + 0xa0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xa0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x190], xmm0
cmp eax, 0xb
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0xb0]
movdqu xmm0, xmmword [rcx + 0xb0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xb0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1a0], xmm0
cmp eax, 0xc
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0xc0]
movdqu xmm0, xmmword [rcx + 0xc0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xc0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1b0], xmm0
cmp eax, 0xd
je 0x1402041a3
movdqu xmm1, xmmword [rdx + 0xd0]
movdqu xmm0, xmmword [rcx + 0xd0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xd0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1c0], xmm0
cmp eax, 0xe
je 0x1402041a3
movdqu xmm0, xmmword [rcx + 0xe0]
movdqu xmm1, xmmword [rdx + 0xe0]
movdqu xmm5, xmmword [r8 + 0xe0]
pxor xmm0, xmm1
pxor xmm0, xmm5
movaps xmmword [rsp + 0x1d0], xmm0
cmp eax, 0xf
je 0x1402041a3
movdqu xmm0, xmmword [rdx + 0xf0]
movdqu xmm1, xmmword [rcx + 0xf0]
movdqu xmm5, xmmword [r8 + 0xf0]
pxor xmm0, xmm1
pxor xmm0, xmm5
movaps xmmword [rsp + 0x1e0], xmm0
mov eax, r9d
and eax, 0xfffffffc
test r9b, 3
je 0x1402041ff
sub r9d, eax
cmp r9d, 1
je 0x1402041ee
mov r10d, eax
movq xmm1, qword [rdx + r10*4]
movq xmm0, qword [rcx + r10*4]
pxor xmm0, xmm1
movq xmm1, qword [r8 + r10*4]
pxor xmm0, xmm1
movq qword [rsp + r10*4 + 0xf0], xmm0
mov r10d, r9d
and r10d, 0xfffffffe
add eax, r10d
cmp r10d, r9d
je 0x1402041ff
mov edx, dword [rdx + rax*4]
xor edx, dword [rcx + rax*4]
xor edx, dword [r8 + rax*4]
mov dword [rsp + rax*4 + 0xf0], edx
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], r12
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0x98]
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x38]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
call fcn.14004b270
mov eax, dword [r12 + 0x20]
test eax, eax
je 0x14020432d
cmp qword [rsp + 0x70], 0
je 0x140204342
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
xor ebx, ebx
mov esi, 1
mov qword [rsp + 0x68], r14
mov r13, qword [rsp + 0x80]
mov r14, r15
mov r15, r12
mov r12, rdi
mov rdi, qword [rsp + 0x90]
nop dword [rax + rax]
mov rax, qword [rbp + 0x38]
mov ecx, esi
mov edx, esi
mov r9, qword [rdi + rbx*8]
neg ecx
shr edx, 3
mov r8, r14
add r14, 0x18
mov r11, qword [rax + 8]
mov rax, rbx
and ecx, 7
shl rax, 0x21
shr rax, 0x23
movzx edx, byte [r11 + rdx]
movzx eax, byte [r11 + rax]
sar eax, cl
mov ecx, esi
add esi, 2
not ecx
and eax, 1
and ecx, 7
sar edx, cl
lea rcx, [rbx + rbx*2]
add rbx, 1
and edx, 1
shl rcx, 4
add edx, edx
or edx, eax
mov rax, qword [rbp + 0x38]
add rcx, qword [rax]
mov qword [rsp + 0x28], r12
add r12, 0x18
mov qword [rsp + 0x20], r13
add r13, 0x18
mov qword [rsp + 0x30], r15
call fcn.140164720
mov eax, dword [r15 + 0x20]
cmp rax, rbx
ja 0x140204298
mov r12, r15
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x98]
xor r13d, r13d
call sub.msvcrt.dll_free
jmp 0x140203a7a
mov rdi, qword [rsp + 0x80]
mov esi, 1
mov qword [rsp + 0x78], r14
xor ebx, ebx
mov r14, r15
mov r13, rdi
mov edi, esi
mov rsi, qword [rsp + 0x90]
nop word cs:[rax + rax]
mov rax, qword [rbp + 0x38]
mov ecx, edi
mov r9, qword [rsi + rbx*8]
mov r8, r14
not ecx
add r14, 0x18
mov rdx, qword [rax + 8]
mov eax, edi
and ecx, 7
shr eax, 3
movzx eax, byte [rdx + rax]
sar eax, cl
mov rcx, rbx
shl rcx, 0x21
and eax, 1
shr rcx, 0x23
add eax, eax
movzx edx, byte [rdx + rcx]
mov ecx, edi
add edi, 2
neg ecx
and ecx, 7
sar edx, cl
lea rcx, [rbx + rbx*2]
add rbx, 1
and edx, 1
shl rcx, 4
or edx, eax
mov rax, qword [rbp + 0x38]
add rcx, qword [rax]
mov qword [rsp + 0x20], r13
add r13, 0x18
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], 0
call fcn.140164720
mov eax, dword [r12 + 0x20]
cmp rax, rbx
ja 0x140204370
mov r14, qword [rsp + 0x78]
jmp 0x14020432d
mov r11, qword [rsp + 0x58]
xor eax, eax
nop dword [rax + rax]
mov r10d, dword [rdx + rax*4]
xor r10d, dword [rcx + rax*4]
xor r10d, dword [r8 + rax*4]
mov dword [r11 + rax*4], r10d
add rax, 1
cmp rax, r9
jne 0x140204410
jmp 0x1402041ff
xor ecx, ecx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x58], rax
jmp 0x140203e5b
xor eax, eax
jmp 0x1402041b8
mov r13d, 1
add ebx, dword [r12 + 0xc]
jmp 0x14020394e