Function at 0x519ed0
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 8]
cmp rax, qword [rcx + 0x10]
jbe 0x51a4b5
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
jne 0x51a44f
mov rdx, qword [rsp + 0xc0]
lea rbx, [rdx + 7]
sar rbx, 0x3f
shr rbx, 0x3d
lea rbx, [rbx + rdx]
lea rbx, [rbx + 7]
sar rbx, 3
mov rsi, qword [rsp + 0xc8]
lea rdi, [rax + rsi]
lea rdi, [rdi + 2]
cmp rbx, rdi
jl 0x51a421
mov rdi, qword [rsp + 0xb0]
lea r8, [rdi - 1]
cmp r8, rdi
jae 0x51a4ae
mov r9, qword [rsp + 0xa8]
movzx edi, byte [rdi + r9 - 1]
cmp dil, 0xbc
jne 0x51a3f3
mov rdi, rbx
sub rbx, rax
lea r10, [rbx - 1]
test r10, r10
jl 0x51a4a7
mov r11, qword [rsp + 0xb8]
cmp r10, r11
ja 0x51a4a7
test r8, r8
jl 0x51a4a0
cmp r10, r8
ja 0x51a4a0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x70], rdi
shl rdi, 3
sub rdi, rdx
lea rdx, [rdi - 8]
neg rdx
cmp rdx, 0x20
sbb r13d, r13d
sub r8, r10
mov r14, r11
sub r11, r10
mov r15, r11
neg r11
sar r11, 0x3f
and r11, r10
add r11, r9
movzx r12d, byte [r9]
mov rcx, rdx
mov eax, 0xffffffff
shl eax, cl
and eax, r13d
test r12b, al
jne 0x51a3c5
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x58], rdi
mov qword [rsp], r9
mov qword [rsp + 8], r10
mov qword [rsp + 0x10], r14
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x18], rax
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r15
call fcn.0051b840
mov rax, qword [rsp + 0x50]
test rax, rax
jbe 0x51a499
mov rcx, qword [rsp + 0x58]
cmp rcx, 8
sbb edx, edx
mov rbx, qword [rsp + 0xa8]
movzx esi, byte [rbx]
mov edi, 0xffffffff
shr dil, cl
and edi, edx
and edi, esi
mov byte [rbx], dil
mov rdx, qword [rsp + 0xc8]
test rdx, rdx
jne 0x51a315
mov rcx, qword [rsp + 0x40]
add rcx, 2
mov rdx, qword [rsp + 0x70]
sub rdx, rcx
mov rcx, qword [rsp + 0x68]
jmp 0x51a0e0
dec rdx
mov rcx, rsi
test rdx, rdx
jl 0x51a10d
mov rsi, rcx
sub rcx, rdx
lea rdi, [rcx - 2]
cmp rdi, rax
jae 0x51a492
movzx ecx, byte [rbx + rcx - 2]
test cl, cl
je 0x51a0da
cmp cl, 1
jne 0x51a2e7
test rdx, rdx
jl 0x51a2b9
mov rcx, rax
sub rax, rdx
cmp rax, rcx
ja 0x51a47d
mov qword [rsp + 0x70], rax
lea rax, [0x0063c680]
mov qword [rsp], rax
call fcn.0040c140
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp], rdx
mov qword [rsp + 0x10], 8
mov qword [rsp + 0x18], 8
call rcx
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0x90]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x98]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 0x18], rbx
call rcx
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xd8]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x70]
sub rbx, rsi
mov rdi, rbx
neg rbx
sar rbx, 0x3f
and rbx, rsi
mov r8, qword [rsp + 0xa8]
add rbx, r8
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x50]
sub rbx, rsi
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
call rcx
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + 0x30]
mov rcx, qword [rsp + 0xd8]
mov qword [rsp], rcx
mov qword [rsp + 8], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x10], xmm0
call rax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
nop
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
call fcn.004027e0
cmp byte [rsp + 0x30], 0
je 0x51a28b
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde8]
mov rcx, qword [0x0086bde0]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde8]
mov rcx, qword [0x0086bde0]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde0]
mov rcx, qword [0x0086bde8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rcx, qword [rsp + 0x68]
sub rcx, rdx
lea rsi, [rcx - 2]
test rsi, rsi
jl 0x51a48b
mov rdi, qword [rsp + 0xb8]
cmp rsi, rdi
ja 0x51a48b
xor r8d, r8d
jmp 0x51a343
inc r8
cmp r8, rsi
jge 0x51a380
movzx r9d, byte [rbx + r8]
test r9b, r9b
je 0x51a340
mov rax, qword [0x0086bde0]
mov rcx, qword [0x0086bde8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
cmp rsi, rax
jae 0x51a484
movzx ecx, byte [rbx + rcx - 2]
cmp cl, 1
je 0x51a113
mov rax, qword [0x0086bde0]
mov rcx, qword [0x0086bde8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde0]
mov rcx, qword [0x0086bde8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde0]
mov rcx, qword [0x0086bde8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde8]
mov rcx, qword [0x0086bde0]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov rax, qword [0x0086bde8]
mov rcx, qword [0x0086bde0]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
call fcn.0042cd80
ud2
call fcn.0042cc40
ud2
call fcn.0042cd80
ud2
call fcn.0042cc40
ud2
call fcn.0042cc40
ud2
call fcn.0042cd80
ud2
call fcn.0042cd80
ud2
call fcn.0042cc40
ud2
call fcn.004555d0
jmp fcn.00519ed0