Function at 0x140004830
Capabilities:
Encode data using base64

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x30], rcx
mov rax, rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x70], r8
and r9b, 1
mov byte [rsp + 0x6f], r9b
mov rax, qword [rsp + 0x70]
add rax, 2
movabs rdx, 0xaaaaaaaaaaaaaaab
mul rdx
mov rax, rdx
add rax, rax
and rax, 0xfffffffffffffffc
mov qword [rsp + 0x60], rax
mov al, byte [rsp + 0x6f]
test al, 1
mov edx, 0x2e
mov eax, 0x3d
cmovne eax, edx
mov byte [rsp + 0x5f], al
movzx eax, byte [rsp + 0x6f]
and eax, 1
mov edx, eax
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov rax, qword [rax + rdx*8]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x4f], 0
call fcn.14000612c
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
call fcn.140006154
jmp 0x1400048d3
mov dword [rsp + 0x38], 0
mov eax, dword [rsp + 0x38]
cmp rax, qword [rsp + 0x70]
jae 0x140004ac5
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x38]
movzx edx, byte [rdx + r8]
shr rdx, 2
mov dl, byte [rax + rdx]
call fcn.140006144
jmp 0x140004914
mov eax, dword [rsp + 0x38]
add eax, 1
mov eax, eax
cmp rax, qword [rsp + 0x70]
jae 0x140004a5e
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x78]
mov edx, dword [rsp + 0x38]
mov r9d, edx
movzx edx, byte [r8 + rdx]
and edx, 3
shl edx, 4
inc r9d
movzx r8d, byte [r8 + r9]
shr r8d, 4
or edx, r8d
mov dl, byte [rax + rdx]
call fcn.140006144
jmp 0x140004965
mov eax, dword [rsp + 0x38]
add eax, 2
mov eax, eax
cmp rax, qword [rsp + 0x70]
jae 0x140004a15
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x78]
mov r9d, dword [rsp + 0x38]
mov edx, r9d
inc edx
movzx edx, byte [r8 + rdx]
and edx, 0xf
add r9d, 2
movzx r9d, byte [r8 + r9]
shr r9d, 6
mov r8d, edx
mov edx, r9d
lea edx, [rdx + r8*4]
mov dl, byte [rax + rdx]
call fcn.140006144
jmp 0x1400049be
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x38]
add r8d, 2
movzx edx, byte [rdx + r8]
and edx, 0x3f
mov dl, byte [rax + rdx]
call fcn.140006144
jmp 0x1400049eb
jmp 0x140004a59
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x38]
inc r8d
movzx edx, byte [rdx + r8]
and edx, 0xf
mov dl, byte [rax + rdx*4]
call fcn.140006144
jmp 0x140004a41
mov rcx, qword [rsp + 0x30]
mov dl, byte [rsp + 0x5f]
call fcn.140006144
jmp 0x140004a54
jmp 0x140004a59
jmp 0x140004ab5
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x38]
movzx edx, byte [rdx + r8]
and edx, 3
shl edx, 4
mov dl, byte [rax + rdx]
call fcn.140006144
jmp 0x140004a8a
mov rcx, qword [rsp + 0x30]
mov dl, byte [rsp + 0x5f]
call fcn.140006144
jmp 0x140004a9d
mov rcx, qword [rsp + 0x30]
mov dl, byte [rsp + 0x5f]
call fcn.140006144
jmp 0x140004ab0
jmp 0x140004ab5
mov eax, dword [rsp + 0x38]
add eax, 3
mov dword [rsp + 0x38], eax
jmp 0x1400048db
mov byte [rsp + 0x4f], 1
test byte [rsp + 0x4f], 1
jne 0x140004adf
mov rcx, qword [rsp + 0x30]
call fcn.14000611c
mov rax, qword [rsp + 0x28]
add rsp, 0x88
ret