Function at 0x520220
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x448]
cmp r12, qword [r14 + 0x10]
jbe 0x5208ae
push rbp
mov rbp, rsp
sub rsp, 0x4c0
mov qword [rsp + 0x4e8], rdi
mov qword [rsp + 0x4f0], rsi
mov qword [rsp + 0x4d0], rax
mov qword [rsp + 0x4d8], rbx
mov qword [rsp + 0x4e0], rcx
mov qword [rsp + 0x4f8], r8
mov qword [rsp + 0x500], r9
mov qword [rsp + 0x508], r10
mov rdx, qword [rax + 8]
mov rax, rdx
mov rcx, rdi
mov rdi, rsi
call fcn.00520920
test rcx, rcx
jne 0x52040d
mov qword [rsp + 0x450], rbx
nop
lea rdi, [rsp + 0x340]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046a8b4
mov rbp, qword [rbp]
mov qword [rsp + 0x4a8], 0
movups xmmword [rsp + 0x4b0], xmm15
mov qword [rsp + 0x4b0], 0
mov qword [rsp + 0x4b8], 0x20
lea rdx, [rsp + 0x340]
mov qword [rsp + 0x4a8], rdx
mov rdx, qword [rsp + 0x4d0]
mov rsi, qword [rdx + 0x10]
mov rbx, qword [rsp + 0x4d8]
lea rcx, [rsp + 0x4a8]
mov rdi, rax
mov rax, rsi
nop dword [rax + rax]
call fcn.0051fe40
mov rdx, qword [rsp + 0x4d0]
mov rsi, qword [rdx]
mov rax, qword [rsp + 0x450]
call rsi
nop word [rax + rax]
test rdi, rdi
jne 0x5203fd
lea rdi, [rsp + 0x240]
nop word [rax + rax]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046a8b4
mov rbp, qword [rbp]
mov qword [rsp + 0x490], 0
movups xmmword [rsp + 0x498], xmm15
mov qword [rsp + 0x498], 0
mov qword [rsp + 0x4a0], 0x20
lea rdx, [rsp + 0x240]
mov qword [rsp + 0x490], rdx
mov rdx, qword [rsp + 0x4d8]
mov rsi, qword [rdx + 0x18]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0x490]
call fcn.00504ce0
test rbx, rbx
jne 0x5203e7
mov rdx, qword [rax]
mov r9, qword [rax + 8]
xor ecx, ecx
mov ebx, 1
jmp 0x52044d
xor eax, eax
mov rdi, rbx
mov rsi, rcx
xor ebx, ebx
mov rcx, rbx
add rsp, 0x4c0
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x4c0
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rsi, rdi
mov rdi, rcx
mov rcx, rbx
add rsp, 0x4c0
pop rbp
ret
mov r10, qword [rdx + rcx*8]
inc rcx
mov r11, r10
sub r10, 0
sbb r10, r10
neg r10
xor r12d, r12d
sub r12, r11
sbb r11, r11
neg r11
or r11, r10
xor r11, 1
and rbx, r11
cmp rcx, r9
jl 0x520423
cmp rbx, 1
je 0x52063b
mov qword [rsp + 0x448], rax
nop
lea rdi, [rsp + 0x140]
nop word [rax + rax]
nop word [rax + rax]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046a8b4
mov rbp, qword [rbp]
mov qword [rsp + 0x478], 0
movups xmmword [rsp + 0x480], xmm15
mov qword [rsp + 0x480], 0
mov qword [rsp + 0x488], 0x20
lea rdx, [rsp + 0x140]
mov qword [rsp + 0x478], rdx
mov rdx, qword [rsp + 0x4d0]
mov rax, qword [rdx + 0x18]
mov rbx, qword [rsp + 0x4d8]
lea rcx, [rsp + 0x478]
mov rdi, qword [rsp + 0x4f8]
mov rsi, qword [rsp + 0x500]
mov r8, qword [rsp + 0x508]
call fcn.00520000
lea rdi, [rsp + 0x40]
nop word [rax + rax]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046a8b4
mov rbp, qword [rbp]
mov qword [rsp + 0x460], 0
movups xmmword [rsp + 0x468], xmm15
mov qword [rsp + 0x468], 0
mov qword [rsp + 0x470], 0x20
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x460], rdx
mov rdx, qword [rsp + 0x4e0]
mov rax, qword [rdx + 0x20]
call fcn.004ed400
mov rdx, qword [rsp + 0x4d8]
mov rsi, qword [rdx + 0x18]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0x460]
nop dword [rax + rax]
call fcn.00504bc0
test rbx, rbx
jne 0x520625
mov qword [rsp + 0x440], rax
mov rdx, qword [rsp + 0x4d8]
mov rcx, qword [rdx + 0x18]
mov rbx, qword [rsp + 0x448]
call fcn.00506e20
mov rdx, qword [rsp + 0x4d8]
mov rcx, qword [rdx + 0x18]
mov rax, qword [rsp + 0x440]
lea rbx, [rsp + 0x478]
call fcn.00506000
mov rdx, qword [rsp + 0x4d8]
mov rcx, qword [rdx + 0x18]
mov rax, qword [rsp + 0x440]
lea rbx, [rsp + 0x4a8]
call fcn.00506e20
mov rdx, qword [rsp + 0x440]
mov rsi, qword [rdx]
mov rdi, qword [rdx + 8]
xor eax, eax
mov ecx, 1
jmp 0x5206a0
xor eax, eax
mov rdi, rbx
mov rsi, rcx
xor ebx, ebx
mov rcx, rbx
add rsp, 0x4c0
pop rbp
ret
lea rax, [0x00587e80]
call fcn.0040e960
mov qword [rax + 8], 0x20
lea rcx, [0x005aebdc]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x00600ec0]
mov rsi, rax
xor eax, eax
add rsp, 0x4c0
pop rbp
ret
mov r8, qword [rsi + rax*8]
inc rax
mov r9, r8
sub r8, 0
sbb r8, r8
neg r8
xor r10d, r10d
sub r10, r9
sbb r9, r9
neg r9
or r9, r8
xor r9, 1
and rcx, r9
nop dword [rax]
cmp rax, rdi
jl 0x520673
cmp rcx, 1
je 0x52070e
mov rdx, qword [rsp + 0x4d8]
mov rsi, qword [rdx + 0x18]
mov rdi, qword [rsi]
mov rdi, qword [rdi + 8]
shl rdi, 6
sub rdi, qword [rsi + 8]
lea rsi, [rdi + 7]
sar rsi, 0x3f
shr rsi, 0x3d
lea rcx, [rdi + rsi]
lea rcx, [rcx + 7]
sar rcx, 3
mov qword [rsp + 0x38], rcx
nop
lea rax, [0x0057b8e0]
mov rbx, rcx
call fcn.0044e820
mov rdx, qword [rsp + 0x448]
mov rsi, qword [rdx]
mov rdx, qword [rdx + 8]
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
xor ebx, ebx
jmp 0x52074c
lea rax, [0x00587e80]
call fcn.0040e960
mov qword [rax + 8], 0x20
lea rcx, [0x005aebfc]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x00600ec0]
mov rsi, rax
xor eax, eax
add rsp, 0x4c0
pop rbp
ret
inc rbx
mov rdi, r10
cmp rbx, rdx
jge 0x52076f
mov r8, qword [rsi + rbx*8]
xor r9d, r9d
jmp 0x520874
test r8, r8
je 0x520746
jmp 0x520892
mov r10, rdi
jmp 0x520746
mov qword [rsp + 0x458], rax
mov rdx, qword [rsp + 0x4d8]
mov rdx, qword [rdx + 0x18]
mov rsi, qword [rdx]
mov rsi, qword [rsi + 8]
shl rsi, 6
sub rsi, qword [rdx + 8]
lea rdx, [rsi + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rcx, [rsi + rdx]
lea rcx, [rcx + 7]
sar rcx, 3
mov qword [rsp + 0x30], rcx
nop
lea rax, [0x0057b8e0]
mov rbx, rcx
call fcn.0044e820
mov rdx, qword [rsp + 0x440]
mov rsi, qword [rdx]
mov rdx, qword [rdx + 8]
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
xor ebx, ebx
jmp 0x5207e0
inc rbx
mov rdi, r10
cmp rbx, rdx
jge 0x5207fa
mov r9, qword [rsi + rbx*8]
xor r8d, r8d
jmp 0x520830
test r9, r9
je 0x5207da
jmp 0x520847
mov r10, rdi
jmp 0x5207da
mov rbx, qword [rsp + 0x38]
mov rdi, rax
mov rsi, rcx
mov r8, rsi
mov rax, qword [rsp + 0x458]
mov rcx, rbx
call fcn.0051cc60
add rsp, 0x4c0
pop rbp
ret
mov byte [rdi + rax - 1], r9b
inc r8
shr r9, 8
mov rdi, r10
cmp r8, 8
jge 0x5207f5
lea r10, [rdi - 1]
test r10, r10
jl 0x5207ee
nop
cmp rcx, r10
ja 0x520821
jmp 0x52085a
lea rax, [0x0057b860]
lea rbx, [0x005fff58]
call fcn.00437b40
mov rax, r10
nop dword [rax]
call fcn.0046a620
mov byte [rdi + rax - 1], r8b
inc r9
shr r8, 8
mov rdi, r10
cmp r9, 8
jge 0x52076a
lea r10, [rdi - 1]
test r10, r10
jl 0x520760
cmp rcx, r10
ja 0x520865
jmp 0x5208a5
lea rax, [0x0057b860]
lea rbx, [0x005fff58]
call fcn.00437b40
mov rax, r10
call fcn.0046a620
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
call fcn.00468340
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
jmp fcn.00520220