Function at 0x14009d410
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x28], rcx
mov eax, 0x10
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x20], rax
sub rsp, 0x20
call fcn.14009d3cb
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
add rsp, 0x20
add rax, 0x60
mov qword [rbp - 8], rax
mov qword [rcx], 0
mov qword [rcx + 8], 0
cmp rdx, 0
je 0x14009d8de
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.14009c4d0
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 8]
mov dword [rbp - 0x34], ecx
cmp byte [rax], 0
jne 0x14009d8de
mov r9d, dword [rbp - 0x34]
mov r8, qword [rbp - 0x10]
mov ecx, 0xfde9
xor edx, edx
xor eax, eax
sub rsp, 0x30
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
call qword [0x1401fe018]
add rsp, 0x30
mov ecx, eax
mov rax, qword [rbp - 8]
mov dword [rbp - 0x38], ecx
cmp byte [rax], 0
jne 0x14009d8de
mov eax, dword [rbp - 0x38]
movsxd rcx, eax
mov qword [rbp - 0x40], rcx
mov ecx, 0xb34d5678
xor ecx, 0xb34d5678
cmp eax, ecx
jge 0x14009d684
mov eax, dword [0x1401dc738]
xor eax, 0x80b4c24a
mov ecx, dword [0x1401dc73c]
mov r11d, eax
and r11d, ecx
xor eax, ecx
or r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
and ecx, 0x49a6da61
mov edx, 0xffffffff
xor edx, 0x49a6da61
mov eax, r11d
and eax, edx
imul eax, ecx
mov ecx, r11d
and ecx, 0x49a6da61
or r11d, 0x49a6da61
imul r11d, ecx
add r11d, eax
or r11d, 0x9b899ce2
mov eax, 0xcfb99f26
xor eax, 0x304660d9
mov ecx, r11d
xor ecx, eax
mov edx, 0xab82958a
xor edx, 0xf0d2b489
mov eax, 0x8034603d
xor eax, 0x7fcb9fc2
xor edx, eax
mov r8d, 0xffffffff
xor r8d, 0x3991ef80
mov r9d, 0xf7965eaa
xor r9d, 0xce07b12a
mov eax, ecx
and eax, r9d
and r11d, r8d
mov r9d, edx
and r9d, 0x3991ef80
mov r10d, r8d
and r10d, 0x5b502103
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
mov edx, 0xdbb75784
xor edx, 0x2448a87b
xor ecx, edx
mov edx, 0xe445da28
xor edx, 0xddd435a8
or edx, r8d
and ecx, edx
or eax, ecx
cmp eax, 0x10fefe13
je 0x14009d8e7
mov rcx, qword [rbp - 0x40]
mov edx, dword [0x1401dc740]
add edx, dword [0x1401dc744]
mov eax, edx
xor eax, 0xffffffff
and eax, 0x6dd447be
mov r8d, 0xffffffff
xor r8d, 0x6dd447be
and edx, r8d
sub edx, eax
mov eax, edx
or eax, 0x941c580d
xor eax, 0xffffffff
xor edx, 0xffffffff
mov r8d, 0xb3b4b974
xor r8d, 0x27a8e179
mov r9d, 0xf283deb4
xor r9d, 0xd7c214b
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
sub eax, 0xdea95e06
mov dword [rbp - 0x44], eax
mov eax, 0x7dfb97c8
xor eax, 0x81af09ee
mov dword [rbp - 0x48], eax
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000c4b0
mov ecx, dword [rbp - 0x48]
mov eax, dword [rbp - 0x44]
add rsp, 0x20
cmp eax, ecx
ja 0x14009d8e7
jmp 0x14009d8de
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.14009b650
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14009d8de
mov eax, dword [0x1401dc748]
xor eax, 0x9106ca4f
imul eax, dword [0x1401dc74c]
mov edx, 0x8f359251
xor edx, 0x70ca6dae
mov ecx, eax
xor ecx, edx
and ecx, 0x609fa77c
mov edx, 0xffffffff
xor edx, 0x609fa77c
and eax, edx
sub eax, ecx
mov ecx, 0xe6abb749
xor edx, edx
div ecx
mov edx, eax
mov eax, 0x924ddce5
xor eax, 0x5048b396
mov ecx, edx
xor ecx, eax
mov eax, 0xffffffff
xor eax, 0xc2056f73
and edx, eax
mov eax, 0x9313e569
xor eax, 0x9313e56b
imul eax, edx
sub eax, ecx
mov ecx, 0x7a7ac877
xor ecx, 0x39f8724d
cmp eax, ecx
jae 0x14009d8f0
mov rcx, qword [rbp - 0x30]
mov eax, dword [0x1401dc750]
xor edx, edx
div dword [0x1401dc754]
mov edx, 0x8c1010c1
xor edx, 0x7f8c6966
and eax, edx
sub eax, 0x35ba92e8
add eax, 0xc6f302c4
mov dword [rbp - 0x54], eax
mov eax, 0x8bd68e25
xor eax, 0xfdb3f99
mov dword [rbp - 0x58], eax
sub rsp, 0x20
call fcn.14009c4d0
mov rdx, qword [rbp - 8]
mov ecx, dword [rbp - 0x58]
add rsp, 0x20
mov r8d, eax
mov eax, dword [rbp - 0x54]
mov dword [rbp - 0x50], r8d
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x49], dl
cmp eax, ecx
je 0x14009d723
mov al, byte [rbp - 0x49]
test al, 1
jne 0x14009d79b
jmp 0x14009d8de
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x18]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14009d3d9
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 8]
mov qword [rbp - 0x60], rcx
mov al, byte [rax]
mov cl, 0x77
xor cl, 0x77
cmp al, cl
jne 0x14009d8de
mov eax, dword [0x1401dc758]
xor eax, 0xb6ba20
imul eax, dword [0x1401dc75c]
imul eax, eax, 0x5b76bec5
mov ecx, 0xb97fa527
xor ecx, 0x46805ad8
xor eax, ecx
mov ecx, 0xa1367376
xor ecx, 0x593d4515
mov edx, 0x590f3f7c
xor edx, 0xa6f0c083
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x57361d27
or eax, ecx
mov ecx, 0x15855826
xor ecx, 0x42b34501
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
xor ecx, ecx
sub ecx, 0xa32fc4d1
add eax, ecx
cmp eax, 0x63cf95c0
ja 0x14009d8f9
mov eax, dword [rbp - 0x38]
mov r10, qword [rbp - 0x60]
mov r9d, dword [rbp - 0x50]
mov r8, qword [rbp - 0x10]
mov edx, dword [0x1401dc760]
add edx, dword [0x1401dc764]
add edx, 0xf223e87d
mov ecx, 0xb0f5be4f
xor ecx, 0x9915ca59
or edx, ecx
mov r11d, 0xcb1360d4
xor r11d, 0x90914f56
mov ecx, edx
and ecx, r11d
xor ecx, 0xffffffff
and edx, 0x5b822f82
xor edx, 0xffffffff
mov r11d, 0xbfe1f883
xor r11d, 0x401e077c
xor ecx, r11d
xor edx, 0xffffffff
or ecx, edx
mov dword [rbp - 0x64], ecx
mov ecx, 0xfde9
xor edx, edx
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov dword [rsp + 0x28], eax
call qword [0x1401fe018]
add rsp, 0x30
mov eax, dword [rbp - 0x64]
cmp eax, 0xda3eef3f
ja 0x14009d8f9
jmp 0x14009d8de
mov rax, qword [rbp - 0x28]
mov rsp, rbp
pop rbp
ret
mov dword [rax], eax
sub al, 0x9e
jmp 0x14009d5e0
movabs eax, dword [0xfffffe2ae90b8d6a]
mov eax, esi
fdivr qword [rdx]
jmp 0x14009d849