Function at 0x14009d6f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp], r8
mov qword [rbp + 8], rdx
mov qword [rbp + 0x10], rcx
mov ecx, dword [0x14021af98]
mov eax, dword [0x14021af9c]
xor eax, 0x4189e7
sub ecx, eax
and ecx, 0xc798dee8
xor ecx, 0xffffffff
mov eax, 0xffffffff
xor eax, 0x4a55ae3e
mov edx, 0xffffffff
xor edx, 0x9862b8a
or ecx, eax
mov eax, 0x5ed4e31e
xor eax, 0x5752c894
or eax, edx
xor ecx, 0xffffffff
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x999453c8
or ecx, 0x999453c8
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x63004b3d
xor ecx, 0x2a51b4b8
cmp eax, ecx
jae 0x14009dd47
mov eax, dword [0x14021afa0]
xor eax, 0x28f04575
mov edx, dword [0x14021afa4]
mov ecx, eax
and ecx, edx
add ecx, ecx
add eax, edx
sub eax, ecx
imul eax, eax, 0x71236af
or eax, 0xfe5ebdca
mov dword [rbp - 0x1c], eax
mov eax, 0x10
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.14009cbcd
mov rcx, qword [rbp]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x1c]
mov qword [rbp - 0x18], rdx
mov rcx, qword [rcx]
mov qword [rbp - 0x10], rcx
cmp rcx, 0
setg cl
mov byte [rbp - 1], cl
cmp eax, 0xc09aaf45
jb 0x14009d781
mov al, byte [rbp - 1]
test al, 1
jne 0x14009d805
jmp 0x14009da26
mov rax, qword [rbp - 0x18]
cmp byte [rax], 0
jne 0x14009dd40
mov r11d, dword [0x14021afa8]
mov r10d, dword [0x14021afac]
mov eax, r11d
xor eax, 0xffffffff
mov edx, r10d
xor edx, 0xffffffff
mov r8d, 0x3256d4e5
xor r8d, 0x45b2f1f
mov ecx, 0xc281ac4f
xor ecx, 0x3d7e53b0
xor r8d, ecx
mov ecx, eax
and ecx, 0x360dfbfa
and r11d, r8d
mov esi, 0x2b8811f7
xor esi, 0x1d85ea0d
mov r9d, edx
and r9d, esi
and r10d, r8d
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, edx
xor eax, 0xffffffff
mov edx, 0xcbef3967
xor edx, 0xfde2c29d
or edx, r8d
and eax, edx
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xadafcb87
and eax, edx
mov edx, 0x9d708ca5
xor edx, 0x30df4722
or ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
or eax, 0xf029bcc9
mov r8d, 0x2ab9b08e
xor r8d, 0x6dd01754
mov ecx, 0xaf3b3391
xor ecx, 0x50c4cc6e
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0x1af30bd2
xor r8d, 0x5d9aac08
mov edx, eax
and edx, r8d
or eax, 0x4769a7da
imul eax, edx
add eax, ecx
mov ecx, 0xe87f455f
xor ecx, 0xe6b6667b
cmp eax, ecx
jbe 0x14009dd50
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp]
mov eax, dword [0x14021afb0]
mov r8d, dword [0x14021afb4]
mov r9d, 0x6aadb55e
xor r9d, 0x36a5dc06
xor r8d, r9d
or eax, r8d
sub eax, 0xb1f0cde6
mov r8d, 0x745bcb40
xor r8d, 0x8ba434bf
mov r9d, eax
xor r9d, r8d
mov r8d, 0x53fe59af
xor r8d, 0x8cd5a99f
and r8d, r9d
mov r9d, 0xffffffff
xor r9d, 0xdf2bf030
and eax, r9d
or r8d, eax
mov eax, r8d
xor eax, 0xffffffff
mov r9d, 0x88e99a6a
xor r9d, 0xcff33934
mov r10d, 0xd8274192
xor r10d, 0x27d8be6d
xor r9d, r10d
and eax, r9d
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x471aa35e
and r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
mov rcx, qword [rcx + 8]
movabs r8, 0xcebffd739b5d0c1e
movabs r9, 0xcebffd739b5d0c1e
xor r8, r9
sub r8, rdx
xor edx, edx
sub rdx, 0xffffffffffffffff
add r8, rdx
xor edx, edx
sub rdx, r8
mov cl, byte [rcx + rdx + 8]
cmp cl, 0x5c
sete r8b
cmp cl, 0x2f
sete dl
mov cl, r8b
xor cl, 0xff
xor r8b, 0xff
or cl, r8b
and dl, dl
xor dl, 0xff
xor cl, 0xff
xor dl, 0xff
or cl, dl
mov byte [rbp - 0x29], cl
cmp eax, 0x5cbd05bf
jbe 0x14009dd50
mov al, byte [rbp - 0x29]
mov byte [rbp - 0x2a], al
jmp 0x14009dbd3
mov rcx, qword [rbp - 0x10]
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x2a], al
jne 0x14009dbd3
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x38], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x2a], al
jle 0x14009dbd3
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp + 0x10]
mov rdx, rcx
add rdx, 8
mov qword [rbp - 0x50], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x48], rcx
cmp rcx, 0
mov qword [rbp - 0x40], rax
je 0x14009dae4
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rcx]
mov r8, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
movabs rdx, 0x1d3f216923af7f6e
movabs r8, 0x1d3f216923af7f6e
xor rdx, r8
cmp rcx, rdx
mov qword [rbp - 0x40], rax
je 0x14009dae4
mov rcx, qword [rbp + 0x10]
sub rsp, 0x20
call fcn.140016f90
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp - 0x40]
mov qword [rbp - 0x60], rdx
movabs rax, 0xc573132f278168e
movabs rcx, 0xf3a8cecd0d87e971
xor rax, rcx
mov rcx, rdx
and rcx, rax
shl rcx, 1
mov rax, rdx
xor rax, 0xffffffffffffffff
add rax, rcx
mov qword [rbp - 0x58], rax
mov rcx, rax
xor rcx, rdx
movabs rdx, 0x7e0253691ed0ae57
movabs r8, 0x7e0253691ed0ae57
xor rdx, r8
cmp rcx, rdx
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14009db54
jmp 0x14009db66
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x14009dba3
mov rax, qword [rbp - 0x60]
cmp rax, 0
jg 0x14009db8d
mov rdx, qword [rbp - 0x58]
sub rsp, 0x20
mov rcx, rdx
call fcn.1400153d3
add rsp, 0x20
jmp 0x14009dba3
mov rcx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x50]
mov rax, qword [rax]
add rax, 8
add rax, rcx
mov qword [rbp - 0x68], rax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x68]
mov qword [rbp - 0x70], rcx
cmp byte [rax], 0
jne 0x14009dd40
mov rax, qword [rbp - 0x70]
mov cl, byte [rax]
cmp cl, 0x5c
sete al
mov dl, 0x6a
xor dl, 0x45
cmp cl, dl
sete cl
or al, cl
mov byte [rbp - 0x2a], al
mov rcx, qword [rbp + 0x10]
mov al, byte [rbp - 0x2a]
mov byte [rbp - 0x71], al
xor edx, edx
sub rsp, 0x20
call fcn.14009b686
mov rax, qword [rbp - 0x18]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14009dd40
mov r8, qword [rbp + 8]
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp]
mov r9, qword [rax]
mov qword [rcx], r9
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
mov r9d, 0x5c
sub rsp, 0x20
call fcn.140098170
mov rax, qword [rbp - 0x18]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14009dd40
mov eax, dword [0x14021afb8]
sub eax, dword [0x14021afbc]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x8ffccb3e
xor edx, 0x8bb7abb1
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x44b608f
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x44b608f
or eax, 0x44b608f
imul eax, edx
add eax, ecx
xor ecx, ecx
sub ecx, 0xaad559e8
add eax, ecx
mov ecx, 0x92301e49
xor ecx, 0x1ee4be02
add eax, ecx
cmp eax, 0x8f19ab95
jb 0x14009dd59
mov rcx, qword [rbp + 0x10]
mov dl, byte [rbp - 0x71]
mov eax, dword [0x14021afc0]
mov r10d, dword [0x14021afc4]
mov r9d, r10d
xor r9d, 0xffffffff
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, r10d
add eax, r9d
sub eax, r8d
mov r8d, 0x9e2c730a
xor r8d, 0xa5af9104
add eax, r8d
mov r8d, eax
xor r8d, 0xc0d33f2e
mov r9d, 0xfc66e94a
xor r9d, 0x39916b5
xor r8d, r9d
mov r9d, 0x5ff16e7d
xor r9d, 0x9f225153
or eax, r9d
and eax, r8d
sub eax, 0xe114ae74
mov dword [rbp - 0x78], eax
mov eax, 0xc7dad547
xor eax, 0x8766cf05
mov dword [rbp - 0x7c], eax
and dl, 1
sub rsp, 0x20
call fcn.14009b686
mov ecx, dword [rbp - 0x7c]
mov eax, dword [rbp - 0x78]
add rsp, 0x20
cmp eax, ecx
ja 0x14009dd59
jmp 0x14009dd40
lea rsp, [rbp + 0x18]
pop rsi
pop rbp
ret
in eax, 0x16
add cl, byte [rcx + rbp*8 - 0x5cf]
mov ecx, gs
xor edx, edi
invalid
xor edi, dword [rcx + 0x4d]
push 0xfffffffffffbb6e9
dec dword [rdi + 0x3a]
jne 0x14009dd4a
cmp r14b, byte [r13 - 0x13]
jmp 0x14009dc9e