Function at 0x18031ad80
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x48
call fcn.1802f01e0
sub rsp, rax
mov ebp, dword [rsp + 0xa0]
xor r12d, r12d
movsxd rdi, r9d
mov rsi, r8
mov r15, rcx
mov r14d, r12d
test edx, edx
js 0x18031b122
test r9d, r9d
js 0x18031b122
cmp edi, ebp
jg 0x18031b102
cmp ebp, 0xb
jl 0x18031b102
mov r8d, 0xe3
mov qword [rsp + 0x90], rbx
lea rdx, [0x1805c3690]
mov ecx, ebp
call fcn.1802f5470
mov rbx, rax
test rax, rax
jne 0x18031ae33
lea r9, [0x1805c36a8]
mov dword [rsp + 0x20], 0xe5
lea edx, [rax + 0x71]
lea ecx, [rax + 4]
lea r8d, [r12 + 0x41]
call fcn.1802f5d80
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0x90]
add rsp, 0x48
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
movsxd r11, ebp
add rsi, rdi
add rbx, r11
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r11
test ebp, ebp
jle 0x18031ae80
mov rdx, rbp
nop dword [rax]
mov eax, edi
lea ecx, [rdi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec rbx
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edi, eax
mov eax, ecx
and eax, 1
sub rsi, rax
movzx eax, byte [rsi]
and al, cl
mov byte [rbx], al
sub rdx, 1
jne 0x18031ae50
movzx eax, byte [rbx + 1]
mov r8d, 2
xor eax, 2
mov r10d, r12d
lea esi, [rax - 1]
not eax
shr eax, 0x1f
shr esi, 0x1f
and esi, eax
movzx eax, byte [rbx]
dec eax
neg esi
shr eax, 0x1f
neg eax
and esi, eax
cmp ebp, r8d
jle 0x18031aefc
lea r9, [rbx + 2]
nop dword [rax]
nop dword [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
dec edx
mov eax, r10d
not eax
shr edx, 0x1f
neg edx
and eax, edx
or r10d, edx
mov dword [rsp + 0x30], eax
not eax
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
and ecx, r8d
and r14d, eax
inc r8d
or r14d, ecx
cmp r8d, ebp
jl 0x18031aec0
mov r8d, dword [rsp + 0x88]
mov r13d, ebp
sub r13d, r14d
mov ecx, r8d
dec r13d
mov r10d, 1
sub ecx, r13d
mov eax, r13d
xor eax, r8d
xor ecx, r13d
or ecx, eax
lea eax, [r14 - 0xa]
or eax, r14d
xor ecx, r8d
xor eax, r14d
shr ecx, 0x1f
shr eax, 0x1f
lea r14d, [rbp - 0xb]
dec eax
dec ecx
and ecx, eax
and esi, ecx
lea ecx, [rbp - 0xb]
mov edx, ecx
mov eax, ecx
sub edx, r8d
xor eax, r8d
xor edx, r8d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x88], edx
not edx
mov dword [rsp + 0x34], edx
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x34]
and eax, r14d
and ecx, r8d
or ecx, eax
mov dword [rsp + 0x30], ecx
cmp r14d, r10d
jle 0x18031b02a
mov r15d, ebp
sub r15d, r13d
add r15d, 0xfffffff5
nop dword [rax]
nop word [rax + rax]
mov eax, r15d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, ebp
sub eax, r10d
dec ecx
movsxd r8, eax
cmp r8, 0xb
jle 0x18031b011
movzx r11d, cl
lea rax, [rbx + 0xb]
mov r9d, r11d
movsxd rdi, r10d
not r9d
add r8, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x88], r11d
lea rax, [rax + 1]
mov dword [rsp + 0x34], r9d
mov ecx, dword [rsp + 0x88]
movzx edx, byte [rdi + rax - 1]
and dl, cl
mov ecx, dword [rsp + 0x34]
and cl, byte [rax - 1]
or cl, dl
mov byte [rax - 1], cl
sub r8, 1
jne 0x18031afe0
add r10d, r10d
cmp r10d, r14d
jl 0x18031afa0
mov r15, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
movsxd r9, ecx
test ecx, ecx
jle 0x18031b09e
mov r8d, r13d
mov r10, rbx
shr r8d, 0x1f
sub r10, r15
nop
mov edx, r12d
lea r15, [r15 + 1]
sub edx, r13d
mov ecx, r12d
shr ecx, 0x1f
movzx eax, r8b
xor al, cl
shr edx, 0x1f
xor dl, r8b
inc r12d
or dl, al
movzx eax, sil
xor dl, cl
neg dl
movzx ecx, dl
and ecx, eax
mov dword [rsp + 0x88], ecx
not ecx
mov dword [rsp + 0x34], ecx
mov eax, dword [rsp + 0x88]
movzx ecx, byte [r10 + r15 + 0xa]
and cl, al
mov eax, dword [rsp + 0x34]
and al, byte [r15 - 1]
or al, cl
mov byte [r15 - 1], al
sub r9, 1
jne 0x18031b040
mov rdx, r11
mov rcx, rbx
call fcn.1802f72c0
mov rcx, rbx
call fcn.1802f5520
mov edx, 0x71
mov dword [rsp + 0x20], 0x12d
lea r9, str..crypto_rsa_rsa_pk1.c
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1802f5d80
mov ecx, esi
and ecx, 1
call fcn.1802f6700
mov dword [rsp + 0x88], esi
not esi
mov dword [rsp + 0x34], esi
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0x34]
and ecx, r13d
mov r13, qword [rsp + 0x40]
or eax, ecx
jmp 0x18031ae1d
mov edx, 0x71
mov dword [rsp + 0x20], 0xdf
lea r9, [0x1805c3678]
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1802f5d80
mov eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret