Function at 0x4774e0
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x478170
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdi
mov byte [rsp + 0xd8], sil
mov byte [rsp + 0xd9], r8b
mov qword [rsp + 0xe0], r9
mov qword [rsp + 0xe8], r10
mov qword [rsp + 0xf0], r11
mov qword [rsp + 0x90], 0
movups xmmword [rsp + 0x98], xmm15
cmp qword [rsp + 0xe0], 0
je 0x477570
jmp 0x477580
mov qword [rsp + 0xe8], 0
jmp 0x477582
jmp 0x477582
mov rdx, qword [rsp + 0xf0]
test byte [rdx], al
mov r8, qword [rsp + 0xe0]
mov rcx, qword [rdx]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
shl r8, cl
and r8, rdx
mov qword [rsp + 0xe0], r8
jmp 0x4775b5
cmp qword [rsp + 0xe0], 0
setne byte [rsp + 0x4f]
jne 0x4775c7
jmp 0x4775db
mov rdx, qword [rsp + 0xe0]
bt rdx, 0x3c
setae byte [rsp + 0x4f]
jmp 0x4775dd
jmp 0x4775dd
cmp byte [rsp + 0x4f], 0
jne 0x4775e6
jmp 0x477610
mov rdx, qword [rsp + 0xe0]
shl rdx, 1
mov qword [rsp + 0xe0], rdx
mov rdx, qword [rsp + 0xe8]
dec rdx
mov qword [rsp + 0xe8], rdx
jmp 0x47760e
jmp 0x4775b5
cmp qword [rsp + 0xd0], 0
setge byte [rsp + 0x4f]
nop
jge 0x477624
jmp 0x477634
cmp qword [rsp + 0xd0], 0xf
setl byte [rsp + 0x4f]
jmp 0x477636
jmp 0x477636
cmp byte [rsp + 0x4f], 0
jne 0x477645
nop dword [rax]
jmp 0x47772d
mov rcx, qword [rsp + 0xd0]
shl rcx, 2
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0xe0]
cmp rcx, 0x40
sbb r8, r8
shl rdx, cl
and rdx, r8
movabs r8, 0xfffffffffffffff
and rdx, r8
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb r8, r8
shr rdx, cl
and rdx, r8
mov qword [rsp + 0xe0], rdx
mov r8, rdx
and edx, 1
or rdx, qword [rsp + 0x60]
movabs r9, 0x800000000000000
nop dword [rax + rax]
cmp r9, rdx
jb 0x4776c7
jmp 0x4776d5
lea rdx, [r8 + 1]
mov qword [rsp + 0xe0], rdx
jmp 0x4776d7
jmp 0x4776d7
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb r8, r8
shl rdx, cl
and rdx, r8
mov qword [rsp + 0xe0], rdx
bt rdx, 0x3d
jb 0x477709
jmp 0x477729
shr rdx, 1
mov qword [rsp + 0xe0], rdx
mov rdx, qword [rsp + 0xe8]
inc rdx
mov qword [rsp + 0xe8], rdx
jmp 0x47772b
jmp 0x47772b
jmp 0x47772f
jmp 0x47772f
lea rdx, [0x0059262b]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], 0x10
cmp byte [rsp + 0xd8], 0x58
je 0x477756
jmp 0x477773
lea rdx, [0x0059261b]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], 0x10
jmp 0x477775
jmp 0x477775
cmp byte [rsp + 0xd9], 0
jne 0x477782
nop
jmp 0x4777f8
mov rsi, qword [rsp + 0xc0]
lea rdx, [rsi + 1]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
nop
cmp rdi, rdx
jae 0x4777a7
jmp 0x4777a9
jmp 0x4777d6
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop dword [rax + rax]
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x4777d6
lea r8, [rbx + rsi]
mov byte [r8], 0x2d
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
jmp 0x4777fa
jmp 0x4777fa
mov rdx, qword [rsp + 0xe0]
shr rdx, 0x3c
and edx, 1
add edx, 0x30
mov byte [rsp + 0x4d], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 3]
cmp rdi, rdx
jae 0x477833
jmp 0x477835
jmp 0x47785d
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
call fcn.0044d760
lea rdx, [rbx + 3]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x47785d
movzx r8d, byte [rsp + 0xd8]
movzx r9d, byte [rsp + 0x4d]
lea r10, [rbx + rsi]
mov byte [r10], 0x30
lea r10, [rbx + rsi]
lea r10, [r10 + 1]
mov byte [r10], r8b
lea r8, [rbx + rsi]
lea r8, [r8 + 2]
mov byte [r8], r9b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
mov rdx, qword [rsp + 0xe0]
shl rdx, 4
mov qword [rsp + 0xe0], rdx
cmp qword [rsp + 0xd0], 0
setl byte [rsp + 0x4f]
jl 0x4778c8
jmp 0x4778d8
cmp qword [rsp + 0xe0], 0
setne byte [rsp + 0x4f]
jmp 0x4778da
jmp 0x4778da
cmp byte [rsp + 0x4f], 0
nop
jne 0x4778e4
jmp 0x47795b
mov rsi, qword [rsp + 0xc0]
lea rdx, [rsi + 1]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
cmp rdi, rdx
jae 0x477907
jmp 0x477909
jmp 0x477936
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop dword [rax + rax]
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x477936
lea r8, [rbx + rsi]
mov byte [r8], 0x2e
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
jmp 0x47808f
cmp qword [rsp + 0xd0], 0
jg 0x477968
jmp 0x4779e5
mov rsi, qword [rsp + 0xc0]
lea rdx, [rsi + 1]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
cmp rdi, rdx
jae 0x47798b
jmp 0x47798d
jmp 0x4779b6
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x4779b6
lea r8, [rbx + rsi]
mov byte [r8], 0x2e
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0x58], 0
nop
jmp 0x477f93
jmp 0x4779e7
jmp 0x4779e9
mov byte [rsp + 0x41], 0x50
movzx eax, byte [rsp + 0xd8]
call fcn.004732a0
mov byte [rsp + 0x4e], al
nop
cmp byte [rsp + 0xd8], al
je 0x477a0b
jmp 0x477a12
mov byte [rsp + 0x41], 0x70
jmp 0x477a14
jmp 0x477a14
mov rsi, qword [rsp + 0xc0]
lea rdx, [rsi + 1]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
cmp rdi, rdx
jae 0x477a37
jmp 0x477a39
jmp 0x477a62
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
nop
jmp 0x477a62
movzx r8d, byte [rsp + 0x41]
lea r9, [rbx + rsi]
mov byte [r9], r8b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
cmp qword [rsp + 0xe8], 0
jl 0x477a94
jmp 0x477aae
mov byte [rsp + 0x41], 0x2d
mov rdx, qword [rsp + 0xe8]
neg rdx
mov qword [rsp + 0xe8], rdx
jmp 0x477ab5
mov byte [rsp + 0x41], 0x2b
jmp 0x477ab5
mov rsi, qword [rsp + 0xc0]
lea rdx, [rsi + 1]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
cmp rdi, rdx
jae 0x477ad8
jmp 0x477ada
jmp 0x477b02
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x477b02
movzx r8d, byte [rsp + 0x41]
lea r9, [rbx + rsi]
mov byte [r9], r8b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
cmp qword [rsp + 0xe8], 0x64
jl 0x477b37
jmp 0x477c31
jmp 0x477b39
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
sar rcx, 0x3f
sub rdx, rcx
add edx, 0x30
mov byte [rsp + 0x4a], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
mov r8, rcx
sar rcx, 0x3f
sub rdx, rcx
lea rdx, [rdx + rdx*4]
shl rdx, 1
sub r8, rdx
lea edx, [r8 + 0x30]
mov byte [rsp + 0x49], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 2]
nop dword [rax]
cmp rdi, rdx
jae 0x477bc7
jmp 0x477bc9
jmp 0x477bf6
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop dword [rax + rax]
call fcn.0044d760
lea rdx, [rbx + 2]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x477bf6
movzx r8d, byte [rsp + 0x4a]
movzx r9d, byte [rsp + 0x49]
lea r10, [rbx + rsi]
mov byte [r10], r8b
lea rsi, [rbx + rsi]
lea rsi, [rsi + 1]
mov byte [rsi], r9b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
jmp 0x477f53
cmp qword [rsp + 0xe8], 0x3e8
jl 0x477c45
nop
jmp 0x477da5
jmp 0x477c47
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xa3d70a3d70a3d70b
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 6
sar rcx, 0x3f
sub rdx, rcx
add edx, 0x30
mov byte [rsp + 0x48], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
sar rcx, 0x3f
sub rdx, rcx
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
mov r8, rcx
sar rcx, 0x3f
sub rdx, rcx
lea rdx, [rdx + rdx*4]
shl rdx, 1
sub r8, rdx
lea edx, [r8 + 0x30]
mov byte [rsp + 0x47], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
mov r8, rcx
sar rcx, 0x3f
sub rdx, rcx
lea rdx, [rdx + rdx*4]
shl rdx, 1
sub r8, rdx
lea edx, [r8 + 0x30]
mov byte [rsp + 0x46], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 3]
cmp rdi, rdx
jae 0x477d2b
jmp 0x477d2d
jmp 0x477d56
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop
call fcn.0044d760
lea rdx, [rbx + 3]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x477d56
movzx r8d, byte [rsp + 0x48]
movzx r9d, byte [rsp + 0x47]
movzx r10d, byte [rsp + 0x46]
lea r11, [rbx + rsi]
mov byte [r11], r8b
lea r8, [rbx + rsi]
lea r8, [r8 + 1]
mov byte [r8], r9b
lea rsi, [rbx + rsi]
lea rsi, [rsi + 2]
mov byte [rsi], r10b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
nop dword [rax]
jmp 0x477f53
jmp 0x477da7
mov rdx, qword [rsp + 0xe8]
movabs rax, 0x4189374bc6a7ef9e
mov rcx, rdx
imul rdx
sar rdx, 8
sar rcx, 0x3f
sub rdx, rcx
add edx, 0x30
mov byte [rsp + 0x45], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xa3d70a3d70a3d70b
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 6
sar rcx, 0x3f
sub rdx, rcx
movzx r8d, dl
imul r8d, r8d, 0x19a
shr r8d, 0xc
lea r8d, [r8 + r8*4]
shl r8d, 1
sub edx, r8d
add edx, 0x30
mov byte [rsp + 0x44], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
sar rcx, 0x3f
sub rdx, rcx
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
mov r8, rcx
sar rcx, 0x3f
sub rdx, rcx
lea rdx, [rdx + rdx*4]
shl rdx, 1
sub r8, rdx
lea edx, [r8 + 0x30]
mov byte [rsp + 0x43], dl
mov rdx, qword [rsp + 0xe8]
movabs rax, 0xcccccccccccccccd
mov rcx, rdx
imul rdx
add rdx, rcx
sar rdx, 3
mov r8, rcx
sar rcx, 0x3f
sub rdx, rcx
lea rdx, [rdx + rdx*4]
shl rdx, 1
sub r8, rdx
lea edx, [r8 + 0x30]
mov byte [rsp + 0x42], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 4]
cmp rdi, rdx
jae 0x477ece
jmp 0x477ed0
jmp 0x477ef8
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
call fcn.0044d760
lea rdx, [rbx + 4]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x477ef8
movzx r8d, byte [rsp + 0x45]
movzx r9d, byte [rsp + 0x44]
movzx r10d, byte [rsp + 0x43]
movzx r11d, byte [rsp + 0x42]
lea r12, [rbx + rsi]
mov byte [r12], r8b
lea r8, [rbx + rsi]
lea r8, [r8 + 1]
mov byte [r8], r9b
lea r8, [rbx + rsi]
lea r8, [r8 + 2]
mov byte [r8], r10b
lea rsi, [rbx + rsi]
lea rsi, [rsi + 3]
mov byte [rsi], r11b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
jmp 0x477f53
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rcx
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rdx, qword [rsp + 0x58]
nop dword [rax + rax]
cmp qword [rsp + 0xd0], rdx
jg 0x477faf
jmp 0x478085
mov rax, qword [rsp + 0xe0]
shr rax, 0x3c
and eax, 0xf
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
cmp rcx, rax
ja 0x477fdd
jmp 0x47808a
add rdx, rax
movzx edx, byte [rdx]
mov byte [rsp + 0x4b], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 1]
cmp rdi, rdx
jae 0x47800a
jmp 0x47800c
jmp 0x478036
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
nop
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x478036
movzx r8d, byte [rsp + 0x4b]
lea r9, [rbx + rsi]
mov byte [r9], r8b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
mov rdx, qword [rsp + 0xe0]
shl rdx, 4
mov qword [rsp + 0xe0], rdx
jmp 0x478071
mov rdx, qword [rsp + 0x58]
inc rdx
mov qword [rsp + 0x58], rdx
nop
jmp 0x477f93
jmp 0x4779e7
call fcn.00466540
cmp qword [rsp + 0xe0], 0
jne 0x47809f
jmp 0x478165
mov rax, qword [rsp + 0xe0]
shr rax, 0x3c
and eax, 0xf
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
cmp rcx, rax
ja 0x4780cd
jmp 0x47816a
add rdx, rax
movzx edx, byte [rdx]
mov byte [rsp + 0x4c], dl
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xb8]
lea rdx, [rsi + 1]
cmp rdi, rdx
jae 0x4780fa
jmp 0x4780fc
jmp 0x478124
mov qword [rsp + 0x68], rsi
lea rax, [0x00575360]
mov rcx, rsi
mov rsi, rdx
call fcn.0044d760
lea rdx, [rbx + 1]
mov rsi, qword [rsp + 0x68]
mov rbx, rax
mov rdi, rcx
jmp 0x478124
movzx r8d, byte [rsp + 0x4c]
lea r9, [rbx + rsi]
mov byte [r9], r8b
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
mov rdx, qword [rsp + 0xe0]
shl rdx, 4
mov qword [rsp + 0xe0], rdx
jmp 0x47815f
nop
jmp 0x47808f
jmp 0x4779e9
call fcn.00466540
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
mov byte [rsp + 0x29], r8b
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], r11
nop dword [rax]
call fcn.00463e40
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]
jmp fcn.004774e0