Function at 0x1800514b0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov r11, r9
mov r10, rdx
mov r9d, dword [rsp + 0xe0]
mov r14, r8
mov rdx, rcx
lea ebx, [r9 + 0x294]
mov dword [rsp + 0x48], ebx
cmp r9d, ebx
mov rbx, qword [rsp + 0x70]
jae case.0x180051576.88
mov r13, qword [rsp + 0x70]
lea r8, [0x180000000]
mov rdi, qword [rsp + 0x70]
xor r15d, r15d
mov ebp, dword [rsp + 0xe0]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov r12d, dword [rsp + 0xe0]
mov rsi, qword [rsp + 0x70]
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x60], rbx
nop
cmp r9d, 0x153
ja 0x1800518b7
je 0x1800517bd
lea eax, [r9 - 0x54]
cmp eax, 0xc8
ja case.default.0x180051576
movzx eax, byte [r8 + rax + 0x519f0]
mov ecx, dword [r8 + rax*4 + 0x519c8]
add rcx, r8
jmp rcx
xor eax, eax
lock cmpxchg dword [r14 + 0x120], r15d
cmp eax, 1
jne case.0x180051576.93
lea r9d, [rax + 9]
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.180042f50
xchg dword [r14 + 0x120], r15d
jmp case.0x180051576.88
mov ecx, 1
nop word [rax + rax]
mov rdx, qword [r14]
shr rdx, cl
add ecx, ecx
or rdx, qword [r14]
mov qword [r14], rdx
cmp ecx, 0x20
jl 0x1800515b0
mov rbx, rdx
shr rbx, 1
not rbx
and rbx, rdx
mov qword [rsp + 0x60], rbx
mov rdx, qword [rsp + 0xc0]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov eax, dword [rsp + 0x48]
add r9d, 0x37
mov dword [rsp + 0xe0], r9d
cmp r9d, eax
jb 0x180051540
jmp case.0x180051576.88
mov eax, dword [r11]
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x50], eax
mov r9, r10
mov rax, qword [rdx]
mov r8d, 0x64
mov qword [rsp + 0x68], rax
mov rdx, r14
lea rax, [rsp + 0x40]
mov byte [rsp + 0x40], 1
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.180022ea0
mov rbx, rax
mov qword [rsp + 0x60], rax
mov r9d, dword [rsp + 0xe0]
lea r8, [0x180000000]
mov r10, qword [rsp + 0xc8]
mov r11, qword [rsp + 0xd8]
jmp 0x1800515d4
mov qword [rsp + 0x38], r15
xor r9d, r9d
mov qword [rsp + 0x30], r15
xor r8d, r8d
mov qword [rsp + 0x28], r15
xor edx, edx
mov ecx, 0x128
mov qword [rsp + 0x20], r15
call fcn.180005020
test al, al
je 0x1800519ab
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov r8d, SHSetInstanceExplorer
call fcn.1800081c0
cmp rax, 2
je 0x1800519ab
xor r9d, r9d
mov qword [rsp + 0x28], r15
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor ecx, ecx
lea edx, [r9 + 0x56]
call fcn.18007c920
xor r8d, r8d
mov qword [rsp + 0x20], r15
test al, al
je 0x1800516f3
mov r9, r14
xor edx, edx
mov ecx, reloc.SHELL32.dll_SHTestTokenMembership
call fcn.180028630
jmp 0x18005164a
xor r9d, r9d
mov edx, 0xb4
mov rcx, r14
call fcn.180053810
jmp 0x18005164a
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
mov rcx, r10
call fcn.18004b0d0
cmp qword [r14 + 0x18], 0x10
mov rsi, r14
jb 0x18005164a
mov rsi, qword [r14]
jmp 0x18005164a
mov rcx, qword [r14 + 0x10]
movabs rax, 0xaaaaaaaaaaaaaaab
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x70], rax
jmp 0x1800515d4
xor eax, eax
lock cmpxchg dword [r14 + 0x11c], r15d
cmp eax, 1
jne case.0x180051576.93
mov r9, r14
mov qword [rsp + 0x20], r15
xor r8d, r8d
xor edx, edx
mov ecx, reloc.SHELL32.dll_SHTestTokenMembership
call fcn.180028630
xchg dword [r14 + 0x11c], r15d
mov rax, rbx
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp qword [r10 + 0x18], 0x10
mov rdi, r10
jb case.0x180051576.93
mov rdi, qword [r10]
jmp case.0x180051576.93
mov rax, rcx
mov r13, r15
mul qword [r14 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
test rcx, rcx
je 0x1800515d4
dec rcx
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
inc rdx
lea r13, [rdx + rdx*2]
nop dword [rax]
nop word [rax + rax]
mov r8d, 0x86
mov eax, r8d
sub eax, 0x86
je 0x180051839
sub eax, 7
je 0x180051820
cmp eax, 7
jne 0x180051890
add rsi, 3
jmp 0x180051890
movzx ecx, byte [rsi + 2]
mov rax, qword [0x18009dbb8]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [rdi], cl
inc rdi
jmp 0x180051890
mov rax, qword [0x18009dbb8]
movzx ecx, byte [rsi]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rdi], cl
movzx ecx, byte [rsi]
movzx eax, byte [rsi + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [0x18009dbb8]
movzx ecx, byte [rcx + rax]
mov byte [rdi + 1], cl
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18009dbb8]
movzx ecx, byte [rcx + rax]
mov byte [rdi + 2], cl
add rdi, 3
add r8d, 7
cmp r8d, 0x9b
jb 0x180051806
sub rdx, 1
jne 0x180051800
lea r8, [0x180000000]
jmp 0x1800515d4
cmp r9d, 0x18a
jne 0x1800515ea
cmp r13, qword [r14 + 0x10]
jae 0x1800515ea
mov ebx, dword [rsp + 0x58]
mov r8d, 0x1d
nop dword [rax + rax]
mov eax, r8d
sub eax, 0x1d
je 0x18005196c
sub eax, 0x63
je 0x180051936
cmp eax, 0x63
jne 0x180051985
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180051929
mov ecx, ebp
mov eax, r12d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18009dbb8]
movzx edx, byte [rcx + rax]
mov byte [rdi], dl
mov byte [rdi + 1], 0x3d
add rdi, 2
jmp 0x180051985
mov dl, 0x3d
mov byte [rdi], dl
mov byte [rdi + 1], dl
add rdi, 2
jmp 0x180051985
mov rax, qword [0x18009dbb8]
mov ecx, ebx
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov eax, ebp
mov byte [rdi], cl
mov ecx, ebx
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x18009dbb8]
movzx ecx, byte [rcx + rax]
mov byte [rdi + 1], cl
add rdi, 2
jmp 0x180051985
movzx ebx, byte [rsi]
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x18005197f
movzx ebp, byte [rsi + 1]
jmp 0x180051982
mov ebp, r15d
mov r12d, r15d
add r8d, 0x63
cmp r8d, 0x146
jb 0x1800518e0
mov dword [rsp + 0x58], ebx
lea r8, [0x180000000]
mov rbx, qword [rsp + 0x60]
jmp 0x1800515d4
mov r9, r14
mov qword [rsp + 0x20], r15
xor r8d, r8d
xor edx, edx
mov ecx, reloc.SHELL32.dll_SHTestTokenMembership
call fcn.180028630
jmp case.0x180051576.88