Function at 0x140016770
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov eax, dword [0x141dc28b8]
or eax, dword [0x141dc28bc]
mov rsi, rcx
imul eax, eax, 0xd5b35c9f
xor eax, 0xef90a5fb
cmp eax, 0x3273baaa
jae 0x1400167b0
mov eax, 0x20
call fcn.1400f07c0
sub rsp, rax
nop
mov eax, dword [0x141dc28c0]
mov ecx, dword [0x141dc28c4]
add ecx, eax
add ecx, 0xc0a8c188
mov eax, 0x20
call fcn.1400f07c0
sub rsp, rax
mov rbx, rsp
cmp ecx, 0xedcfdf4b
ja 0x1400167b0
mov eax, 0x20
call fcn.1400f07c0
sub rsp, rax
mov rdi, rsp
mov rcx, qword [rsi]
cmp rcx, 0xffffffffffffffff
je 0x140016b31
mov eax, dword [0x141dc28c8]
xor edx, edx
div dword [0x141dc28cc]
lea rax, [rcx + 1]
lea r8, [rcx + rcx]
nop
mov edx, dword [0x141dc28d0]
xor edx, dword [0x141dc28d4]
imul r9d, edx, 0x14d5c96c
add r9d, 0x907ae64
and r9d, 0x58126b5c
cmp r8, rax
mov rdx, rax
cmova rdx, r8
cmp r9d, 0xe7c6b460
ja 0x140016810
movabs rax, 0x7ffffffffffffff
xor r8d, r8d
nop word cs:[rax + rax]
cmp rdx, 5
mov r15d, 4
cmovae r15, rdx
test r8b, r8b
jne 0x140016860
mov r14, r15
shl r14, 5
movabs rdx, 0x7ffffffffffffff8
nop word cs:[rax + rax]
cmp r15, rax
seta r8b
mov r9d, dword [0x141dc28d8]
xor r9d, dword [0x141dc28dc]
or r9d, 0x3abe061
imul r10d, r9d, 0xca7b6b6
add r10d, 0xf8b6a8a
cmp r14, rdx
seta r9b
cmp r10d, 0x46b5573d
jb 0x140016890
or r8b, r9b
jne 0x140016b31
mov eax, 0xdcfc0b6d
nop dword [rax + rax]
mov edx, dword [0x141dc28e0]
imul edx, dword [0x141dc28e4]
add edx, 0xf28e3da4
imul rdx, rax
shr rdx, 0x3e
cmp edx, 0x8b3f7a73
je 0x1400168e0
nop word cs:[rax + rax]
mov eax, dword [0x141dc28e8]
or eax, dword [0x141dc28ec]
imul rax, rax, 0x3fab073b
shr rax, 0x3d
imul eax, eax, 0xb9c2e4fd
xor eax, 0xf4d7962b
cmp eax, 0xaf39033a
ja 0x140016910
test rcx, rcx
je 0x1400169f9
mov rax, qword [rsi + 8]
mov edx, dword [0x141dc28f0]
and edx, dword [0x141dc28f4]
add edx, 0x7876cb78
imul rdx, rdx, 0x372ee1f7
shr rdx, 0x3c
cmp edx, 0x76ff10f4
jbe 0x14001696e
mov qword [rbx], rax
shl rcx, 5
nop word cs:[rax + rax]
mov edx, dword [0x141dc28f8]
or edx, dword [0x141dc28fc]
imul edx, edx, 0xa10c2cf3
add edx, 0x84c8bb02
mov qword [rbx], rax
cmp edx, 0xa62daf30
jb 0x140016980
mov eax, dword [0x141dc2900]
sub eax, dword [0x141dc2904]
imul eax, eax, 0xb8eebbe0
add eax, 0x7569000
and eax, 0x388ab9c0
cmp eax, 0x9d6a5847
jbe 0x1400169d0
mov qword [rbx + 0x10], rcx
nop word [rax + rax]
mov eax, dword [0x141dc2908]
xor eax, dword [0x141dc290c]
add eax, 0x4030e9d5
and eax, 0x7cc1cd40
mov qword [rbx + 0x10], rcx
cmp eax, 0xd298db91
ja 0x1400169d0
mov r12d, 8
jmp 0x1400169fc
xor r12d, r12d
mov eax, dword [0x141dc2910]
mov ecx, dword [0x141dc2914]
add eax, ecx
add eax, 0x65de0ac4
and eax, 0xb73dc9f7
xor eax, 0xcea707b1
cmp eax, 0x8d58f67a
jbe 0x140016a40
mov qword [rbx + 8], r12
sub rsp, 0x20
mov edx, 8
mov rcx, rdi
mov r8, r14
mov r9, rbx
call fcn.1400c1ab0
add rsp, 0x20
nop
mov eax, dword [0x141dc2918]
xor edx, edx
div dword [0x141dc291c]
imul r13d, eax, 0xa1f16873
add r13d, 0xa01786f
or r13d, 0x64227bae
mov qword [rbx + 8], r12
sub rsp, 0x20
mov edx, 8
mov rcx, rdi
mov r8, r14
mov r9, rbx
call fcn.1400c1ab0
add rsp, 0x20
cmp r13d, 0x98e6ff9c
je 0x140016a40
cmp qword [rdi], 0
jne 0x140016b31
mov eax, dword [0x141dc2920]
xor edx, edx
div dword [0x141dc2924]
nop word cs:[rax + rax]
mov eax, dword [0x141dc2928]
and eax, dword [0x141dc292c]
and eax, 0xa3d7841e
imul rcx, rax, 0x3579a7f1
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
or eax, 0x4daabc7c
cmp eax, 0xfdd19c96
je 0x140016ab0
nop word cs:[rax + rax]
mov eax, dword [0x141dc2930]
xor edx, edx
div dword [0x141dc2934]
or eax, 0xb74bffbd
imul rax, rax, 0x4ceca4bf
shr rax, 0x3c
cmp eax, 0x62b1ce7f
je 0x140016af0
mov rax, qword [rdi + 8]
mov qword [rsi + 8], rax
mov qword [rsi], r15
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2