Function at 0x180053950
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xe0
mov rax, qword [0x180080a28]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov r11, r9
mov qword [rbp - 0x49], r9
mov qword [rbp - 0x39], r8
mov qword [rbp - 0x21], rdx
mov r13d, ecx
mov dword [rbp - 0x51], ecx
mov r10, qword [rbp + 0x7f]
mov qword [rbp - 0x31], r10
xor eax, eax
mov qword [rbp + 7], rax
mov qword [rbp + ILFindLastID], 0xf
mov byte [rbp - 9], al
mov edi, eax
mov r15d, ecx
mov dword [rbp - 0x19], ecx
lea r9d, [rcx - 0x10]
mov dword [rbp - 0x61], r9d
lea rcx, [0x180000000]
mov eax, r9d
cmp r15d, r9d
mov r9, qword [rbp - 0x21]
mov qword [rbp - 0x41], r9
jbe 0x180053f58
lea r14d, [r15 - 0x66]
mov dword [rbp - 0x59], r14d
mov ebx, dword [rbp - 0x59]
mov dword [rbp - 0x5d], ebx
mov esi, dword [rbp - 0x51]
mov qword [rbp - 0x11], rsi
mov r12, qword [rbp - 0x21]
mov r13, qword [rbp - 0x21]
cmp r14d, 0x53
ja case.default.0x180053a10
movzx eax, byte [rcx + r14 + 0x54290]
mov ecx, dword [rcx + rax*4 + 0x5424c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov r9, r11
mov r8d, 0x5b
mov rdx, r10
mov rcx, qword [rbp - 0x39]
call fcn.18004a0b0
mov dword [rbp - 0x59], eax
xor r9d, r9d
lea r8, [rbp - 0x59]
lea edx, [r9 + 0x4f]
xor ecx, ecx
call fcn.18004f620
mov dword [rbp - 0x29], eax
mov r11, qword [rbp - 0x49]
mov r9, qword [rbp - 0x41]
lea rcx, [0x180000000]
mov eax, dword [rbp - 0x61]
mov ebx, dword [rbp - 0x5d]
dec r15d
mov dword [rbp - 0x19], r15d
dec r14d
mov dword [rbp - 0x59], r14d
mov r10, qword [rbp - 0x31]
mov r8, qword [rbp - 0x39]
cmp r15d, eax
jbe 0x180053f60
mov rdx, qword [rbp - 0x21]
jmp 0x1800539f0
lea rcx, [r10 + 0x81c]
xor edx, edx
mov r8d, 0x1000
call sub.VCRUNTIME140.dll_memset
jmp 0x180053a3f
dec dword [r10]
jmp case.0x180053a10.16
test r10, r10
jne case.0x180053a10.16
xor ecx, ecx
mov dword [rbp - 0x59], ecx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rcx
lea rax, str.a___NULL
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
lea rax, [rbp - 0x59]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9d, SHSetInstanceExplorer
xor r8d, r8d
lea rdx, [0x180077149]
call fcn.18002b8a0
jmp 0x180053a3f
mov dword [rsp + 0x28], 0x117
xor eax, eax
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 9]
call fcn.180061fc0
mov r11, qword [rbp - 0x49]
mov rdi, r11
cmp qword [r11 + 0x18], 0x10
jb 0x180053a43
mov rdi, qword [r11]
jmp 0x180053a43
mov ecx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
mov qword [rbp - 0x41], rax
test rax, rax
jne 0x180053ba2
mov edx, 0x6b
mov ecx, edx
sub ecx, 0x6b
je 0x180053b95
cmp ecx, 1
jne 0x180053b9b
mov rdx, qword [rbp + 0xf]
cmp rdx, 0x10
jb 0x18005421e
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180054219
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180054219
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
xor eax, eax
mov qword [rbp - 0x29], rax
inc edx
cmp edx, 0x6d
jb 0x180053b44
mov r11, qword [rbp - 0x49]
jmp case.0x180053a10.16
xor ebx, ebx
test r11, r11
jne 0x180053c0b
mov dword [rbp - 0x59], ebx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
lea rax, str.b___NULL
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x59]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov r9d, SHSetInstanceExplorer
xor r8d, r8d
lea rdx, [0x180077149]
xor ecx, ecx
call fcn.18002b8a0
mov r11, qword [rbp - 0x49]
mov r8, qword [rbp - 0x39]
mov r9, qword [rbp - 0x41]
test r8, r8
jne case.0x180053a10.16
mov dword [rbp - 0x59], ebx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
lea rax, str.c___NULL
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x59]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov r9d, SHSetInstanceExplorer
lea rdx, [0x180077149]
xor ecx, ecx
call fcn.18002b8a0
jmp 0x180053a3f
xor eax, eax
mov dword [r11 + 8], eax
mov dword [rbp - 0x59], eax
mov qword [rsp + 0x20], r10
lea r9, [rbp - 0x59]
mov r8, r11
mov edx, 0x104
lea rcx, [0x180077149]
call fcn.180061ca0
jmp 0x180053a3f
test r11, r11
je case.0x180053fa9.148
jmp case.0x180053a10.16
xor eax, eax
mov dword [r10 + 0x181c], eax
jmp case.0x180053a10.16
mov ebx, dword [r8]
mov dword [rbp - 0x5d], ebx
xor eax, eax
mov dword [r8 + 8], eax
mov eax, dword [rbp - 0x61]
lea rcx, [0x180000000]
jmp 0x180053a54
mov eax, dword [r10]
inc eax
cmp dword [r8 + 4], eax
jge 0x180053d09
mov dword [rbp - 0x59], eax
lea rax, [rbp - 0x59]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea edx, [r9 + 0x5f]
xor ecx, ecx
call fcn.18004c460
mov rsi, rax
mov qword [rbp - 0x11], rax
test eax, eax
jne 0x180053f50
mov r10, qword [rbp - 0x31]
mov r11, qword [rbp - 0x49]
mov r8, qword [rbp - 0x39]
mov r9, qword [rbp - 0x41]
cmp dword [r10 + 8], 1
jne case.0x180053a10.16
cmp dword [r10], 1
jg 0x180053d29
mov rcx, qword [r10 + 0x10]
mov eax, dword [r11]
cmp dword [rcx], eax
jb case.0x180053a10.16
mov ebx, 0xcf
nop
mov eax, ebx
sub eax, 0xcf
je 0x180053dab
sub eax, 2
je 0x180053d6f
sub eax, 2
je 0x180053d4e
cmp eax, 2
je case.0x180053fa9.148
jmp 0x180053db1
mov dword [rsp + 0x20], 0x8e
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call fcn.180037c30
mov dword [rbp - 0x29], esi
mov r10, qword [rbp - 0x31]
mov r8, qword [rbp - 0x39]
jmp 0x180053db1
mov eax, dword [r11]
mov dword [rbp - 0x59], eax
mov r9d, SHSetFolderPathA
lea r8, [rbp - 0x59]
mov rdx, qword [rbp - 0x39]
mov rcx, r10
call fcn.18004b5b0
mov esi, eax
mov qword [rbp - 0x11], rsi
mov r8, qword [rbp - 0x39]
mov dword [r8 + 8], 1
mov r10, qword [rbp - 0x31]
mov dword [r10 + 8], 1
jmp 0x180053db1
xor eax, eax
mov dword [r10 + 8], eax
add ebx, 2
cmp ebx, 0xd7
mov r11, qword [rbp - 0x49]
jb 0x180053d30
jmp 0x180053a43
mov rax, qword [r9]
mov ebx, dword [rbp - 0x5d]
lea rcx, [0x180000000]
test rax, rax
je 0x180053ddf
mov qword [rax + 8], r9
mov eax, dword [rbp - 0x61]
jmp 0x180053a54
mov rbx, r10
cmp qword [r10 + 0x18], 0x10
jb 0x180053df4
mov rbx, qword [r10]
mov rcx, r10
cmp qword [r10 + 0x18], 0x10
jb 0x180053e01
mov rcx, qword [r10]
add rcx, qword [r10 + 0x10]
cmp rbx, rcx
je 0x180053f40
mov r15d, 0x77
mov rsi, qword [rbp - 0x39]
cmp r15d, 0x77
je 0x180053e62
cmp r15d, 0x28e8
je 0x180053e55
cmp r15d, 0x5159
je 0x180053e50
cmp r15d, 0x79ca
jne 0x180053ea5
lea rax, [rbp - 9]
cmp qword [rbp + 0xf], 0x10
cmovae rax, qword [rbp - 9]
movzx eax, byte [rax + r13]
mov byte [rbx], al
jmp 0x180053ea5
inc rdi
jmp 0x180053ea5
movzx edx, byte [rdi]
mov rcx, r12
call qword [rsi]
mov r13, rax
jmp 0x180053ea5
lea r14, [rbp - 9]
cmp qword [rbp + 0xf], 0x10
cmovae r14, qword [rbp - 9]
mov r8, qword [rbp + 7]
test r8, r8
je 0x180053e91
movsx edx, byte [rbx]
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
mov r12, rax
test rax, rax
je 0x180053e91
sub r12, r14
jmp 0x180053e98
mov r12, 0xffffffffffffffff
cmp r12, 0xffffffffffffffff
mov eax, 0
cmove r12, rax
add r15d, 0x2871
cmp r15d, 0xa1c4
jbe 0x180053e18
inc rbx
mov rsi, qword [rbp - 0x11]
mov r10, qword [rbp - 0x31]
jmp 0x180053df4
mov qword [r9 + 0x10], r8
cmp dword [rdx], 0
je 0x180053f0b
mov ecx, 0xfe
mov eax, ecx
sub eax, 0xfe
je 0x180053ef1
cmp eax, 1
jne 0x180053efc
cmp qword [r10 + 8], r11
jne 0x180053efc
mov qword [r10 + 8], r9
jmp 0x180053efc
mov qword [r9], r11
mov rax, qword [r11 + 8]
mov qword [r9 + 8], rax
inc ecx
cmp ecx, 0x100
jb 0x180053ed7
jmp case.0x180053a10.16
mov ecx, 0x62
mov eax, ecx
sub eax, 0x62
je 0x180053f26
cmp eax, 0x38
jne 0x180053f30
cmp qword [r10], r11
jne 0x180053f30
mov qword [r10], r9
jmp 0x180053f30
mov qword [r9 + 8], r11
mov rax, qword [r11]
mov qword [r9], rax
add ecx, 0x38
cmp ecx, 0xd2
jb 0x180053f10
jmp case.0x180053a10.16
mov r14d, dword [rbp - 0x59]
mov r15d, dword [rbp - 0x19]
jmp 0x180053a3f
mov dword [rbp - 0x29], eax
jmp case.0x180053fa9.148
mov ebx, dword [rbp - 0x59]
mov dword [rbp - 0x5d], ebx
jmp 0x180053f64
mov r13d, dword [rbp - 0x51]
cmp r13d, eax
jbe case.0x180053fa9.148
mov r14, qword [rbp - 0x21]
mov r12d, dword [rbp - 0x51]
mov r15d, dword [rbp - 0x51]
mov rdi, qword [rbp - 0x21]
mov esi, dword [rbp - 0x51]
lea eax, [r13 - 0x94]
cmp eax, 0x25
ja case.0x180053fa9.162
movzx eax, byte [rcx + rax + 0x54320]
mov ecx, dword [rcx + rax*4 + 0x542e4]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov r14, qword [r10 + 0x10]
jmp case.0x180053fa9.162
xor eax, eax
mov dword [rbp - 0x29], eax
jmp case.0x180053fa9.162
movsxd rdx, dword [r10]
cmp edx, dword [r10 + 0x10]
jl 0x180053fcf
xor eax, eax
mov ebx, eax
jmp 0x180053fdd
mov rax, qword [r10 + 8]
movsx ebx, byte [rax + rdx]
lea eax, [rdx + 1]
mov dword [r10], eax
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
test eax, eax
jne 0x180053ff9
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
test eax, eax
je case.0x180053fa9.162
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov dword [rbp - 0x51], eax
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x51]
mov r8, qword [rbp - 0x31]
xor edx, edx
mov ecx, 0xca
call fcn.180005cc0
test eax, eax
je case.0x180053fa9.160
mov r10, qword [rbp - 0x31]
jmp case.0x180053fa9.161
mov dword [rsp + 0x20], 0x8e
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call fcn.180037c30
jmp case.0x180053fa9.162
mov qword [rbp - 0x29], r10
jmp case.0x180053fa9.162
lea rcx, [r10 + 0x81c]
xor edx, edx
lea r8d, [rdx + 0x10]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov r12d, eax
jmp case.0x180053fa9.162
mov r13d, 0xb8
jmp case.0x180053fa9.162
mov rax, qword [r9 + 8]
test rax, rax
je 0x18005407d
mov qword [rax], r9
inc dword [r10 + 0x28]
jmp case.0x180053fa9.162
cmp r15d, ebx
jge 0x1800540ae
mov eax, ebx
sub eax, r15d
add r15d, eax
movsxd rbx, eax
shl rbx, 2
mov r8, rbx
and r8, 0xfffffffffffffffc
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
add rdi, rbx
inc r15d
jmp case.0x180053fa9.162
dec dword [r10]
jmp case.0x180053fa9.162
mov rdi, qword [r8 + 0x10]
cmp dword [r10 + 8], 0
jne 0x18005419c
mov edx, 0x3d
cmp edx, 0x3d
je 0x180054179
cmp edx, 0x1441
je 0x18005416d
cmp edx, 0x2845
je 0x18005411b
cmp edx, 0x3c49
je 0x180054110
cmp edx, 0x504d
jne 0x180054188
mov eax, dword [r10]
inc eax
mov dword [r8], eax
jmp 0x180054188
inc r15d
mov dword [rdi], esi
add rdi, 4
jmp 0x180054188
mov r15d, 1
cmp dword [r10], r15d
jle 0x180054188
nop word [rax + rax]
mov ecx, 0x7e
mov eax, ecx
sub eax, 0x7e
je 0x18005414d
cmp eax, 1
jne 0x180054159
and dword [rdi], 0xfffffff
add rdi, 4
jmp 0x180054159
add esi, dword [r14]
mov dword [rdi], esi
add r14, 4
shr esi, 0x1c
inc ecx
cmp ecx, 0x80
jb 0x180054135
inc r15d
cmp r15d, dword [r10]
jl 0x180054130
jmp 0x180054188
and dword [rdi], 0xfffffff
add rdi, 4
jmp 0x180054188
mov esi, dword [r11]
add esi, dword [r14]
mov dword [rdi], esi
add r14, 4
shr esi, 0x1c
add edx, 0x1404
cmp edx, 0x6414
jbe 0x1800540d2
jmp case.0x180053fa9.162
mov edx, 0x7f
mov eax, edx
sub eax, 0x7d
je 0x1800541ce
sub eax, 1
je 0x1800541b7
cmp eax, 1
jne 0x1800541d4
mov dword [r8], eax
jmp 0x1800541d4
mov ecx, dword [r11]
cmp dword [r10], 1
jne 0x1800541c6
mov rax, qword [r10 + 0x10]
sub ecx, dword [rax]
mov dword [rdi], ecx
add rdi, 4
jmp 0x1800541d4
mov r15d, 1
dec edx
cmp edx, 0x7c
ja 0x1800541a1
jmp case.0x180053fa9.162
mov dword [r10 + 0x1820], r12d
jmp case.0x180053fa9.162
mov dword [rbp - 0x29], 0x3f
dec r13d
cmp r13d, dword [rbp - 0x61]
jbe case.0x180053fa9.148
mov r10, qword [rbp - 0x31]
mov r11, qword [rbp - 0x49]
mov r8, qword [rbp - 0x39]
mov r9, qword [rbp - 0x41]
mov ebx, dword [rbp - 0x5d]
lea rcx, [0x180000000]
jmp 0x180053f80
call fcn.180071f98
mov rax, qword [rbp - 0x29]
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.180072740
mov rbx, qword [rsp + 0x120]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret