Function at 0x4bf440
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x10]
cmp rax, qword [rcx + 0x10]
jbe 0x4c00d9
sub rsp, 0x90
mov qword [rsp + 0x88], rbp
lea rbp, [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
call fcn.004a83e0
mov rax, qword [rsp + 0xd0]
test byte [rax], al
mov qword [rsp], rax
call fcn.004a82c0
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
lea rcx, [rax - 0x3c]
neg rcx
cmp rcx, 0x40
sbb rax, rax
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
mov rbx, qword [rsp + 0xc8]
mov esi, 0
cmove rbx, rsi
shl rdx, cl
and rdx, rax
jmp 0x4bf4e0
shl rdx, 1
dec rbx
nop dword [rax]
test rdx, rdx
je 0x4bf4ec
bt rdx, 0x3c
jae 0x4bf4d7
mov rcx, qword [rsp + 0xb0]
cmp rcx, 0xf
jae 0x4c00ce
mov rax, rcx
shl rcx, 2
cmp rcx, 0x40
sbb rsi, rsi
lea rdi, [rcx - 0x3c]
neg rdi
cmp rdi, 0x40
sbb r8, r8
mov r9, rdx
shl rdx, cl
and rdx, rsi
movabs rsi, 0xfffffffffffffff
and rsi, rdx
mov rcx, rdi
shr r9, cl
and r9, r8
mov rdx, r9
and r9, 1
or rsi, r9
movabs r9, 0x800000000000000
cmp rsi, r9
jbe 0x4c00c6
lea r9, [rdx + 1]
shl r9, cl
and r9, r8
bt r9, 0x3d
jae 0x4bf56d
shr r9, 1
inc rbx
movzx ecx, byte [rsp + 0xb8]
cmp cl, 0x58
jne 0x4c00ba
lea rdx, [0x00563881]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xc0], r9
movzx esi, byte [rsp + 0xb9]
test sil, sil
je 0x4c009d
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa0]
mov r8, rsi
sub rsi, rdi
cmp rsi, 1
jl 0x4c0059
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0x70], rdi
lea rax, [rsi + rdi]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
mov byte [rsi + rax], 0x2d
inc rax
mov rcx, qword [rsp + 0xa8]
mov rdx, rcx
sub rcx, rax
nop word [rax + rax]
cmp rcx, 3
jl 0x4c001b
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x70], rax
lea rcx, [rsi + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x98]
mov byte [rcx + rax], 0x30
lea rdx, [rcx + rax]
lea rdx, [rdx + 1]
mov qword [rsp], rdx
call fcn.004a8300
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rsp + 0xb8]
mov rdx, qword [rsp + 0x70]
mov byte [rdx + rax + 1], cl
lea rbx, [rax + rdx]
lea rbx, [rbx + 2]
mov qword [rsp], rbx
call fcn.004a8300
mov rax, qword [rsp + 0xc0]
mov rcx, rax
shr rax, 0x3c
and rax, 1
add eax, 0x30
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x70]
mov byte [rbx + rdx + 2], al
lea rax, [rbx + 3]
shl rcx, 4
mov qword [rsp + 0x68], rcx
mov rsi, qword [rsp + 0xb0]
test rsi, rsi
jge 0x4bfe93
nop dword [rax]
test rcx, rcx
je 0x4bfe90
mov rsi, qword [rsp + 0xa8]
mov rdi, rsi
sub rsi, rbx
add rsi, 0xfffffffffffffffd
nop dword [rax + rax]
cmp rsi, 1
jl 0x4bfe54
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0x80], rdx
lea rcx, [rdx + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rax], 0x2e
inc rax
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xa8]
jmp 0x4bf7a0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0xa8], rsi
lea rcx, [rdx + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rsp + 0x47]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rax], cl
inc rax
mov rcx, qword [rsp + 0xc0]
shl rcx, 4
mov rbx, qword [rsp + 0xa8]
nop dword [rax]
test rcx, rcx
je 0x4bf80a
mov qword [rsp + 0xc0], rcx
mov rsi, rbx
sub rbx, rax
shr rcx, 0x3c
and rcx, 0xf
mov r8, qword [rsp + 0x78]
movzx ecx, byte [r8 + rcx]
mov byte [rsp + 0x47], cl
cmp rbx, 1
jge 0x4bf74f
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rsi
inc rax
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
jmp 0x4bf74f
movzx ecx, byte [rsp + 0xb8]
mov esi, ecx
or ecx, 0x20
nop word [rax + rax]
cmp sil, cl
jne 0x4bfe4a
mov ecx, 0x70
mov byte [rsp + 0x45], cl
mov rsi, rbx
sub rbx, rax
nop dword [rax + rax]
cmp rbx, 1
jl 0x4bfe0f
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xa8], rsi
lea rcx, [rdx + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax], cl
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
jge 0x4bfe05
neg rcx
mov ebx, 0x2d
mov qword [rsp + 0xc8], rcx
mov byte [rsp + 0x45], bl
lea rsi, [rax + 1]
mov rdi, qword [rsp + 0xa8]
mov r8, rdi
sub rdi, rax
dec rdi
nop dword [rax + rax]
cmp rdi, 1
jl 0x4bfdc5
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0xa8], r8
lea rax, [rdx + rsi]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax], cl
lea rcx, [rax + 1]
mov rbx, qword [rsp + 0xc8]
cmp rbx, 0x64
jge 0x4bfa80
mov rsi, qword [rsp + 0xa8]
mov rdi, rsi
sub rsi, rax
dec rsi
mov r8, rax
movabs rax, 0xcccccccccccccccd
mov r9, rdx
imul rbx
add rdx, rbx
sar rdx, 3
mov r10, rbx
sar rbx, 0x3f
sub rdx, rbx
mov qword [rsp + 0x70], rdx
lea rbx, [rdx + rdx*4]
shl rbx, 1
sub r10, rbx
mov qword [rsp + 0x60], r10
cmp rsi, 2
jl 0x4bfa38
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0xa8], rdi
lea rax, [r9 + rcx]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x70]
add eax, 0x30
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rcx], al
lea rax, [rcx + rdx]
lea rax, [rax + 1]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x60]
add eax, 0x30
mov r9, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov byte [rcx + r9 + 1], al
lea rax, [rcx + 2]
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x98], r9
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rcx
call fcn.004a8400
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
lea rax, [0x005404c0]
mov qword [rsp], rax
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
lea rax, [r8 + 3]
mov qword [rsp + 0x20], rax
nop dword [rax + rax]
call fcn.00489020
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bf96a
cmp rbx, 0x3e8
jge 0x4bfbf9
mov rsi, qword [rsp + 0xa8]
mov rdi, rsi
sub rsi, rax
dec rsi
mov r8, rax
movabs rax, 0xa3d70a3d70a3d70b
mov r9, rdx
imul rbx
add rdx, rbx
mov qword [rsp + 0x70], rdx
movabs rax, 0xcccccccccccccccd
imul rbx
add rdx, rbx
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 + 0x60], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rbx, rdx
mov qword [rsp + 0x58], rbx
cmp rsi, 3
jl 0x4bfbbd
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0x98], r9
mov qword [rsp + 0x50], rcx
lea rax, [r9 + rcx]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x70]
sar rax, 6
add eax, 0x30
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rcx], al
lea rax, [rcx + rdx]
lea rax, [rax + 1]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x60]
add eax, 0x30
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x50]
mov byte [rdx + rcx + 1], al
lea rax, [rdx + rcx]
lea rax, [rax + 2]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x58]
add eax, 0x30
mov r9, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
mov byte [rcx + r9 + 2], al
lea rax, [rcx + 3]
mov rcx, qword [rsp + 0xa8]
jmp 0x4bf9db
lea rax, [0x005404c0]
mov qword [rsp], rax
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
lea rax, [r8 + 4]
mov qword [rsp + 0x20], rax
call fcn.00489020
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bfb19
mov rsi, qword [rsp + 0xa8]
mov rdi, rsi
sub rsi, rax
dec rsi
mov r8, rax
movabs rax, 0xa3d70a3d70a3d70b
mov r9, rdx
imul rbx
add rdx, rbx
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 + 0x46], dl
movabs rax, 0xcccccccccccccccd
imul rbx
add rdx, rbx
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 + 0x70], r12
lea rdx, [r11 + r11*4]
shl rdx, 1
sub rbx, rdx
mov qword [rsp + 0x60], rbx
nop word [rax + rax]
cmp rsi, 4
jl 0x4bfd88
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0xa8], rdi
lea rax, [r9 + rcx]
mov qword [rsp], rax
call fcn.004a8300
movabs rax, 0x4189374bc6a7ef9e
mov rcx, qword [rsp + 0xc8]
imul rcx
sar rdx, 8
lea eax, [rdx + 0x30]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rcx], al
lea rax, [rcx + rdx]
lea rax, [rax + 1]
mov qword [rsp], rax
call fcn.004a8300
movzx eax, byte [rsp + 0x46]
add eax, 0x30
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx + 1], al
lea rax, [rdx + rcx]
lea rax, [rax + 2]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x70]
add eax, 0x30
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx + 2], al
lea rax, [rdx + rcx]
lea rax, [rax + 3]
mov qword [rsp], rax
call fcn.004a8300
mov rax, qword [rsp + 0x60]
add eax, 0x30
mov r9, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov byte [rcx + r9 + 3], al
lea rax, [rcx + 4]
mov rcx, qword [rsp + 0xa8]
jmp 0x4bf9db
lea rax, [0x005404c0]
mov qword [rsp], rax
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
lea rax, [r8 + 5]
mov qword [rsp + 0x20], rax
call fcn.00489020
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
nop
jmp 0x4bfcaa
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r8
add rax, 2
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
nop dword [rax]
jmp 0x4bf8ca
mov ebx, 0x2b
jmp 0x4bf89a
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rsi
inc rax
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
jmp 0x4bf84a
mov ecx, 0x50
jmp 0x4bf82e
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdi
lea rax, [rbx + 4]
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bf70a
test rsi, rsi
jle 0x4c0011
mov rdi, qword [rsp + 0xa8]
mov r8, rdi
sub rdi, rbx
add rdi, 0xfffffffffffffffd
cmp rdi, 1
jl 0x4bffd5
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0x80], rdx
lea rcx, [rdx + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rax], 0x2e
inc rax
xor ecx, ecx
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0xa8]
jmp 0x4bff52
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xa8], r8
lea rcx, [rdx + rax]
mov qword [rsp], rcx
call fcn.004a8300
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rsp + 0x47]
mov rdx, qword [rsp + 0x80]
mov byte [rdx + rax], cl
mov rcx, qword [rsp + 0x48]
inc rcx
inc rax
mov rbx, qword [rsp + 0xc0]
shl rbx, 4
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xb0]
cmp rdi, rcx
jle 0x4bffcd
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0xc0], rbx
mov r8, rsi
sub rsi, rax
shr rbx, 0x3c
and rbx, 0xf
mov r10, qword [rsp + 0x78]
movzx ebx, byte [r10 + rbx]
mov byte [rsp + 0x47], bl
cmp rsi, 1
jge 0x4bfefc
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], r8
inc rax
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bfefc
mov rbx, rsi
jmp 0x4bf80a
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], r8
lea rax, [rbx + 4]
mov qword [rsp + 0x20], rax
call fcn.00489020
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bfeb5
mov rsi, qword [rsp + 0xa8]
jmp 0x4bffcd
lea rcx, [0x005404c0]
mov qword [rsp], rcx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdx
add rax, 3
mov qword [rsp + 0x20], rax
nop
call fcn.00489020
mov rsi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x4bf62a
lea rax, [0x005404c0]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], r8
lea rcx, [rdi + 1]
mov qword [rsp + 0x20], rcx
call fcn.00489020
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bf5d3
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x98]
jmp 0x4bf611
lea rdx, [0x00563891]
jmp 0x4bf585
mov r9, rdx
jmp 0x4bf55a
mov rax, rcx
mov r9, rdx
jmp 0x4bf56d
call fcn.004a4da0
nop
jmp fcn.004bf440