Function at 0x140125280
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rbp, qword [rsp + 0xe0]
mov eax, 0xc8
mov r13, rcx
mov rbx, rdx
mov rsi, r9
cmp r8, rbp
jae 0x1401252c0
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rcx + 0x18]
mov r12d, dword [rcx + 0xa0]
mov rdi, qword [rax + 0x40]
mov rax, qword [rax + 0x20]
test r12d, r12d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x58], rax
mov r10d, eax
je 0x14012539e
cmp eax, r12d
jbe 0x14012559c
mov eax, dword [rsp + 0x58]
movsxd r9, r12d
cmp r9, rbp
cmova r9, rbp
sub eax, r12d
cmp r9, 7
cdqe
lea rcx, [rcx + rax + 0x90]
jbe 0x14012558e
lea r11, [r9 - 8]
mov rax, r11
shr rax, 3
lea r8, [rax*8 + 8]
xor eax, eax
nop dword [rax]
mov rdx, qword [rsi + rax]
xor rdx, qword [rcx + rax]
mov qword [rbx + rax], rdx
add rax, 8
cmp rax, r8
jne 0x140125330
and r11, 0xfffffffffffffff8
mov r8, r9
lea rax, [r11 + 8]
and r8d, 7
lea r11, [rsi + rax]
lea rdi, [rbx + rax]
add rcx, rax
test r8, r8
je 0x14012538b
xor eax, eax
nop word cs:[rax + rax]
movzx edx, byte [r11 + rax]
xor dl, byte [rcx + rax]
mov byte [rdi + rax], dl
add rax, 1
cmp r8, rax
jne 0x140125370
mov r12d, dword [r13 + 0xa0]
sub r12d, r9d
add rsi, r9
add rbx, r9
mov dword [r13 + 0xa0], r12d
sub rbp, r9
mov r12d, dword [rsp + 0x58]
xor edx, edx
mov rax, rbp
div r12
test rax, rax
mov r14, rdx
mov rdi, rax
je 0x1401253f1
mov rax, qword [r13 + 0x48]
test rax, rax
je 0x1401253f1
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x38], r10d
mov r9, rsi
imul rdi, r12
mov r8, rbx
lea rdx, [r13 + 0x80]
lea rcx, [r13 + 0x280]
mov rbp, r14
call rax
mov r10d, dword [rsp + 0x38]
add rsi, rdi
add rbx, rdi
test rbp, rbp
je 0x140125560
lea rax, [r13 + 0x80]
mov r15d, dword [rsp + 0x58]
lea rdi, [rsp + 0x60]
xor r14d, r14d
mov qword [rsp + 0x38], rax
lea rax, [r13 + 0x280]
mov qword [rsp + 0x40], rax
lea eax, [r15 - 2]
cdqe
sub rax, 0xffffffffffffff80
mov rcx, rax
mov qword [rsp + 0x48], rax
lea eax, [r10 - 1]
sub rcx, rax
mov qword [rsp + 0x50], rcx
nop dword [rax]
mov r8, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
call rax
cmp r14d, eax
cmovb r14d, eax
test r15d, r15d
jle 0x14012549a
lea edx, [r15 - 1]
movsxd rdx, edx
add byte [r13 + rdx + 0x80], 1
jne 0x14012549a
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rax, r13
add rcx, r13
jmp 0x140125495
movzx edx, byte [rax]
sub rax, 1
add edx, 1
mov byte [rax + 1], dl
test dl, dl
jne 0x14012549a
cmp rax, rcx
jne 0x140125484
cmp rbp, r12
mov r11, r12
cmovbe r11, rbp
cmp r11, 7
jbe 0x140125567
lea r8, [r11 - 8]
mov rax, r8
shr rax, 3
lea rcx, [rax*8 + 8]
xor eax, eax
mov rdx, qword [rsi + rax]
xor rdx, qword [rdi + rax]
mov qword [rbx + rax], rdx
add rax, 8
cmp rax, rcx
jne 0x1401254c3
and r8, 0xfffffffffffffff8
mov rcx, r11
lea rax, [r8 + 8]
and ecx, 7
lea r9, [rdi + rax]
lea r10, [rsi + rax]
lea r8, [rbx + rax]
xor eax, eax
test rcx, rcx
je 0x140125516
nop dword [rax]
movzx edx, byte [r10 + rax]
xor dl, byte [r9 + rax]
mov byte [r8 + rax], dl
add rax, 1
cmp rcx, rax
jne 0x140125500
add rbx, r11
add rsi, r11
sub rbp, r11
jne 0x140125440
mov r8d, dword [rsp + 0x58]
sub r8d, r11d
test r8d, r8d
mov dword [r13 + 0xa0], r8d
jne 0x140125578
test r14d, r14d
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
je 0x140125560
lea ecx, [r14 + 0x20]
call fcn.1400eab70
nop dword [rax]
xor eax, eax
jmp 0x1401252ab
mov r10, rsi
mov r8, rbx
mov rcx, r11
mov r9, rdi
jmp 0x1401254f2
lea rcx, [r13 + r11 + 0x90]
lea rdx, [rdi + r11]
movsxd r8, r8d
call sub.msvcrt.dll_memcpy
jmp 0x140125539
mov r11, rsi
mov rdi, rdx
mov r8, r9
jmp 0x14012535f
lea r9, str._gcry_cipher_ctr_encrypt
lea rdx, str.cipher_ctr.c
lea rcx, str.c__unused___blocksize
mov r8d, 0x35
call fcn.1400ea260
nop
nop
nop
nop