Function at 0x14009db20
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov eax, dword [0x140245bf8]
mov ecx, 0x3d970c9d
xor ecx, 0x97e76942
xor eax, ecx
mov r8d, dword [0x140245bfc]
xor r8d, 0x741d159d
mov edx, r8d
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov ecx, 0xefb82a00
xor edx, edx
div ecx
mov edx, eax
sub edx, 0xa8aeed11
add edx, 0x5d29258a
add edx, 0xa8aeed11
mov ecx, edx
xor ecx, 0xbd4645db
mov eax, 0x958d2250
xor eax, 0x28cb678b
mov r8d, 0x91cd9a4c
xor r8d, 0x6e3265b3
xor eax, r8d
and edx, eax
mov eax, 0xe0d30ba
xor eax, 0xe0d30b8
imul eax, edx
sub eax, ecx
mov ecx, 0x20d6dff1
xor ecx, 0x2557a2f4
cmp eax, ecx
jb 0x14009df52
mov eax, dword [0x140245c00]
mov edx, dword [0x140245c04]
xor edx, 0xae894950
mov ecx, eax
and ecx, edx
add ecx, ecx
add eax, edx
sub eax, ecx
xor eax, 0x6e4c63ee
mov dword [rbp - 0x14], eax
mov eax, 0xb1756db
mov dword [rbp - 0x18], eax
mov eax, 0x10
mov qword [rbp - 0x38], rax
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x28], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x30], rax
sub rsp, 0x20
call fcn.140099db0
mov rdx, qword [rbp - 0x28]
add rsp, 0x20
mov qword [rbp - 0x20], rax
mov rcx, qword [0x14026bfb8]
add rcx, 0x58
mov rax, qword [0x1402586c0]
mov qword [rdx], rax
mov rax, qword [0x1402586c8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140013d6a
add rsp, 0x20
mov ecx, 0xc06
sub rsp, 0x20
call fcn.140067b58
mov rdx, qword [rbp - 0x20]
mov ecx, dword [rbp - 0x18]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0x14]
mov qword [rbp - 0x10], r8
cmp byte [rdx], 0
sete dl
mov byte [rbp - 1], dl
cmp eax, ecx
jb 0x14009dbc1
mov al, byte [rbp - 1]
test al, 1
jne 0x14009dc9e
jmp 0x14009df4d
mov rdx, qword [rbp - 0x10]
mov rcx, qword [0x14026bfb8]
sub rsp, 0x20
call fcn.14003444d
mov rax, qword [rbp - 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14009df4d
mov ecx, 8
mov edx, 4
sub rsp, 0x20
call fcn.1400129fd
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
mov rdx, rax
mov qword [rbp - 0x50], rdx
mov dword [rdx + 4], 1
sub rsp, 0x20
call fcn.14006d260
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x48], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x40], rcx
cmp byte [rax], 0
jne 0x14009de8f
mov rax, qword [rbp - 0x48]
mov rcx, 0xffffffffffffffff
xor rcx, 0xffffffff80000000
movabs rdx, 0x56e325eef6c4b525
movabs r8, 0x56e325eef6c4b525
xor rdx, r8
movabs r8, 0x9f1ed6909cb21c3
movabs r9, 0x9f1ed6909cb21c2
xor r8, r9
sub rdx, r8
sub rcx, rdx
sub rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14009ddb9
mov rcx, qword [rbp - 0x48]
movabs rdx, 0x182af12e6087f34
movabs rax, 0xfe7d50ed66087f34
xor rdx, rax
movabs r8, 0x5d5d401cc5e7543
movabs rax, 0x5d5d401b3a18abc
xor r8, rax
sub rsp, 0x20
call fcn.14000db87
add rsp, 0x20
jmp 0x14009de8f
mov rax, qword [rbp - 0x48]
movabs rcx, 0x764f5ada0fba7289
movabs rdx, 0x764f5ada0fba7288
xor rcx, rdx
cmp rax, rcx
jge 0x14009de22
mov rdx, qword [rbp - 0x48]
movabs rax, 0x313b226273e3ef3
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x710e66e0306c068a
movabs rcx, 0x721dd4c617523879
xor rax, rcx
add rdx, rax
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.140012b72
add rsp, 0x20
jmp 0x14009de8f
mov r10, qword [rbp - 0x40]
mov rax, qword [rbp - 0x48]
mov r11d, eax
mov rcx, qword [0x14026bfb8]
add r10, 8
mov rax, qword [0x14025a9c8]
mov r8, qword [rax + 8]
mov rax, r8
add rax, 8
xor edx, edx
cmp r8, 0
cmove rax, rdx
mov edx, 0xfffffffd
xor r9d, r9d
xor r8d, r8d
sub rsp, 0x50
mov r8d, r9d
mov dword [rsp + 0x20], r11d
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x48], 0
call fcn.14009c5e0
add rsp, 0x50
mov rcx, qword [rbp - 0x50]
sub rsp, 0x20
call fcn.14008cad1
mov rax, qword [rbp - 0x40]
add rsp, 0x20
cmp rax, 0
je 0x14009df4d
mov rax, qword [rbp - 0x40]
mov rax, qword [rax]
xor rax, 0xffffffffffffffff
movabs rdx, 0xe3e5b53918388a72
movabs rcx, 0xa3e5b53918388a72
xor rdx, rcx
movabs rcx, 0x3448f368d9bf5f4c
movabs r8, 0xcbb70c972640a0b3
xor rcx, r8
xor rdx, rcx
movabs rcx, 0x681d3705287c91ca
movabs r8, 0xb831e96cdce6e9ba
xor rcx, r8
movabs r8, 0xb3d651fb0781a3a8
movabs r9, 0x4c29ae04f87e5c57
xor r8, r9
xor rcx, r8
or rax, rdx
movabs rdx, 0xd02cde69f49a7870
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jne 0x14009df4d
mov rcx, qword [rbp - 0x40]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
ror byte [r8 - 0x7d], 0xec
and al, ch
xchg esi, eax
adc eax, 0x8348fff7
invalid
mov rsp, rbp
pop rbp
ret
jge 0x14009df3e
test al, 0x4a
jmp 0x14009dbc1