Function at 0x1400cae90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov rsi, rcx
mov eax, dword [0x140220138]
imul eax, dword [0x14022013c]
mov ecx, eax
and ecx, 0x210fd285
or eax, 0x210fd285
add eax, ecx
and eax, 0xb6c51f45
mov ecx, 0xa55ca72b
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0xad10b379
jne 0x1400caef0
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
nop dword [rax + rax]
mov eax, dword [0x140220140]
mov ecx, dword [0x140220144]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x9fbaa485
and ecx, 0x60455b7a
imul ecx, edx
mov edx, eax
and edx, 0x60455b7a
or eax, 0x60455b7a
imul eax, edx
add eax, ecx
imul ecx, eax, 0xe5652c8a
mov eax, ecx
not eax
mov edx, ecx
and edx, 0x429bca1c
and eax, 0xbd6435e0
imul eax, edx
mov edx, ecx
and edx, 0xbd6435e0
or ecx, 0xbd6435e0
imul ecx, edx
add ecx, eax
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
cmp ecx, 0x7903e6d
je 0x1400caef0
mov rcx, qword [rsi]
cmp rcx, 0xffffffffffffffff
je 0x1400cb3c6
lea r8, [rcx + 1]
lea r9, [rcx + rcx]
mov eax, dword [0x140220148]
xor eax, dword [0x14022014c]
add eax, 0xb9d9545a
mov edx, eax
xor edx, 0x8010883
xor eax, 0x10486044
and eax, 0x915a6644
and edx, 0x6ea599bb
or edx, eax
cmp edx, 0xca9698f4
je 0x1400cafa0
xor eax, eax
test al, al
movabs r10, 0x249249249249249
mov r11d, 4
nop word [rax + rax]
mov eax, dword [0x140220150]
xor edx, edx
div dword [0x140220154]
mov edx, eax
and edx, 0x41f9bab8
or eax, 0x41f9bab8
add eax, edx
or eax, 0xba904077
mov edx, eax
xor edx, 0xca0a916c
and eax, 0x35f56e93
add eax, eax
sub eax, edx
cmp r9, r8
mov r15, r8
cmova r15, r9
cmp r15, 5
cmovb r15, r11
xor ebx, ebx
cmp r15, r10
setbe dl
cmp eax, 0x4b3ce2df
je 0x1400caff0
mov r8d, r15d
not r8d
mov rax, r15
and rax, 0xffffffffffffffc7
and r8d, 0x38
imul r8, rax
mov eax, r15d
and eax, 0x38
mov r14, r15
or r14, 0x38
imul r14, rax
mov bl, dl
test rcx, rcx
je 0x1400cb113
mov edx, 0x9ae9a0d1
mov rax, rcx
and rax, 0xffffffffffffffc7
mov r9, rcx
or r9, 0x38
nop dword [rax + rax]
mov r10d, dword [0x140220158]
sub r10d, dword [0x14022015c]
add r10d, 0xa9277c77
imul r10, rdx
shr r10, 0x3e
mov r11d, r10d
xor r11d, 0xd7ae3aa1
and r10d, 0xfffffffe
add r10d, r10d
sub r10d, r11d
cmp r10d, 0x71458afe
je 0x1400cb090
mov edx, ecx
not edx
and edx, 0x38
imul rdx, rax
and ecx, 0x38
imul r9, rcx
add r9, rdx
nop
mov eax, dword [0x140220160]
xor edx, edx
div dword [0x140220164]
add eax, 0x7430ac93
xor eax, 0xb2038385
cmp eax, 0x6d2cc03a
jb 0x1400cb0e0
mov rax, qword [rsi + 8]
mov qword [rbp - 0x10], rax
mov qword [rbp], r9
mov r12d, 8
jmp 0x1400cb116
xor r12d, r12d
add r14, r8
shl rbx, 3
mov eax, dword [0x140220168]
or eax, dword [0x14022016c]
add eax, 0xfad59d0b
xor eax, 0xbb48d453
imul eax, eax, 0x384b0404
cmp eax, 0xe247bd2a
je 0x1400cb1be
mov r13d, dword [0x140220170]
imul r13d, dword [0x140220174]
mov eax, r13d
not eax
mov ecx, r13d
and ecx, 0x12df62f2
and eax, 0xed209d0d
imul eax, ecx
mov ecx, r13d
and ecx, 0xed209d0d
or r13d, 0xed209d0d
imul r13d, ecx
add r13d, eax
mov eax, r13d
not eax
or eax, 0xac0b9fd6
or r13d, 0x53f46029
and r13d, eax
add r13d, 0xce03d63f
mov qword [rbp - 8], r12
sub rsp, 0x20
lea r9, [rbp - 0x10]
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1400ac0c0
add rsp, 0x20
cmp r13d, 0x18da4b33
jae 0x1400cb1e1
mov qword [rbp - 8], r12
sub rsp, 0x20
lea r9, [rbp - 0x10]
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.140150370
add rsp, 0x20
jmp 0x1400cb140
cmp qword [rdi], 0
jne 0x1400cb33d
nop dword [rax + rax]
mov eax, dword [0x140220190]
add eax, dword [0x140220194]
mov ecx, eax
not ecx
and ecx, 0x9fe89fc3
mov edx, eax
and edx, 0x6017603c
imul edx, ecx
mov ecx, eax
and ecx, 0x9fe89fc3
or eax, 0x9fe89fc3
imul eax, ecx
add eax, edx
cmp eax, 0x9ac0ecce
je 0x1400cb1f0
mov rcx, qword [rdi + 8]
nop
mov eax, dword [0x140220198]
and eax, dword [0x14022019c]
mov edx, eax
or edx, 0x6107
not eax
and eax, 0x4d401400
and edx, 0x80a5612f
or edx, eax
cmp edx, 0x54e5acff
je 0x1400cb230
mov eax, dword [0x1402201a0]
mov edx, dword [0x1402201a4]
mov r8d, edx
and r8d, eax
add eax, edx
sub eax, r8d
mov edx, eax
not edx
or edx, 0x69c832e1
or eax, 0x9637cd1e
and eax, edx
mov edx, eax
and edx, 0x62e53b70
or eax, 0x62e53b70
add eax, edx
or eax, 0x16d2e8c2
cmp eax, 0x63385bf9
jae 0x1400cb2b0
mov qword [rsi + 8], rcx
mov qword [rsi], r15
nop word cs:[rax + rax]
mov eax, dword [0x1402201a8]
xor edx, edx
div dword [0x1402201ac]
mov edx, eax
not edx
mov r8d, eax
and r8d, 0xd5a3d6c1
and edx, 0x2a5c293e
imul edx, r8d
mov r8d, eax
and r8d, 0x2a5c293e
or eax, 0x2a5c293e
imul eax, r8d
add eax, edx
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x613593b0
and edx, 0x9eca6c4f
imul edx, r8d
mov r8d, eax
and r8d, 0x9eca6c4e
or eax, 0x9eca6c4f
imul eax, r8d
add eax, edx
imul eax, eax, 0x840ecbf3
mov qword [rsi + 8], rcx
mov qword [rsi], r15
cmp eax, 0x4d507614
je 0x1400cb2b0
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, 0x974915c7
nop word cs:[rax + rax]
mov ecx, dword [0x140220178]
xor ecx, dword [0x14022017c]
imul rcx, rax
shr rcx, 0x3e
imul ecx, ecx, 0xc5ebfba3
add ecx, 0x3b5f001b
cmp ecx, 0xfc4fdc4c
ja 0x1400cb350
nop dword [rax + rax]
mov eax, dword [0x140220180]
xor edx, edx
div dword [0x140220184]
and eax, 0x20c19027
add eax, 0x7e80635d
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xbc8101ab
and ecx, 0x41529c54
imul ecx, edx
mov edx, eax
and edx, 0x4340f254
or eax, 0x4352fe54
imul eax, edx
add eax, ecx
cmp eax, 0x94a9658c
ja 0x1400cb380
mov eax, dword [0x140220188]
imul eax, dword [0x14022018c]
add eax, 0xa3fae579
mov ecx, eax
not ecx
or eax, 0x1202
and ecx, 0x2a05c800
and eax, 0x45e81607
or eax, ecx
cmp eax, 0x2d83e28c
jae 0x1400cb3f7
ud2
xor eax, eax
nop dword [rax]
ud2