Function at 0x4b1c40
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4b261c
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x78], rbp
lea rbp, [rsp + 0x78]
mov qword [rsp + 0xa0], rdi
mov byte [rsp + 0xa9], r8b
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0xa8], sil
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x80]
call fcn.004a1b60
mov rax, qword [rsp + 0xc0]
test byte [rax], al
call fcn.004a0800
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
mov rbx, qword [rsp + 0xb0]
test rbx, rbx
mov rsi, qword [rsp + 0xb8]
mov edi, 0
cmove rsi, rdi
shl rbx, cl
and rdx, rbx
jmp 0x4b1d00
shl rdx, 1
dec rsi
nop
test rdx, rdx
je 0x4b1d0c
bt rdx, 0x3c
jae 0x4b1cf9
mov rcx, qword [rsp + 0xa0]
cmp rcx, 0xf
jae 0x4b1d8c
mov r8, rcx
shl rcx, 2
cmp rcx, 0x40
sbb r9, r9
lea r10, [rcx - 0x3c]
neg r10
cmp r10, 0x40
sbb r11, r11
mov r12, rdx
shl rdx, cl
and r9, rdx
movabs rdx, 0xfffffffffffffff
and rdx, r9
mov rcx, r10
shr r12, cl
and r12, r11
mov r9, r12
and r12d, 1
or rdx, r12
movabs r12, 0x800000000000000
cmp r12, rdx
jae 0x4b1d74
lea r12, [r9 + 1]
jmp 0x4b1d77
mov r12, r9
shl r12, cl
and r12, r11
bt r12, 0x3d
jae 0x4b1d92
shr r12, 1
inc rsi
jmp 0x4b1d92
mov r8, rcx
mov r12, rdx
movzx edx, byte [rsp + 0xa8]
cmp dl, 0x58
jne 0x4b1da8
lea rax, [0x005b1dc6]
jmp 0x4b1daf
lea rax, [0x005b1dd6]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], r12
movzx r9d, byte [rsp + 0xa9]
test r9b, r9b
je 0x4b1e6f
mov rdi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov r9, rdi
sub rdi, rcx
cmp rdi, 1
jl 0x4b1df6
mov rbx, qword [rsp + 0x88]
jmp 0x4b1e1a
lea rsi, [rcx + 1]
lea rax, [0x0058df80]
mov rbx, qword [rsp + 0x88]
mov rdi, r9
call fcn.004869c0
mov r9, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x70]
mov byte [rax + rcx], 0x2d
lea rbx, [rcx + 1]
mov rax, qword [rsp + 0x68]
movzx edx, byte [rsp + 0xa8]
mov rsi, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x70]
jmp 0x4b1e87
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x88]
mov r9, rcx
sub rcx, rbx
cmp rcx, 3
jge 0x4b1eb2
lea rsi, [rbx + 3]
lea rax, [0x0058df80]
mov rcx, rbx
mov rbx, rdi
mov rdi, r9
call fcn.004869c0
mov rdi, rax
mov r9, rcx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x48], rbx
lea rax, [rdi + rbx]
call fcn.004a0840
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
mov byte [rdx + rcx], 0x30
lea rax, [rcx + rdx]
lea rax, [rax + 1]
call fcn.004a0840
mov rcx, qword [rsp + 0x70]
movzx edx, byte [rsp + 0xa8]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rcx + 1], dl
lea rax, [rbx + rcx]
lea rax, [rax + 2]
call fcn.004a0840
mov rcx, qword [rsp + 0x58]
mov rdx, rcx
shr rcx, 0x3c
and ecx, 1
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x48]
mov byte [rsi + rbx + 2], cl
lea rcx, [rsi + 3]
shl rdx, 4
mov qword [rsp + 0x58], rdx
mov rdi, qword [rsp + 0xa0]
nop dword [rax]
test rdi, rdi
jge 0x4b1fb6
test rdx, rdx
je 0x4b1fb3
mov rdi, qword [rsp + 0x50]
mov r8, rdi
sub rdi, rsi
lea r9, [rdi - 3]
cmp r9, 1
jge 0x4b1f7b
add rsi, 4
lea rax, [0x0058df80]
mov rdi, r8
call fcn.004869c0
mov r8, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.004a0840
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], 0x2e
inc rcx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
jmp 0x4b25ca
test rdi, rdi
jle 0x4b2028
mov r8, qword [rsp + 0x50]
mov r9, r8
sub r8, rsi
add r8, 0xfffffffffffffffd
cmp r8, 1
jge 0x4b1fee
add rsi, 4
lea rax, [0x0058df80]
mov rdi, r9
nop dword [rax + rax]
call fcn.004869c0
mov r9, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
call fcn.004a0840
mov rcx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], 0x2e
inc rcx
xor eax, eax
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
jmp 0x4b2531
mov rax, qword [rsp + 0x50]
movzx edx, byte [rsp + 0xa8]
mov r8d, edx
or edx, 0x20
nop dword [rax + rax]
cmp r8b, dl
jne 0x4b204c
mov edx, 0x70
jmp 0x4b2051
mov edx, 0x50
mov byte [rsp + 0x2d], dl
mov rdi, rax
sub rax, rcx
nop dword [rax + rax]
cmp rax, 1
jge 0x4b207f
lea rsi, [rcx + 1]
lea rax, [0x0058df80]
call fcn.004869c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdi
lea rax, [rbx + rcx]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2d]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
mov rdx, qword [rsp + 0x60]
test rdx, rdx
jge 0x4b20bd
neg rdx
mov eax, 0x2d
jmp 0x4b20c2
mov eax, 0x2b
mov qword [rsp + 0x60], rdx
mov byte [rsp + 0x2d], al
lea r8, [rcx + 1]
mov rdi, qword [rsp + 0x48]
mov r9, rdi
sub rdi, rcx
lea r10, [rdi - 1]
nop
cmp r10, 1
jge 0x4b2105
lea rsi, [rcx + 2]
lea rax, [0x0058df80]
mov rcx, r8
mov rdi, r9
call fcn.004869c0
mov r8, rbx
mov r9, rcx
mov rbx, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], r9
lea rax, [rbx + r8]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2d]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
lea rdx, [rcx + 1]
mov rsi, qword [rsp + 0x60]
nop dword [rax + rax]
cmp rsi, 0x64
jge 0x4b2211
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xcccccccccccccccd
mov rdi, rdx
imul rsi
add rdx, rsi
sar rdx, 3
mov r10, rsi
sar rsi, 0x3f
sub rdx, rsi
mov qword [rsp + 0x60], rdx
lea r11, [rdx + rdx*4]
shl r11, 1
sub r10, r11
mov qword [rsp + 0x50], r10
cmp r9, 2
jge 0x4b21b3
lea rsi, [rcx + 3]
lea rax, [0x0058df80]
mov rcx, rdi
mov rdi, r8
call fcn.004869c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r8
lea rax, [rbx + rdi]
call fcn.004a0840
mov rcx, qword [rsp + 0x60]
add ecx, 0x30
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rbx + 1], cl
lea rcx, [rdx + 2]
mov rax, qword [rsp + 0x40]
jmp 0x4b24be
cmp rsi, 0x3e8
jge 0x4b234c
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xa3d70a3d70a3d70b
mov rdi, rdx
imul rsi
add rdx, rsi
mov qword [rsp + 0x60], rdx
movabs rax, 0xcccccccccccccccd
imul rsi
add rdx, rsi
mov r11, rdx
sar rdx, 3
movabs rax, 0xcccccccccccccccd
mov r12, rdx
imul rdx
add rdx, r12
sar r11, 0x3f
sar rdx, 3
sub rdx, r11
lea rdx, [rdx + rdx*4]
shl rdx, 1
mov r11, r12
sub r12, rdx
mov qword [rsp + 0x50], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rsi, rdx
mov qword [rsp + 0x40], rsi
nop dword [rax + rax]
cmp r9, 3
jge 0x4b22c5
lea rsi, [rcx + 4]
lea rax, [0x0058df80]
mov rcx, rdi
mov rdi, r8
call fcn.004869c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x38], rdi
lea rax, [rbx + rdi]
call fcn.004a0840
mov rcx, qword [rsp + 0x60]
sar rcx, 6
add ecx, 0x30
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
nop
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x38]
mov byte [rbx + rdx + 1], cl
lea rax, [rbx + rdx]
lea rax, [rax + 2]
call fcn.004a0840
mov rcx, qword [rsp + 0x40]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rbx + 2], cl
lea rcx, [rdx + 3]
mov rax, qword [rsp + 0x48]
jmp 0x4b24be
mov rdi, qword [rsp + 0x48]
mov r8, rdi
sub rdi, rcx
lea r9, [rdi - 1]
movabs rax, 0xa3d70a3d70a3d70b
mov rdi, rdx
imul rsi
add rdx, rsi
sar rdx, 6
movzx r10d, dl
imul r10d, r10d, 0x19a
shr r10d, 0xc
lea r10d, [r10 + r10*4]
shl r10d, 1
sub edx, r10d
mov byte [rsp + 0x2f], dl
movabs rax, 0xcccccccccccccccd
imul rsi
add rdx, rsi
mov r11, rdx
sar rdx, 3
movabs rax, 0xcccccccccccccccd
mov r12, rdx
imul rdx
add rdx, r12
sar rdx, 3
sar r11, 0x3f
sub rdx, r11
lea rdx, [rdx + rdx*4]
shl rdx, 1
mov r11, r12
sub r12, rdx
mov qword [rsp + 0x50], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rsi, rdx
mov qword [rsp + 0x40], rsi
cmp r9, 4
jge 0x4b240e
lea rsi, [rcx + 5]
lea rax, [0x0058df80]
mov rcx, rdi
mov rdi, r8
nop dword [rax]
call fcn.004869c0
mov rdi, rbx
mov rbx, rax
mov r8, rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x38], r8
lea rax, [rbx + rdi]
call fcn.004a0840
movabs rax, 0x4189374bc6a7ef9e
mov rcx, qword [rsp + 0x60]
imul rcx
sar rdx, 8
lea ecx, [rdx + 0x30]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx], cl
lea rax, [rdx + rbx]
lea rax, [rax + 1]
call fcn.004a0840
movzx ecx, byte [rsp + 0x2f]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rdx + 1], cl
lea rax, [rbx + rdx]
lea rax, [rax + 2]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
add ecx, 0x30
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
mov byte [rbx + rdx + 2], cl
lea rax, [rbx + rdx]
lea rax, [rax + 3]
call fcn.004a0840
mov rcx, qword [rsp + 0x40]
add ecx, 0x30
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rbx + 3], cl
lea rcx, [rdx + 4]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x70], rbx
call fcn.004a1ba0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x70], rbx
lea rax, [rbx + rcx]
nop
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2e]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
mov rdx, qword [rsp + 0x30]
lea rax, [rdx + 1]
inc rcx
mov rdx, qword [rsp + 0x58]
shl rdx, 4
mov rsi, qword [rsp + 0x48]
mov r8, qword [rsp + 0xa0]
cmp r8, rax
jle 0x4b2587
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x58], rdx
mov rdi, rsi
sub rsi, rcx
shr rdx, 0x3c
and edx, 0xf
mov r10, qword [rsp + 0x68]
movzx edx, byte [r10 + rdx]
mov byte [rsp + 0x2e], dl
cmp rsi, 1
jge 0x4b24eb
lea rsi, [rcx + 1]
lea rax, [0x0058df80]
call fcn.004869c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
jmp 0x4b24eb
mov rax, rsi
jmp 0x4b202d
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rdi
lea rax, [rbx + rcx]
call fcn.004a0840
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x2e]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rcx], dl
inc rcx
mov rax, qword [rsp + 0x58]
shl rax, 4
mov rdx, qword [rsp + 0x48]
test rax, rax
je 0x4b2614
mov qword [rsp + 0x58], rax
mov rdi, rdx
sub rdx, rcx
shr rax, 0x3c
and eax, 0xf
mov r9, qword [rsp + 0x68]
movzx r10d, byte [r9 + rax]
mov byte [rsp + 0x2e], r10b
cmp rdx, 1
jge 0x4b258f
lea rsi, [rcx + 1]
lea rax, [0x0058df80]
call fcn.004869c0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
jmp 0x4b258f
mov rax, rdx
jmp 0x4b202d
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
mov byte [rsp + 0x29], r8b
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], r11
call fcn.0049cdc0
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]
movzx r8d, byte [rsp + 0x29]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
nop dword [rax]
jmp fcn.004b1c40