Function at 0x18022ec60
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
mov eax, 0xc8
call fcn.18014c9d0
sub rsp, rax
mov rax, qword [0x1803b0b00]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, qword [rsp + 0x118]
mov r12, qword [rsp + 0x128]
mov rdi, rcx
mov rcx, rsi
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x40], r8
mov ebx, edx
mov dword [rsp + 0x34], 1
call fcn.180194c30
mov dword [rsp + 0x38], eax
test eax, eax
jns 0x18022ecc3
xor eax, eax
jmp 0x18022ef16
mov qword [rsp + 0xc0], rbp
call fcn.18025bbc0
mov rbp, rax
test rax, rax
je 0x18022ef0e
mov qword [rsp + 0xb0], r14
mov r14d, dword [rsp + 0x120]
test rdi, rdi
jne 0x18022ecfc
lea rdi, [0x180364c6e]
xor ebx, ebx
jmp 0x18022ed26
cmp ebx, 0xffffffff
jne 0x18022ed26
xor ebx, ebx
mov rax, rdi
cmp byte [rdi], bl
je 0x18022ed22
nop word [rax + rax]
cmp ebx, 0x80000000
jae 0x18022ed22
inc rax
inc ebx
cmp byte [rax], 0
jne 0x18022ed10
btr ebx, 0x1f
mov r9, rsi
mov r8d, ebx
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x20], 0
call fcn.18025b5f0
test eax, eax
je 0x18022ed51
call fcn.18025bbc0
mov rbx, rax
test rax, rax
jne 0x18022ed60
mov rcx, rbp
call fcn.18025b930
xor eax, eax
jmp 0x18022ef06
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xa8], r15
test r14d, r14d
je 0x18022eee1
mov r13d, dword [rsp + 0x110]
mov ecx, dword [rsp + 0x34]
nop word [rax + rax]
mov eax, dword [rsp + 0x38]
mov byte [rsp + 0x33], cl
mov r15d, r14d
cmp r14d, eax
mov rdx, rbp
cmovg r15d, eax
mov eax, ecx
shr eax, 0x18
mov byte [rsp + 0x30], al
mov eax, ecx
shr eax, 0x10
mov byte [rsp + 0x31], al
mov eax, ecx
mov rcx, rbx
shr eax, 8
mov byte [rsp + 0x32], al
call fcn.18025baa0
mov rcx, rbx
test eax, eax
je 0x18022ef36
movsxd r8, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x40]
call fcn.18025b850
test eax, eax
je 0x18022ef33
lea rdx, [rsp + 0x30]
mov r8d, 4
mov rcx, rbx
call fcn.18025b850
test eax, eax
je 0x18022ef33
lea rdx, [rsp + 0x50]
xor r8d, r8d
mov rcx, rbx
call fcn.18025b880
test eax, eax
je 0x18022ef33
mov rcx, rbx
call fcn.18025b9b0
movsxd rsi, r15d
lea rdx, [rsp + 0x50]
mov r8, rsi
mov rcx, r12
call fcn.180147850
mov edi, 1
cmp r13d, edi
jle 0x18022eecb
nop word [rax + rax]
mov rdx, rbp
mov rcx, rbx
call fcn.18025baa0
mov rcx, rbx
test eax, eax
je 0x18022ef36
movsxd r8, dword [rsp + 0x38]
lea rdx, [rsp + 0x50]
call fcn.18025b850
test eax, eax
je 0x18022ef33
lea rdx, [rsp + 0x50]
xor r8d, r8d
mov rcx, rbx
call fcn.18025b880
test eax, eax
je 0x18022ef33
mov rcx, rbx
call fcn.18025b9b0
test r15d, r15d
jle 0x18022eec0
lea r8, [rsp + 0x50]
mov rcx, r12
mov rdx, rsi
sub r8, r12
movzx eax, byte [r8 + rcx]
inc rcx
xor byte [rcx - 1], al
dec rdx
jne 0x18022eeb0
inc edi
cmp edi, r13d
jl 0x18022ee50
mov ecx, dword [rsp + 0x34]
add r12, rsi
inc ecx
sub r14d, r15d
mov dword [rsp + 0x34], ecx
jne 0x18022ed90
mov rcx, rbx
call fcn.18025b930
mov rcx, rbp
call fcn.18025b930
mov eax, 1
mov r13, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.180146c80
add rsp, 0xc8
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, rbx
call fcn.18025b930
mov rcx, rbp
call fcn.18025b930
xor eax, eax
jmp 0x18022eef6