Function at 0x140003520
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x14000b040]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov edi, 4
lea r10, [rbp - 0x2e]
mov r11d, edi
mov r14, r9
mov r13, r8
mov rbx, rcx
add rdx, 8
nop word [rax + rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
mov byte [r10 - 2], al
lea r10, [r10 + 4]
movzx eax, byte [rdx - 5]
mov byte [r10 - 5], al
movzx eax, byte [rdx - 1]
mov byte [r10 - 4], al
movzx eax, byte [rdx + 3]
mov byte [r10 - 3], al
sub r11, 1
jne 0x140003570
lea rcx, [rbp - 0x2e]
mov r8, rdi
lea rdx, [r9 + 8]
nop dword [rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x1400035b0
mov r15d, dword [rbx + 4]
lea r12, [0x140000000]
mov ebx, 1
lea esi, [r15 - 1]
cmp esi, ebx
jb 0x1400037d4
nop word [rax + rax]
lea rcx, [rbp - 0x2e]
mov rdx, rdi
movzx eax, byte [rcx - 2]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 6], al
movzx eax, byte [rcx - 5]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 5], al
movzx eax, byte [rcx - 4]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 4], al
movzx eax, byte [rcx - 3]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 3], al
sub rdx, 1
jne 0x140003607
movzx eax, byte [rbp - 0x2b]
xorps xmm0, xmm0
mov byte [rbp - 0x3c], al
xor r9d, r9d
movzx eax, byte [rbp - 0x2a]
mov byte [rbp - 0x3b], al
movzx eax, byte [rbp - 0x29]
mov byte [rbp - 0x3a], al
movzx eax, byte [rbp - 0x2c]
mov byte [rbp - 0x39], al
mov eax, dword [rbp - 0x3c]
mov dword [rbp - 0x2c], eax
movzx eax, byte [rbp - 0x26]
mov byte [rbp - 0x38], al
movzx eax, byte [rbp - 0x25]
mov byte [rbp - 0x37], al
movzx eax, byte [rbp - 0x28]
mov byte [rbp - 0x36], al
movzx eax, byte [rbp - 0x27]
mov byte [rbp - 0x35], al
mov eax, dword [rbp - 0x38]
mov dword [rbp - 0x28], eax
movzx eax, byte [rbp - 0x21]
mov byte [rbp - 0x40], al
movzx eax, byte [rbp - 0x24]
mov byte [rbp - 0x3f], al
movzx eax, byte [rbp - 0x23]
mov byte [rbp - 0x3e], al
movzx eax, byte [rbp - 0x22]
mov byte [rbp - 0x3d], al
mov eax, dword [rbp - 0x40]
mov dword [rbp - 0x24], eax
movups xmmword [rbp - 0x20], xmm0
xor eax, eax
lea r11, [r12 + 0x7008]
add r11, r9
nop
movzx ecx, byte [r11 + rax]
movzx r8d, byte [rbp + r9 - 0x20]
mov r10d, ecx
movzx edx, byte [rbp + rax*4 - 0x30]
cmp cl, 1
jne 0x14000370b
xor dl, r8b
mov byte [rbp + r9 - 0x20], dl
movzx ecx, byte [rbp + rax*4 - 0x2f]
xor byte [rbp + r9 - 0x1f], cl
movzx ecx, byte [rbp + rax*4 - 0x2e]
xor byte [rbp + r9 - 0x1e], cl
movzx ecx, byte [rbp + rax*4 - 0x2d]
jmp 0x14000375d
shl r10, 8
lea rcx, [r10 + rdx]
xor r8b, byte [rcx + r12 + 0x7120]
mov byte [rbp + r9 - 0x20], r8b
movzx ecx, byte [rbp + rax*4 - 0x2f]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x7120]
xor byte [rbp + r9 - 0x1f], cl
movzx ecx, byte [rbp + rax*4 - 0x2e]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x7120]
xor byte [rbp + r9 - 0x1e], cl
movzx ecx, byte [rbp + rax*4 - 0x2d]
add rcx, r10
movzx ecx, byte [rcx + r12 + 0x7120]
xor cl, byte [rbp + r9 - 0x1d]
inc rax
mov byte [rbp + r9 - 0x1d], cl
cmp rax, rdi
jb 0x1400036d0
add r9, rdi
cmp r9, 0x10
jb 0x1400036c1
movaps xmm0, xmmword [rbp - 0x20]
lea rcx, [rbp - 0x2e]
mov edx, ebx
movdqa xmmword [rbp - 0x30], xmm0
shl edx, 4
mov r8, rdi
add rdx, 8
add rdx, r14
nop dword [rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x1400037a0
inc ebx
cmp ebx, esi
jbe 0x140003600
lea rcx, [rbp - 0x2e]
mov rdx, rdi
nop dword [rax + rax]
movzx eax, byte [rcx - 2]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 6], al
movzx eax, byte [rcx - 5]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 5], al
movzx eax, byte [rcx - 4]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 4], al
movzx eax, byte [rcx - 3]
movzx eax, byte [rax + r12 + 0x7020]
mov byte [rcx - 3], al
sub rdx, 1
jne 0x1400037e0
movzx eax, byte [rbp - 0x2b]
lea rcx, [rbp - 0x2e]
mov byte [rbp - 0x40], al
mov r8, rdi
movzx eax, byte [rbp - 0x2a]
mov byte [rbp - 0x3f], al
movzx eax, byte [rbp - 0x29]
mov byte [rbp - 0x3e], al
movzx eax, byte [rbp - 0x2c]
mov byte [rbp - 0x3d], al
mov eax, dword [rbp - 0x40]
mov dword [rbp - 0x2c], eax
movzx eax, byte [rbp - 0x26]
mov byte [rbp - 0x40], al
movzx eax, byte [rbp - 0x25]
mov byte [rbp - 0x3f], al
movzx eax, byte [rbp - 0x28]
mov byte [rbp - 0x3e], al
movzx eax, byte [rbp - 0x27]
mov byte [rbp - 0x3d], al
mov eax, dword [rbp - 0x40]
mov dword [rbp - 0x28], eax
movzx eax, byte [rbp - 0x21]
mov byte [rbp - 0x40], al
movzx eax, byte [rbp - 0x24]
mov byte [rbp - 0x3f], al
movzx eax, byte [rbp - 0x23]
mov byte [rbp - 0x3e], al
movzx eax, byte [rbp - 0x22]
shl r15d, 4
mov edx, r15d
mov byte [rbp - 0x3d], al
add rdx, 8
mov eax, dword [rbp - 0x40]
add rdx, r14
mov dword [rbp - 0x24], eax
nop word [rax + rax]
movzx eax, byte [rdx - 8]
lea rdx, [rdx + 1]
xor byte [rcx - 2], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 5]
xor byte [rcx - 5], al
movzx eax, byte [rdx - 1]
xor byte [rcx - 4], al
movzx eax, byte [rdx + 3]
xor byte [rcx - 3], al
sub r8, 1
jne 0x1400038b0
lea rcx, [r13 + 8]
lea rdx, [rbp - 0x2e]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov byte [rcx - 8], al
lea rcx, [rcx + 1]
movzx eax, byte [rdx - 5]
mov byte [rcx - 5], al
movzx eax, byte [rdx - 4]
mov byte [rcx - 1], al
movzx eax, byte [rdx - 3]
mov byte [rcx + 3], al
sub rdi, 1
jne 0x1400038f0
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140004df0
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rbp
ret