Function at 0x180063e00
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
lea ebx, [r8 + 0x5a0]
mov r13d, r8d
mov dword [rsp + 0x80], ebx
mov r14, rdx
cmp r8d, ebx
jae 0x180064138
mov r15, qword [rsp + 0x88]
movabs r8, 0xaaaaaaaaaaaaaaab
mov rbx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x88]
mov ebp, dword [rsp + 0x80]
mov esi, dword [rsp + 0x80]
mov r12d, dword [rsp + 0x80]
mov eax, dword [rsp + 0x80]
nop word [rax + rax]
cmp r13d, 0x196
ja 0x180063f39
je 0x180063f16
mov eax, r13d
sub eax, 0x2e
je 0x180063ef4
sub eax, 0x99
je 0x180063ed4
sub eax, 0x1b
je 0x180063ec2
cmp eax, 0x99
jne 0x180064121
lea rcx, [rsp + 0x28]
call qword [sym.imp.SHELL32.dll_SHGetInstanceExplorer]
jmp 0x180064112
mov rdx, qword [rsp + 0x20]
xor r8d, r8d
call fcn.1800776a0
jmp 0x180064112
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rsp + 0x88], rax
cmp rax, 0
jne 0x180064112
jmp 0x180064140
mov rcx, qword [r14 + 0x10]
mov rax, r8
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x20], rax
jmp 0x18006411c
cmp qword [r14 + 0x18], 0x10
mov rdi, r14
jb 0x180063f23
mov rdi, qword [r14]
cmp qword [rcx + 0x18], 0x10
mov rbx, rcx
jb 0x180064128
mov rbx, qword [rcx]
jmp 0x180064128
mov eax, r13d
sub eax, 0x22f
je 0x180064155
sub eax, 0x1b
je 0x180064033
cmp eax, 0xb4
jne 0x180064121
cmp r15, qword [r14 + 0x10]
jae 0x180064121
mov r8d, 0x50
nop dword [rax + rax]
mov eax, r8d
sub eax, 0x4c
je 0x18006401b
sub eax, 1
je 0x180063fc8
sub eax, 1
je 0x180063fb0
sub eax, 1
je 0x180063f9c
cmp eax, 1
jne 0x180064021
movzx ebp, byte [rdi]
jmp 0x180064021
lea rax, [r15 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180063fac
movzx esi, byte [rdi + 1]
jmp 0x180064021
xor esi, esi
jmp 0x180064021
mov rax, qword [0x180088078]
xor r12d, r12d
mov ecx, ebp
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
jmp 0x18006401e
mov ecx, ebp
mov eax, esi
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x180088078]
movzx ecx, byte [rcx + rax]
lea rax, [r15 + 1]
mov byte [rbx], cl
cmp rax, qword [r14 + 0x10]
jae 0x180064010
mov ecx, esi
mov eax, r12d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180088078]
movzx edx, byte [rcx + rax]
mov byte [rbx + 1], dl
add rbx, 2
jmp 0x180064021
mov dl, 0x3d
mov byte [rbx + 1], dl
add rbx, 2
jmp 0x180064021
mov byte [rbx], 0x3d
inc rbx
dec r8d
cmp r8d, 0x4b
ja 0x180063f70
jmp 0x180064112
mov rax, r8
xor r15d, r15d
mul qword [r14 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
test rcx, rcx
je 0x18006411c
dec rcx
mov rax, r8
mul rcx
shr rdx, 1
inc rdx
lea r15, [rdx + rdx*2]
mov r8d, PathMakeUniqueName
mov eax, r8d
sub eax, 0x2b
je 0x1800640c3
sub eax, 1
je 0x1800640a0
sub eax, 1
je 0x180064087
cmp eax, 1
jne 0x1800640fb
add rdi, 3
jmp 0x1800640fb
movzx ecx, byte [rdi + 2]
mov rax, qword [0x180088078]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x1800640fb
movzx ecx, byte [rdi + 1]
movzx eax, byte [rdi + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180088078]
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x1800640fb
mov rax, qword [0x180088078]
movzx ecx, byte [rdi]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
movzx ecx, byte [rdi]
movzx eax, byte [rdi + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [0x180088078]
movzx ecx, byte [rcx + rax]
mov byte [rbx + 1], cl
add rbx, 2
inc r8d
cmp r8d, 0x2f
jb 0x180064066
sub rdx, 1
jne 0x180064060
movabs r8, 0xaaaaaaaaaaaaaaab
mov rcx, qword [rsp + 0x70]
mov eax, dword [rsp + 0x80]
add r13d, 0xb4
cmp r13d, eax
jb 0x180063e80
mov rax, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, rcx
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x180064140