Function at 0x140224360
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rdi, qword [rsp + 0x100]
mov qword [rsp + 0xe8], rdx
mov r13, rcx
mov r14, r8
mov rbx, r9
call fcn.1401d47b0
mov r12, rax
test rax, rax
je 0x14022477c
test rbx, rbx
mov rcx, r14
cmove rbx, r14
call fcn.1401e7dc0
movsxd rbp, eax
test ebp, ebp
js 0x14022477c
cmp dword [rsp + 0x108], 0xffffffff
je 0x1402247f0
cmp dword [rsp + 0x108], 0xfffffffd
jl 0x140224820
mov rcx, qword [r13 + 0x18]
call fcn.1401a0930
mov rcx, r13
lea esi, [rax - 1]
call fcn.14021e740
and esi, 7
mov edx, 0xff
movzx r15d, byte [rdi]
mov ecx, esi
shl edx, cl
and r15d, edx
jne 0x140224758
test esi, esi
jne 0x14022440b
add rdi, 1
sub eax, 1
lea edx, [rbp + 1]
cmp edx, eax
jge 0x140224840
mov r11d, eax
sub r11d, ebp
cmp dword [rsp + 0x108], 0xfffffffd
je 0x140224800
lea edx, [r11 - 1]
cmp edx, dword [rsp + 0x108]
jle 0x140224860
cdqe
cmp byte [rdi + rax - 1], 0xbc
jne 0x1402247c0
lea eax, [r11 - 1]
mov r8d, 0x5d
mov dword [rsp + 0x44], r11d
lea r10, str.crypto_rsa_rsa_pss.c
movsxd rcx, eax
mov dword [rsp + 0x30], eax
mov rdx, r10
lea rax, [rdi + rcx]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x48], rax
call fcn.1401f4da0
mov r10, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x44]
test rax, rax
mov r13, rax
je 0x1402248d8
mov qword [rsp + 0x20], rbx
mov ebx, dword [rsp + 0x30]
mov r9d, ebp
mov rcx, rax
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x38], r10
mov edx, ebx
mov dword [rsp + 0x44], r11d
call fcn.1403138f0
mov r10, qword [rsp + 0x38]
test eax, eax
js 0x140224789
test ebx, ebx
mov r11d, dword [rsp + 0x44]
jle 0x1402245fe
lea rcx, [rdi + 1]
mov rdx, r13
lea eax, [r11 - 2]
sub rdx, rcx
cmp rdx, 0xe
jbe 0x140224910
cmp eax, 6
jbe 0x140224910
cmp eax, 0xe
jbe 0x14022496b
mov edx, dword [rsp + 0x30]
xor eax, eax
shr edx, 4
shl rdx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [r13 + rax]
movdqu xmm2, xmmword [rdi + rax]
pxor xmm0, xmm2
movups xmmword [r13 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x140224510
mov ebx, dword [rsp + 0x30]
mov edx, ebx
and edx, 0xfffffff0
mov eax, edx
cmp ebx, edx
je 0x1402245fe
mov r8d, r11d
sub r8d, edx
lea ecx, [r8 - 1]
sub r8d, 2
cmp r8d, 6
jbe 0x14022457d
lea r8, [r13 + rdx]
movq xmm0, qword [rdi + rdx]
mov edx, ecx
movq xmm1, qword [r8]
and edx, 0xfffffff8
add eax, edx
pxor xmm0, xmm1
movq qword [r8], xmm0
cmp ecx, edx
je 0x1402245fe
movsxd rdx, eax
mov ebx, dword [rsp + 0x30]
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 1]
cmp ebx, edx
jle 0x1402245fe
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 2]
cmp edx, ebx
jge 0x1402245fe
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 3]
cmp ebx, edx
jle 0x1402245fe
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 4]
cmp ebx, edx
jle 0x1402245fe
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
lea edx, [rax + 5]
cmp ebx, edx
jle 0x1402245fe
movsxd rdx, edx
add eax, 6
movzx ecx, byte [rdi + rdx]
xor byte [r13 + rdx], cl
cmp ebx, eax
jle 0x1402245fe
cdqe
movzx edx, byte [rdi + rax]
xor byte [r13 + rax], dl
movzx edx, byte [r13]
test esi, esi
jne 0x140224870
test dl, dl
jne 0x140224978
cmp r11d, 2
jle 0x1402248a0
lea ecx, [r11 - 3]
mov eax, 1
add rcx, 2
jmp 0x14022463d
add rax, 1
cmp rax, rcx
je 0x1402248a0
movzx edx, byte [r13 + rax]
mov ebx, eax
test dl, dl
je 0x140224630
add ebx, 1
cmp dl, 1
jne 0x1402248a0
cmp dword [rsp + 0x108], 0xfffffffe
je 0x140224672
mov eax, dword [rsp + 0x30]
sub eax, ebx
cmp eax, dword [rsp + 0x108]
jne 0x140224938
xor r8d, r8d
mov rdx, r14
mov rcx, r12
mov qword [rsp + 0x38], r10
call fcn.1401d4a20
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140224890
mov r8d, 8
lea rdx, [0x1406ae198]
mov rcx, r12
call fcn.1401d4ca0
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140224890
mov rdx, qword [rsp + 0xe8]
mov r8, rbp
mov rcx, r12
call fcn.1401d4ca0
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140224890
cmp dword [rsp + 0x30], ebx
je 0x140224705
mov r8d, dword [rsp + 0x30]
movsxd rdx, ebx
mov rcx, r12
mov qword [rsp + 0x38], r10
add rdx, r13
sub r8d, ebx
movsxd r8, r8d
call fcn.1401d4ca0
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140224890
lea r14, [rsp + 0x50]
xor r8d, r8d
mov rcx, r12
mov qword [rsp + 0x30], r10
mov rdx, r14
call fcn.1401d4d50
mov r10, qword [rsp + 0x30]
test eax, eax
je 0x140224890
mov rdx, qword [rsp + 0x48]
mov r8, rbp
mov rcx, r14
mov qword [rsp + 0x30], r10
call fcn.14042d768
mov r10, qword [rsp + 0x30]
test eax, eax
jne 0x140224982
mov r15d, 1
jmp 0x140224789
mov dword [rsp + 0x20], 0x46
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x85
mov edx, 0x7e
mov ecx, 4
call fcn.1401d1f90
xor r13d, r13d
xor r15d, r15d
lea r10, str.crypto_rsa_rsa_pss.c
mov r8d, 0x83
mov rdx, r10
mov rcx, r13
call fcn.1401f4d70
mov rcx, r12
call fcn.1401d47d0
mov eax, r15d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x58
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x86
mov edx, 0x7e
mov ecx, 4
xor r13d, r13d
call fcn.1401d1f90
lea r10, str.crypto_rsa_rsa_pss.c
jmp 0x140224789
mov dword [rsp + 0x108], ebp
jmp 0x1402243d3
cdqe
lea ecx, [r11 - 2]
cmp byte [rdi + rax - 1], 0xbc
mov dword [rsp + 0x108], ecx
je 0x140224448
jmp 0x1402247c0
mov dword [rsp + 0x20], 0x3f
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x88
jmp 0x14022476d
mov dword [rsp + 0x20], 0x4e
lea r9, str.crypto_rsa_rsa_pss.c
mov r8d, 0x6d
jmp 0x1402247d5
mov dword [rsp + 0x20], 0x54
jmp 0x140224848
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and edx, eax
mov byte [r13], dl
jmp 0x14022460b
xor r15d, r15d
jmp 0x140224789
mov r8d, 0x87
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6a
lea r9, str.crypto_rsa_rsa_pss.c
mov qword [rsp + 0x30], r10
call fcn.1401d1f90
mov r10, qword [rsp + 0x30]
jmp 0x140224789
mov dword [rsp + 0x20], 0x5f
mov r9, r10
mov r8d, 0x41
mov edx, 0x7e
mov ecx, 4
mov qword [rsp + 0x30], r10
call fcn.1401d1f90
mov r10, qword [rsp + 0x30]
jmp 0x140224789
mov edx, eax
xor eax, eax
nop dword [rax]
movzx ecx, byte [rdi + rax]
xor byte [r13 + rax], cl
mov rcx, rax
add rax, 1
cmp rcx, rdx
jne 0x140224918
jmp 0x1402245fe
mov r8d, 0x88
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x6e
lea r9, str.crypto_rsa_rsa_pss.c
mov qword [rsp + 0x30], r10
call fcn.1401d1f90
mov r10, qword [rsp + 0x30]
jmp 0x140224789
mov ecx, dword [rsp + 0x30]
xor eax, eax
xor edx, edx
jmp 0x140224556
mov ebx, 1
jmp 0x14022464c
mov r8d, 0x68
mov edx, 0x7e
mov ecx, 4
mov dword [rsp + 0x20], 0x7c
lea r9, str.crypto_rsa_rsa_pss.c
call fcn.1401d1f90
mov r10, qword [rsp + 0x30]
jmp 0x140224789