Function at 0x55a840
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x70]
cmp rax, qword [rcx + 0x10]
jbe 0x55b036
sub rsp, 0xf0
mov qword [rsp + 0xe8], rbp
lea rbp, [rsp + 0xe8]
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax]
test rcx, rcx
je 0x55afee
mov rdx, qword [rax + 8]
cmp rdx, 2
jge 0x55afc6
mov rdx, qword [0x0077c750]
mov rbx, qword [0x0077c758]
test rdx, rdx
jne 0x55af8f
nop
mov rdx, qword [rcx + 0x10]
mov rcx, qword [rcx + 8]
lea rbx, [rdx - 1]
nop dword [rax]
test rbx, rbx
jl 0x55af88
mov rcx, qword [rcx + rdx*8 - 8]
bsr rcx, rcx
mov rdx, 0xffffffffffffffff
cmove rcx, rdx
shl rbx, 6
lea rcx, [rcx + rbx]
lea rcx, [rcx + 1]
lea rdx, [rcx + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rcx, [rdx + rcx]
lea rcx, [rcx + 7]
sar rcx, 3
mov rdx, qword [rsp + 0x128]
cmp rcx, rdx
jge 0x55a953
mov rax, qword [0x0077c710]
mov rcx, qword [0x0077c718]
mov qword [rsp + 0x150], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov qword [rsp + 0x68], rcx
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
lea rax, [rax + rax]
lea rax, [rax + 2]
mov rcx, qword [rsp + 0x68]
cmp rcx, rax
jl 0x55a90e
mov byte [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xd8], xmm0
movups xmmword [rsp], xmm0
mov qword [rsp + 0x10], 0
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
nop dword [rax]
call fcn.00521000
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rdx
mov byte [rsp + 0xc8], 0
mov rax, qword [rsp + 0x108]
mov qword [rsp], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x10], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x18], rax
call fcn.00559c80
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
cmp qword [rsp + 0x28], 0
jne 0x55af51
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0x138]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x140]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0x148]
mov qword [rsp + 0x18], rbx
call rcx
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 8], xmm0
mov qword [rsp + 0x18], 0
call rcx
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x20]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x98], rdx
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0xc0], rbx
mov rsi, qword [rsp + 0x100]
mov qword [rsp], rsi
call rcx
lea rax, [0x005efe20]
mov qword [rsp], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rax
call fcn.00444f80
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rax
call fcn.00513280
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
test rcx, rcx
jbe 0x55b02e
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0xb8], rax
movzx ecx, byte [rax]
mov dword [rsp + 0x4c], ecx
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rdx + 0x28]
mov rsi, qword [rsp + 0x100]
mov qword [rsp], rsi
call rbx
mov rax, qword [rsp + 8]
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0x90]
nop word [rax + rax]
cmp rcx, rdx
ja 0x55b029
cmp rcx, 1
jb 0x55b01f
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 0x90]
lea rcx, [rax - 1]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov rbx, qword [rsp + 0xb8]
add rcx, rbx
mov rsi, qword [rsp + 8]
lea rdi, [rsi + 1]
mov r8, qword [rsp + 0x70]
cmp r8, rdi
jb 0x55b014
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0xa8], rcx
mov qword [rsp], rcx
mov r9, qword [rsp + 0x58]
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rdx
mov r10, qword [rsp + 0xf8]
mov qword [rsp + 0x18], r10
mov r11, qword [rsp + 0x100]
mov qword [rsp + 0x20], r11
sub rax, rsi
mov qword [rsp + 0x88], rax
lea r12, [rax - 1]
mov qword [rsp + 0x50], r12
mov r13, r12
neg r12
sar r12, 0x3f
and r12, rdi
add rbx, r12
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x28], rbx
sub r8, rsi
mov qword [rsp + 0x80], r8
lea rsi, [r8 - 1]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r13
call fcn.00559320
mov rax, qword [rsp + 0xa0]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x10], rdx
mov rbx, qword [rsp + 0xf8]
mov qword [rsp + 0x18], rbx
mov rsi, qword [rsp + 0x100]
mov qword [rsp + 0x20], rsi
mov rdi, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x38], rdi
nop dword [rax]
call fcn.00559320
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
call rcx
mov rcx, qword [rsp + 8]
mov rdx, qword [rsp + 0x50]
cmp rdx, rcx
jb 0x55b00f
mov rax, qword [rsp + 0x98]
nop word [rax + rax]
cmp rax, rcx
jne 0x55af4a
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xc0]
xor ebx, ebx
xor esi, esi
jmp 0x55ad96
lea rdi, [rbx + 1]
movzx r8d, byte [rbx + rdx]
movzx r9d, byte [rbx + rcx]
xor r8d, r9d
or esi, r8d
mov rbx, rdi
cmp rax, rbx
jg 0x55ad7f
nop
movzx eax, sil
dec eax
shr eax, 0x1f
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0xf8]
mov rcx, qword [rcx + 0x28]
mov rdx, qword [rsp + 0x100]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x78]
cmp rcx, rax
jb 0x55b00a
mov rdx, qword [rsp + 0x88]
sub rdx, rax
mov rbx, qword [rsp + 0x80]
sub rbx, rax
lea rsi, [rdx - 1]
neg rsi
sar rsi, 0x3f
and rsi, rax
mov rdi, qword [rsp + 0xa0]
add rsi, rdi
lea rcx, [rbx - 1]
xor eax, eax
mov edi, 1
xor r8d, r8d
xor r9d, r9d
jmp 0x55ae77
lea r10, [rax + 1]
movzx r11d, byte [rax + rsi]
nop
mov r12d, r11d
xor r11d, 1
movzx r11d, r11b
dec r11d
shr r11d, 0x1f
mov r13d, r11d
and r11, rdi
nop
dec r12d
shr r12d, 0x1f
not r12
dec r13
and rdi, r13
and r12, rdi
mov r13, r11
neg r11
and r11, rax
dec r13
and r9, r13
or r9, r11
mov r11, r12
neg r12
and r12, 1
dec r11
and r8, r11
or r8, r12
mov rax, r10
cmp rcx, rax
jg 0x55ae19
mov r10d, dword [rsp + 0x4c]
dec r10d
shr r10d, 0x1f
mov r11, qword [rsp + 0x60]
and r11, r10
not r8
and r11, r8
not rdi
and rdi, r11
nop dword [rax]
cmp rdi, 1
jne 0x55af05
lea rax, [r9 + 1]
cmp rcx, rax
jb 0x55b005
sub rdx, r9
lea rcx, [rdx - 2]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and rcx, rax
lea rax, [rcx + rsi]
mov qword [rsp + 0x150], rax
sub rbx, r9
lea rax, [rbx - 2]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x168], xmm0
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov rax, qword [0x0077c710]
mov rcx, qword [0x0077c718]
mov qword [rsp + 0x150], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
xor eax, eax
jmp 0x55ada5
mov qword [rsp + 0x150], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
mov qword [rsp + 0x168], rcx
mov qword [rsp + 0x170], rdx
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
xor ecx, ecx
jmp 0x55a8e9
mov qword [rsp + 0x150], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x170], rbx
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
cmp rdx, 0x7fffffff
jle 0x55afe5
mov rdx, qword [0x0077c740]
mov rbx, qword [0x0077c748]
nop dword [rax]
jmp 0x55a8a6
xor edx, edx
xor ebx, ebx
jmp 0x55a8a6
mov rdx, qword [0x0077c760]
mov rbx, qword [0x0077c768]
nop dword [rax]
jmp 0x55a8a6
call fcn.0045f080
call fcn.0045f080
call fcn.0045f040
mov rax, rdi
mov rcx, r8
call fcn.0045f080
mov eax, 1
call fcn.0045f080
call fcn.0045f040
xor eax, eax
call fcn.0045efc0
nop
call fcn.0045cde0
nop dword [rax + rax]
jmp fcn.0055a840