Function at 0x478580
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x4790e6
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0xd0], sil
mov byte [rsp + 0xd1], r8b
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xe0], r10
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0x88], 0
movups xmmword [rsp + 0x90], xmm15
cmp qword [rsp + 0xd8], 0
je 0x478610
jmp 0x478620
mov qword [rsp + 0xe0], 0
jmp 0x478622
jmp 0x478622
mov rdx, qword [rsp + 0xe8]
test byte [rdx], al
mov rcx, qword [rdx]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
mov r8, qword [rsp + 0xd8]
shl r8, cl
and r8, rdx
mov qword [rsp + 0xd8], r8
jmp 0x478655
cmp qword [rsp + 0xd8], 0
setne byte [rsp + 0x4f]
jne 0x478667
jmp 0x47867b
mov rdx, qword [rsp + 0xd8]
bt rdx, 0x3c
setae byte [rsp + 0x4f]
jmp 0x47867d
jmp 0x47867d
cmp byte [rsp + 0x4f], 0
jne 0x478686
jmp 0x4786a5
mov rdx, qword [rsp + 0xd8]
shl rdx, 1
mov qword [rsp + 0xd8], rdx
dec qword [rsp + 0xe0]
jmp 0x4786a3
jmp 0x478655
cmp qword [rsp + 0xc8], 0
setge byte [rsp + 0x4f]
jge 0x4786b7
jmp 0x4786c7
cmp qword [rsp + 0xc8], 0xf
setl byte [rsp + 0x4f]
jmp 0x4786c9
jmp 0x4786c9
cmp byte [rsp + 0x4f], 0
jne 0x4786d5
jmp 0x4787ad
mov rcx, qword [rsp + 0xc8]
shl rcx, 2
cmp rcx, 0x40
sbb rdx, rdx
mov qword [rsp + 0x50], rcx
mov r8, qword [rsp + 0xd8]
shl r8, cl
and r8, rdx
movabs rdx, 0xfffffffffffffff
and r8, rdx
mov qword [rsp + 0x60], r8
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
mov r9, qword [rsp + 0xd8]
shr r9, cl
and r9, rdx
mov qword [rsp + 0xd8], r9
mov rdx, r9
and r9d, 1
or r8, r9
movabs r9, 0x800000000000000
cmp r9, r8
jb 0x478751
jmp 0x478760
inc rdx
mov qword [rsp + 0xd8], rdx
jmp 0x478762
jmp 0x478762
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffc4
neg rcx
cmp rcx, 0x40
sbb rdx, rdx
mov r8, qword [rsp + 0xd8]
shl r8, cl
and r8, rdx
mov qword [rsp + 0xd8], r8
bt r8, 0x3d
jb 0x478794
jmp 0x4787a9
shr r8, 1
mov qword [rsp + 0xd8], r8
inc qword [rsp + 0xe0]
jmp 0x4787ab
jmp 0x4787ab
jmp 0x4787af
jmp 0x4787af
lea rdx, [0x005e0989]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], 0x10
cmp byte [rsp + 0xd0], 0x58
je 0x4787d3
jmp 0x4787ed
lea rdx, [0x005e0979]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], 0x10
jmp 0x4787ef
jmp 0x4787ef
cmp byte [rsp + 0xd1], 0
jne 0x4787fb
jmp 0x478856
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
cmp rcx, rbx
jae 0x47881d
jmp 0x47881f
jmp 0x478832
mov edi, 1
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x478832
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], 0x2d
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
jmp 0x478858
jmp 0x478858
mov rdx, qword [rsp + 0xd8]
shr rdx, 0x3c
and edx, 1
add edx, 0x30
mov byte [rsp + 0x4d], dl
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
add rbx, 3
cmp rcx, rbx
jae 0x478891
jmp 0x478893
jmp 0x4788a7
mov edi, 3
lea rsi, [0x005bc940]
nop
call fcn.0044f4c0
jmp 0x4788a7
movzx edx, byte [rsp + 0xd0]
movzx r8d, byte [rsp + 0x4d]
lea r9, [rbx - 3]
add r9, rax
mov byte [r9], 0x30
lea r9, [rbx - 2]
add r9, rax
mov byte [r9], dl
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], r8b
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rsp + 0xd8]
shl rdx, 4
mov qword [rsp + 0xd8], rdx
cmp qword [rsp + 0xc8], 0
setl byte [rsp + 0x4f]
jl 0x478912
jmp 0x478922
cmp qword [rsp + 0xd8], 0
setne byte [rsp + 0x4f]
jmp 0x478924
jmp 0x478924
cmp byte [rsp + 0x4f], 0
jne 0x47892d
jmp 0x47898e
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
cmp rcx, rbx
jae 0x47894f
jmp 0x478951
jmp 0x478967
mov edi, 1
lea rsi, [0x005bc940]
nop dword [rax]
call fcn.0044f4c0
jmp 0x478967
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], 0x2e
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
jmp 0x479018
cmp qword [rsp + 0xc8], 0
jg 0x47899b
jmp 0x478a05
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
cmp rcx, rbx
jae 0x4789bd
jmp 0x4789bf
jmp 0x4789d2
mov edi, 1
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x4789d2
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], 0x2e
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x58], 0
nop dword [rax]
jmp 0x478f42
jmp 0x478a07
jmp 0x478a09
mov byte [rsp + 0x41], 0x50
movzx eax, byte [rsp + 0xd0]
call fcn.00474460
mov byte [rsp + 0x4e], al
nop
cmp byte [rsp + 0xd0], al
je 0x478a2b
jmp 0x478a32
mov byte [rsp + 0x41], 0x70
jmp 0x478a34
jmp 0x478a34
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
cmp rcx, rbx
jae 0x478a56
jmp 0x478a58
jmp 0x478a6b
mov edi, 1
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x478a6b
movzx edx, byte [rsp + 0x41]
lea r8, [rbx - 1]
add r8, rax
mov byte [r8], dl
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
cmp qword [rsp + 0xe0], 0
jl 0x478a9f
jmp 0x478ab9
mov byte [rsp + 0x41], 0x2d
mov rdx, qword [rsp + 0xe0]
neg rdx
mov qword [rsp + 0xe0], rdx
jmp 0x478ac2
mov byte [rsp + 0x41], 0x2b
nop
jmp 0x478ac2
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
nop dword [rax]
cmp rcx, rbx
jae 0x478ae7
jmp 0x478ae9
jmp 0x478afc
mov edi, 1
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x478afc
movzx edx, byte [rsp + 0x41]
lea r8, [rbx - 1]
add r8, rax
mov byte [r8], dl
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
cmp qword [rsp + 0xe0], 0x64
jl 0x478b33
jmp 0x478c11
jmp 0x478b35
mov rdx, qword [rsp + 0xe0]
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 + 0xe0]
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 rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
add rbx, 2
cmp rcx, rbx
jae 0x478bc2
nop
jmp 0x478bc4
jmp 0x478bd7
mov edi, 2
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x478bd7
movzx edx, byte [rsp + 0x4a]
movzx esi, byte [rsp + 0x49]
lea rdi, [rbx - 2]
add rdi, rax
mov byte [rdi], dl
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], sil
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
jmp 0x478f02
cmp qword [rsp + 0xe0], 0x3e8
jl 0x478c25
nop
jmp 0x478d6c
jmp 0x478c27
mov rdx, qword [rsp + 0xe0]
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 + 0xe0]
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 + 0xe0]
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 rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
add rbx, 3
cmp rcx, rbx
jae 0x478d0b
jmp 0x478d0d
jmp 0x478d22
mov edi, 3
lea rsi, [0x005bc940]
call fcn.0044f4c0
nop
jmp 0x478d22
movzx edx, byte [rsp + 0x48]
movzx esi, byte [rsp + 0x47]
movzx edi, byte [rsp + 0x46]
lea r8, [rbx - 3]
add r8, rax
mov byte [r8], dl
lea rdx, [rbx - 2]
add rdx, rax
mov byte [rdx], sil
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], dil
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
jmp 0x478f02
jmp 0x478d6e
mov rdx, qword [rsp + 0xe0]
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 + 0xe0]
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 + 0xe0]
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 + 0xe0]
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 rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
add rbx, 4
cmp rcx, rbx
jae 0x478e95
jmp 0x478e97
jmp 0x478eaa
mov edi, 4
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x478eaa
movzx edx, byte [rsp + 0x45]
movzx esi, byte [rsp + 0x44]
movzx edi, byte [rsp + 0x43]
movzx r8d, byte [rsp + 0x42]
lea r9, [rbx - 4]
add r9, rax
mov byte [r9], dl
lea rdx, [rbx - 3]
add rdx, rax
mov byte [rdx], sil
lea rdx, [rbx - 2]
add rdx, rax
mov byte [rdx], dil
lea rdx, [rbx - 1]
add rdx, rax
mov byte [rdx], r8b
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
nop
jmp 0x478f02
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
mov rdx, qword [rsp + 0x58]
cmp qword [rsp + 0xc8], rdx
jg 0x478f56
jmp 0x47900e
mov rax, qword [rsp + 0xd8]
shr rax, 0x3c
and eax, 0xf
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
cmp rcx, rax
ja 0x478f85
nop dword [rax]
jmp 0x479013
add rdx, rax
movzx edx, byte [rdx]
mov byte [rsp + 0x4b], dl
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
inc rbx
cmp rcx, rbx
jae 0x478fb1
jmp 0x478fb3
jmp 0x478fc7
mov edi, 1
lea rsi, [0x005bc940]
nop
call fcn.0044f4c0
jmp 0x478fc7
movzx edx, byte [rsp + 0x4b]
lea r8, [rbx - 1]
add r8, rax
mov byte [r8], dl
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rsp + 0xd8]
shl rdx, 4
mov qword [rsp + 0xd8], rdx
jmp 0x479004
inc qword [rsp + 0x58]
jmp 0x478f42
jmp 0x478a07
call fcn.00469500
cmp qword [rsp + 0xd8], 0
jne 0x479028
jmp 0x4790d7
mov rax, qword [rsp + 0xd8]
shr rax, 0x3c
and eax, 0xf
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
cmp rcx, rax
ja 0x479053
jmp 0x4790dc
add rdx, rax
movzx edx, byte [rdx]
mov byte [rsp + 0x4c], dl
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
inc rbx
cmp rcx, rbx
jae 0x47907f
jmp 0x479082
nop
jmp 0x479095
mov edi, 1
lea rsi, [0x005bc940]
call fcn.0044f4c0
jmp 0x479095
movzx edx, byte [rsp + 0x4c]
lea r8, [rbx - 1]
add r8, rax
mov byte [r8], dl
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rsp + 0xd8]
shl rdx, 4
mov qword [rsp + 0xd8], rdx
jmp 0x4790d2
jmp 0x479018
jmp 0x478a09
nop dword [rax]
call fcn.00469500
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
call fcn.00466e80
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.00478580