Function at 0x140035620
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rsi, rcx
mov rax, qword [rcx + 0x20]
cmp rax, 0x2a
jb 0x1400356ac
add rax, 0xffffffffffffffd6
mov qword [rsi + 0x20], rax
mov rdx, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov rdi, qword [rdx]
add rdx, 8
mov qword [rsi + 8], rdx
cmp rbx, qword [rsi + 0x18]
jne 0x140035879
mov rax, qword [rsi]
mov rcx, rdx
sub rcx, rax
jbe 0x14003578a
sar rcx, 3
lea rax, [rcx + 1]
shr rax, 0x3f
lea r14, [rcx + rax]
inc r14
shr r14, 1
shl r14, 3
mov rcx, rdx
sub rcx, r14
mov r8, rbx
sub r8, rdx
call sub.msvcrt.dll_memmove
sub rbx, r14
mov qword [rsi + 0x10], rbx
sub qword [rsi + 8], r14
jmp 0x140035879
mov r15, qword [rsi + 0x10]
mov rax, qword [rsi]
mov r12, qword [rsi + 8]
mov r14, r15
sub r14, r12
mov rbp, r14
sar rbp, 3
mov rdx, qword [rsi + 0x18]
mov rcx, rdx
sub rcx, rax
mov r8, rcx
sar r8, 3
cmp rbp, r8
jae 0x140035704
mov ecx, 0xfc0
cmp rdx, r15
je 0x140035845
call fcn.14006fb50
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140035b40
jmp 0x14003597c
sar rcx, 2
cmp rdx, rax
mov edi, 1
cmovne rdi, rcx
lea rax, [rsi + 0x18]
mov qword [rsp + 0x40], rax
mov rax, rdi
shr rax, 0x3d
jne 0x140035ade
lea rcx, [rdi*8]
call fcn.14006fb50
mov rbx, rax
mov qword [rsp + 0x20], rax
lea r13, [rax + rbp*8]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
lea rax, [rax + rdi*8]
mov qword [rsp + 0x38], rax
mov ecx, 0xfc0
call fcn.14006fb50
cmp rbp, rdi
jne 0x1400358e2
test r14, r14
jle 0x140035886
shr r14, 1
add r14, 4
and r14, 0xfffffffffffffff8
sub r13, r14
mov qword [rsp + 0x28], r13
jmp 0x1400358e2
mov rcx, rbx
sub rcx, rax
sar rcx, 2
cmp rbx, rax
mov ebx, 1
cmovne rbx, rcx
mov rax, rbx
shr rax, 0x3d
jne 0x140035ade
mov r14, rbx
shr r14, 2
lea rcx, [rbx*8]
call fcn.14006fb50
lea rdx, [rax + r14*8]
mov rcx, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
mov r10, r9
sub r10, rcx
lea r8, [rax + rbx*8]
mov rbx, rdx
sub r9, rcx
je 0x140035823
and r10, 0xfffffffffffffff8
mov rbx, r10
add rbx, rdx
add r9, 0xfffffffffffffff8
cmp r9, 0x68
jb 0x140035804
lea r10, [rax + r14*8]
sub r10, rcx
cmp r10, 0x20
jae 0x140035a38
mov r10, rdx
mov r11, rcx
nop word [rax + rax]
mov rcx, qword [r11]
mov qword [r10], rcx
add r10, 8
add r11, 8
cmp r10, rbx
jne 0x140035810
mov rcx, qword [rsi]
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], r8
test rcx, rcx
je 0x140035879
call fcn.14006fbd0
mov rbx, qword [rsi + 0x10]
jmp 0x140035879
call fcn.14006fb50
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.140035ce0
mov rdx, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov rdi, qword [rdx]
add rdx, 8
mov qword [rsi + 8], rdx
cmp rbx, qword [rsi + 0x18]
je 0x14003598e
mov qword [rbx], rdi
add qword [rsi + 0x10], 8
jmp 0x14003597c
mov rbp, rax
movabs rax, 0x1fffffffffffffff
sar r14, 2
cmp r15, r12
mov edi, 1
cmovne rdi, r14
cmp rdi, rax
ja 0x140035ae3
lea rcx, [rdi*8]
call fcn.14006fb50
mov rcx, rdi
and rcx, 0xfffffffffffffffc
lea r13, [rax + rcx*2]
lea rcx, [rax + rdi*8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x38], rcx
mov rcx, rbx
call fcn.14006fbd0
mov rax, rbp
mov qword [r13], rax
add r13, 8
mov qword [rsp + 0x30], r13
mov rdi, qword [rsi + 0x10]
mov r14, 0xfffffffffffffff9
sub r14, rdi
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
cmp rdi, qword [rsi + 8]
je 0x14003592b
add rdi, 0xfffffffffffffff8
add r14, 8
mov rcx, rbx
mov rdx, rdi
call fcn.140035e90
jmp 0x140035910
mov rcx, qword [rsi]
movaps xmm0, xmmword [rsp + 0x20]
mov qword [rsp + 0x20], rcx
movups xmmword [rsi], xmm0
mov qword [rsp + 0x28], rdi
mov rax, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
movaps xmm0, xmmword [rsp + 0x30]
mov qword [rsp + 0x30], rax
movups xmmword [rsi + 0x10], xmm0
mov qword [rsp + 0x38], rdx
cmp rdi, rax
je 0x140035972
add r14, rax
neg r14
and r14, 0xfffffffffffffff8
add r14, rax
mov qword [rsp + 0x30], r14
test rcx, rcx
je 0x14003597c
call fcn.14006fbd0
nop
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi]
mov rcx, rdx
sub rcx, rax
ja 0x140035671
mov rcx, rbx
sub rcx, rax
sar rcx, 2
cmp rbx, rax
mov ebx, 1
cmovne rbx, rcx
mov rax, rbx
shr rax, 0x3d
jne 0x140035ade
mov r14, rbx
shr r14, 2
lea rcx, [rbx*8]
call fcn.14006fb50
lea rdx, [rax + r14*8]
mov rcx, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
mov r10, r9
sub r10, rcx
lea r8, [rax + rbx*8]
mov rbx, rdx
sub r9, rcx
je 0x140035823
and r10, 0xfffffffffffffff8
mov rbx, r10
add rbx, rdx
add r9, 0xfffffffffffffff8
cmp r9, 0x68
jb 0x140035a17
lea r10, [rax + r14*8]
sub r10, rcx
cmp r10, 0x20
jae 0x140035a8d
mov r10, rdx
mov r11, rcx
nop dword [rax]
mov rcx, qword [r11]
mov qword [r10], rcx
add r10, 8
add r11, 8
cmp r10, rbx
jne 0x140035a20
jmp 0x140035823
shr r9, 3
inc r9
shl r14, 3
mov r15, r9
and r15, 0xfffffffffffffffc
lea r10, [rdx + r15*8]
lea r11, [rcx + r15*8]
add r14, rax
add r14, 0x10
xor r12d, r12d
nop dword [rax]
movups xmm0, xmmword [rcx + r12*8]
movups xmm1, xmmword [rcx + r12*8 + 0x10]
movups xmmword [r14 + r12*8 - 0x10], xmm0
movups xmmword [r14 + r12*8], xmm1
add r12, 4
cmp r15, r12
jne 0x140035a60
cmp r9, r15
jne 0x140035810
jmp 0x140035823
shr r9, 3
inc r9
shl r14, 3
mov r15, r9
and r15, 0xfffffffffffffffc
lea r10, [rdx + r15*8]
lea r11, [rcx + r15*8]
add r14, rax
add r14, 0x10
xor r12d, r12d
movups xmm0, xmmword [rcx + r12*8]
movups xmm1, xmmword [rcx + r12*8 + 0x10]
movups xmmword [r14 + r12*8 - 0x10], xmm0
movups xmmword [r14 + r12*8], xmm1
add r12, 4
cmp r15, r12
jne 0x140035ab1
cmp r9, r15
jne 0x140035a20
jmp 0x140035823
call fcn.140002f60
call fcn.140002f60
mov rsi, rax
mov rcx, rbp
call fcn.14006fbd0
jmp 0x140035b1f
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x140035b2e
call fcn.14006fbd0
mov rcx, rsi
call fcn.14009a110
int3