Function at 0x18007bca0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r11, qword [rsp + 0x28]
lea esi, [rcx + 0x2dc]
mov r13, qword [rsp + 0x28]
mov edi, ecx
mov r15, qword [rsp + 0x28]
mov r10, r8
mov r14, qword [rsp + 0x28]
mov r8, rdx
mov rdx, qword [rsp + 0x28]
xor ebp, ebp
mov qword [rsp + 0x38], rdx
mov r12d, ecx
mov qword [rsp + 0x40], r11
lea rcx, [0x180000000]
cmp edi, esi
jae 0x18007bfdf
mov eax, dword [rsp + 0xc0]
mov rbx, qword [rsp + 0x28]
mov dword [rsp + 0x48], eax
movzx eax, byte [rsp + 0xc0]
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x4c], eax
mov qword [rsp + 0x60], rbx
cmp edi, 0x109
ja 0x18007bf47
je 0x18007bf3a
lea eax, [rdi - 0x5f]
cmp eax, 0x8c
ja case.default.0x18007bd69
movzx eax, byte [rcx + rax + 0x7c514]
mov ecx, dword [rcx + rax*4 + 0x7c4f8]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov r8, qword [r8]
mov rdx, r10
mov rcx, qword [rbx]
call sub.VCRUNTIME140.dll_memcpy
mov r8, qword [rsp + 0xc8]
mov rax, qword [r8]
mov qword [rbx + 8], rax
jmp 0x18007bdb0
mov rax, qword [r8 + 8]
lea rdx, [rsp + 0x58]
mov r8, qword [r8]
mov r9, r10
mov ecx, 0x1f
mov qword [rsp + 0x58], rax
call fcn.180013a80
mov r8, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
lea rcx, [0x180000000]
mov r10, qword [rsp + 0xd0]
add edi, 0x3d
mov r9, qword [rsp + 0xd8]
cmp edi, esi
jb 0x18007bd34
jmp 0x18007c00b
cmp qword [r10 + 8], 2
jne 0x18007be57
mov rax, qword [r10]
lea r8, [rsp + 0x30]
xor r9d, r9d
mov dword [rsp + 0x30], SHSetInstanceExplorer
mov ecx, 0x12a
mov rdx, qword [rax + 8]
call fcn.180014560
test al, al
je 0x18007be45
mov rax, qword [rsp + 0xd0]
mov edx, 0xc3
mov rax, qword [rax]
mov rcx, qword [rax]
call fcn.1800429c0
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x40]
test al, al
je 0x18007be57
mov byte [rsp + 0x50], 1
jmp case.0x18007bd69.101
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x40]
mov byte [rsp + 0x50], 0
jmp case.0x18007bd69.101
test r8, r8
je 0x18007be6d
cmp qword [r8 + 8], 0
jne 0x18007beb5
mov ebx, 0x67
mov eax, ebx
sub eax, 0x66
je case.0x18007c068.94
cmp eax, 1
jne 0x18007bea1
lea r9d, [rax + 0x3e]
mov dword [rsp + 0x30], ebp
mov r8, r10
lea rdx, [rsp + 0x30]
xor ecx, ecx
call fcn.18006ff00
mov r10, qword [rsp + 0xd0]
dec ebx
cmp ebx, 0x65
ja 0x18007be72
mov r8, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x60]
mov eax, dword [r8 + 8]
lea rdx, [rsp + 0x30]
mov r8, r10
mov dword [rsp + 0x30], eax
mov r9d, 0x3f
xor ecx, ecx
call fcn.18006ff00
jmp 0x18007bda8
mov rax, qword [r8]
lea rdx, [rsp + 0x28]
mov r8d, 0x30
mov qword [rsp + 0x28], rax
xor ecx, ecx
call fcn.18004a720
mov qword [rsp + 0x60], rax
mov rbx, rax
test rax, rax
jne 0x18007bda8
mov edx, 0xf3
nop word [rax + rax]
mov ecx, edx
sub ecx, 0xf3
je 0x18007bf25
cmp ecx, 0x58
je case.0x18007c068.94
jmp 0x18007bf2a
mov qword [rsp + 0x50], rbp
add edx, 0x58
cmp edx, 0x1a3
jb 0x18007bf10
jmp 0x18007bda8
mov r11, qword [r8]
mov qword [rsp + 0x40], r11
jmp case.default.0x18007bd69
mov eax, edi
sub eax, 0x146
je 0x18007bfcf
sub eax, 0x3d
je 0x18007bfc2
sub eax, 0x3d
je 0x18007bf9f
sub eax, 0x3d
je 0x18007bf71
cmp eax, 0x3d
jne case.default.0x18007bd69
mov dword [rsp + 0x48], ebp
jmp case.default.0x18007bd69
movzx ecx, r11b
and cl, 3
mov byte [rsp + 0x20], cl
je 0x18007bf96
mov ebp, 0xffffffff
movzx ecx, cl
shl ecx, 3
shl ebp, cl
mov dword [rsp + 0x4c], ebp
xor ebp, ebp
jmp case.0x18007bd69.101
mov dword [rsp + 0x4c], ebp
jmp case.0x18007bd69.101
mov rcx, 0xffffffffffffffff
mov eax, 4
mul r15
cmovo rax, rcx
mov rcx, rax
call fcn.1800840ec
mov r14, rax
jmp 0x18007bda8
lea r15, [r11 + 3]
shr r15, 2
jmp case.default.0x18007bd69
mov rdx, r9
mov r13, r10
mov qword [rsp + 0x38], rdx
jmp case.default.0x18007bd69
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x48], eax
movzx eax, byte [rsp + 0xc0]
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x4c], eax
lea eax, [r12 - 0xd]
mov dword [rsp + 0x30], eax
cmp r12d, eax
jbe case.0x18007c068.94
mov rbx, qword [rsp + 0x28]
mov r12, qword [rsp + 0x28]
mov edi, dword [rsp + 0xc0]
mov rsi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x58]
mov r9d, dword [rsp + 0xc0]
lea eax, [r9 - 0x5e]
cmp eax, 0xab
ja case.0x18007c068.106
movzx eax, byte [rcx + rax + 0x7c5d8]
mov ecx, dword [rcx + rax*4 + 0x7c5a4]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov ecx, 0x3c
nop
mov eax, ecx
sub eax, 0x3b
je case.0x18007c068.94
cmp eax, 1
jne 0x18007c084
mov dword [rsp + 0x50], eax
dec ecx
cmp ecx, 0x3a
ja 0x18007c070
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rdx
mov rcx, qword [rdx + 8]
mov rax, qword [rdx]
mov byte [rcx + rax], 0
jmp case.0x18007c068.106
lea r8, [r15*4]
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov r9d, dword [rsp + 0xc0]
jmp case.0x18007c068.106
mov rcx, r14
call fcn.1800840e4
mov r9d, dword [rsp + 0xc0]
jmp case.0x18007c068.106
cmp r12, rbp
jae 0x18007c2e4
mov ebp, 0xa2
nop word [rax + rax]
mov eax, ebp
sub eax, 0x9e
je 0x18007c21f
sub eax, 1
je 0x18007c1b8
sub eax, 1
je 0x18007c19f
sub eax, 1
je 0x18007c154
cmp eax, 1
jne 0x18007c2b6
cmp byte [r12 + rdx], 0
jge 0x18007c2b6
mov ecx, 0x3c
nop dword [rax]
mov eax, ecx
sub eax, 0x3b
je case.0x18007c068.94
cmp eax, 1
jne 0x18007c148
mov dword [rsp + 0x50], 0
dec ecx
cmp ecx, 0x3a
ja 0x18007c130
jmp 0x18007c2b6
movzx eax, byte [r12 + rdx]
lea rcx, [0x180000000]
cmp byte [rax + rcx + 0x87350], 0xff
jne 0x18007c2b6
mov ecx, 0xb2
mov eax, ecx
sub eax, 0xb2
je 0x18007c187
cmp eax, 0x76
je case.0x18007c068.94
jmp 0x18007c18f
mov dword [rsp + 0x50], 0
add ecx, 0x76
cmp ecx, 0x19e
jb 0x18007c173
jmp 0x18007c2b6
movzx eax, byte [r12 + rdx]
lea rcx, [0x180000000]
movsx edi, byte [rax + rcx + 0x87350]
jmp 0x18007c2b6
mov rdx, r15
test r15, r15
je 0x18007c2b6
nop dword [rax]
nop dword [rax + rax]
dec rdx
mov ecx, 0xd2
nop dword [rax + rax]
mov eax, ecx
sub eax, 0xd2
je 0x18007c1fe
cmp eax, 1
jne 0x18007c20b
mov rdi, rsi
mov dword [r14 + rdx*4], esi
shr rdi, 0x20
and edi, 0x3f
jmp 0x18007c20b
mov eax, dword [r14 + rdx*4]
imul rsi, rax, 0x3a
mov eax, edi
add rsi, rax
inc ecx
cmp ecx, 0xd4
jb 0x18007c1e0
test rdx, rdx
jne 0x18007c1d0
jmp 0x18007c2b6
test edi, edi
je 0x18007c268
mov ebx, 0xa5
nop dword [rax + rax]
mov eax, ebx
sub eax, 0xa5
je 0x18007c244
cmp eax, 1
je case.0x18007c068.94
jmp 0x18007c25e
lea r8, [r15*4]
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x50], 0
inc ebx
cmp ebx, 0xa7
jb 0x18007c230
mov eax, dword [rsp + 0x4c]
test dword [r14], eax
je 0x18007c2b6
mov ebx, 0xc2
mov eax, ebx
sub eax, 0xc2
je 0x18007c299
sub eax, 0x41
je 0x18007c28f
cmp eax, 0x41
je case.0x18007c068.94
jmp 0x18007c2ab
mov dword [rsp + 0x50], 0
jmp 0x18007c2ab
lea r8, [r15*4]
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
add ebx, 0x41
cmp ebx, 0x185
jb 0x18007c276
mov rdx, qword [rsp + 0x38]
dec ebp
cmp ebp, 0x9d
ja 0x18007c0f0
inc r12
cmp r12, qword [rsp + 0x58]
jb 0x18007c0e2
mov rbp, qword [rsp + 0x58]
mov r9d, dword [rsp + 0xc0]
xor ebx, ebx
jmp case.0x18007c068.106
mov rax, qword [rsp + 0xd8]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x18007c300
mov qword [rsp + 0x58], rcx
jmp 0x18007c4a8
movzx ecx, byte [rsp + 0x20]
sub ecx, 1
je 0x18007c340
sub ecx, 1
je 0x18007c333
cmp ecx, 1
jne case.0x18007c068.101
movzx eax, byte [r14 + 2]
mov byte [r13], al
inc r13
mov eax, dword [r14]
shr eax, 8
mov byte [r13], al
inc r13
mov ecx, 0xc0
cmp ecx, 0xc0
jne 0x18007c35b
movzx eax, byte [r14]
mov byte [r13], al
inc r13
inc rbx
add ecx, 0x7b00
cmp ecx, 0x7b00
jbe 0x18007c345
mov r9d, 0x104
cmp rbx, r15
jae case.0x18007c068.106
lea rdx, [rbx*4 + 3]
mov r8, r15
add rdx, r14
sub r8, rbx
mov rbx, r15
nop dword [rax]
mov ecx, 0xfd
cmp ecx, 0xfd
je 0x18007c3c7
cmp ecx, 0x1da6
je 0x18007c3ba
cmp ecx, 0x3a4f
jne 0x18007c3da
movzx eax, byte [rdx - 3]
mov byte [r13], al
inc r13
jmp 0x18007c3da
movzx eax, byte [rdx - 2]
mov byte [r13], al
inc r13
jmp 0x18007c3da
movzx eax, byte [rdx]
mov byte [r13], al
movzx eax, byte [rdx - 1]
mov byte [r13 + 1], al
add r13, 2
add ecx, 0x1ca9
cmp ecx, 0x55fb
jbe 0x18007c395
add rdx, 4
sub r8, 1
jne 0x18007c390
jmp case.0x18007c068.106
xor r12d, r12d
mov r13, r10
test r11, r11
je case.0x18007c068.106
nop word [rax + rax]
mov ecx, 0xa1
mov eax, ecx
sub eax, 0xa1
je 0x18007c428
cmp eax, 1
jne 0x18007c42f
dec qword [r8]
jmp 0x18007c42f
cmp byte [r12 + r10], 0
jne case.0x18007c068.99
inc ecx
cmp ecx, 0xa3
jb 0x18007c415
inc r12
cmp r12, r11
jb 0x18007c410
jmp case.0x18007c068.106
mov eax, dword [rsp + 0x48]
add qword [r8], rax
mov dword [rsp + 0xc0], 0x102
mov r9d, dword [rsp + 0xc0]
jmp case.0x18007c068.106
mov rcx, qword [rsp + 0x58]
xor r12d, r12d
test rcx, rcx
je 0x18007c4a8
mov r9d, dword [rsp + 0x48]
lea r8, [0x180000000]
nop dword [rax + rax]
movzx eax, byte [r12 + rdx]
cmp byte [rax + r8 + 0x87350], 0
jne 0x18007c49b
inc r9d
inc r12
cmp r12, rcx
jb 0x18007c480
mov dword [rsp + 0x48], r9d
mov r9d, dword [rsp + 0xc0]
mov rbp, rcx
mov rdx, qword [rsp + 0x38]
lea rcx, [0x180000000]
mov r8, qword [rsp + 0xc8]
dec r9d
mov r10, qword [rsp + 0xd0]
mov r11, qword [rsp + 0x40]
mov dword [rsp + 0xc0], r9d
cmp r9d, dword [rsp + 0x30]
ja 0x18007c040
mov rax, qword [rsp + 0x50]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret