Function at 0x520080
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0xe8]
cmp r12, qword [r14 + 0x10]
jbe 0x520797
push rbp
mov rbp, rsp
sub rsp, 0x160
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x170], rax
movups xmmword [rsp + 0xb8], xmm15
movups xmmword [rsp + 0xc8], xmm15
mov edi, 1
lea rcx, [0x006c505e]
call fcn.004e5900
nop dword [rax + rax]
test sil, sil
je 0x520194
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x68], rbx
call fcn.00520020
test al, al
je 0x520187
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x50]
call fcn.00520020
nop
test al, al
je 0x520187
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x68]
call fcn.004e4720
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0xb8]
call fcn.004e08a0
lea rax, [rsp + 0xb8]
mov ebx, 0x2f
call fcn.004e0740
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x50]
call fcn.004e4720
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0xb8]
nop dword [rax + rax]
call fcn.004e08a0
jmp 0x5201d9
xor eax, eax
xor ebx, ebx
add rsp, 0x160
pop rbp
ret
mov rax, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x178]
call fcn.00520020
test al, al
je 0x520263
mov rax, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x178]
call fcn.004e4720
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0xb8]
call fcn.004e08a0
mov rdx, qword [rsp + 0x180]
test rdx, rdx
je 0x5201eb
mov rsi, qword [rdx]
jmp 0x5201ed
xor esi, esi
mov qword [rsp + 0x80], rsi
lea rax, [0x00665980]
xor ebx, ebx
mov rcx, rsi
call fcn.00473ec0
mov qword [rsp + 0xf8], rax
lea rdi, [rsp + 0x100]
lea rdi, [rdi - 0x20]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0047a66b
mov rbp, qword [rbp]
mov rbx, qword [rsp + 0x180]
lea rcx, [rsp + 0x100]
lea rax, [0x00675aa0]
call fcn.0046e800
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xf8]
xor edx, edx
jmp 0x52029e
xor eax, eax
xor ebx, ebx
add rsp, 0x160
pop rbp
ret
mov qword [rsp + 0xd8], rcx
mov qword [rcx + rsi], rdx
lea rax, [rsp + 0x100]
call fcn.0046e9c0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x100]
test r8, r8
je 0x52033e
lea rbx, [rdx + 1]
mov rdx, qword [r8]
mov r8, qword [r8 + 8]
cmp rax, rbx
jae 0x520302
mov qword [rsp + 0x90], r8
mov qword [rsp + 0xe8], rdx
mov edi, 1
lea rsi, [0x00665980]
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.00473f80
mov rdx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x90]
mov rsi, rcx
mov rcx, rax
mov rax, rsi
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rax
lea rsi, [rbx - 1]
shl rsi, 4
mov qword [rcx + rsi + 8], r8
cmp dword [0x008fbed0], 0
je 0x520270
call fcn.00479fe0
mov qword [r11], rdx
mov rdi, qword [rcx + rsi]
mov qword [r11 + 8], rdi
jmp 0x520270
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xf0], rcx
mov rbx, rcx
mov rcx, rdx
mov rdi, rax
lea rax, [0x0070b540]
nop dword [rax + rax]
call fcn.004f0ec0
mov rdx, qword [rsp + 0xf0]
mov rax, qword [rsp + 0x78]
jmp 0x52038b
mov rdx, qword [rsp + 0xf8]
add rdx, 0x10
mov rax, qword [rsp + 0x98]
dec rax
test rax, rax
jle 0x520577
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xf8], rdx
mov rcx, qword [rdx]
mov qword [rsp + 0xe0], rcx
mov rdi, qword [rdx + 8]
mov qword [rsp + 0x88], rdi
lea rax, [0x00675aa0]
mov rbx, qword [rsp + 0x180]
call fcn.00412c00
mov rdx, qword [rax + 8]
mov qword [rsp + 0x48], rdx
mov rsi, qword [rax]
mov qword [rsp + 0xa0], rsi
lea rax, [rsp + 0xb8]
mov ebx, 0x3b
call fcn.004e0740
lea rax, [rsp + 0xb8]
mov ebx, 0x20
call fcn.004e0740
mov rax, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x88]
call fcn.00520020
nop dword [rax]
test al, al
je 0x52056a
mov rax, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x88]
call fcn.004e4720
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0xb8]
call fcn.004e08a0
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x48]
nop dword [rax]
call fcn.0051ff00
mov byte [rsp + 0x46], al
test al, al
je 0x52047f
lea rax, [rsp + 0xb8]
mov ebx, 0x2a
call fcn.004e0740
lea rax, [rsp + 0xb8]
mov ebx, 0x3d
call fcn.004e0740
movzx ecx, byte [rsp + 0x46]
test cl, cl
je 0x5204c9
lea rax, [rsp + 0xb8]
lea rbx, [0x006c5bc6]
mov ecx, 7
call fcn.004e08a0
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xa0]
xor eax, eax
xor ecx, ecx
jmp 0x520620
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x48]
call fcn.00520020
test al, al
je 0x5204fe
lea rax, [rsp + 0xb8]
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
call fcn.004e08a0
jmp 0x520374
lea rax, [rsp + 0xb8]
mov ebx, 0x22
call fcn.004e0740
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x48]
xor eax, eax
xor ebx, ebx
jmp 0x520591
cmp rbx, rdx
ja 0x520602
sub rdx, rbx
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and rbx, rdx
add rbx, rcx
lea rax, [rsp + 0xb8]
mov rcx, rsi
call fcn.004e08a0
lea rax, [rsp + 0xb8]
mov ebx, 0x22
nop dword [rax]
call fcn.004e0740
jmp 0x520374
xor eax, eax
xor ebx, ebx
add rsp, 0x160
pop rbp
ret
lea rax, [rsp + 0xb8]
nop
call fcn.004e03c0
add rsp, 0x160
pop rbp
ret
inc rax
cmp rax, rdx
jge 0x520523
movzx esi, byte [rax + rcx]
nop word [rax + rax]
cmp sil, 0x22
je 0x5205ac
cmp sil, 0x5c
jne 0x52058e
cmp rbx, rax
ja 0x52060d
mov qword [rsp + 0x58], rax
sub rax, rbx
mov rsi, rax
neg rax
sar rax, 0x3f
and rbx, rax
add rbx, rcx
lea rax, [rsp + 0xb8]
mov rcx, rsi
call fcn.004e08a0
lea rax, [rsp + 0xb8]
mov ebx, 0x5c
call fcn.004e0740
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x48]
mov rbx, rax
jmp 0x52058e
mov rax, rbx
mov rcx, rdx
call fcn.0047a440
mov rcx, rax
mov rax, rbx
call fcn.0047a440
inc rax
nop dword [rax + rax]
cmp rax, rdx
jge 0x52074f
mov qword [rsp + 0x70], rax
movzx edi, byte [rax + rsi]
mov byte [rsp + 0x47], dil
lea r8d, [rdi - 0x21]
nop dword [rax + rax]
cmp r8b, 0x5e
jb 0x52064d
mov ebx, 1
jmp 0x5206a4
cmp dil, 0x2a
jne 0x520660
mov ebx, 1
jmp 0x5206a4
cmp dil, 0x27
jne 0x52066d
mov ebx, 1
jmp 0x5206a4
cmp dil, 0x25
jne 0x52067a
mov ebx, 1
jmp 0x5206a4
mov qword [rsp + 0x60], rcx
mov eax, edi
call fcn.0051ffa0
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xa0]
movzx edi, byte [rsp + 0x47]
mov ebx, eax
mov rax, qword [rsp + 0x70]
test bl, bl
je 0x520618
cmp rcx, rax
ja 0x520788
sub rax, rcx
mov rdi, rax
neg rax
sar rax, 0x3f
and rcx, rax
lea rbx, [rsi + rcx]
lea rax, [rsp + 0xb8]
mov rcx, rdi
call fcn.004e08a0
lea rax, [rsp + 0xb8]
mov ebx, 0x25
call fcn.004e0740
movzx edx, byte [rsp + 0x47]
shr dl, 4
movzx edx, dl
lea rdi, [0x006c889a]
movzx ebx, byte [rdi + rdx]
lea rax, [rsp + 0xb8]
call fcn.004e0740
movzx edx, byte [rsp + 0x47]
and edx, 0xf
lea rsi, [0x006c889a]
movzx ebx, byte [rdx + rsi]
lea rax, [rsp + 0xb8]
call fcn.004e0740
mov rcx, qword [rsp + 0x70]
lea rdx, [rcx + 1]
mov rax, rcx
mov rsi, qword [rsp + 0xa0]
mov rcx, rdx
mov rdx, qword [rsp + 0x48]
jmp 0x520618
cmp rcx, rdx
ja 0x52077d
sub rdx, rcx
mov rdi, rdx
neg rdx
sar rdx, 0x3f
and rcx, rdx
lea rbx, [rsi + rcx]
lea rax, [rsp + 0xb8]
mov rcx, rdi
call fcn.004e08a0
jmp 0x520374
mov rax, rcx
mov rcx, rdx
call fcn.0047a440
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.0047a440
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.004780a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00520080