Function at 0x140020a00
Capabilities:
Encode data using xor

Disassembly:
test rdx, rdx
je 0x140020d42
push rbp
push rdi
sub rsp, 0x28
test rcx, rcx
mov rbp, rdx
mov rdi, rcx
je 0x140020a24
cmp qword [rcx + 0x2c0], 0
jne 0x140020a30
add word [rdx + 0x38], 0xffff
jne 0x140020d3c
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
mov rsi, qword [rdx + 0x10]
test rsi, rsi
je 0x140020b87
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x20], r14
lea r14, [0x1400ab830]
mov qword [rsp + 0x50], r12
nop
test rdi, rdi
mov r13, qword [rsi + 0x28]
je 0x140020a77
cmp qword [rdi + 0x2c0], 0
jne 0x140020b61
mov rbx, qword [rsi + 0x30]
mov r11, qword [rsi]
mov r9, qword [rbx + 0x30]
test r9, r9
je 0x140020acc
movzx ecx, byte [r11]
xor eax, eax
mov r8, r11
test cl, cl
je 0x140020ab2
movzx ecx, cl
add r8, 1
movzx edx, byte [rcx + r14]
lea ecx, [rax*8]
xor edx, ecx
mov cl, byte [r8]
xor eax, edx
test cl, cl
jne 0x140020a94
xor edx, edx
div dword [rbx + 0x20]
mov eax, edx
mov r12d, edx
shl rax, 4
add rax, r9
mov r9, qword [rax + 8]
mov r10d, dword [rax]
jmp 0x140020ad7
mov r9, qword [rbx + 0x28]
mov r10d, dword [rbx + 0x24]
xor r12d, r12d
test r10d, r10d
je 0x140020b61
mov rdx, qword [r9 + 0x18]
sub r10d, 1
test rdx, rdx
jne 0x140020af7
mov rax, r11
neg rax
sbb edx, edx
jmp 0x140020b44
test r11, r11
je 0x140020b48
movzx eax, byte [rdx]
mov r8, r11
test al, al
je 0x140020b31
nop
nop
nop
movzx ecx, al
movzx eax, byte [r8]
movzx eax, byte [rax + r14]
cmp byte [rcx + r14], al
jne 0x140020b31
mov al, byte [rdx + 1]
add rdx, 1
add r8, 1
test al, al
jne 0x140020b10
movzx eax, byte [r8]
movzx ecx, byte [rax + r14]
movzx eax, byte [rdx]
movzx edx, byte [rax + r14]
sub edx, ecx
test edx, edx
je 0x140020b52
test r10d, r10d
mov r9, qword [r9]
jne 0x140020ae0
jmp 0x140020b61
lea rcx, [rbx + 0x20]
mov r8d, r12d
mov rdx, r9
call fcn.140012ef0
mov rdx, rsi
mov rcx, rdi
call fcn.140018060
test r13, r13
mov rsi, r13
jne 0x140020a60
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov rdx, rbp
mov rcx, rdi
call fcn.14001bf70
mov rdx, rbp
mov rcx, rdi
call fcn.140017be0
mov rbx, qword [rbp]
mov rsi, qword [rsp + 0x48]
test rbx, rbx
je 0x140020c23
test rdi, rdi
je 0x140020bc7
cmp qword [rdi + 0x2c0], 0
je 0x140020bc7
mov rdx, rbx
mov rcx, rdi
call fcn.140011800
jmp 0x140020c23
cmp dword [0x1400bf010], 0
je 0x140020c1a
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020be2
call qword [0x1400bf098]
mov rcx, rbx
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
movsxd rcx, eax
sub qword [0x1400c4fd0], rcx
mov rcx, rbx
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020c23
call qword [0x1400bf0a8]
jmp 0x140020c23
mov rcx, rbx
call qword [0x1400bf040]
mov rbx, qword [rbp + 0x28]
test rbx, rbx
je 0x140020ca4
test rdi, rdi
je 0x140020c48
cmp qword [rdi + 0x2c0], 0
je 0x140020c48
mov rdx, rbx
mov rcx, rdi
call fcn.140011800
jmp 0x140020ca4
cmp dword [0x1400bf010], 0
je 0x140020c9b
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020c63
call qword [0x1400bf098]
mov rcx, rbx
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
movsxd rcx, eax
sub qword [0x1400c4fd0], rcx
mov rcx, rbx
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020ca4
call qword [0x1400bf0a8]
jmp 0x140020ca4
mov rcx, rbx
call qword [0x1400bf040]
mov rdx, qword [rbp + 0x18]
mov r8d, 1
mov rcx, rdi
call fcn.14001b8c0
test rdi, rdi
mov rbx, qword [rsp + 0x40]
je 0x140020cdb
cmp qword [rdi + 0x2c0], 0
je 0x140020cdb
mov rdx, rbp
mov rcx, rdi
add rsp, 0x28
pop rdi
pop rbp
jmp fcn.140011800
cmp dword [0x1400bf010], 0
je 0x140020d33
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020cf6
call qword [0x1400bf098]
mov rcx, rbp
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
movsxd rcx, eax
sub qword [0x1400c4fd0], rcx
mov rcx, rbp
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140020d3c
add rsp, 0x28
pop rdi
pop rbp
jmp qword [0x1400bf0a8]
mov rcx, rbp
call qword [0x1400bf040]
add rsp, 0x28
pop rdi
pop rbp
ret 0