Function at 0x14004b670
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp dword [0x1400a2128], 0
mov edi, r8d
mov rbx, rdx
mov rsi, rcx
jne 0x14004b6a5
call fcn.14004afd0
mov dword [0x1400a2128], 1
mov eax, edi
mov ebp, 0xa
sub eax, 0x80
je 0x14004b6d5
sub eax, 0x40
je 0x14004b6cd
cmp eax, 0x40
je 0x14004b6c5
lea eax, [rbp - 0x2a]
jmp 0x14004b95d
mov dword [rsi], 0xe
jmp 0x14004b6d7
mov dword [rsi], 0xc
jmp 0x14004b6d7
mov dword [rsi], ebp
shr edi, 5
lea rax, [rsi + 0x10]
xor r10d, r10d
mov qword [rsi + 8], rax
test edi, edi
je 0x14004b742
mov r11, rax
nop dword [rax]
lea r8d, [r10*4]
lea ecx, [r8 + 3]
movzx r9d, byte [rcx + rbx]
lea r11, [r11 + 4]
shl r9d, 8
lea ecx, [r8 + 2]
movzx ecx, byte [rcx + rbx]
or r9d, ecx
lea ecx, [r8 + 1]
shl r9d, 8
movzx ecx, byte [rcx + rbx]
or r9d, ecx
lea ecx, [r10*4]
shl r9d, 8
inc r10d
movzx ecx, byte [rcx + rbx]
or r9d, ecx
mov dword [r11 - 4], r9d
cmp r10d, edi
jb 0x14004b6f0
mov ecx, dword [rsi]
cmp ecx, ebp
je 0x14004b8dc
cmp ecx, 0xc
je 0x14004b83d
cmp ecx, 0xe
jne 0x14004b95b
lea rdi, [0x1400a2100]
lea esi, [rcx - 7]
lea rbx, [0x14009ff00]
nop
mov r11d, dword [rax + 0x1c]
lea rax, [rax + 0x20]
movzx ecx, r11b
lea rdi, [rdi + 4]
movzx r8d, byte [rcx + rbx]
movzx ecx, byte [rax - 1]
shl r8d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 2]
xor r8d, edx
shl r8d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 3]
xor r8d, edx
shl r8d, 8
movzx edx, byte [rcx + rbx]
mov ecx, dword [rax - 0x1c]
xor r8d, edx
xor r8d, dword [rdi - 4]
xor r8d, dword [rax - 0x20]
mov edx, dword [rax - 0x18]
xor ecx, r8d
xor edx, ecx
mov dword [rax + 4], ecx
mov dword [rax + 8], edx
mov dword [rax], r8d
mov r8d, dword [rax - 0x14]
xor r8d, edx
mov dword [rax + 0xc], r8d
movzx ecx, byte [rax + 0xf]
movzx r9d, byte [rcx + rbx]
movzx ecx, byte [rax + 0xe]
shl r9d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax + 0xd]
xor r9d, edx
shl r9d, 8
movzx edx, byte [rcx + rbx]
xor r9d, edx
movzx ecx, r8b
shl r9d, 8
movzx edx, byte [rcx + rbx]
mov ecx, dword [rax - 0xc]
xor r9d, edx
xor r9d, dword [rax - 0x10]
mov edx, dword [rax - 8]
xor ecx, r9d
xor edx, ecx
mov dword [rax + 0x10], r9d
mov dword [rax + 0x18], edx
xor edx, r11d
mov dword [rax + 0x1c], edx
mov dword [rax + 0x14], ecx
sub rsi, 1
jne 0x14004b770
jmp 0x14004b95b
lea rdi, [0x1400a2100]
mov r11d, 8
lea rbx, [0x14009ff00]
nop dword [rax]
nop word [rax + rax]
mov r10d, dword [rax + 0x14]
lea rax, [rax + 0x18]
movzx ecx, r10b
lea rdi, [rdi + 4]
movzx r9d, byte [rcx + rbx]
movzx ecx, byte [rax - 1]
shl r9d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 2]
xor r9d, edx
shl r9d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 3]
xor r9d, edx
shl r9d, 8
movzx edx, byte [rcx + rbx]
mov ecx, dword [rax - 0x14]
xor r9d, edx
xor r9d, dword [rax - 0x18]
xor r9d, dword [rdi - 4]
mov edx, dword [rax - 0x10]
xor ecx, r9d
xor edx, ecx
mov dword [rax + 4], ecx
mov ecx, dword [rax - 0xc]
xor ecx, edx
mov dword [rax + 8], edx
mov edx, dword [rax - 8]
xor edx, ecx
mov dword [rax], r9d
mov dword [rax + 0x10], edx
xor edx, r10d
mov dword [rax + 0x14], edx
mov dword [rax + 0xc], ecx
sub r11, 1
jne 0x14004b860
jmp 0x14004b95b
lea rdi, [0x1400a2100]
lea rbx, [0x14009ff00]
nop word [rax + rax]
mov r10d, dword [rax + 0xc]
lea rax, [rax + 0x10]
movzx ecx, r10b
lea rdi, [rdi + 4]
movzx r9d, byte [rcx + rbx]
movzx ecx, byte [rax - 1]
shl r9d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 2]
xor r9d, edx
shl r9d, 8
movzx edx, byte [rcx + rbx]
movzx ecx, byte [rax - 3]
xor r9d, edx
shl r9d, 8
movzx edx, byte [rcx + rbx]
mov ecx, dword [rax - 0xc]
xor r9d, edx
xor r9d, dword [rax - 0x10]
xor r9d, dword [rdi - 4]
mov edx, dword [rax - 8]
xor ecx, r9d
xor edx, ecx
mov dword [rax], r9d
xor r10d, edx
mov dword [rax + 4], ecx
mov dword [rax + 0xc], r10d
mov dword [rax + 8], edx
sub rbp, 1
jne 0x14004b8f0
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret