Function at 0x140036160
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov ebp, ecx
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xd0]
movzx r10d, r8b
test dl, dl
jne 0x140036c0b
mov r15d, ebx
and r15d, 0x1f
mov rbp, rbx
and rbp, 0xffffffffffffffe0
mov r12, r13
add r12, rbp
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov cl, 1
mov qword [rsp + 0x58], r10
mov rdx, r10
mov r8, rsi
mov qword [rsp + 0x50], r9
call fcn.1400350a0
test rbp, rbp
je 0x140036283
xor eax, eax
pxor xmm0, xmm0
xor edi, edi
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x140036219
add rax, 0x20
cmp rbp, rax
je 0x14003626a
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rdi
mov rdi, 0xffffffffffffffff
jb 0x140036210
mov rdi, rcx
jmp 0x140036210
lea r14, [r12 + r15]
test r15, r15
je 0x1400362b3
cmp r15d, 1
jne 0x1400362ba
xor esi, esi
mov rax, r12
jmp 0x140036330
lea rdi, [r12 + r15]
test r15, r15
mov qword [rsp + 0x60], r15
je 0x14003680f
cmp r15d, 1
jne 0x140036866
xor esi, esi
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x1400368d0
xor esi, esi
jmp 0x14003634e
mov ecx, ebx
and ecx, 1
mov r10, r15
sub r10, rcx
lea rax, [r12 + r10]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx r11d, word [r12 + r8]
movd xmm2, r11d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp r10, r8
jne 0x1400362e0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
je 0x14003634e
nop word cs:[rax + rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rsi, rcx
cmp rax, r14
jne 0x140036330
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 2
call fcn.1400350a0
xor eax, eax
pxor xmm0, xmm0
xor ebx, ebx
jmp 0x140036399
add rax, 0x20
cmp rbp, rax
je 0x1400363ea
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rbx
mov rbx, 0xffffffffffffffff
jb 0x140036390
mov rbx, rcx
jmp 0x140036390
add rdi, rsi
mov rax, 0xffffffffffffffff
cmovb rdi, rax
test r15, r15
mov rdx, qword [rsp + 0x58]
je 0x14003641b
cmp r15d, 1
jne 0x14003642b
xor r11d, r11d
mov rcx, r12
mov r8, qword [rsp + 0xe0]
jmp 0x1400364a0
xor r11d, r11d
mov r8, qword [rsp + 0xe0]
jmp 0x1400364c0
mov r8, qword [rsp + 0xf0]
and r8d, 1
mov r11, r15
sub r11, r8
lea rcx, [r12 + r11]
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
nop dword [rax]
movzx r10d, word [r12 + r9]
movd xmm2, r10d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r9, 2
cmp r11, r9
jne 0x140036450
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r11, xmm0
test r8, r8
mov r8, qword [rsp + 0xe0]
je 0x1400364c0
nop word [rax + rax]
movzx r10d, byte [rcx]
inc rcx
mov r9d, r10d
sar r9b, 7
xor r10b, r9b
sub r10b, r9b
movzx r9d, r10b
add r11, r9
cmp rcx, r14
jne 0x1400364a0
add rbx, r11
cmovb rbx, rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 3
mov r9, qword [rsp + 0x50]
call fcn.1400350a0
xor eax, eax
pxor xmm0, xmm0
xor esi, esi
jmp 0x140036519
add rax, 0x20
cmp rbp, rax
je 0x14003656a
movdqu xmm1, xmmword [r13 + rax]
movdqu xmm2, xmmword [r13 + rax + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rcx, xmm1
add rcx, rsi
mov rsi, 0xffffffffffffffff
jb 0x140036510
mov rsi, rcx
jmp 0x140036510
cmp rbx, rdi
cmovb rdi, rbx
seta al
mov bl, 2
test r15, r15
mov rdx, qword [rsp + 0x58]
je 0x140036591
cmp r15d, 1
jne 0x140036599
xor r10d, r10d
mov rcx, r12
jmp 0x140036610
xor r10d, r10d
jmp 0x140036630
mov r8, qword [rsp + 0xf0]
and r8d, 1
mov r11, r15
sub r11, r8
lea rcx, [r12 + r11]
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r10d, word [r12 + r9]
movd xmm2, r10d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r9, 2
cmp r11, r9
jne 0x1400365c0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r10, xmm0
test r8, r8
je 0x140036630
nop word cs:[rax + rax]
movzx r8d, byte [rcx]
inc rcx
mov r9d, r8d
sar r9b, 7
xor r8b, r9b
sub r8b, r9b
movzx r8d, r8b
add r10, r8
cmp rcx, r14
jne 0x140036610
sub bl, al
add rsi, r10
mov rax, 0xffffffffffffffff
cmovb rsi, rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 4
mov r9, qword [rsp + 0x50]
call fcn.1400350a0
xor ecx, ecx
pxor xmm0, xmm0
xor eax, eax
jmp 0x140036699
add rcx, 0x20
cmp rbp, rcx
je 0x1400366ea
movdqu xmm1, xmmword [r13 + rcx]
movdqu xmm2, xmmword [r13 + rcx + 0x10]
pxor xmm3, xmm3
psubb xmm3, xmm1
pminub xmm3, xmm1
pxor xmm1, xmm1
psubb xmm1, xmm2
pminub xmm1, xmm2
psadbw xmm1, xmm0
psadbw xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm1, xmm3, 0xee
paddq xmm1, xmm3
movq rdx, xmm1
add rdx, rax
mov rax, 0xffffffffffffffff
jb 0x140036690
mov rax, rdx
jmp 0x140036690
cmp rsi, rdi
cmovb rdi, rsi
movzx ecx, bl
mov ebp, 3
cmova ebp, ecx
test r15, r15
mov r10, qword [rsp + 0x58]
je 0x14003672b
cmp r15d, 1
jne 0x140036747
xor edx, edx
mov rcx, r12
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf0]
jmp 0x1400367c0
xor edx, edx
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf0]
jmp 0x1400367e0
mov rbx, qword [rsp + 0xf0]
mov r8d, ebx
and r8d, 1
sub r15, r8
lea rcx, [r12 + r15]
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [r12 + rdx]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add rdx, 2
cmp r15, rdx
jne 0x140036770
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rdx, xmm0
test r8, r8
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe0]
je 0x1400367e0
nop
movzx r8d, byte [rcx]
inc rcx
mov r11d, r8d
sar r11b, 7
xor r8b, r11b
sub r8b, r11b
movzx r8d, r8b
add rdx, r8
cmp rcx, r14
jne 0x1400367c0
add rax, rdx
mov rcx, 0xffffffffffffffff
cmovae rcx, rax
mov r14b, 4
cmp rcx, rdi
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
ja 0x140036c0b
jmp 0x140036c34
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov r15, rbx
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rbx
mov rbp, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rbp
mov cl, 2
mov r14, qword [rsp + 0x58]
mov rdx, r14
mov r8, rsi
mov r9, qword [rsp + 0x50]
call fcn.1400350a0
mov rdx, r14
mov r8, rsi
xor esi, esi
xor ecx, ecx
mov r9, qword [rsp + 0x50]
jmp 0x1400369ee
mov ecx, ebx
and ecx, 1
mov rdx, r15
sub rdx, rcx
lea rax, [r12 + rdx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rdx, r8
jne 0x140036880
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rsi, xmm0
test rcx, rcx
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
je 0x1400368ee
nop dword [rax]
movzx ecx, byte [rax]
inc rax
mov r8d, ecx
sar r8b, 7
xor cl, r8b
sub cl, r8b
movzx ecx, cl
add rsi, rcx
cmp rax, rdi
jne 0x1400368d0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov cl, 2
call fcn.1400350a0
cmp r15d, 2
jae 0x140036940
mov r10, rbx
xor ecx, ecx
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
jmp 0x1400369b0
mov edx, ebx
and edx, 1
mov rcx, r15
sub rcx, rdx
lea rax, [r12 + rcx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word [rax + rax]
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rcx, r8
jne 0x140036960
mov r10, rbx
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
je 0x1400369d0
nop
movzx r9d, byte [rax]
inc rax
mov r8d, r9d
sar r8b, 7
xor r9b, r8b
sub r9b, r8b
movzx r8d, r9b
add rcx, r8
cmp rax, rdi
jne 0x1400369b0
mov r9, rbx
mov r8, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov r15, r10
cmp rcx, rsi
seta al
cmovb rsi, rcx
mov r14b, 2
sub r14b, al
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbp
mov cl, 3
call fcn.1400350a0
mov r15, qword [rsp + 0x60]
test r15, r15
je 0x140036a45
cmp r15d, 1
jne 0x140036a59
xor ecx, ecx
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xf0]
jmp 0x140036ad0
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xf0]
jmp 0x140036af0
mov rbx, qword [rsp + 0xf0]
mov edx, ebx
and edx, 1
mov rcx, r15
sub rcx, rdx
lea rax, [r12 + rcx]
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax + rax]
movzx r9d, word [r12 + r8]
movd xmm2, r9d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add r8, 2
cmp rcx, r8
jne 0x140036a80
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov rdx, qword [rsp + 0x58]
je 0x140036af0
nop word [rax + rax]
movzx r9d, byte [rax]
inc rax
mov r8d, r9d
sar r8b, 7
xor r9b, r8b
sub r9b, r8b
movzx r8d, r9b
add rcx, r8
cmp rax, rdi
jne 0x140036ad0
cmp rcx, rsi
cmovb rsi, rcx
movzx eax, r14b
mov ebp, 3
cmova ebp, eax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x30], r8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r14b, 4
mov cl, 4
mov r9, qword [rsp + 0x50]
call fcn.1400350a0
test r15, r15
je 0x140036c34
cmp r15d, 1
jne 0x140036b63
xor ecx, ecx
mov rax, r12
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x140036bd0
mov edx, ebx
and edx, 1
sub r15, rdx
lea rax, [r12 + r15]
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop dword [rax]
movzx r8d, word [r12 + rcx]
movd xmm2, r8d
pxor xmm3, xmm3
psubb xmm3, xmm2
pminub xmm3, xmm2
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
punpckldq xmm3, xmm0
paddq xmm1, xmm3
add rcx, 2
cmp r15, rcx
jne 0x140036b80
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rcx, xmm0
test rdx, rdx
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
je 0x140036bee
nop dword [rax]
movzx edx, byte [rax]
inc rax
mov r8d, edx
sar r8b, 7
xor dl, r8b
sub dl, r8b
movzx edx, dl
add rcx, rdx
cmp rax, rdi
jne 0x140036bd0
cmp rcx, rsi
mov rsi, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
jbe 0x140036c34
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov ecx, ebp
mov rdx, r10
mov r8, rsi
call fcn.1400350a0
mov r14d, ebp
mov eax, r14d
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret