Function at 0x64f860
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x150]
cmp r12, qword [r14 + 0x10]
jbe 0x6518c6
push rbp
mov rbp, rsp
sub rsp, 0x1c8
mov qword [rsp + 0x1e0], rbx
mov qword [rsp + 0x1e8], rcx
mov rdx, qword [rax + 0x30]
mov r10, qword [rax + 0x38]
cmp qword [rax + 0x378], 1
nop dword [rax]
jne 0x64f948
test sil, sil
je 0x64f8b9
mov rdi, rax
mov r8, rdx
mov rax, r10
jmp 0x64f951
shl rdi, 5
add rdi, qword [0x00bb0100]
mov r11, qword [rdi]
mov r12, qword [rdi + 0x10]
sub rdx, r12
lea rdx, [r11 + rdx]
lea rdx, [rdx - 1]
test r11, r11
je 0x6518c0
mov r12, qword [rdi + 8]
mov r13, qword [rdi + 0x18]
mov rdi, rax
mov rax, rdx
cmp r11, 0xffffffffffffffff
jne 0x64f8fa
neg rax
xor edx, edx
jmp 0x64f8ff
cqo
idiv r11
sub r10, r13
lea rdx, [r12 + r10]
lea rdx, [rdx - 1]
test r12, r12
je 0x6518b8
mov r8, rax
mov rax, rdx
cmp r12, 0xffffffffffffffff
jne 0x64f926
neg rax
xor edx, edx
jmp 0x64f92b
cqo
idiv r12
test r8, r8
je 0x64f935
test rax, rax
jne 0x64f951
xor eax, eax
xor ebx, ebx
mov rcx, rax
mov rdi, rbx
add rsp, 0x1c8
pop rbp
ret
mov rdi, rax
mov r8, rdx
mov rax, r10
mov qword [rsp + 0x1c0], rdi
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x1e0], rbx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0xf8], r8
mov rdx, qword [rdi + 0x60]
dec rdx
nop dword [rax]
cmp rdx, 0xe
ja 0x650119
mov byte [rsp + 0x1f8], sil
lea r9, [0x00769860]
jmp qword [r9 + rdx*8]
xor edx, edx
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
xor edx, edx
mov qword [rsp + 0x180], rdx
xor edx, edx
mov qword [rsp + 0x170], rdx
xor edx, edx
mov qword [rsp + 0x190], rdx
xor edx, edx
test sil, sil
jne 0x650216
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x100], r9
mov qword [rsp + 0x160], r15
mov qword [rsp + 0x178], r13
mov qword [rsp + 0x158], r12
mov qword [rsp + 0x1a0], r10
lea rdx, [r11 + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rdx, [r11 + rdx]
lea rdx, [rdx + 7]
mov qword [rsp + 0x150], rdx
imul r11, r8
lea rsi, [r11 + 7]
sar rsi, 0x3f
shr rsi, 0x3d
lea rcx, [rsi + r11]
lea rcx, [rcx + 7]
sar rcx, 3
inc rcx
mov qword [rsp + 0x98], rcx
lea rax, [0x0067b5e0]
mov rbx, rcx
call fcn.00444c80
mov qword [rsp + 0x1b8], rax
mov rbx, qword [rsp + 0x98]
mov rcx, rbx
lea rax, [0x0067b5e0]
call fcn.00444c80
mov rdx, qword [rsp + 0x150]
sar rdx, 3
mov qword [rsp + 0x50], rdx
xor ecx, ecx
mov rbx, qword [rsp + 0x1b8]
xor esi, esi
jmp 0x650244
mov rax, r9
mov rbx, r10
xor ecx, ecx
xor edi, edi
add rsp, 0x1c8
pop rbp
ret
mov rcx, qword [rsp + 0x108]
inc rcx
mov rdx, qword [rsp + 0x50]
mov rbx, r11
mov rax, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x58]
cmp r9, rcx
jle 0x650812
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x1b0], rbx
mov qword [rsp + 0x60], rsi
mov rax, qword [rsp + 0x1e0]
mov rcx, rbx
mov rdi, qword [rsp + 0x98]
mov rsi, rdi
mov r8, rsi
mov rbx, qword [rsp + 0x1e8]
call fcn.00468c80
test rbx, rbx
jne 0x650764
mov r8, qword [rsp + 0x98]
lea rsi, [r8 - 1]
mov rcx, rsi
neg rsi
sar rsi, 0x3f
and esi, 1
mov rdx, qword [rsp + 0x1b0]
movzx r10d, byte [rdx]
lea rax, [rdx + rsi]
mov qword [rsp + 0x1a8], rax
mov r11, qword [rsp + 0x188]
lea rdi, [r11 + rsi]
nop dword [rax + rax]
cmp r10b, 1
ja 0x650300
test r10b, r10b
je 0x65036d
mov r10, qword [rsp + 0x50]
mov rbx, r10
jmp 0x6518ae
cmp r10b, 2
jne 0x65030d
xor ebx, ebx
jmp 0x651889
cmp r10b, 3
jne 0x650320
mov r10, qword [rsp + 0x50]
xor ebx, ebx
jmp 0x651832
cmp r10b, 4
jne 0x650749
mov qword [rsp + 0x150], rcx
mov rbx, rcx
mov rsi, rcx
mov r8, rcx
mov r9, qword [rsp + 0x50]
call fcn.0064e400
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x98]
mov r11, qword [rsp + 0x188]
mov r10, qword [rsp + 0x1c0]
mov r12, qword [r10 + 0x60]
dec r12
nop dword [rax]
cmp r12, 0xe
ja 0x650737
lea rbx, [0x007698e0]
jmp qword [rbx + r12*8]
mov r9, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x60]
jmp 0x650229
xor eax, eax
xor ebx, ebx
lea rcx, [0x007666c0]
lea rdi, [0x00764b40]
add rsp, 0x1c8
pop rbp
ret
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x90], rbx
cmp qword [0x00badc90], rbx
je 0x650782
xor eax, eax
nop
jmp 0x6507a7
mov rdx, qword [0x00badc98]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call fcn.00405080
mov rcx, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x90]
test al, al
jne 0x6507e4
cmp qword [0x00badca0], rbx
je 0x6507b8
xor eax, eax
jmp 0x6507e0
mov rdx, qword [0x00badca8]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call fcn.00405080
mov rcx, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x90]
nop dword [rax]
test al, al
je 0x6507ff
xor eax, eax
xor ebx, ebx
lea rcx, [0x007666c0]
lea rdi, [0x00764b10]
add rsp, 0x1c8
pop rbp
ret
xor eax, eax
mov rdi, rcx
mov rcx, rbx
xor ebx, ebx
add rsp, 0x1c8
pop rbp
ret
mov rax, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x1a0]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c8
pop rbp
ret
movzx r12d, byte [rbx + rax]
movzx r13d, byte [rbx + rdi]
shr r13b, 1
add r12d, r13d
mov byte [rax + rbx], r12b
inc rbx
cmp rbx, r10
jl 0x65181b
mov rbx, r10
jmp 0x65186b
movzx r12d, byte [r10 + rax]
movzx r13d, byte [r10 + rdi]
mov r15, r10
sub r15, rbx
movzx r15d, byte [r15 + rax]
add r13, r15
mov r15, r13
shr r13, 0x3f
add r13, r15
sar r13, 1
add r12d, r13d
mov byte [rax + r10], r12b
inc r10
cmp r10, rcx
jl 0x65183c
jmp 0x65036d
movzx r10d, byte [rbx + rdi]
movzx r12d, byte [rbx + rax]
add r10d, r12d
mov byte [rax + rbx], r10b
inc rbx
cmp rbx, rcx
jl 0x651875
jmp 0x65036d
movzx r12d, byte [r10 + rax]
mov r13, r10
sub r13, rbx
movzx r13d, byte [r13 + rax]
add r12d, r13d
mov byte [rax + r10], r12b
inc r10
cmp r10, rcx
jl 0x651893
jmp 0x65036d
call fcn.004308a0
nop dword [rax]
call fcn.004308a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov byte [rsp + 0x28], sil
nop
call fcn.0045a0c0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
movzx esi, byte [rsp + 0x28]
nop
jmp fcn.0064f860