Function at 0x140016480
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov qword [rbp - 0x10], rdx
mov qword [rbp - 8], rcx
mov eax, dword [0x1400fd530]
add eax, dword [0x1400fd534]
imul eax, eax, 0x4d0ece5
mov ecx, 0x29d2c05b
xor edx, edx
div ecx
xor eax, 0x6e67c99c
cmp eax, 0x515cd0b4
jbe 0x14001693e
mov r8, qword [rbp - 0x10]
mov r9, qword [rbp - 8]
mov eax, dword [0x1400fd538]
mov ecx, dword [0x1400fd53c]
add eax, ecx
imul eax, eax, 0x387be65e
mov dword [rbp - 0x24], eax
mov eax, 0x10
mov qword [rbp - 0x38], rax
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rcx, rsp
mov qword [rbp - 0x48], rcx
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov rdx, rsp
mov qword [rbp - 0x40], rdx
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x38]
mov r10, rsp
mov qword [rbp - 0x30], r10
call fcn.1400ec140
sub rsp, rax
mov eax, dword [rbp - 0x24]
mov r10, rsp
mov qword [rbp - 0x20], r10
mov qword [rcx], r9
mov qword [rdx], r8
mov rcx, qword [rcx]
cmp qword [rcx + 0x200], 0
setne cl
mov byte [rbp - 0x11], cl
cmp eax, 0xf45df981
ja 0x14001693e
mov al, byte [rbp - 0x11]
test al, 1
jne 0x140016562
jmp 0x1400167e2
mov eax, dword [0x1400fd540]
or eax, dword [0x1400fd544]
mov ecx, 0x9333b789
xor edx, edx
div ecx
add eax, 0x87f9c95f
or eax, 0x3bb4f202
cmp eax, 0x7d096804
jb 0x140016974
mov rcx, qword [rbp - 0x48]
mov eax, dword [0x1400fd548]
xor eax, dword [0x1400fd54c]
add eax, 0xd21d4005
sub eax, 0x6419b7e5
xor eax, 0x26b537a9
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x200]
movzx ecx, byte [rcx]
cmp ecx, 0x2d
sete cl
mov byte [rbp - 0x49], cl
cmp eax, 0xe6fe5f6
je 0x140016974
mov al, byte [rbp - 0x49]
test al, 1
jne 0x1400165dc
jmp 0x14001678c
mov rax, qword [rbp - 0x48]
mov rax, qword [rax]
mov rcx, qword [rax + 0x200]
add rcx, 1
mov edx, 0x2b
sub rsp, 0x20
call sub.msvcrt.dll_strchr
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
mov qword [rcx], rax
cmp rax, 0
je 0x14001678c
mov eax, dword [0x1400fd550]
xor eax, dword [0x1400fd554]
imul eax, eax, 0xabce4085
sub eax, 0x5cb65f7
add eax, 0x49c085af
cmp eax, 0xc92c0d8c
ja 0x140016979
mov rcx, qword [rbp - 0x30]
mov eax, dword [0x1400fd558]
and eax, dword [0x1400fd55c]
xor eax, 0xd19f8b82
xor eax, 0xb7b04a36
imul eax, eax, 0x2bf6ed6b
mov rcx, qword [rcx]
movsx ecx, byte [rcx + 1]
cmp ecx, 0
setne cl
mov byte [rbp - 0x4a], cl
cmp eax, 0x749201a8
ja 0x140016638
mov al, byte [rbp - 0x4a]
test al, 1
jne 0x140016683
jmp 0x14001678c
mov eax, dword [0x1400fd560]
xor eax, dword [0x1400fd564]
and eax, 0x315ec734
mov ecx, 0x80e4b417
xor edx, edx
div ecx
mov ecx, 0x7bc335e0
xor edx, edx
div ecx
cmp eax, 0x378ed1e1
jae 0x14001697e
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x48]
mov r8d, dword [0x1400fd568]
and r8d, dword [0x1400fd56c]
or r8d, 0x27a9112c
xor r8d, 0x12808322
xor r8d, 0xe90ac5
mov dword [rbp - 0x50], r8d
mov r8, qword [rax]
mov r8, qword [r8 + 0x200]
mov qword [rdx], r8
mov rcx, qword [rcx]
mov byte [rcx], 0
mov rax, qword [rax]
mov rcx, qword [rax + 0x200]
add rcx, 1
sub rsp, 0x20
call sub.msvcrt.dll__strdup
mov rcx, qword [rbp - 0x48]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp - 0x30]
mov rdx, qword [rcx]
mov qword [rdx + 0x210], r8
mov rdx, qword [rax]
mov dl, byte [rdx + 1]
mov rcx, qword [rcx]
mov byte [rcx + 0x21a], dl
mov rcx, qword [rax]
add rcx, 2
sub rsp, 0x20
call sub.msvcrt.dll__strdup
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp - 0x20]
mov rdx, qword [rdx]
mov qword [rdx + 0x200], r8
mov rcx, qword [rcx]
mov byte [rcx], 0x2b
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_free
mov eax, dword [rbp - 0x50]
add rsp, 0x20
cmp eax, 0x2233dbb2
je 0x1400166b1
jmp 0x14001678c
mov eax, dword [0x1400fd570]
add eax, dword [0x1400fd574]
mov ecx, 0x6f356342
xor edx, edx
div ecx
and eax, 0x358065d7
sub eax, 0x751b6370
cmp eax, 0x53e38722
jb 0x140016a24
mov eax, dword [0x1400fd578]
add eax, dword [0x1400fd57c]
add eax, 0x7dbf5030
sub eax, 0x9c9cfc61
imul eax, eax, 0x6123434a
cmp eax, 0x16b3790d
je 0x140016a24
jmp 0x1400167e2
mov eax, dword [0x1400fd580]
xor edx, edx
div dword [0x1400fd584]
sub eax, 0x13673b53
mov ecx, 0x5f26b776
xor edx, edx
div ecx
xor eax, 0xb62c7a16
cmp eax, 0xa2588224
jb 0x140016a29
mov rax, qword [rbp - 0x40]
mov ecx, dword [0x1400fd588]
imul ecx, dword [str._zo]
imul ecx, ecx, 0x663c3b73
sub ecx, 0x272fbca7
sub ecx, 0xa68efd5a
mov dword [rbp - 0x54], ecx
mov rcx, qword [rax]
add rcx, 0x1a0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x40]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x1b0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x40]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x1c0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x48]
mov eax, dword [rbp - 0x54]
add rsp, 0x20
mov r8, qword [rcx]
mov word [r8 + 0x1a0], 2
mov r8, qword [rcx]
mov word [r8 + 0x1b0], 2
mov r8, qword [rcx]
mov word [r8 + 0x1c0], 2
mov r8, qword [rcx]
mov r9, qword [rcx]
mov r10, qword [rdx]
mov r11, qword [r10 + 0x15c]
mov qword [r9 + 0x180], r11
mov r10, qword [r10 + 0x164]
mov qword [r9 + 0x188], r10
mov r10, qword [r9 + 0x180]
mov qword [r8 + 0x190], r10
mov r9, qword [r9 + 0x188]
mov qword [r8 + 0x198], r9
mov rcx, qword [rcx]
mov rdx, qword [rdx]
mov r8, qword [rdx + 0x16c]
mov qword [rcx + 0x1b0], r8
mov rdx, qword [rdx + 0x174]
mov qword [rcx + 0x1b8], rdx
cmp eax, 0xd2f92ced
jb 0x14001680e
mov rsp, rbp
pop rbp
ret
mov rcx, qword [rbp - 0x10]
mov r8, qword [rbp - 8]
mov eax, 0x10
mov qword [rbp - 0x60], rax
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x60]
mov rdx, rsp
call fcn.1400ec140
sub rsp, rax
mov rax, rsp
mov qword [rdx], r8
mov qword [rax], rcx
jmp 0x1400164bd
jmp 0x14001658c
jmp 0x140016638
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x48]
mov r8, qword [rax]
mov r8, qword [r8 + 0x200]
mov qword [rdx], r8
mov rcx, qword [rcx]
mov byte [rcx], 0
mov rax, qword [rax]
mov rcx, qword [rax + 0x200]
add rcx, 1
sub rsp, 0x20
call sub.msvcrt.dll__strdup
mov rcx, qword [rbp - 0x48]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp - 0x30]
mov rdx, qword [rcx]
mov qword [rdx + 0x210], r8
mov rdx, qword [rax]
mov dl, byte [rdx + 1]
mov rcx, qword [rcx]
mov byte [rcx + 0x21a], dl
mov rcx, qword [rax]
add rcx, 2
sub rsp, 0x20
call sub.msvcrt.dll__strdup
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp - 0x20]
mov rdx, qword [rdx]
mov qword [rdx + 0x200], r8
mov rcx, qword [rcx]
mov byte [rcx], 0x2b
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_free
add rsp, 0x20
jmp 0x1400166b1
jmp 0x1400167b6
mov rax, qword [rbp - 0x40]
mov rcx, qword [rax]
add rcx, 0x1a0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x40]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x1b0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x40]
add rsp, 0x20
mov rcx, qword [rax]
add rcx, 0x1c0
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x48]
add rsp, 0x20
mov rdx, qword [rax]
mov word [rdx + 0x1a0], 2
mov rdx, qword [rax]
mov word [rdx + 0x1b0], 2
mov rdx, qword [rax]
mov word [rdx + 0x1c0], 2
mov rdx, qword [rax]
mov r8, qword [rax]
mov r9, qword [rcx]
mov r10, qword [r9 + 0x15c]
mov qword [r8 + 0x180], r10
mov r9, qword [r9 + 0x164]
mov qword [r8 + 0x188], r9
mov r9, qword [r8 + 0x180]
mov qword [rdx + 0x190], r9
mov r8, qword [r8 + 0x188]
mov qword [rdx + 0x198], r8
mov rax, qword [rax]
mov rcx, qword [rcx]
mov rdx, qword [rcx + 0x16c]
mov qword [rax + 0x1b0], rdx
mov rcx, qword [rcx + 0x174]
mov qword [rax + 0x1b8], rcx
jmp 0x14001680e