Function at 0x1400508b0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x138
mov qword [rsp + 0xe8], rcx
call fcn.1400476b5
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x128], 0
lea rax, [rsp + 0x128]
add rax, 8
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x130], 0
mov rcx, qword [rcx]
mov edx, 2
lea r8, [rsp + 0x120]
call fcn.14004847c
test al, 1
jne 0x140050922
jmp 0x14005092c
call fcn.1400077a3
jmp 0x1400510bd
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0xe0], rax
cmp rax, 0
jge 0x140050966
mov rcx, qword [rsp + 0xe0]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000d167
jmp 0x1400510bd
mov rdx, qword [rsp + 0xe0]
lea rcx, [rsp + 0x128]
call fcn.140024c50
mov r8, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xf8]
mov rdx, qword [r8]
mov qword [rsp + 0xc0], rdx
mov rcx, r8
add rcx, 8
mov qword [rsp + 0xc8], rcx
mov rcx, qword [r8 + 8]
mov r9, qword [rsp + 0x128]
mov qword [r8], r9
mov r9, qword [rsp + 0x130]
mov qword [r8 + 8], r9
mov qword [rsp + 0x128], rdx
mov qword [rax], rcx
lea rax, [rsp + 0x110]
add rax, 8
mov qword [rsp + 0xd0], rax
xor eax, eax
mov qword [rsp + 0xd8], rax
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0xb8], rax
cmp rax, rcx
jge 0x140051090
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
setns al
mov rdx, qword [rsp + 0x128]
mov qword [rsp + 0xb0], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140050a70
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
movabs rax, 0x4d6c92dcbb767826
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x4d6c92dcbb767826
sub rdx, rax
call fcn.140013580
jmp 0x1400510bd
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xf8]
mov rcx, qword [rcx]
shl rdx, 5
mov rcx, qword [rcx + rdx + 8]
mov qword [rsp + 0xa0], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rsp + 0xaf], al
or al, cl
test al, 1
jne 0x140050ea3
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax]
mov rax, rcx
and rax, 0xffffffffffffffff
movabs r8, 0x42255d6d74dd6be6
movabs r9, 0x42255d6d74dd6be4
xor r8, r9
imul rax, r8
movabs r8, 0x697c04b11c673591
movabs r9, 0x9683fb4ee398ca6e
xor r8, r9
xor rcx, r8
add rcx, rax
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, rdx
and rax, rcx
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov eax, dword [0x1401d75a0]
xor eax, 0x955553e2
mov r8d, dword [0x1401d75a4]
mov edx, 0xd03cb514
xor edx, 0x2fc34aeb
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
xor eax, 0xa311aa21
mov ecx, 0x1437d041
xor ecx, 0x1437d041
sub ecx, eax
xor eax, eax
sub eax, 0xb8d9fab9
add ecx, eax
xor eax, eax
sub eax, ecx
imul eax, eax, 0x918de769
cmp eax, 0x72b77bd2
jb 0x1400510c6
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xe8]
mov eax, dword [0x1401d75a8]
mov ecx, dword [0x1401d75ac]
xor ecx, 0x4002021d
and eax, ecx
or eax, 0x2ddce880
imul rax, rax, 0x728f0b27
shr rax, 0x3b
add eax, 0xc973adab
test rdx, rdx
setns cl
mov r8, qword [r8]
mov qword [rsp + 0x80], r8
sub rdx, r8
setl dl
and cl, dl
mov byte [rsp + 0x8f], cl
cmp eax, 0xa569ff5d
jb 0x140050ba3
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x140050c5d
jmp 0x140050c1b
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x80]
movabs r8, 0xd4db9fc38ae936a2
movabs rax, 0x2b24603c7516c95d
xor r8, rax
mov rax, rdx
and rax, r8
shl rax, 1
xor rdx, 0xffffffffffffffff
add rdx, rax
call fcn.140013580
jmp 0x1400510bd
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
shl rcx, 5
add rax, rcx
cmp qword [rax], 0
je 0x140050ce3
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x80]
movabs rax, 0x9ced02b3adf69737
movabs r8, 0x2d3fc83842528aec
xor rax, r8
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0xb1d2ca8befa41ddb
sub rdx, rax
call fcn.140048560
mov rcx, qword [rsp + 0xf0]
cmp byte [rcx], 0
mov qword [rsp + 0x98], rax
je 0x140050b21
jmp 0x1400510bd
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x78], rcx
cmp rax, rcx
jl 0x140050d36
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x78]
movabs rax, 0xcc109c8848122681
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0xcc109c8848122681
sub rdx, rax
call fcn.140013580
jmp 0x1400510bd
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xf8]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x68], rax
call fcn.140010510
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x70], rcx
cmp rax, rcx
jl 0x140050dc7
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x70]
movabs r8, 0x3f0a8ae166653cad
movabs rdx, 0xc0f5751e999ac352
xor r8, rdx
mov rdx, rax
and rdx, r8
or rax, 0xffffffffffffffff
add rdx, rax
call fcn.140013580
jmp 0x1400510bd
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xf8]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
add rcx, 0x18
mov rax, qword [rcx]
mov qword [rsp + 0x58], rax
call fcn.14012226a
mov rax, qword [rsp + 0xf0]
cmp byte [rax], 0
jne 0x1400510bd
mov rax, qword [rsp + 0x90]
mov r10, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
mov qword [rsp + 0x110], r11
mov qword [rcx], r8
lea r8, [rsp + 0x110]
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.140050390
mov rax, qword [rsp + 0xf0]
cmp byte [rax], 0
jne 0x1400510bd
mov rax, qword [rsp + 0x68]
cmp rax, 0
je 0x140050ecb
mov rcx, qword [rsp + 0x68]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140050ecb
mov rcx, qword [rsp + 0x68]
call fcn.14000eb2e
jmp 0x140050ecb
mov rcx, qword [rsp + 0xb8]
mov dl, byte [rsp + 0xaf]
xor eax, eax
test dl, 1
mov qword [rsp + 0x48], rcx
mov byte [rsp + 0x57], al
jne 0x140050f68
jmp 0x140050ecb
mov rdx, qword [rsp + 0xb8]
mov rcx, rdx
add rcx, 1
mov rax, rdx
xor rax, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
and rax, 0xffffffffffffffff
movabs r8, 0x26ad2dbe6805c932
movabs r9, 0xd952d24197fa36cd
xor r8, r9
xor rax, r8
mov r8, 0xffffffffffffffff
and r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
movabs r8, 0xaf41fff5bd671e52
movabs r9, 0x50be000a4298e1ad
xor r8, r9
xor rdx, r8
and rax, rdx
xor rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
mov rdx, rcx
xor rdx, rax
and rdx, rcx
mov al, 1
cmp rdx, 0
mov qword [rsp + 0x48], rcx
mov byte [rsp + 0x57], al
jge 0x140050f68
call fcn.1400077a3
jmp 0x1400510bd
mov rax, qword [rsp + 0x48]
mov cl, byte [rsp + 0x57]
mov byte [rsp + 0x3f], cl
mov qword [rsp + 0x40], rax
mov ecx, dword [0x1401d75b0]
mov edx, dword [0x1401d75b4]
mov eax, 0xf5adb35d
xor eax, 0x2d141ee6
xor edx, eax
mov eax, edx
and eax, ecx
mov r8d, 0x53066da0
xor r8d, 0xacf9925f
xor eax, r8d
add ecx, edx
mov edx, 0xac80a81a
xor edx, 0xac80a81b
add ecx, edx
add ecx, eax
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov edx, 0x6c9b4d92
or edx, 0x6c9b4d92
xor edx, 0xffffffff
or eax, edx
mov edx, 0xad1850c7
xor edx, 0x52e7af38
xor eax, edx
mov edx, 0x288d9530
xor edx, 0xd7726acf
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x6c9b4d92
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xf0196207
xor ecx, 0x97e5cae3
imul eax, ecx
mov ecx, 0x2b965a82
xor edx, edx
div ecx
cmp eax, 0xc15bac06
ja 0x1400510cf
mov ecx, dword [0x1401d75b8]
mov eax, dword [0x1401d75bc]
xor eax, 0x402dbc27
imul ecx, eax
mov edx, 0x3f773e14
xor edx, 0xdf55fc71
mov eax, ecx
and eax, edx
or ecx, 0xe022c265
add eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x64be0242
mov edx, 0xffffffff
xor edx, 0x64be0242
and eax, edx
sub eax, ecx
add eax, 0xd4208117
cmp eax, 0x37e34eb
jbe 0x1400510cf
mov rax, qword [rsp + 0x40]
mov cl, byte [rsp + 0x3f]
test cl, 1
mov qword [rsp + 0xd8], rax
jne 0x1400509e9
jmp 0x1400510bd
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x108], rax
lea rcx, [rsp + 0x100]
call fcn.14004ef40
nop
add rsp, 0x138
ret
adc dword [rcx - 0x2b162b66], ebp
cli
invalid
out dx, al
push r13
invalid