Function at 0x140313fd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov r13d, dword [rsp + 0x170]
mov rsi, qword [rsp + 0x190]
cmp qword [rsp + 0x188], 0
mov qword [rsp + 0x150], rcx
mov ebp, r9d
mov dword [rsp + 0x158], edx
mov qword [rsp + 0x160], r8
je 0x1403147a0
mov rcx, qword [rsp + 0x188]
test rsi, rsi
cmove rsi, qword [rsp + 0x188]
call fcn.1401e7dc0
mov edx, dword [rsp + 0x158]
mov r14d, eax
test edx, edx
jle 0x1403148ca
test ebp, ebp
jle 0x1403148ca
cmp ebp, r13d
jg 0x14031487c
lea eax, [rax + 1]
mov dword [rsp + 0x44], eax
add eax, eax
cmp eax, r13d
jg 0x14031487c
mov eax, r13d
lea rbx, str.crypto_rsa_rsa_oaep.c
mov r8d, 0x9d
sub eax, r14d
mov rdx, rbx
lea r15d, [rax - 1]
mov dword [rsp + 0x68], eax
movsxd rax, r15d
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.1401f4da0
mov r12, rax
movsxd rax, r13d
mov qword [rsp + 0x38], rax
test r12, r12
je 0x1403147b8
mov r8d, 0xa3
mov rdx, rbx
movsxd rcx, r13d
call fcn.1401f4da0
mov rdi, rax
test rax, rax
je 0x140314837
movsxd rax, r13d
movsxd rcx, ebp
add rcx, qword [rsp + 0x160]
lea rbx, [rdi + rax]
mov rdx, rbx
nop
mov r8d, ebp
lea eax, [rbp - 1]
sub rdx, 1
not r8d
and eax, r8d
sar eax, 0x1f
mov r8d, eax
add eax, 1
sub rcx, rax
sub ebp, eax
mov eax, ebx
not r8d
sub eax, edx
and r8b, byte [rcx]
mov byte [rdx], r8b
cmp r13d, eax
jg 0x1403140e0
lea eax, [r13 - 1]
test r13d, r13d
movzx r8d, r8b
mov qword [rsp + 0x20], rsi
mov rbp, rax
mov rdx, 0xffffffffffffffff
mov r9d, r15d
not rbp
cmovle rbp, rdx
xor edx, edx
neg rax
test r13d, r13d
lea r13, [rsp + 0x80]
lea rcx, [rbx + rbp]
mov qword [rsp + 0x48], rcx
mov rcx, rdx
cmovg rcx, rax
lea eax, [r8 - 1]
not r8d
and eax, r8d
cdq
movsxd rax, r14d
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
add rax, rcx
mov rcx, r13
add rbx, rax
mov dword [rsp + 0x40], edx
mov edx, r14d
mov r8, rbx
call fcn.1403138f0
test eax, eax
jne 0x1403144ce
test r14d, r14d
jle 0x140314334
add rbp, qword [rsp + 0x38]
mov r8, r13
lea ecx, [r14 - 1]
mov edx, r14d
lea r9, [rdi + rbp + 2]
sub r8, r9
cmp r8, 0xe
jbe 0x140314806
cmp ecx, 6
jbe 0x140314806
cmp ecx, 0xe
jbe 0x140314875
lea rax, [rdi + rbp + 1]
shr edx, 4
movdqu xmm0, xmmword [rax]
pxor xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x80], xmm0
cmp edx, 1
je 0x140314236
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmmword [rsp + 0x90]
movups xmmword [rsp + 0x90], xmm0
cmp edx, 2
je 0x140314236
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0xa0], xmm0
cmp edx, 3
je 0x140314236
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0xb0], xmm0
mov ecx, r14d
and ecx, 0xfffffff0
mov eax, ecx
cmp ecx, r14d
je 0x140314334
mov edx, r14d
sub edx, ecx
lea r8d, [rdx - 1]
cmp r8d, 6
jbe 0x140314281
lea r8, [r13 + rcx]
add rcx, rdi
movq xmm1, qword [rbp + rcx + 1]
movq xmm0, qword [r8]
mov ecx, edx
and ecx, 0xfffffff8
pxor xmm0, xmm1
add eax, ecx
movq qword [r8], xmm0
cmp edx, ecx
je 0x140314334
mov r11, qword [rsp + 0x48]
lea r8d, [rax + 1]
movsxd rdx, eax
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r14d, r8d
jle 0x140314334
lea r8d, [rax + 2]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x140314334
lea r8d, [rax + 3]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r8d, r14d
jge 0x140314334
lea r8d, [rax + 4]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r8d, r14d
jge 0x140314334
lea r8d, [rax + 5]
movsxd rcx, r8d
movzx r9d, byte [r11 + rcx]
xor byte [rsp + rdx + 0x80], r9b
cmp r8d, r14d
jge 0x140314334
lea r8d, [rax + 6]
movsxd rdx, r8d
movzx r9d, byte [r11 + rdx]
xor byte [rsp + rcx + 0x80], r9b
cmp r14d, r8d
jle 0x140314334
add eax, 7
cdqe
movzx eax, byte [r11 + rax]
xor byte [rsp + rdx + 0x80], al
mov qword [rsp + 0x20], rsi
mov r9d, r14d
mov r8, r13
mov edx, r15d
mov rcx, r12
call fcn.1403138f0
mov ebp, eax
test eax, eax
jne 0x1403144ce
test r15d, r15d
jle 0x140314491
mov rsi, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
add rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x68]
lea r9, [rdx + rsi]
mov rdx, r12
lea rcx, [rdi + r9 + 1]
sub eax, 2
sub rdx, rcx
cmp rdx, 0xe
jbe 0x140314844
cmp eax, 6
jbe 0x140314844
cmp eax, 0xe
jbe 0x140314869
mov edx, r15d
lea rcx, [rdi + r9]
xor eax, eax
shr edx, 4
shl rdx, 4
nop
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm2, xmmword [r12 + rax]
pxor xmm0, xmm2
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x1403143b0
mov eax, r15d
and eax, 0xfffffff0
mov edx, eax
cmp eax, r15d
je 0x140314491
mov r8d, dword [rsp + 0x68]
sub r8d, eax
lea ecx, [r8 - 1]
sub r8d, 2
cmp r8d, 6
jbe 0x14031441a
lea r8, [r12 + rax]
add rax, rdi
movq xmm0, qword [rax + r9]
movq xmm1, qword [r8]
mov eax, ecx
and eax, 0xfffffff8
pxor xmm0, xmm1
add edx, eax
movq qword [r8], xmm0
cmp ecx, eax
je 0x140314491
movsxd rax, edx
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 1]
cmp r15d, eax
jle 0x140314491
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 2]
cmp eax, r15d
jge 0x140314491
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 3]
cmp r15d, eax
jle 0x140314491
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 4]
cmp r15d, eax
jle 0x140314491
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 5]
cmp r15d, eax
jle 0x140314491
cdqe
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
lea eax, [rdx + 6]
cmp r15d, eax
jle 0x140314491
cdqe
movzx edx, byte [rbx + rax]
xor byte [r12 + rax], dl
mov rax, qword [rsp + 0x188]
lea rbx, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x28], 0
movsxd rdx, dword [rsp + 0x180]
mov rcx, qword [rsp + 0x178]
mov r8, rbx
mov qword [rsp + 0x20], rax
call fcn.1401d52e0
test eax, eax
jne 0x140314548
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x58], 0xffffffff
not eax
mov dword [rsp + 0x68], eax
mov edx, 0x40
mov rcx, r13
call fcn.1402746b0
mov rdx, qword [rsp + 0x50]
mov r9d, 0x10b
mov rcx, r12
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.1401f5190
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
mov r9d, 0x10c
lea r8, str.crypto_rsa_rsa_oaep.c
call fcn.1401f5190
mov eax, dword [rsp + 0x40]
mov edx, dword [rsp + 0x68]
and eax, dword [rsp + 0x58]
or eax, edx
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, r12
mov r8, rsi
call fcn.140274710
mov r9d, eax
sub eax, 1
not r9d
and r9d, eax
sar r9d, 0x1f
and r9d, dword [rsp + 0x40]
cmp r14d, r15d
jge 0x1403148aa
mov r11, rsi
xor r8d, r8d
nop
movzx edx, byte [r12 + r11]
mov eax, edx
xor eax, 1
movzx eax, al
mov ecx, eax
sub eax, 1
not ecx
and ecx, eax
mov eax, r8d
sar ecx, 0x1f
not eax
and eax, ecx
or r8d, ecx
mov r10d, eax
not eax
and r10d, r11d
and eax, ebp
add r11, 1
or r10d, eax
mov eax, edx
sub edx, 1
not eax
mov ebp, r10d
and eax, edx
sar eax, 0x1f
or eax, r8d
and r9d, eax
cmp r15d, r11d
jg 0x140314580
lea eax, [r10 + 1]
mov esi, r15d
mov edx, dword [rsp + 0x158]
and r8d, r9d
sub esi, eax
mov eax, dword [rsp + 0x158]
xor edx, esi
mov dword [rsp + 0x58], esi
sub eax, esi
xor eax, esi
or eax, edx
xor eax, dword [rsp + 0x158]
sar eax, 0x1f
not eax
and eax, r8d
mov ebp, eax
mov dword [rsp + 0x40], eax
not eax
mov dword [rsp + 0x68], eax
and ebp, 1
mov edi, r15d
mov edx, dword [rsp + 0x158]
mov ebx, 1
sub edi, r14d
sub edi, 1
xor edx, edi
mov eax, edi
sub eax, dword [rsp + 0x158]
mov ecx, edi
xor eax, dword [rsp + 0x158]
sub ecx, esi
or eax, edx
xor eax, edi
sar eax, 0x1f
mov edx, eax
not eax
and edx, edi
and eax, dword [rsp + 0x158]
or edx, eax
mov dword [rsp + 0x6c], edx
cmp edi, 1
jle 0x1403146ff
mov rax, qword [rsp + 0x60]
movsxd rdx, dword [rsp + 0x44]
mov dword [rsp + 0x70], ebp
mov dword [rsp + 0x74], esi
mov esi, ecx
lea r11, [r12 + rax + 2]
mov eax, 0xfffffffe
mov qword [rsp + 0x78], r13
mov rbp, rdx
sub eax, r14d
mov r13, r11
mov r14d, eax
nop
mov eax, ebx
mov edx, r15d
and eax, esi
sub edx, ebx
mov r8d, eax
sub eax, 1
not r8d
and r8d, eax
sar r8d, 0x1f
mov r9d, r8d
not r9d
cmp dword [rsp + 0x44], edx
jge 0x1403146ec
lea r10d, [r14 + rdx]
lea rax, [r12 + rbp]
movsxd r11, ebx
movzx r9d, r9b
add r10, r13
or r8d, 0xffffff00
nop
movzx edx, byte [rax + r11]
movzx ecx, byte [rax]
add rax, 1
and edx, r9d
and ecx, r8d
or edx, ecx
mov byte [rax - 1], dl
cmp r10, rax
jne 0x1403146d0
add ebx, ebx
cmp edi, ebx
jg 0x140314690
mov ebp, dword [rsp + 0x70]
mov esi, dword [rsp + 0x74]
mov r13, qword [rsp + 0x78]
mov eax, dword [rsp + 0x6c]
test eax, eax
jle 0x14031476a
mov rax, qword [rsp + 0x60]
mov r8d, esi
mov r10d, dword [rsp + 0x6c]
xor edx, edx
mov r11d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x150]
neg r8d
lea r9, [r12 + rax]
nop word [rax + rax]
mov eax, esi
mov ebx, esi
xor ebx, r8d
xor eax, edx
add r8d, 1
or eax, ebx
movzx ebx, byte [r9 + rdx + 1]
xor eax, edx
sar eax, 0x1f
and eax, r11d
movzx eax, al
mov edi, eax
not eax
and ebx, edi
movzx edi, byte [rcx + rdx]
and eax, edi
or eax, ebx
mov byte [rcx + rdx], al
add rdx, 1
cmp r10, rdx
jne 0x140314730
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x106
lea r9, str.crypto_rsa_rsa_oaep.c
call fcn.1401d1f90
mov ecx, ebp
call fcn.1401d4530
jmp 0x1403144e0
call fcn.1401e8cc0
mov qword [rsp + 0x188], rax
jmp 0x14031401c
mov dword [rsp + 0x20], 0x9f
mov r9, rbx
mov r8d, 0x41
mov edx, 0x99
mov ecx, 4
call fcn.1401d1f90
lea r13, [rsp + 0x80]
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x68], 0xffffffff
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x40], 0
jmp 0x1403144e0
mov rdx, qword [rsp + 0x48]
mov rax, r13
lea r8, [rsp + rcx + 0x81]
add rdx, 1
nop word [rax + rax]
movzx ecx, byte [rdx]
xor byte [rax], cl
add rax, 1
add rdx, 1
cmp rax, r8
jne 0x140314820
jmp 0x140314334
mov dword [rsp + 0x20], 0xa5
jmp 0x1403147c0
mov edx, eax
xor eax, eax
nop dword [rax + rax]
movzx ecx, byte [rbx + rax]
xor byte [r12 + rax], cl
mov rcx, rax
add rax, 1
cmp rdx, rcx
jne 0x140314850
jmp 0x140314491
mov ecx, r15d
xor edx, edx
xor eax, eax
jmp 0x1403143f4
xor ecx, ecx
jmp 0x140314256
mov r8d, 0x79
mov edx, 0x99
mov ecx, 4
mov dword [rsp + 0x20], 0x97
lea r9, str.crypto_rsa_rsa_oaep.c
call fcn.1401d1f90
mov eax, 0xffffffff
jmp 0x140314531
mov esi, dword [rsp + 0x68]
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x68], 0xffffffff
sub esi, 2
mov dword [rsp + 0x58], esi
jmp 0x140314612
mov eax, 0xffffffff
jmp 0x140314531