Function at 0x140161020
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xe8
mov qword [rsp + 0x70], rcx
call fcn.140161699
mov qword [rsp + 0x80], rax
add rax, 0x60
mov qword [rsp + 0x78], rax
call fcn.14013a0d0
mov rax, qword [rsp + 0x80]
cmp byte [rax + 0x60], 0
jne 0x140161451
mov eax, dword [0x1401e1500]
xor eax, 0xe5b4c05c
xor edx, edx
div dword [0x1401e1504]
mov ecx, eax
mov eax, 0xbad54eb8
xor eax, 0x513a8c17
and ecx, eax
mov eax, 0xfd870ed9
xor eax, 0x489a90e0
add ecx, eax
mov edx, 0x2e63b227
xor edx, 0x854db1f4
mov eax, 0xa8d4ae36
xor eax, 0x572b51c9
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x8f9dc2f3
xor ecx, 0xe8cee3b0
cmp eax, ecx
je 0x140161626
mov eax, dword [0x1401e1508]
mov ecx, dword [str.1FI_U]
xor ecx, 0xa9a82c8
or eax, ecx
mov ecx, 0x88fb8e8c
xor edx, edx
div ecx
mov ecx, 0x5d10e819
xor ecx, 0xb6e618aa
add eax, ecx
add eax, 0x62218273
sub eax, 0xebf6f0b3
imul eax, eax, 0x590eef2c
mov dword [rsp + 0x68], eax
mov eax, 0x7d5b8fca
xor eax, 0x65c701fc
mov dword [rsp + 0x64], eax
mov ecx, 0x28
mov edx, 8
call fcn.140012010
mov rdx, rax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax]
add rcx, 0x20
call fcn.1401500b0
mov rdx, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x68]
cmp byte [rdx], 0
sete dl
mov byte [rsp + 0x6f], dl
cmp eax, ecx
jb 0x1401610b6
mov al, byte [rsp + 0x6f]
test al, 1
jne 0x140161155
jmp 0x140161451
mov rcx, qword [rsp + 0x70]
mov rax, qword [0x1401eeb18]
mov rdx, qword [rax]
mov qword [rsp + 0xd8], rdx
mov rax, qword [rax + 8]
mov qword [rsp + 0xe0], rax
lea rdx, [rsp + 0xd8]
call fcn.140157e20
mov rax, qword [rsp + 0x78]
mov al, byte [rax]
mov cl, 0x3d
xor cl, 0x3d
cmp al, cl
jne 0x140161451
mov rcx, qword [rsp + 0x70]
mov rax, qword [0x1401eea38]
mov rdx, qword [rax]
mov qword [rsp + 0xc8], rdx
mov rax, qword [rax + 8]
mov qword [rsp + 0xd0], rax
lea rdx, [rsp + 0xc8]
call fcn.140157e20
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x140161451
mov eax, dword [0x1401e1510]
xor edx, edx
div dword [0x1401e1514]
mov ecx, eax
mov eax, 0x919b263e
xor eax, 0xc43ed2c7
mov edx, 0x309d2fde
xor edx, 0xcf62d021
xor eax, edx
add ecx, eax
add ecx, 1
mov eax, 0xe4bca92f
xor eax, 0x3f3de52c
mov edx, 0x25bfcbf
xor edx, 0xfda40340
xor eax, edx
xor edx, edx
sub edx, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0xdcad5d9f
or edx, 0xdcad5d9f
mov r8d, 0xb6ac08d1
xor r8d, 0x4953f72e
xor edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
or ecx, 0xdcad5d9f
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x6bf55482
xor ecx, 0x87c1db94
cmp eax, ecx
je 0x14016162f
mov eax, dword [0x1401e1518]
mov ecx, dword [0x1401e151c]
mov edx, 0xa98212b1
xor edx, 0xd11bd243
xor ecx, edx
xor eax, ecx
mov ecx, 0xa0c8d0af
xor ecx, 0xd969ed6a
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xb9148359
mov r8d, 0xbe770bcf
xor r8d, 0x7638896
mov ecx, 0x1205476d
xor ecx, 0xedfab892
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xb9148359
mov r8d, 0x9b85b4ec
xor r8d, 0x229137b5
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x404c3b5f
xor ecx, 0x87c56d81
xor edx, edx
div ecx
mov dword [rsp + 0x5c], eax
mov rcx, qword [0x14025fd08]
call fcn.14005ec10
mov rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0x5c]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x63], cl
cmp eax, 0x9fec0569
jae 0x14016162f
mov al, byte [rsp + 0x63]
test al, 1
jne 0x140161334
jmp 0x140161451
mov cx, 0xcc8
xor cx, 0xa08
call fcn.140065c5f
mov ecx, eax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x58], ecx
mov al, byte [rax]
mov cl, 0x75
xor cl, 0x75
cmp al, cl
jne 0x140161451
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
lea rcx, [rsp + 0xb8]
call fcn.140076432
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x50], rcx
cmp byte [rax], 0
jne 0x140161451
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax]
add rdx, 0x18
lea rcx, [rsp + 0xa8]
call fcn.140120b50
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rcx
cmp byte [rax], 0
jne 0x140161451
mov ecx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0x98], r9
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0x98]
lea r8, [rsp + 0x88]
call fcn.140095b60
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x140161451
mov ecx, 0x14
call fcn.140065db0
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
je 0x14016161d
call fcn.140157dd3
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
cmp word [rax + 0x12], 1
jle 0x14016161d
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x14016161d
mov eax, dword [0x1401e1520]
mov ecx, dword [0x1401e1524]
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x644b2a69
or eax, ecx
mov ecx, 0x56175ad2
xor ecx, 0x325c70bb
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x36e934d2
xor edx, edx
div ecx
mov ecx, 0x4a02719c
xor ecx, 0x6478717e
add eax, ecx
mov ecx, 0xdd23cd50
xor edx, edx
div ecx
cmp eax, 0x2ea6af52
ja 0x140161638
mov rax, qword [rsp + 0x78]
mov r8d, dword [str.ZZ_gK]
mov ecx, 0xcd3e7523
xor ecx, 0x6039538c
xor r8d, ecx
mov edx, dword [0x1401e152c]
mov ecx, 0xbbe66f99
xor ecx, 0x1284b9a7
xor edx, ecx
mov r9d, r8d
xor r9d, edx
xor r9d, 0xffffffff
mov ecx, edx
and ecx, r9d
shl ecx, 1
sub ecx, edx
sub r8d, ecx
mov r9d, 0xffffffff
xor r9d, 0xb615133b
mov edx, r8d
and edx, r9d
mov ecx, r8d
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, r8d
and edx, 0xb615133b
or r8d, 0xb615133b
imul r8d, edx
add r8d, ecx
mov ecx, r8d
xor ecx, 0xffffffff
mov edx, 0x4d94fb08
xor edx, 0xae1ff917
and edx, ecx
mov r9d, 0xffffffff
xor r9d, 0xe38b021f
mov ecx, r8d
and ecx, r9d
imul ecx, edx
mov edx, r8d
and edx, 0xe38b021f
mov r9d, 0x3b1478e7
xor r9d, 0xd89f7af8
or r8d, r9d
imul r8d, edx
add r8d, ecx
mov edx, r8d
xor edx, 0xaa9f4cc7
mov ecx, 0xffffffff
xor ecx, 0xaa9f4cc7
and r8d, ecx
mov ecx, 0x592b3c53
xor ecx, 0x592b3c51
imul ecx, r8d
sub ecx, edx
mov dword [rsp + 0x28], ecx
mov ecx, 0xc1508b03
xor ecx, 0xbac943b5
mov dword [rsp + 0x24], ecx
mov byte [rax], 0
call fcn.140157de5
mov rcx, rax
call fcn.14009428e
mov rdx, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x24]
mov eax, dword [rsp + 0x28]
cmp byte [rdx], 0
sete dl
mov byte [rsp + 0x2f], dl
cmp eax, ecx
jbe 0x1401614da
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x140161618
jmp 0x14016161d
call fcn.140153d95
nop
add rsp, 0xe8
ret
retf
xlatb
add dh, dh
imul ecx
cmp edi, esp
invalid
ror byte [rbx + rdx*8], cl
invalid