Function at 0x140108e00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov eax, r8d
mov qword [rsp + 0xb0], rcx
mov ecx, r9d
add eax, 7
mov qword [rsp + 0xb8], rdx
mov dword [rsp + 0xc0], r8d
mov dword [rsp + 0x38], eax
shr eax, 3
mov dword [rsp + 0xc8], r9d
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x34], eax
mov esi, eax
call fcn.1400fd550
mov r15d, eax
test r15, r15
je 0x140109167
mov r13, r15
add r13, qword [rsp + 0xd0]
mov rax, rsi
sub rax, r15
lea rbp, [rax - 1]
mov qword [rsp + 0x40], rax
lea r12, [r13 + 8]
mov rdi, rbp
cmp r12, rbp
cmovae rdi, r12
lea rbx, [r15 + rdi]
mov rcx, rbx
call fcn.1400eb8b0
test rax, rax
mov r14, rax
je 0x140109000
lea rax, [rax + rdi]
mov r8, qword [rsp + 0xb0]
mov r9, r15
xor ecx, ecx
mov rdx, rax
mov qword [rsp + 0x48], rax
call fcn.14011ed40
test eax, eax
mov edi, eax
mov r9, qword [rsp + 0x58]
je 0x140108fc0
test r9, r9
je 0x140108f0e
cmp dword [rsp + 0x34], 7
mov rax, r9
ja 0x140108f81
test rsi, rsi
lea rdx, [rax + rsi]
je 0x140108f01
nop dword [rax]
mov byte [rax], 0
add rax, 1
cmp rax, rdx
jne 0x140108ef0
mov r9, qword [rsp + 0x58]
mov rcx, r9
call fcn.1400eba10
test r14, r14
je 0x140108f34
cmp rbx, 7
mov rax, r14
ja 0x140108f50
test rbx, rbx
lea rdx, [rax + rbx]
je 0x140108f2c
mov byte [rax], 0
add rax, 1
cmp rax, rdx
jne 0x140108f20
mov rcx, r14
call fcn.1400eba10
mov eax, edi
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rbx - 8]
mov rax, rcx
shr rax, 3
lea rdx, [r14 + rax*8 + 8]
mov rax, r14
mov qword [rax], 0
add rax, 8
cmp rdx, rax
jne 0x140108f63
and rcx, 0xfffffffffffffff8
and ebx, 7
lea rax, [r14 + rcx + 8]
jmp 0x140108f17
lea rcx, [rsi - 8]
mov r8, rcx
shr r8, 3
lea rdx, [r9 + r8*8 + 8]
mov qword [rax], 0
add rax, 8
cmp rax, rdx
jne 0x140108f91
neg r8
lea rsi, [rcx + r8*8]
and rcx, 0xfffffffffffffff8
lea rax, [r9 + rcx + 8]
jmp 0x140108ee0
mov r8, qword [rsp + 0xb8]
lea rcx, [rsp + 0x58]
xor edx, edx
mov r9, rsi
call fcn.14011ed40
test eax, eax
mov edi, eax
jne 0x140108ff5
add r13, 2
mov r9, qword [rsp + 0x58]
cmp rsi, r13
jae 0x140109020
mov edi, 0x42
jmp 0x140108ecd
mov r9, qword [rsp + 0x58]
jmp 0x140108ecd
call fcn.14014d490
mov r9, qword [rsp + 0x58]
mov edi, eax
test r9, r9
jne 0x140108ed2
jmp 0x140108f34
cmp byte [r9 + rsi - 1], 0xbc
je 0x140109032
mov edi, 8
jmp 0x140108ecd
mov ecx, dword [rsp + 0x38]
mov r13d, 0xff
movzx edx, byte [r9]
and ecx, 0xfffffff8
sub ecx, dword [rsp + 0xc0]
sar r13d, cl
mov eax, r13d
not eax
test edx, eax
je 0x140109060
mov edi, 8
jmp 0x140108ed2
mov ecx, dword [rsp + 0xc8]
lea rax, [r9 + rbp]
mov rdx, rbp
mov r9, r15
mov r8, rax
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x20], ecx
mov rcx, r14
call fcn.140107b80
xor eax, eax
test rbp, rbp
je 0x1401090a4
mov rdx, rax
add rdx, qword [rsp + 0x58]
movzx ecx, byte [r14 + rax]
add rax, 1
xor byte [rdx], cl
cmp rbp, rax
jne 0x14010908c
mov rax, qword [rsp + 0x58]
and byte [rax], r13b
mov rax, qword [rsp + 0x40]
sub rax, qword [rsp + 0xd0]
sub rax, 2
mov rdx, rax
je 0x140109187
mov r9, qword [rsp + 0x58]
cmp byte [r9], 0
jne 0x140109056
xor eax, eax
jmp 0x1401090e0
cmp byte [r9 + rax], 0
jne 0x140109056
add rax, 1
cmp rax, rdx
jne 0x1401090d5
cmp byte [r9 + rax], 1
lea rbp, [rax + 1]
jne 0x140109028
mov rdx, qword [rsp + 0x48]
lea rcx, [r14 + 8]
mov r8, r15
mov qword [rsp + 0x40], r9
mov qword [r14], 0
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0xd0]
lea rcx, [r14 + r15 + 8]
lea rdx, [r9 + rbp]
call sub.msvcrt.dll_memcpy
mov ecx, dword [rsp + 0xc8]
mov r9, r12
mov r8, r14
mov rdx, r14
call fcn.1400fcd40
mov rcx, qword [rsp + 0x38]
mov r8, r15
mov rdx, r14
call sub.msvcrt.dll_memcmp
test eax, eax
mov r9, qword [rsp + 0x58]
jne 0x140109028
jmp 0x140108ecd
lea r9, str._gcry_rsa_pss_verify
lea rdx, str.rsa_common.c
lea rcx, str.hlen
mov r8d, 0x39e
call fcn.1400ea260
xor eax, eax
mov r9, qword [rsp + 0x58]
jmp 0x1401090e9