Function at 0x1401ad570
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x108
call fcn.140261900
sub rsp, rax
mov rax, qword [0x1403dc468]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x178]
xor edi, edi
mov r13d, dword [rsp + 0x170]
mov r12d, 0xffffffff
mov rbp, qword [rsp + 0x190]
mov r14, r8
mov qword [rsp + 0x60], rax
mov esi, edi
mov rax, qword [rsp + 0x188]
mov r15d, edi
movsxd rbx, r9d
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x34], r13d
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x3c], r12d
mov dword [rsp + 0x30], edi
test rax, rax
jne 0x1401ad5ff
call fcn.140143b20
mov qword [rsp + 0x58], rax
test rbp, rbp
mov rcx, rax
cmove rbp, rax
mov qword [rsp + 0x50], rbp
call fcn.14014a220
movsxd rbp, eax
cmp dword [rsp + 0x38], esi
jle 0x1401adb93
test ebx, ebx
jle 0x1401adb93
cmp r13d, ebx
jl 0x1401adb71
lea ecx, [rbp*2 + 2]
cmp r13d, ecx
jl 0x1401adb71
sub r13d, ebp
lea rdx, str.crypto_rsa_rsa_oaep.c
dec r13d
mov r8d, 0x9d
movsxd rax, r13d
mov rcx, rax
mov dword [rsp + 0x48], r13d
mov qword [rsp + 0x40], rax
call fcn.1401479d0
mov r12, rax
test rax, rax
jne 0x1401ad698
mov dword [rsp + 0x20], 0x9f
mov edx, 0x99
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x58]
call fcn.140149420
jmp 0x1401adb1f
movsxd rcx, dword [rsp + 0x34]
lea rdx, str.crypto_rsa_rsa_oaep.c
mov r8d, 0xa3
call fcn.1401479d0
mov r15, rax
test rax, rax
jne 0x1401ad6c1
mov dword [rsp + 0x20], 0xa6
jmp 0x1401ad679
mov ecx, dword [rsp + 0x34]
add r14, rbx
movsxd rax, ecx
add r15, rax
test ecx, ecx
jle 0x1401ad712
mov edx, ecx
nop dword [rax]
nop dword [rax + rax]
mov eax, ebx
lea ecx, [rbx - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec r15
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub ebx, eax
mov eax, ecx
and eax, 1
sub r14, rax
movzx eax, byte [r14]
and al, cl
mov byte [r15], al
sub rdx, 1
jne 0x1401ad6e0
movzx esi, byte [r15]
lea r8, [r15 + 1]
mov rax, qword [rsp + 0x50]
lea rcx, [rsp + 0x70]
dec esi
mov qword [rsp + 0x20], rax
shr esi, 0x1f
lea r14, [r15 + 1]
add r8, rbp
mov r9d, r13d
mov edx, ebp
neg esi
mov rbx, rbp
call fcn.1401ace90
test eax, eax
jne 0x1401adb1f
mov edx, edi
test ebp, ebp
jle 0x1401ad811
cmp ebp, 0x40
jb 0x1401ad811
lea eax, [rbp - 1]
movsxd rcx, eax
lea r8, [rsp + 0x70]
add r8, rcx
lea rax, [rcx + r14]
lea rcx, [rsp + 0x70]
cmp rcx, rax
ja 0x1401ad784
cmp r8, r14
jae 0x1401ad811
mov ecx, ebp
and ecx, 0x8000003f
jge 0x1401ad795
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, ebp
mov r8, rdi
sub eax, ecx
mov rcx, r14
movsxd r9, eax
lea rax, [rsp + 0x70]
sub rcx, rax
nop word [rax + rax]
lea rax, [rsp + 0x70]
add edx, 0x40
add rax, r8
add r8, 0x40
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rcx + rax]
pxor xmm1, xmm0
movdqu xmmword [rax], xmm1
movdqu xmm0, xmmword [rax + 0x10]
movdqu xmm1, xmmword [rcx + rax + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm1, xmmword [rcx + rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmm1, xmmword [rcx + rax + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x30], xmm1
cmp r8, r9
jl 0x1401ad7b0
movsxd rdx, edx
cmp rdx, rbx
jge 0x1401ad847
lea rax, [rsp + 0x70]
sub r14, rax
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x70]
add rcx, rdx
inc rdx
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
cmp rdx, rbx
jl 0x1401ad830
mov rax, qword [rsp + 0x50]
lea r8, [rsp + 0x70]
mov r9d, ebp
mov qword [rsp + 0x20], rax
mov edx, r13d
mov rcx, r12
call fcn.1401ace90
test eax, eax
jne 0x1401adb1f
lea r9, [r15 + 1]
mov r8d, edi
add r9, rbx
test r13d, r13d
jle 0x1401ad930
cmp r13d, 0x40
jb 0x1401ad930
lea eax, [r13 - 1]
movsxd rcx, eax
lea rax, [rcx + r9]
lea rdx, [rcx + r12]
cmp r12, rax
ja 0x1401ad8a6
cmp rdx, r9
jae 0x1401ad930
mov ecx, r13d
and ecx, 0x8000003f
jge 0x1401ad8b8
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r13d
mov rdx, r9
sub eax, ecx
mov rcx, r12
movsxd r10, eax
sub rdx, r12
nop dword [rax]
movdqu xmm0, xmmword [rcx]
add r8d, 0x40
movdqu xmm1, xmmword [rdx + rcx]
pxor xmm1, xmm0
movdqu xmmword [rcx], xmm1
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm1, xmmword [rdx + rcx + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm0, xmmword [rcx + 0x20]
movdqu xmm1, xmmword [rdx + rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm0, xmmword [rcx + 0x30]
movdqu xmm1, xmmword [rdx + rcx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
mov rax, rcx
sub rax, r12
cmp rax, r10
jl 0x1401ad8d0
movsxd rax, r8d
movsxd r14, r13d
cmp rax, r14
jge 0x1401ad961
sub r9, r12
lea rdx, [rax + r12]
mov r8, r14
sub r8, rax
nop dword [rax + rax]
movzx eax, byte [rdx + r9]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1401ad950
mov rax, qword [rsp + 0x58]
lea r8, [rsp + 0xb0]
movsxd rdx, dword [rsp + 0x180]
xor r9d, r9d
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call fcn.140141b10
test eax, eax
je 0x1401adb24
mov r8, rbx
lea rdx, [rsp + 0xb0]
mov rcx, r12
call fcn.1400012a0
movsxd r10, r13d
mov r9d, edi
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and esi, ecx
cmp rbx, r10
jge 0x1401ada22
mov r13d, edi
nop word [rax + rax]
movzx r8d, byte [rbx + r12]
mov ecx, r9d
not ecx
mov eax, r8d
xor eax, 1
inc rbx
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
or r9d, edx
mov eax, ecx
and ecx, ebp
not eax
inc ebp
and r13d, eax
lea eax, [r8 - 1]
shr eax, 0x1f
or r13d, ecx
neg eax
or eax, r9d
and esi, eax
cmp rbx, r10
jl 0x1401ad9d0
mov dword [rsp + 0x30], r13d
mov r13d, dword [rsp + 0x48]
mov r10d, dword [rsp + 0x38]
mov ecx, r13d
mov r8d, dword [rsp + 0x30]
mov edx, r10d
inc r8d
mov eax, r10d
sub ecx, r8d
mov r11d, r13d
sub edx, ecx
xor eax, ecx
xor edx, ecx
mov ecx, r13d
or edx, eax
sub ecx, r10d
xor ecx, r10d
xor edx, r10d
shr edx, 0x1f
mov eax, r10d
dec edx
xor eax, r13d
or ecx, eax
and edx, r9d
xor ecx, r13d
and esi, edx
shr ecx, 0x1f
and r8d, esi
neg ecx
mov eax, esi
mov edx, ecx
not eax
and ecx, r13d
not edx
and edx, r10d
or edx, ecx
mov ecx, r13d
sub ecx, edx
movsxd r10, edx
and ecx, eax
or ecx, r8d
mov r8d, esi
sub r11d, ecx
movsxd r9, ecx
add r9, r12
mov dword [rsp + 0x3c], r11d
test edx, edx
jle 0x1401adaf3
mov rbx, qword [rsp + 0x68]
mov rdx, rdi
nop dword [rax]
mov eax, edi
inc edi
xor eax, r11d
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
mov eax, r13d
neg ecx
and rax, rcx
xor ecx, r8d
sub r9, rax
and r8d, ecx
movzx eax, r8b
not al
and al, byte [rdx + rbx]
movzx ecx, byte [rdx + r9]
and cl, r8b
or cl, al
mov byte [rdx + rbx], cl
inc rdx
cmp rdx, r10
jl 0x1401adab0
mov edx, 0x99
mov dword [rsp + 0x20], 0x107
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x20]
call fcn.140149420
mov ecx, esi
and ecx, 1
call fcn.140149710
mov r14, qword [rsp + 0x40]
mov edx, 0x40
lea rcx, [rsp + 0x70]
call fcn.140001240
mov r9d, 0x10b
lea r8, str.crypto_rsa_rsa_oaep.c
mov rdx, r14
mov rcx, r12
call fcn.140147b30
movsxd rdx, dword [rsp + 0x34]
lea r8, str.crypto_rsa_rsa_oaep.c
mov r9d, 0x10c
mov rcx, r15
call fcn.140147b30
mov eax, esi
not esi
and eax, dword [rsp + 0x3c]
or eax, esi
jmp 0x1401adb96
mov edx, 0x99
mov dword [rsp + 0x20], 0x98
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x20]
call fcn.140149420
mov eax, r12d
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140260d10
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret