Function at 0x4bf4a0
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 0x4c0139
sub rsp, 0x90
mov qword [rsp + 0x88], rbp
lea rbp, [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
call fcn.004a8440
mov rax, qword [rsp + 0xd0]
test byte [rax], al
mov qword [rsp], rax
call fcn.004a8320
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 0x4bf540
shl rdx, 1
dec rbx
nop dword [rax]
test rdx, rdx
je 0x4bf54c
bt rdx, 0x3c
jae 0x4bf537
mov rcx, qword [rsp + 0xb0]
cmp rcx, 0xf
jae 0x4c012e
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 0x4c0126
lea r9, [rdx + 1]
shl r9, cl
and r9, r8
bt r9, 0x3d
jae 0x4bf5cd
shr r9, 1
inc rbx
movzx ecx, byte [rsp + 0xb8]
cmp cl, 0x58
jne 0x4c011a
lea rdx, [0x005638c1]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xc0], r9
movzx esi, byte [rsp + 0xb9]
test sil, sil
je 0x4c00fd
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa0]
mov r8, rsi
sub rsi, rdi
cmp rsi, 1
jl 0x4c00b9
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.004a8360
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 0x4c007b
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.004a8360
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.004a8360
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.004a8360
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 0x4bfef3
nop dword [rax]
test rcx, rcx
je 0x4bfef0
mov rsi, qword [rsp + 0xa8]
mov rdi, rsi
sub rsi, rbx
add rsi, 0xfffffffffffffffd
nop dword [rax + rax]
cmp rsi, 1
jl 0x4bfeb4
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.004a8360
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 0x4bf800
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.004a8360
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 0x4bf86a
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 0x4bf7af
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
jmp 0x4bf7af
movzx ecx, byte [rsp + 0xb8]
mov esi, ecx
or ecx, 0x20
nop word [rax + rax]
cmp sil, cl
jne 0x4bfeaa
mov ecx, 0x70
mov byte [rsp + 0x45], cl
mov rsi, rbx
sub rbx, rax
nop dword [rax + rax]
cmp rbx, 1
jl 0x4bfe6f
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.004a8360
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 0x4bfe65
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 0x4bfe25
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.004a8360
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 0x4bfae0
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 0x4bfa98
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.004a8360
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.004a8360
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.004a8460
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, [0x005404a0]
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.00489060
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bf9ca
cmp rbx, 0x3e8
jge 0x4bfc59
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 0x4bfc1d
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.004a8360
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.004a8360
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.004a8360
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 0x4bfa3b
lea rax, [0x005404a0]
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.00489060
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bfb79
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 0x4bfde8
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.004a8360
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.004a8360
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.004a8360
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.004a8360
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 0x4bfa3b
lea rax, [0x005404a0]
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.00489060
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
nop
jmp 0x4bfd0a
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
nop dword [rax]
jmp 0x4bf92a
mov ebx, 0x2b
jmp 0x4bf8fa
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
jmp 0x4bf8aa
mov ecx, 0x50
jmp 0x4bf88e
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
jmp 0x4bf76a
test rsi, rsi
jle 0x4c0071
mov rdi, qword [rsp + 0xa8]
mov r8, rdi
sub rdi, rbx
add rdi, 0xfffffffffffffffd
cmp rdi, 1
jl 0x4c0035
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.004a8360
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 0x4bffb2
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.004a8360
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 0x4c002d
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 0x4bff5c
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bff5c
mov rbx, rsi
jmp 0x4bf86a
lea rcx, [0x005404a0]
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.00489060
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bff15
mov rsi, qword [rsp + 0xa8]
jmp 0x4c002d
lea rcx, [0x005404a0]
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.00489060
mov rsi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
jmp 0x4bf68a
lea rax, [0x005404a0]
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.00489060
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x4bf633
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x98]
jmp 0x4bf671
lea rdx, [0x005638d1]
jmp 0x4bf5e5
mov r9, rdx
jmp 0x4bf5ba
mov rax, rcx
mov r9, rdx
jmp 0x4bf5cd
call fcn.004a4e00
nop
jmp fcn.004bf4a0