Function at 0x52c590
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x60]
cmp rax, qword [rcx + 0x10]
jbe 0x52ce1f
sub rsp, 0xe0
mov qword [rsp + 0xd8], rbp
lea rbp, [rsp + 0xd8]
mov rax, qword [rsp + 0x108]
mov rcx, qword [rax]
test rcx, rcx
je 0x52cdc8
mov rdx, qword [rax + 8]
cmp rdx, 2
jge 0x52cda3
mov rdx, qword [0x008f2548]
mov rbx, qword [0x008f2540]
test rbx, rbx
jne 0x52cd6c
nop
mov rdx, qword [rcx + 0x10]
mov rcx, qword [rcx + 8]
lea rbx, [rdx - 1]
test rbx, rbx
jl 0x52cd65
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 qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0x118]
cmp rdx, rcx
jle 0x52cd1e
mov ebx, 1
test bl, bl
jne 0x52ccd9
mov byte [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xc8], xmm0
mov qword [rsp], 0
movups xmmword [rsp + 8], xmm0
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rdx
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x28], rax
call fcn.004f6f50
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdx
mov byte [rsp + 0xb8], 0
mov rax, qword [rsp + 0xf8]
mov qword [rsp], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x10], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x18], rax
call fcn.0052ba30
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
jne 0x52cca2
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax + 0x38]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
mov rbx, qword [rsp + 0x128]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x130]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0x138]
mov qword [rsp + 0x18], rbx
call rcx
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x10], xmm0
call rcx
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x60], rcx
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0xa8], rdx
mov rbx, qword [rsp + 0xe8]
mov rsi, qword [rbx + 0x20]
mov rdi, qword [rsp + 0xf0]
mov qword [rsp], rdi
call rsi
nop
mov rax, qword [rsp + 0x90]
mov rcx, qword [rax + 0x10]
lea rdx, [0x00671300]
mov qword [rsp], rdx
shl rcx, 3
mov qword [rsp + 0x88], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rcx
call fcn.00449300
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp], rbx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rcx
call fcn.004f6eb0
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
cmp rax, rcx
ja 0x52ce19
mov qword [rsp + 0x80], rax
nop
lea rax, [0x00671300]
mov qword [rsp], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rax
call fcn.00449300
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov rdx, rax
sub rax, rcx
mov rbx, qword [rsp + 0x70]
cmp rax, rbx
mov rsi, rax
cmovg rax, rbx
mov rdi, rcx
sub rcx, rdx
sar rcx, 0x3f
and rcx, rdi
mov rdx, qword [rsp + 0xb0]
add rcx, rdx
mov rdx, qword [rsp + 0x18]
mov rdi, rbx
sub rbx, rax
cmp rbx, rdi
ja 0x52ce0e
mov qword [rsp + 0xb0], rdx
mov r8, rdi
sub rdi, rbx
cmp rdi, rsi
cmovg rdi, rsi
mov rsi, rbx
sub rbx, r8
sar rbx, 0x3f
and rsi, rbx
lea rbx, [rsi + rdx]
cmp rbx, rcx
jne 0x52cc7d
test r8, r8
jbe 0x52ce04
movzx eax, byte [rdx]
mov dword [rsp + 0x4c], eax
mov rcx, qword [rsp + 0xe8]
mov rbx, qword [rcx + 0x28]
mov rsi, qword [rsp + 0xf0]
mov qword [rsp], rsi
call rbx
mov rax, qword [rsp + 8]
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0x70]
cmp rcx, rdx
ja 0x52cdff
cmp rcx, 1
jb 0x52cdf5
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
call rcx
mov rcx, qword [rsp + 0x70]
lea rax, [rcx - 1]
mov rdx, rax
neg rax
sar rax, 0x3f
and rax, 1
mov rbx, qword [rsp + 0xb0]
add rax, rbx
mov rsi, qword [rsp + 8]
inc rsi
cmp rsi, rcx
ja 0x52cded
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x98], rax
mov qword [rsp], rax
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rdx
mov r8, qword [rsp + 0xe8]
mov qword [rsp + 0x18], r8
mov r9, qword [rsp + 0xf0]
mov qword [rsp + 0x20], r9
sub rcx, rsi
mov qword [rsp + 0x78], rcx
mov r10, rcx
neg rcx
sar rcx, 0x3f
and rcx, rsi
add rcx, rbx
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r10
call fcn.0052b140
mov rax, qword [rsp + 0xa0]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rcx
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x18], rdx
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rbx
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x30], rsi
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0x38], rsi
call fcn.0052b140
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
call rcx
mov rcx, qword [rsp + 8]
mov rdx, qword [rsp + 0x78]
cmp rcx, rdx
ja 0x52cde8
mov rax, qword [rsp + 0xa8]
mov qword [rsp], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rdx
call fcn.004db660
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0xe8]
mov rcx, qword [rcx + 0x28]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
ja 0x52cde3
sub rcx, rax
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and rcx, rax
mov rbx, qword [rsp + 0xa0]
add rbx, rcx
xor eax, eax
mov ecx, 1
xor esi, esi
xor edi, edi
jmp 0x52cbba
lea r8, [rax + 1]
movzx r9d, byte [rbx + rax]
nop
mov r10d, r9d
xor r9d, 1
movzx r9d, r9b
dec r9d
shr r9d, 0x1f
mov r11, rcx
and rcx, r9
nop
dec r10d
shr r10d, 0x1f
not r10
dec r9
and r11, r9
and r10, r11
mov r9, rcx
neg rcx
and rax, rcx
dec r9
and rdi, r9
or rdi, rax
mov r9, r10
neg r10
and r10, 1
dec r9
and rsi, r9
or rsi, r10
mov rax, r8
mov rcx, r11
cmp rax, rdx
jl 0x52cb59
mov r8d, dword [rsp + 0x4c]
dec r8d
shr r8d, 0x1f
mov r9, qword [rsp + 0x58]
and r8, r9
not rsi
and r8, rsi
not rcx
and rcx, r8
cmp rcx, 1
jne 0x52cc38
lea rax, [rdi + 1]
cmp rax, rdx
ja 0x52cddb
sub rdx, rax
mov rcx, rdx
neg rdx
sar rdx, 0x3f
and rax, rdx
add rax, rbx
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x150], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
mov rbp, qword [rsp + 0xd8]
add rsp, 0xe0
ret
mov rax, qword [0x008f2508]
mov rcx, qword [0x008f2500]
mov qword [rsp + 0x140], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], rax
mov rbp, qword [rsp + 0xd8]
add rsp, 0xe0
ret
mov qword [rsp], rbx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdi
call fcn.00463800
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x70]
jmp 0x52c925
mov qword [rsp + 0x140], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x160], rcx
mov rbp, qword [rsp + 0xd8]
add rsp, 0xe0
ret
mov rax, qword [0x008f2508]
mov rcx, qword [0x008f2500]
mov qword [rsp + 0x140], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], rax
mov rbp, qword [rsp + 0xd8]
add rsp, 0xe0
ret
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rax + 0x28]
mov rdx, qword [rsp + 0xf0]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 8]
lea rax, [rax + rax]
lea rax, [rax + 2]
mov rcx, qword [rsp + 0x70]
cmp rcx, rax
setl bl
mov rax, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x118]
jmp 0x52c668
xor ecx, ecx
jmp 0x52c635
mov qword [rsp + 0x140], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
mov qword [rsp + 0x158], rbx
mov qword [rsp + 0x160], rdx
mov rbp, qword [rsp + 0xd8]
add rsp, 0xe0
ret
cmp rdx, 0x7fffffff
jle 0x52cdbf
mov rdx, qword [0x008f2538]
mov rbx, qword [0x008f2530]
jmp 0x52c5f6
xor edx, edx
xor ebx, ebx
jmp 0x52c5f6
mov rdx, qword [0x008f2558]
mov rbx, qword [0x008f2550]
jmp 0x52c5f6
mov rcx, rdx
call fcn.00463040
call fcn.00463040
call fcn.00463020
mov rax, rsi
call fcn.00463040
mov eax, 1
call fcn.00463040
call fcn.00463020
xor eax, eax
mov rcx, r8
call fcn.00462fe0
mov rax, rbx
mov rcx, rdi
call fcn.00463040
call fcn.00463040
nop
call fcn.004605f0
jmp fcn.0052c590