Function at 0x180201570
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov r8, qword [rsi]
movabs rax, 0x8000000000000002
cmp r8, rax
setl cl
movabs rax, 0x8000000000000001
mov r9, r8
add r9, rax
mov eax, dword [0x18051ac28]
or eax, dword [0x18051ac2c]
or eax, 0xf7bf0f10
mov r10d, 0x4ca2fd64
xor edx, edx
div r10d
or eax, 0x62cebece
cmp eax, 0xdbb3e4d1
ja 0x18020192a
jmp 0x1802015cb
mov edx, dword [0x18051ac30]
add edx, dword [str.x_Ml]
or edx, 0x5122a644
or edx, 0x445b12d3
xor edx, 0x34f2da19
xor eax, eax
test cl, 1
cmovne rax, r9
cmp edx, 0x5b705616
je 0x1802015cb
test rax, rax
je 0x180201615
jmp 0x180201601
sub rax, 1
je 0x18020181c
jmp 0x18020160d
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rax, rsi
add rax, 0x38
mov cl, byte [rax]
movzx eax, cl
test cl, cl
je 0x18020163f
jmp 0x180201627
mov ecx, eax
sub ecx, 3
je 0x18020172f
jmp 0x180201634
sub eax, 4
je 0x18020173d
jmp 0x18020160d
cmp r8, 0
je 0x180201706
mov eax, dword [0x18051ac38]
imul eax, dword [0x18051ac3c]
add eax, 0xe2d0a850
and eax, 0x72af48d4
add eax, 0xe58e0da2
cmp eax, 0xd04ab1ce
jb 0x180201937
jmp 0x180201672
mov eax, dword [0x18051ac40]
imul eax, dword [0x18051ac44]
and eax, 0x41da6eed
imul ecx, eax, 0x840cfe6
and ecx, 0xdba6e834
mov rax, rsi
add rax, 8
cmp ecx, 0x4dee1ea7
je 0x180201672
jmp 0x1802016a1
mov ecx, dword [0x18051ac48]
sub ecx, dword [0x18051ac4c]
and ecx, 0xa24b6af9
or ecx, 0x31eb1d9
xor ecx, 0x68fbcb53
cmp ecx, 0x8f665693
je 0x180201948
jmp 0x1802016cd
mov edx, dword [0x18051ac50]
add edx, dword [0x18051ac54]
and edx, 0x191fd3c3
add edx, 0xbd1b52b4
and edx, 0xf6638ae3
mov rcx, qword [rax]
cmp edx, 0x16dab310
jb 0x1802016cd
jmp 0x1802016f8
mov rdx, r8
mov r8d, 1
call fcn.1802cbf20
mov rdx, qword [rsi + 0x18]
cmp rdx, 0
sete al
test al, 1
jne 0x18020160d
jmp 0x18020171b
mov rcx, qword [rsi + 0x20]
mov r8d, 1
call fcn.1802cbf20
jmp 0x18020160d
mov rcx, rsi
add rcx, 0x40
call fcn.1801ffc10
jmp 0x1802017ae
mov rdi, rsi
add rdi, 0x68
mov eax, dword [0x18051ac58]
xor edx, edx
div dword [0x18051ac5c]
or eax, 0xdb12ff7
imul eax, eax, 0x7645107b
xor eax, 0x77f17c39
cmp eax, 0x9f8c952b
ja 0x180201955
jmp 0x18020176f
mov ebx, dword [0x18051ac60]
imul ebx, dword [0x18051ac64]
and ebx, 0x4fe696d4
or ebx, 0x7c5929f7
add ebx, 0x954700b0
mov rcx, rdi
call fcn.180202690
mov rcx, rsi
add rcx, 0x40
call fcn.1802022e0
cmp ebx, 0xd79e56e6
ja 0x18020176f
jmp 0x1802017ac
jmp 0x1802017ae
mov rax, rsi
add rax, 0x39
mov ecx, dword [0x18051ac68]
sub ecx, dword [0x18051ac6c]
sub ecx, 0xc220faa
or ecx, 0x873afa60
or ecx, 0xd185cf9d
cmp ecx, 0xd252568b
je 0x18020197a
jmp 0x1802017e1
mov ecx, dword [0x18051ac70]
sub ecx, dword [0x18051ac74]
or ecx, 0xa94aaad7
imul edx, ecx, 0x33438f
or edx, 0xb4df532f
mov cl, byte [rax]
cmp edx, 0xb72ed80c
je 0x1802017e1
jmp 0x18020180b
cmp cl, 0
je 0x18020160d
mov r8, qword [rsi]
jmp 0x18020163f
mov rax, rsi
add rax, 8
cmp qword [rax], 0
sete al
test al, 1
jne 0x18020160d
jmp 0x180201834
mov rax, rsi
add rax, 0x10
mov rdi, qword [rax]
mov rsi, qword [rsi + 0x18]
cmp rdi, 0
je 0x18020160d
mov rax, qword [rsi]
cmp rax, 0
sete cl
test cl, 1
jne 0x180201864
jmp 0x18020185d
mov rcx, rdi
call rax
jmp 0x180201864
mov eax, dword [0x18051ac78]
imul eax, dword [0x18051ac7c]
sub eax, 0xa57b639a
or eax, 0x3876f9e7
mov ecx, 0xdeb93d4
xor edx, edx
div ecx
cmp eax, 0x7adf70e1
je 0x18020198b
mov eax, dword [0x18051ac80]
sub eax, dword [0x18051ac84]
sub eax, 0x749d4fcd
imul eax, eax, 0x836466ad
xor eax, 0x7b5fdc76
mov rdx, qword [rsi + 8]
cmp eax, 0xfbb6eacc
jae 0x18020198b
jmp 0x1802018bc
add rsi, 0x10
mov r8, qword [rsi]
cmp rdx, 0
je 0x18020160d
mov rcx, rdi
call fcn.1802cbf20
mov eax, dword [0x18051ac88]
sub eax, dword [0x18051ac8c]
and eax, 0x1482cb7c
or eax, 0x12dea7c6
xor eax, 0x323bd9c8
cmp eax, 0x1fcdfd0e
std
int 0x1f
jbe 0x180201998
jmp 0x1802018fd
mov eax, dword [0x18051ac90]
xor edx, edx
div dword [0x18051ac94]
and eax, 0x4ed9c92f
mov ecx, 0xfa04f581
xor edx, edx
div ecx
add eax, 0xac9ae2cf
cmp eax, 0xbba4ddd7
je 0x1802018fd
jmp 0x18020160d
sti
jno 0x1802018f2
sal byte [rdi - 0x161de7e1], 1
xchg edx, eax
cld
invalid
int3
fsub qword [rdx - 0xa]
in eax, 0xd1
call 0x1f7097064
std
invalid
invalid
in eax, 0xec
xor byte [rbx - 0x4b81543d], al
cmp ebp, dword [rax - 0x7d]
fsub st(1), st(0)
push rsp
invalid
ret 0x6f4e
sub dl, byte [rsi]
invalid