Function at 0x140125390
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 0x1401253d0
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 0x1401254ae
cmp eax, r12d
jbe 0x1401256ac
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 0x14012569e
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 0x140125440
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 0x14012549b
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 0x140125480
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 0x140125501
mov rax, qword [r13 + 0x48]
test rax, rax
je 0x140125501
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 0x140125670
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 0x1401255aa
lea edx, [r15 - 1]
movsxd rdx, edx
add byte [r13 + rdx + 0x80], 1
jne 0x1401255aa
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rax, r13
add rcx, r13
jmp 0x1401255a5
movzx edx, byte [rax]
sub rax, 1
add edx, 1
mov byte [rax + 1], dl
test dl, dl
jne 0x1401255aa
cmp rax, rcx
jne 0x140125594
cmp rbp, r12
mov r11, r12
cmovbe r11, rbp
cmp r11, 7
jbe 0x140125677
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 0x1401255d3
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 0x140125626
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 0x140125610
add rbx, r11
add rsi, r11
sub rbp, r11
jne 0x140125550
mov r8d, dword [rsp + 0x58]
sub r8d, r11d
test r8d, r8d
mov dword [r13 + 0xa0], r8d
jne 0x140125688
test r14d, r14d
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
je 0x140125670
lea ecx, [r14 + 0x20]
call fcn.1400eac80
nop dword [rax]
xor eax, eax
jmp 0x1401253bb
mov r10, rsi
mov r8, rbx
mov rcx, r11
mov r9, rdi
jmp 0x140125602
lea rcx, [r13 + r11 + 0x90]
lea rdx, [rdi + r11]
movsxd r8, r8d
call sub.msvcrt.dll_memcpy
jmp 0x140125649
mov r11, rsi
mov rdi, rdx
mov r8, r9
jmp 0x14012546f
lea r9, str._gcry_cipher_ctr_encrypt
lea rdx, str.cipher_ctr.c
lea rcx, str.c__unused___blocksize
mov r8d, 0x35
call fcn.1400ea370
nop
nop
nop
nop