Function at 0x14009cdd0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xf0
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x30], rdx
mov dword [rbp - 0xc], ecx
mov eax, 0x10
mov qword [rbp - 0x28], rax
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x20], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
sub rsp, 0x20
call fcn.14009d45f
mov edx, dword [rbp - 0xc]
add rsp, 0x20
mov qword [rbp], rax
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x58], 0
lea rax, [rbp + 0x58]
add rax, 8
mov qword [rbp - 8], rax
mov qword [rbp + 0x60], 0
lea rcx, [rbp + 0x48]
sub rsp, 0x20
call fcn.1400404b9
mov rcx, qword [rbp]
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov qword [rbp + 8], rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x10], rax
xor eax, eax
cmp byte [rcx], 0
mov rcx, rax
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14009d195
mov rdx, qword [rbp + 8]
add rdx, 8
lea rcx, [rbp + 0x58]
sub rsp, 0x20
call fcn.1400197e0
add rsp, 0x20
lea rcx, [rbp + 0x58]
lea rdx, [0x1401dbc50]
sub rsp, 0x20
call fcn.14009d480
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp - 0x20]
add rsp, 0x20
mov qword [rdx], rcx
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x58]
sub rsp, 0x20
call fcn.14009d480
add rsp, 0x20
lea rcx, [rbp + 0x58]
lea rdx, [0x1401dbc60]
sub rsp, 0x20
call fcn.14009d480
mov rcx, qword [rbp - 8]
mov eax, dword [rbp - 0xc]
add rsp, 0x20
mov rcx, qword [rcx]
mov qword [rbp - 0x38], rcx
cmp eax, 0xc0000022
jne 0x14009cf82
movabs rcx, 0xa4b2e6a95edc3611
movabs rax, 0xa4b2e6a95edc3659
xor rcx, rax
movabs rdx, 0xb437f07324bc4b27
movabs rax, 0xb437f07324bc4b2f
xor rdx, rax
sub rsp, 0x20
call fcn.14001217d
add rsp, 0x20
mov rcx, qword [0x1401dd748]
mov qword [rax], rcx
lea rcx, [0x1401dbc70]
mov qword [rax + 0x10], rcx
mov rcx, qword [0x1401dbc88]
mov qword [rax + 0x18], rcx
mov rcx, qword [0x1401dbc90]
mov qword [rax + 0x20], rcx
mov qword [rax + 8], 0
mov qword [rbp - 0x40], rax
jmp 0x14009d079
mov rax, qword [rbp + 0x58]
mov qword [rbp - 0x50], rax
mov ecx, 0x48
mov edx, 8
sub rsp, 0x20
call fcn.14001217d
mov rdx, qword [rbp - 0x50]
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x30]
mov qword [rbp - 0x48], rcx
mov r8, qword [0x1401dd700]
mov qword [rcx], r8
lea r8, [0x1401dbc98]
mov qword [rcx + 0x10], r8
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov rax, qword [rax]
xor ecx, ecx
sub rcx, 1
sub rdx, rcx
add rdx, rax
lea rcx, [rbp + 0x38]
sub rsp, 0x20
call fcn.1400197e0
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x38]
add rsp, 0x20
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x30], rax
lea rcx, [rbp + 0x38]
lea rdx, [rbp + 0x28]
sub rsp, 0x20
call fcn.14009d480
add rsp, 0x20
lea rcx, [rbp + 0x38]
lea rdx, [0x1401dbca0]
sub rsp, 0x20
call fcn.14009d480
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x18]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x38]
sub rsp, 0x20
call fcn.14009d480
mov rax, qword [rbp - 0x48]
add rsp, 0x20
mov rcx, qword [rbp + 0x38]
mov qword [rax + 0x18], rcx
mov rcx, qword [rbp + 0x40]
mov qword [rax + 0x20], rcx
mov qword [rax + 8], 0
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x60], rax
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x68]
sub rsp, 0x20
call fcn.14005e71c
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x38]
add rsp, 0x20
mov dl, byte [rcx]
mov r8b, 0x32
xor r8b, 0x32
mov rcx, qword [rbp + 0x68]
mov qword [rbp - 0x58], rcx
cmp dl, r8b
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14009d195
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14005e724
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x60]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 0x68], rax
jne 0x14009d443
mov rax, qword [rbp + 0x10]
cmp rax, 0
je 0x14009d13e
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
movabs rdx, 0xfb5b7648b7bf01f6
movabs r8, 0xbb5b7648b7bf01f6
xor rdx, r8
or rax, rdx
add rax, rcx
cmp rax, 0
jne 0x14009d13e
mov rcx, qword [rbp + 0x10]
sub rsp, 0x20
call fcn.14000e572
add rsp, 0x20
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x38]
cmp rcx, 0
mov qword [rbp - 0x68], rax
je 0x14009d443
mov rax, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x38]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov qword [rbp - 0x68], rax
jne 0x14009d443
mov rcx, qword [rbp - 0x38]
sub rsp, 0x20
call fcn.14000e572
mov rax, qword [rbp - 0x60]
add rsp, 0x20
mov qword [rbp - 0x68], rax
jmp 0x14009d443
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x20]
mov qword [rbp - 0x70], rdx
mov byte [rax], 0
sub rsp, 0x20
call fcn.14005e724
mov rcx, qword [rbp]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov qword [rbp - 0x68], rax
jne 0x14009d443
mov rax, qword [rbp + 0x10]
cmp rax, 0
je 0x14009d300
mov rcx, qword [rbp + 0x10]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0x58c9e12135f5612f
movabs rdx, 0x58c9e12135f5612f
xor rcx, rdx
cmp rax, rcx
jne 0x14009d300
mov eax, dword [0x1401cc7e0]
xor eax, 0xa6bf7580
xor edx, edx
div dword [0x1401cc7e4]
imul eax, eax, 0xca9e0ed1
mov edx, 0xffffffff
xor edx, 0xec91d3e6
mov ecx, eax
and ecx, edx
mov r8d, 0xa6687c97
xor r8d, 0x4af9af71
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
add eax, 0xb3e938f0
add eax, 0x95a636c5
mov ecx, 0x871e6fdc
xor ecx, 0x34f7572c
sub eax, ecx
cmp eax, 0x94822d1c
jae 0x14009d44d
mov rcx, qword [rbp + 0x10]
mov eax, dword [0x1401cc7e8]
imul eax, dword [0x1401cc7ec]
xor edx, edx
sub edx, 0x3f9064dc
add eax, edx
xor edx, edx
sub edx, 0x451c262
sub eax, edx
mov edx, 0xb931deb9
xor edx, 0x46ce2146
mov r8d, eax
xor r8d, edx
and r8d, 0xc66965e6
mov r9d, 0x795573c4
xor r9d, 0xbf3c1622
mov edx, 0x5c472911
xor edx, 0xa3b8d6ee
xor r9d, edx
mov edx, eax
and edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0xc66965e6
or eax, 0xc66965e6
imul eax, r8d
add eax, edx
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.14000e572
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0x8b9f4c58
je 0x14009d44d
jmp 0x14009d300
mov rax, qword [rbp - 0x70]
cmp rax, 0
je 0x14009d33a
mov rcx, qword [rbp - 0x70]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x14009d33a
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.14000e572
add rsp, 0x20
mov ecx, dword [0x1401cc7f0]
mov edx, dword [0x1401cc7f4]
xor edx, 0x49be4489
mov eax, edx
and eax, ecx
xor eax, 0xffffffff
add ecx, edx
add ecx, 1
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xa07a9bb8
or eax, edx
and ecx, 0xa07a9bb8
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov edx, 0x3ab77e0
xor edx, 0xfc54881f
xor ecx, edx
or eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x1cc7dcfd
mov edx, 0xffffffff
xor edx, 0x1cc7dcfd
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x6401e0f7
mov r8d, 0xffffffff
xor r8d, 0x6401e0f7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x6401e0f7
mov r8d, 0x27ef5a61
xor r8d, 0x43eeba96
or eax, r8d
imul eax, edx
add eax, ecx
cmp eax, 0xbbd01489
jbe 0x14009d456
mov rcx, qword [rbp]
mov edx, dword [0x1401cc7f8]
mov r8d, dword [str._hmO_t]
xor r8d, 0xedde758d
mov eax, edx
and eax, r8d
or edx, r8d
add eax, edx
xor eax, 0x82bcde90
imul eax, eax, 0xc8541d91
sub eax, 0x7e92e046
mov dl, 0xc7
xor dl, 0xc6
mov byte [rcx], dl
cmp eax, 0x9a4196f7
je 0x14009d3f4
xor eax, eax
mov qword [rbp - 0x68], rax
jmp 0x14009d443
mov rax, qword [rbp - 0x68]
lea rsp, [rbp + 0x70]
pop rbp
ret
sub esi, dword [rdi]
test eax, 0xfe11e967
invalid
mov ecx, 0xe9a77d3d
xchg ebp, eax
invalid