Function at 0x14009dfc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x18], r9
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x38], rcx
mov eax, 0x10
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x30], rax
sub rsp, 0x20
call fcn.14009d02e
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov qword [rbp + 0x48], rax
add rax, 0x50
mov qword [rbp + 0x40], rax
mov rax, qword [rcx]
mov qword [rbp + 0x58], rax
mov rax, qword [rcx + 8]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x58]
sub rsp, 0x20
call fcn.14009e820
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x50], rcx
cmp byte [rax + 0x50], 0
jne 0x14009e7ef
mov eax, dword [0x1401f7958]
xor eax, 0x56bf7a6f
mov ecx, dword [0x1401f795c]
xor ecx, 0x4de22e92
xor eax, ecx
sub eax, 0xfd1369a9
sub eax, 0xa3b43143
add eax, 0xfd1369a9
mov ecx, 0x1a46dcc5
xor ecx, 0x5b45918f
xor edx, edx
div ecx
sub eax, 0x9ccce459
cmp eax, 0xd8653289
je 0x14009e7f6
mov r9, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x50]
mov ecx, dword [0x1401f7960]
xor ecx, 0x875f64b4
and ecx, dword [0x1401f7964]
mov eax, 0xb9f2e58f
xor eax, 0x908e35b6
sub ecx, eax
mov eax, ecx
and eax, eax
mov r8d, 0x7c411dd6
xor r8d, 0x83bee229
xor eax, r8d
mov r8d, 0xae065e57
xor r8d, 0x632605d5
and eax, r8d
mov r8d, 0x137ca8ca
xor r8d, 0xec835735
xor eax, r8d
mov r8d, 0x206f6896
xor r8d, 0xed4f3314
mov r10d, 0xb720b1b3
xor r10d, 0x48df4e4c
xor r8d, r10d
mov r10d, 0xffffffff
xor r10d, 0xcd205b82
or r8d, r10d
xor ecx, 0xffffffff
xor r8d, 0xffffffff
or ecx, r8d
and eax, ecx
xor eax, 0xffffffff
add eax, 0xecdd4039
mov r8, rdx
sub r8, r9
mov qword [rbp + 8], r8
mov rcx, r8
xor rcx, rdx
movabs rdx, 0xe041eb67cceb057b
movabs r10, 0xe041eb67cceb057b
xor rdx, r10
cmp rcx, rdx
setl dl
movabs r10, 0x763b5d4c3dad262d
movabs rcx, 0x89c4a2b3c252d9d2
xor r10, rcx
mov rcx, r8
xor rcx, r10
movabs r11, 0x2e545ad359354ea9
movabs r10, 0xd1aba52ca6cab156
xor r11, r10
mov r10, r8
xor r10, r11
or rcx, r10
movabs r10, 0xd9f54c3bd8a2deb3
movabs r11, 0x260ab3c4275d214c
xor r10, r11
xor rcx, r10
mov r10, r9
xor r10, 0xffffffffffffffff
or rcx, r10
and r9, r9
movabs r10, 0xc117f4af335c76fe
movabs r11, 0x3ee80b50cca38901
xor r10, r11
xor r9, r10
and r8, r9
xor r8, 0xffffffffffffffff
and rcx, r8
movabs r8, 0x6df48ca6bd827f3b
movabs r9, 0x920b7359427d80c4
xor r8, r9
xor rcx, r8
cmp rcx, 0xffffffffffffffff
setg r8b
xor r8b, 0xff
mov cl, dl
xor cl, r8b
and cl, dl
mov byte [rbp + 0x17], cl
cmp eax, 0x6df4c26c
jb 0x14009e7f6
mov al, byte [rbp + 0x17]
test al, 1
jne 0x14009e229
jmp 0x14009e23b
sub rsp, 0x20
call fcn.140009cc0
add rsp, 0x20
jmp 0x14009e7ef
mov rax, qword [rbp + 8]
mov rcx, rax
dec rcx
mov qword [rbp], rcx
mov rdx, rcx
xor rdx, rax
not rdx
mov r8, rax
and r8, rdx
add r8, r8
mov rdx, rax
sub rdx, r8
lea rdx, [rax + rdx - 1]
test rcx, rcx
setns al
or rcx, rdx
sets cl
add al, cl
inc al
test al, 1
jne 0x14009e283
jmp 0x14009e3e3
mov r11d, dword [0x1401f7968]
mov r10d, dword [0x1401f796c]
xor r10d, 0x35e30bcf
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, r10d
xor r8d, 0xffffffff
mov edx, 0x58c4d0b
xor edx, 0xe93f53c
mov eax, 0xfe0f69a4
xor eax, 0x1f0965b
xor edx, eax
mov eax, ecx
and eax, 0xb1fb837
and r11d, edx
mov r9d, r8d
and r9d, 0xb1fb837
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
mov r8d, 0x121cc2ed
xor r8d, 0xede33d12
xor ecx, r8d
or edx, 0xb1fb837
and ecx, edx
or eax, ecx
add eax, 0x235faa43
sub eax, 0x6050ad28
mov ecx, 0xcdce7f32
xor ecx, 0xee91d571
sub eax, ecx
xor eax, 0x413d528b
sub eax, 0x5eb1581a
cmp eax, 0x97742de5
je 0x14009e7ff
mov eax, dword [0x1401f7970]
mov ecx, dword [0x1401f7974]
mov edx, 0x912d0e27
xor edx, 0x6852bfb7
xor ecx, edx
xor edx, edx
div ecx
sub eax, 0x14ae8daf
mov ecx, 0x9d62db49
xor ecx, 0x629d24b6
mov edx, eax
xor edx, ecx
and edx, 0x1bfc30bb
mov r8d, 0xffffffff
xor r8d, 0x1bfc30bb
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x1bfc30bb
or eax, 0x1bfc30bb
imul eax, edx
add eax, ecx
mov ecx, 0x2f69e02b
xor ecx, 0xd0961fd4
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0x96d1aba7
mov ecx, 0xffffffff
xor ecx, 0xb79b911b
or eax, edx
or ecx, 0xb79b911b
xor eax, 0xffffffff
and eax, ecx
mov dword [rbp - 4], eax
mov eax, 0x2325b7d4
xor eax, 0xd52144df
mov dword [rbp - 8], eax
sub rsp, 0x20
call fcn.140009cc0
mov ecx, dword [rbp - 8]
mov eax, dword [rbp - 4]
add rsp, 0x20
cmp eax, ecx
jae 0x14009e325
jmp 0x14009e7ef
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x38]
mov r10, qword [rbp + 0x18]
mov rdx, qword [rbp]
movabs r9, 0x87e24b9f748bc92
movabs r8, 0xf781db4608b7436d
xor r9, r8
mov r8, rcx
add r8, r9
mov qword [rbp - 0x38], r8
mov r9, r8
sub r9, rdx
cmovl rdx, r8
mov qword [rbp - 0x30], rdx
mov rdx, r10
xor rdx, 0xffffffffffffffff
movabs r8, 0xcccdd31afa048717
and rdx, r8
mov r9, 0xffffffffffffffff
movabs r8, 0xcccdd31afa048717
xor r9, r8
and r10, r9
movabs r8, 0x7480594b91e217aa
movabs r11, 0x8b7fa6b46e1de855
xor r8, r11
movabs r11, 0xa5f94e57280ed8ca
movabs rsi, 0x5a06b1a8d7f12735
xor r11, rsi
xor r8, r11
movabs r11, 0xcccdd31afa048717
and r8, r11
and r9, 0xffffffffffffffff
or rdx, r10
or r8, r9
xor rdx, r8
mov qword [rbp - 0x28], rdx
add rax, 8
mov qword [rbp - 0x20], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rbp - 0x18], rax
xor eax, eax
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x40], rax
mov edx, dword [0x1401f7978]
mov ecx, dword [0x1401f797c]
mov eax, edx
xor eax, ecx
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0x3dff857c
xor ecx, 0x3dff857e
imul ecx, edx
sub ecx, eax
mov eax, ecx
and eax, 0x68d7315d
shl eax, 1
xor ecx, 0x68d7315d
add ecx, eax
or ecx, 0x811b200a
mov edx, 0x44058899
xor edx, 0xbbfa7766
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x39ab2756
or ecx, 0x39ab2756
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x77c35ba1
ja 0x14009e808
mov rcx, qword [rbp - 0x40]
mov eax, dword [0x1401f7980]
mov edx, dword [0x1401f7984]
xor edx, 0xfaabb97d
xor eax, edx
sub eax, 0x159ed876
mov r8d, 0x1b0afadd
xor edx, edx
div r8d
mov r8d, 0xd881abd9
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x30]
cmp rcx, rdx
setg cl
mov byte [rbp - 0x41], cl
cmp eax, 0x1cbaa05
jae 0x14009e52e
mov al, byte [rbp - 0x41]
test al, 1
jne 0x14009e7ef
jmp 0x14009e589
mov rdx, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x40]
add rax, rcx
mov qword [rbp - 0x50], rax
movabs r8, 0x82bb24bd62b84d02
movabs rcx, 0x82bb24bd62b84d03
xor r8, rcx
mov rcx, rax
add rcx, r8
xor rax, 0xffffffffffffffff
or rax, rdx
add rax, rcx
movabs rcx, 0xd9cff609a4108a9c
movabs rdx, 0xd9cff609a4108a9c
xor rcx, rdx
cmp rax, rcx
jge 0x14009e5f5
sub rsp, 0x20
call fcn.140009cc0
add rsp, 0x20
jmp 0x14009e7ef
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x18]
cmp rax, rcx
jne 0x14009e620
mov rdx, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.140013c92
add rsp, 0x20
jmp 0x14009e7ef
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x40]
mov ax, word [rax + rcx*2]
mov word [rbp - 0x62], ax
sub rsp, 0x20
call fcn.14009d02e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x60], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x68], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x68]
sub rsp, 0x20
call fcn.14009e820
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x58], rcx
mov al, byte [rax + 0x50]
mov cl, 0x10
xor cl, 0x10
cmp al, cl
jne 0x14009e7be
mov rax, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x50]
cmp rax, rcx
jg 0x14009e711
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140013970
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x1402090a8]
mov qword [rcx], rax
lea rax, [0x1402075d9]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140207608]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140207610]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x1402075d9]
lea r8, [0x140207618]
lea r9, str.KiGJpW2_
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffff2b14bc4
call fcn.14001302b
add rsp, 0x30
jmp 0x14009e7be
mov r8, qword [rbp + 0x30]
mov rcx, qword [rbp - 0x50]
mov edx, 2
sub rsp, 0x20
call fcn.14009b810
add rsp, 0x20
test al, 1
jne 0x14009e738
jmp 0x14009e74a
sub rsp, 0x20
call fcn.140009cc0
add rsp, 0x20
jmp 0x14009e7be
mov rdx, qword [rbp + 0x38]
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
mov qword [rbp - 0x78], rcx
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x70], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14009e7aa
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x70]
movabs rax, 0x4dcac7c2bae0795a
movabs r8, 0xb235383d451f86a5
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140013c92
add rsp, 0x20
jmp 0x14009e7be
mov rcx, qword [rbp - 0x78]
mov dx, word [rbp - 0x62]
mov rax, qword [rbp - 0x20]
mov rax, qword [rax]
mov word [rax + rcx + 8], dx
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp + 0x40]
mov cl, byte [rcx]
movabs rdx, 0x3c4d28c5fdb6fc60
movabs r8, 0x3c4d28c5fdb6fc61
xor rdx, r8
add rax, rdx
cmp cl, 0
mov qword [rbp - 0x10], rax
je 0x14009e4b7
lea rsp, [rbp + 0x78]
pop rsi
pop rbp
ret
jno 0x14009e803
or eax, dword [rcx + rbp*8 - 0x771]
push rdx
jmp 0x14009e86a
jmp 0x14009e325
invalid