Function at 0x501780
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x20]
cmp rax, qword [rcx + 0x10]
jbe 0x501c81
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
mov rax, qword [rsp + 0xb8]
cmp rax, 2
jge 0x501836
nop
lea rax, [0x00884a60]
mov qword [rsp], rax
call fcn.0040bff0
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 0x2e
cmp dword [0x00d113d0], 0
jne 0x501828
lea rax, [0x0091167d]
mov qword [rdi], rax
mov qword [rsp + 0xc0], 0
lea rax, [0x0099c700]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rdi
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea rax, [0x0091167d]
call fcn.00457260
jmp 0x5017f5
lea rcx, [0x008513e0]
mov qword [rsp], rcx
lea rcx, [rax + 7]
sar rcx, 0x3f
shr rcx, 0x3d
lea rcx, [rcx + rax]
lea rcx, [rcx + 7]
sar rcx, 3
mov qword [rsp + 0x50], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rcx
call fcn.0043ffe0
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x70], rax
lea rcx, [0x00898740]
mov qword [rsp], rcx
call fcn.0040bff0
mov rax, qword [rsp + 8]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
mov rcx, qword [rsp + 0xb8]
mov rdx, rcx
sar rcx, 0x3f
shr rcx, 0x3d
add rcx, rdx
sar rcx, 3
shl rcx, 3
sub rdx, rcx
test rdx, rdx
mov ecx, 8
cmove rdx, rcx
mov qword [rsp + 0x58], rdx
jmp 0x5019c0
inc r11
mov rax, r13
mov rdx, r14
cmp r11, r9
jge 0x501948
movzx r12d, byte [r10 + r11]
test r12, r12
je 0x501c73
mov r13, rax
mov rax, r8
mov r14, rdx
xor edx, edx
div r12
test rdx, rdx
jne 0x5018e4
cmp rsi, 6
jg 0x50191e
cmp r8, r12
je 0x5018e4
add rdi, 2
mov rax, r13
mov rdx, r14
cmp rdi, 0x100000
jae 0x501951
lea r8, [rdi + rbx]
mov r9, qword [0x00ce89a8]
mov r10, qword [0x00ce89a0]
xor r11d, r11d
jmp 0x5018ed
test rdi, rdi
ja 0x501b9f
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
mov qword [rsp + 8], 0x14
call fcn.004fdf60
cmp byte [rsp + 0x10], 0
je 0x501b86
nop
nop
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 8]
lea rbx, [rcx - 1]
test rbx, rbx
jl 0x501b78
mov rcx, qword [rdx + rcx*8 - 8]
bsr rcx, rcx
mov rdx, 0xffffffffffffffff
cmove rcx, rdx
shl rbx, 6
lea rcx, [rcx + rbx]
lea rcx, [rcx + 1]
mov rbx, qword [rsp + 0xb8]
cmp rcx, rbx
je 0x501b46
nop
mov rax, qword [rsp + 0xa8]
mov qword [rsp], rax
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x10], rdx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rbx
call fcn.0048e630
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
test rax, rax
jne 0x501c47
mov rdx, qword [rsp + 0x50]
test rdx, rdx
jbe 0x501c7a
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x68], rcx
mov rbx, qword [rsp + 0x58]
cmp rbx, 0x40
sbb rsi, rsi
mov rdi, qword [rsp + 0x70]
movzx r8d, byte [rdi]
mov r9, rcx
mov rcx, rbx
mov r10d, 1
shl r10, cl
and r10, rsi
lea rsi, [r10 - 1]
and esi, r8d
mov byte [rdi], sil
cmp rcx, 2
jb 0x501c27
lea r8, [rcx - 2]
cmp r8, 0x20
sbb r10d, r10d
mov rcx, r8
mov r11d, 3
shl r11d, cl
and r11d, r10d
or r11d, esi
mov byte [rdi], r11b
movzx eax, byte [rdx + rdi - 1]
or eax, 1
mov byte [rdx + rdi - 1], al
nop
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x18]
mov rbx, qword [rax + 8]
mov rsi, qword [rax + 0x10]
mov qword [rsp], rbx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rdx
call fcn.004fb510
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rax
cmp dword [0x00d113d0], 0
jne 0x501c16
mov qword [rbx + 8], rdx
mov byte [rbx], 0
lea rax, [rsp + 0x78]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov rcx, qword [0x00cf3080]
mov qword [rsp + 0x10], rcx
call fcn.004edaf0
nop
nop
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
test rdx, rdx
jne 0x501c0e
xor ebx, ebx
mov rsi, qword [rsp + 0xb8]
xor edi, edi
jmp 0x501928
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov rdx, 0xffffffffffffffff
xor ecx, ecx
jmp 0x5019af
mov rax, qword [rsp + 0x60]
mov rdx, 0xffffffffffffffff
mov rbx, qword [rsp + 0xb8]
jmp 0x5019c0
nop
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdi
call fcn.004f23d0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x78], 0
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
mov qword [rsp + 8], rax
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x10], rcx
call fcn.004ed160
mov rsi, qword [rsp + 0xb8]
jmp 0x501951
mov rbx, qword [rcx]
jmp 0x501b37
lea rdi, [rbx + 8]
mov rax, rdx
call fcn.00457260
jmp 0x501af0
or esi, 1
mov byte [rdi], sil
cmp rdx, 1
jle 0x501a83
movzx esi, byte [rdi + 1]
or esi, 0xffffff80
mov byte [rdi + 1], sil
jmp 0x501a83
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rcx
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
call fcn.0042c810
ud2
call fcn.0042c590
ud2
call fcn.004553d0
jmp fcn.00501780