Function at 0x18001a9e0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b8]
sub rsp, 0x2b8
mov rax, qword [0x18007b358]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov r15d, dword [rbp + 0x220]
mov r10, rcx
mov qword [rbp - 0x78], r9
mov edi, r15d
mov rax, qword [rbp - 0x78]
mov r9, r8
mov r12, qword [rbp - 0x78]
mov rbx, qword [rbp - 0x78]
lea r14d, [r15 + 0x770]
mov r11, qword [rbp - 0x78]
mov rsi, qword [rbp - 0x78]
mov qword [rbp + 0x20], r8
mov r8, qword [rbp + 0x228]
mov qword [rbp - 0x48], rcx
mov rcx, qword [rbp + 0x230]
mov qword [rbp + 0x58], rdx
mov rdx, qword [rbp - 0x78]
mov qword [rbp - 0x28], r8
mov qword [rbp + 0x28], rcx
cmp r15d, r14d
jae 0x18001af9d
mov rcx, qword [rbp - 0x78]
mov r13, qword [rbp - 0x78]
mov r8d, dword [rsp + 0x60]
mov qword [rsp + 0x78], rax
mov rax, qword [rbp - 0x78]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x70], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp], rdx
mov rdx, qword [rbp - 0x78]
mov qword [rbp + 0x60], rax
mov qword [rbp - 0x68], rcx
mov qword [rbp + 0x48], rdx
mov dword [rsp + 0x58], r8d
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x18], r11
mov qword [rbp + 0x38], r13
nop
cmp edi, 0x20e
ja 0x18001acb1
je 0x18001ac8e
cmp edi, 0x12e
ja 0x18001ac16
je 0x18001ac00
mov eax, edi
sub eax, 0x42
je 0x18001ab8e
sub eax, 0x4a
je 0x18001ab27
sub eax, 0x32
je 0x18001ab13
cmp eax, 0x2b
je 0x18001ab81
jmp 0x18001af0c
mov rcx, r9
mov rdx, r9
mov qword [rbp - 0x68], rcx
mov qword [rsp + 0x78], rdx
jmp 0x18001af11
mov r8d, reloc.SHELL32.dll_SHSetFolderPathW
nop dword [rax]
mov eax, r8d
sub eax, 0xe7
je 0x18001be58
cmp eax, 1
jne 0x18001ab6c
mov rax, qword [r10]
mov rcx, qword [r10 + 8]
cmp rax, rcx
je 0x18001ab64
mov edx, dword [r9]
cmp dword [rax + 8], edx
je 0x18001be5c
add rax, 0x10
cmp rax, rcx
jne 0x18001ab52
mov qword [rbp - 0x60], 0
dec r8d
cmp r8d, 0xe6
ja 0x18001ab30
mov rcx, qword [rbp - 0x68]
mov r8d, dword [rsp + 0x58]
mov qword [rbp + 0x30], r10
mov qword [rbp + 0x18], r9
jmp 0x18001af0c
mov ebx, 0xc5
cmp ebx, 0xc5
je 0x18001abc3
cmp ebx, 0x178
je 0x18001abb1
cmp ebx, 0x22b
je 0x18001be58
jmp 0x18001abdc
mov rdx, r9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x60], rax
jmp 0x18001abd4
xor r8d, r8d
xor edx, edx
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
mov r9, qword [rbp + 0x20]
mov r10, qword [rbp - 0x48]
add ebx, 0xb3
cmp ebx, 0x2de
jb 0x18001ab93
mov rcx, qword [rbp - 0x68]
lea rax, [r13 - 1]
mov r8d, dword [rsp + 0x58]
mov qword [rbp + 0x60], rax
jmp 0x18001af0c
mov rdx, qword [rsp + 0x78]
mov r11, rcx
mov qword [rbp], r9
mov qword [rsp + 0x68], rcx
jmp 0x18001af16
mov eax, edi
sub eax, 0x159
je 0x18001ac68
sub eax, 0x45
je 0x18001ac43
cmp eax, 0x2b
jne 0x18001af0c
cmp r8d, 1
jb 0x18001af0c
mov dword [rbp - 0x60], ILRemoveLastID
jmp 0x18001be58
mov rax, qword [rbp + 0x28]
mov r11, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x78]
movsxd rax, dword [rax]
add rax, rcx
mov qword [rbp + 0x48], rax
lea r9, [rax - 0xc]
mov qword [rbp - 0x80], r9
jmp 0x18001af1a
xor r9d, r9d
mov qword [rsp + 0x20], 0
xor edx, edx
mov rcx, rbx
lea r8d, [r9 + 0x2a]
call fcn.180047d20
mov r8d, eax
mov dword [rsp + 0x58], eax
jmp 0x18001af08
mov rax, qword [rbp + 0x58]
lea r13, [rdx - 5]
mov r12, qword [rbp - 0x78]
mov qword [rbp + 0x68], r13
mov r13, qword [rbp + 0x38]
movsxd rax, dword [rax]
add rax, r12
mov qword [rbp + 0x70], rax
jmp 0x18001af0c
cmp edi, 0x319
ja 0x18001adc4
je 0x18001ad8b
mov eax, edi
sub eax, 0x239
je 0x18001ad5e
sub eax, 0x45
je 0x18001ad2e
sub eax, 0x2b
je 0x18001acf0
cmp eax, 0x45
jne 0x18001af0c
lea rax, [r13 - 1]
mov qword [rbp + 0x60], rax
jmp 0x18001af0c
xor ebx, ebx
mov dword [rsp + 0x60], r8d
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rbx
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 0x19]
call fcn.180020d80
mov dword [0x18007bc70], eax
test eax, eax
jne 0x18001af50
mov r8d, dword [rsp + 0x58]
jmp 0x18001af08
mov rax, qword [rbp + 0x58]
mov r9, qword [rbp - 0x80]
mov r11, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x78]
movsxd rax, dword [rax]
lea r13, [rax - 0xb]
add r13, r12
lea rbx, [rax - 6]
add rbx, r12
mov qword [rbp + 0x38], r13
mov qword [rbp - 0x70], rbx
jmp 0x18001af1e
xor r9d, r9d
mov qword [rsp + 0x20], 0
xor edx, edx
mov rcx, r11
lea r8d, [r9 + 0x2a]
call fcn.180047d20
mov r8d, dword [rsp + 0x58]
cmp r8d, eax
jne 0x18001ac37
jmp 0x18001af08
mov dword [rsp + 0x60], r8d
mov r9, rbx
lea r8, [rbp + 0xc]
lea rdx, [rsp + 0x60]
mov dword [rsp + 0x20], 0x10d
lea rcx, [rbp - 0x50]
mov dword [rbp - 0x50], 1
call fcn.180020900
mov r8d, dword [rsp + 0x58]
mov dword [0x18007bc70], eax
jmp 0x18001af08
mov eax, edi
sub eax, 0x389
je 0x18001ae98
sub eax, 0x70
je 0x18001ae87
cmp eax, 0x70
jne 0x18001af0c
cmp dword [0x18007bc70], 0
je 0x18001ae48
mov ebx, 0x10d
mov eax, ebx
sub eax, 0x10c
je 0x18001af91
cmp eax, 1
jne 0x18001ae3a
lea rax, [rsp + 0x60]
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
xor eax, eax
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18000ee30
mov r8d, dword [rsp + 0x58]
dec ebx
cmp ebx, 0x10b
ja 0x18001adf1
mov r11, qword [rbp + 0x18]
mov dword [rsp + 0x60], r8d
lea rdx, [rsp + 0x60]
xor ebx, ebx
mov dword [rsp + 0x20], 0x10d
lea r8, [rbp - 0x30]
mov dword [rbp - 0x50], ebx
mov r9, r11
lea rcx, [rbp - 0x50]
call fcn.180020900
mov dword [0x18007bc70], eax
test eax, eax
je 0x18001af50
mov r8d, dword [rsp + 0x58]
jmp 0x18001af08
mov dword [rsp + 0x60], r8d
mov r9, r11
lea r8, [rbp + 8]
jmp 0x18001ad97
cmp dword [0x18007bc70], 0
je 0x18001af0c
mov ebx, 0xa8
cmp ebx, 0xa8
je 0x18001aebc
cmp ebx, 0x70e0
je 0x18001be58
jmp 0x18001aefa
lea rax, [rsp + 0x60]
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
xor eax, eax
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18000ee30
mov r8d, dword [rsp + 0x58]
mov dword [rbp - 0x60], 0x15
add ebx, 0x7038
cmp ebx, 0xe070
jbe 0x18001aea6
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x78]
mov r11, qword [rsp + 0x68]
mov r9, qword [rbp - 0x80]
mov rbx, qword [rbp - 0x70]
mov r10, qword [rbp - 0x48]
add edi, 0x70
cmp edi, r14d
jae 0x18001affd
mov r9, qword [rbp + 0x20]
mov r11, qword [rbp + 0x18]
mov rbx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x48]
jmp 0x18001aad0
mov esi, dword [rsp + 0x58]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov qword [rsp + 0x28], rbx
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x60], esi
call fcn.18000ee30
mov eax, dword [0x18007bc70]
mov dword [rbp - 0x60], eax
jmp 0x18001be58
mov dword [rbp - 0x60], reloc.SHELL32.dll_ILRemoveLastID
jmp 0x18001be58
mov r14, qword [rbp - 0x78]
mov r9, qword [rbp - 0x78]
mov qword [rbp + 0x48], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x70], rax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x30], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x18], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x38], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x60], rax
mov qword [rbp - 0x68], r14
mov qword [rsp + 0x78], rdx
mov qword [rbp], rsi
mov qword [rsp + 0x68], r11
mov qword [rbp - 0x80], r9
mov qword [rbp - 0x70], rbx
jmp 0x18001b009
mov r14, qword [rbp - 0x68]
mov r8, qword [rbp - 0x28]
mov rsi, qword [rbp]
lea eax, [r15 + 0x12]
mov dword [rbp - 0x30], eax
cmp r15d, eax
jae 0x18001be58
mov edi, dword [rbp - 0x30]
lea rcx, [0x180000000]
mov r13, qword [rbp - 0x78]
mov qword [rbp - 8], rdi
nop dword [rax + rax]
lea eax, [r15 - 0xbe]
cmp eax, 0x34
ja case.default.0x18001b059
movzx eax, byte [rcx + rax + 0x1becc]
mov ecx, dword [rcx + rax*4 + 0x1be80]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rcx, qword [rbp + 0x28]
cmp dword [rcx], 0xd
jl case.0x18001b059.195
mov dword [rcx], 0
jmp case.0x18001b059.208
mov rax, qword [rbp + 0x58]
cmp dword [rax], 1
jl 0x18001b09e
mov rax, qword [rbp + 0x28]
mov eax, dword [rax]
cmp eax, 0x7e000000
ja 0x18001b09e
cmp dword [r8], 2
jne case.0x18001b059.208
cmp eax, 0x1000b
jl case.0x18001b059.208
mov dword [rbp - 0x60], 0
jmp 0x18001be58
movzx ecx, byte [rbp + 0xbf]
movzx eax, cl
and cl, 7
shr al, 3
mov byte [rbp + 0xa0], al
movzx eax, byte [rbp + 0xbe]
shr al, 5
shl cl, 3
or cl, al
mov byte [rbp + 0xa1], cl
jmp case.0x18001b059.208
mov rcx, qword [rbp + 0x18]
lea rdx, [rbp + 0xe0]
mov r8d, 0x2b
call fcn.18005a5c0
mov esi, dword [rsp + 0x58]
lea rax, [rbp + 0x140]
mov dword [rbp - 0x38], eax
lea r8, [rbp + 0x8c]
mov eax, dword [rbp + 0xc]
lea rdx, [rbp - 0x38]
mov dword [rbp - 0x40], eax
lea rcx, [rsp + 0x70]
lea rax, [rbp + 0xa8]
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x38], rax
xor r14d, r14d
lea rax, [rbp + 0x88]
mov dword [rbp - 0x58], r14d
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x40]
lea r9d, [r14 + 0x30]
mov qword [rsp + 0x20], rax
call fcn.18004c360
mov dword [0x18007bc70], eax
test eax, eax
je 0x18001bde1
mov ebx, 0xd9
mov ecx, ebx
sub ecx, 0xd9
je 0x18001b184
sub ecx, 0x25
je 0x18001b17f
cmp ecx, 0x25
je 0x18001be58
jmp 0x18001b1b9
mov dword [rbp - 0x60], eax
jmp 0x18001b1b9
lea rax, [rsp + 0x70]
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
mov qword [rsp + 0x30], r14
xor r8d, r8d
mov qword [rsp + 0x28], r14
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], r14
call fcn.18000ee30
mov eax, dword [0x18007bc70]
add ebx, 0x25
cmp ebx, 0x148
jb 0x18001b165
jmp 0x18001bde1
mov rcx, qword [rbp + 0x28]
mov eax, r14d
sub eax, dword [rbp + 0x20]
mov dword [rcx], eax
jmp case.0x18001b059.208
mov r14, qword [rbp + 0x80]
test r14, r14
jne 0x18001b24d
mov esi, dword [rsp + 0x58]
mov ebx, 0x85
nop
mov eax, ebx
sub eax, 0x85
je 0x18001b212
sub eax, 1
je 0x18001b209
cmp eax, 1
je 0x18001be58
jmp 0x18001b243
mov dword [rbp - 0x60], 0x1c
jmp 0x18001b243
lea rax, [rsp + 0x70]
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
xor eax, eax
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18000ee30
inc ebx
cmp ebx, 0x88
jb 0x18001b1f0
lea rax, [rbp + 0xe0]
xor ebx, ebx
mov qword [rsp + 0x28], rbx
lea r9, [rbp + 0xc8]
xor edx, edx
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov r8d, 0xc5
call fcn.180057590
mov dword [rsp + 0x70], ebx
test al, al
je 0x18001b2e3
lea r9, [rsp + 0x70]
mov r8d, 0xef
mov rdx, r14
lea rcx, [rbp + 0xe0]
call fcn.180067f50
mov eax, dword [rbp + 8]
lea r8, [rsp + 0x50]
mov dword [rsp + 0x70], eax
mov rcx, r14
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x58], eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov dword [rsp + 0x50], ebx
mov dword [rbp - 0x40], ebx
jmp 0x18001b327
mov eax, dword [rbp + 8]
lea r8, [rbp - 0x58]
mov dword [rsp + 0x50], eax
xor ecx, ecx
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x40], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x40]
mov dword [rbp - 0x58], ebx
mov r9d, 0xff
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x90]
mov dword [rbp - 0x38], ebx
call fcn.1800558c0
mov dword [0x18007bc70], eax
jmp 0x18001bde1
mov rcx, qword [rbp + 0x30]
lea rdx, [rbp + 0x140]
mov r8d, 0x2b
call fcn.18005a5c0
jmp 0x18001bde1
mov eax, dword [rbp + 0xc]
lea r9, [rbp + 0x140]
mov esi, dword [rsp + 0x58]
lea r8, [rsp + 0x50]
xor r14d, r14d
mov dword [rsp + 0x70], eax
mov edx, StrCmpNICW
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x50], esi
call fcn.180009c40
mov dword [0x18007bc70], eax
test eax, eax
je 0x18001b40e
mov ebx, 0x11b
cmp ebx, 0x11b
je 0x18001b3cb
cmp ebx, 0xa4b7
je 0x18001b3c6
cmp ebx, 0x14853
je 0x18001be58
jmp 0x18001b400
mov dword [rbp - 0x60], eax
jmp 0x18001b400
lea rax, [rsp + 0x50]
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x38], rax
mov r9d, SHSetInstanceExplorer
mov qword [rsp + 0x30], r14
xor r8d, r8d
mov qword [rsp + 0x28], r14
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], r14
call fcn.18000ee30
mov eax, dword [0x18007bc70]
add ebx, 0xa39c
cmp ebx, 0x1ead4
jbe 0x18001b3a8
movzx eax, byte [rbp + 0xb3]
mov dword [rbp + 0x90], eax
jmp 0x18001bde1
mov r15d, 0x5e
nop word [rax + rax]
lea eax, [r15 - 0x5e]
cmp eax, 0xa
ja case.default.0x18001b455
lea rcx, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x1bf04]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
add r12, 2
jmp case.default.0x18001b455
cmp r14, r11
jbe case.default.0x18001b455
mov rdx, qword [rbp - 0x20]
nop dword [rax]
cmp rdx, rsi
jbe case.default.0x18001b455
movzx eax, byte [rdx - 1]
lea rcx, [r14 - 1]
dec rdx
cmp byte [rcx], al
jne case.default.0x18001b455
mov qword [rbp - 0x68], rcx
mov r14, rcx
mov qword [rbp - 0x20], rdx
cmp rcx, r11
ja 0x18001b470
jmp case.default.0x18001b455
cmp r14, r9
ja case.0x18001b059.194
cmp r12, qword [rbp + 0x60]
ja case.0x18001b059.194
mov eax, dword [r8]
xor r9d, r9d
mov dword [rsp + 0x50], eax
mov r8, rdx
lea rax, [r14 - 2]
mov rdx, r10
mov qword [rsp + 0x28], rax
mov ecx, SHSetFolderPathW
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.18001d4a0
jmp 0x18001bb45
mov eax, dword [r8]
lea rdx, [rsp + 0x50]
inc r14
mov dword [rsp + 0x50], eax
mov rcx, r14
mov qword [rbp - 0x68], r14
mov r8d, 0xf4
call fcn.18001df50
mov rdi, rax
mov qword [rbp - 8], rax
jmp 0x18001bb45
mov eax, dword [r8]
xor r9d, r9d
mov dword [rsp + 0x50], eax
mov r8, rdx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], r14
mov rdx, r10
mov qword [rsp + 0x20], rax
mov ecx, SHSetFolderPathW
call fcn.18001d4a0
mov rdx, qword [rbp - 0x20]
lea rax, [rdx + 0xffff]
cmp rax, r14
jb 0x18001bb45
xor esi, esi
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov r8d, 0x133
mov qword [rsp + 0x20], rsi
call fcn.18001e1a0
xor r9d, r9d
mov qword [rsp + 0x28], rsi
mov r8d, 0x133
mov qword [rsp + 0x20], rsi
mov rdx, r14
xor ecx, ecx
mov rbx, rax
call fcn.18001e1a0
cmp ebx, eax
jne 0x18001bb45
mov ecx, 0x61
nop dword [rax]
mov eax, ecx
sub eax, 0x60
je 0x18001b5bf
cmp eax, 1
jne 0x18001b5b3
mov qword [rbp - 0x10], r12
inc r12
dec ecx
cmp ecx, 0x5f
ja 0x18001b5a0
jmp 0x18001bb45
mov rax, qword [rbp - 0x10]
mov r15d, 0x60
mov byte [rax], sil
jmp 0x18001bb45
mov eax, dword [r8]
lea rcx, [rsp + 0x50]
mov r8d, 0x9d
mov dword [rsp + 0x50], eax
mov r9, r10
mov qword [rsp + 0x20], r14
call fcn.180011e40
mov qword [rbp - 0x20], rax
jmp 0x18001bb45
mov rdi, qword [rbp - 0x20]
mov r14d, 0x3f
mov eax, r14d
sub eax, 0x3f
je 0x18001b6f9
sub eax, 1
je 0x18001b6c6
sub eax, 1
je 0x18001b6b5
cmp eax, 1
jne 0x18001b717
cmp r13, 0xf
jb 0x18001b6ac
mov esi, 0x17
movabs rdi, 0x8080808080808081
nop
mov eax, esi
sub eax, 0x17
je 0x18001b690
sub eax, 0x4d
je 0x18001b65a
cmp eax, 0x4d
jne 0x18001b697
mov byte [r12], r13b
inc r12
jmp 0x18001b697
sub r13, 0xf
cmp r13, 0xff
jb 0x18001b697
mov rax, rdi
mov rcx, r12
mul r13
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
imul rax, rbx, 0xffffffffffffff01
add r12, rbx
add r13, rax
jmp 0x18001b697
mov rax, qword [rbp - 0x10]
add byte [rax], 0xf
add esi, 0x4d
cmp esi, 0xfe
jb 0x18001b640
mov rdi, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x70]
jmp 0x18001b717
mov rax, qword [rbp - 0x10]
add byte [rax], r13b
jmp 0x18001b717
mov rax, qword [rbp - 0x68]
add rax, 4
add rax, r13
mov qword [rbp - 0x68], rax
jmp 0x18001b717
lea rcx, [r13 + 0xf0]
movabs rax, 0x8080808080808081
mul rcx
shr rdx, 7
add rdx, r12
cmp rdx, rbx
jbe 0x18001b717
mov rax, rbx
sub rax, r12
imul r13, rax, 0xff
add r13, 0xe
jmp 0x18001b717
mov r9, qword [rbp - 0x68]
lea rdx, [rdi + 4]
mov rcx, qword [rbp + 0x68]
add r9, 4
mov r8d, 0xef
call fcn.180043590
mov r13d, eax
inc r14d
cmp r14d, 0x43
jb 0x18001b603
mov rdi, qword [rbp - 8]
jmp 0x18001bb45
mov r14d, 0xdf
mov dword [rbp - 0x58], r14d
nop word [rax + rax]
mov eax, r14d
sub eax, 0xdd
je 0x18001b87a
sub eax, 1
je 0x18001b798
cmp eax, 1
jne 0x18001b880
mov ebx, dword [rbp - 0x68]
mov eax, 0x80808081
sub ebx, r11d
mov qword [rbp - 0x10], r12
inc r12
mov dword [rbp - 0x18], ebx
lea ecx, [rbx + 0xf0]
mul ecx
mov ecx, ebx
shr edx, 7
mov eax, edx
add rax, r12
add rcx, rax
cmp rcx, qword [rbp + 0x38]
jbe 0x18001b880
dec r12
jmp case.0x18001b059.195
mov ebx, dword [rbp - 0x18]
cmp ebx, 0xf
jb 0x18001b840
mov r14d, dword [rbp + 0x10]
mov esi, 0xca
mov rdi, qword [rbp - 0x10]
cmp esi, 0xca
je 0x18001b81b
cmp esi, 0x15d
je 0x18001b816
cmp esi, 0x1f0
je 0x18001b7da
cmp esi, 0x283
jne 0x18001b81f
mov byte [r12], r14b
inc r12
jmp 0x18001b81f
cmp r14d, 0xff
jb 0x18001b81f
mov eax, 0x80808081
mov rcx, r12
mul r14d
shr edx, 7
mov ebx, edx
mov r8d, edx
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
add r12, rbx
add r14d, 0xffffff01
sub rbx, 1
jne 0x18001b800
mov ebx, dword [rbp - 0x18]
mov dword [rbp + 0x10], r14d
jmp 0x18001b81f
mov byte [rdi], 0xf0
jmp 0x18001b81f
lea r14d, [rbx - 0xf]
add esi, 0x93
cmp esi, 0x316
jb 0x18001b7b1
mov rdi, qword [rbp - 8]
mov r11, qword [rsp + 0x68]
mov dword [rbp + 0x10], r14d
mov r14d, dword [rbp - 0x58]
jmp 0x18001b84c
mov rcx, qword [rbp - 0x10]
movzx eax, bl
shl al, 4
mov byte [rcx], al
xor ecx, ecx
mov eax, ebx
mov qword [rsp + 0x30], rcx
add rax, r12
mov qword [rsp + 0x28], rax
mov r9, r11
mov r8d, SHSetInstanceExplorer
mov qword [rsp + 0x20], rcx
mov rdx, r12
call fcn.180021010
mov r11, qword [rsp + 0x68]
jmp 0x18001b880
mov eax, dword [rbp - 0x18]
add r12, rax
dec r14d
mov dword [rbp - 0x58], r14d
cmp r14d, 0xdc
ja 0x18001b740
mov r15d, 0x60
jmp 0x18001bb45
movzx eax, r14w
lea rdx, [rbp - 0x58]
sub ax, word [rbp - 0x20]
mov r8d, 0xdb
mov rcx, r12
mov word [rbp - 0x58], ax
call fcn.18005f260
jmp 0x18001bb45
mov r11, r14
mov qword [rsp + 0x68], r14
jmp case.default.0x18001b455
mov rax, qword [rbp - 0x78]
mov esi, 0xab
mov qword [rbp - 0x20], rax
nop dword [rax]
mov eax, esi
sub eax, 0xaa
je 0x18001b910
cmp eax, 1
jne 0x18001bb2f
mov qword [rbp + 0x40], r14
mov dword [rbp + 0x14], eax
mov dword [rbp - 0x50], 0x40
jmp 0x18001bb2f
mov ebx, 0xbd
nop word [rax + rax]
mov eax, ebx
sub eax, 0xbb
je 0x18001ba16
sub eax, 1
je 0x18001b94c
cmp eax, 1
jne 0x18001baad
mov r14, qword [rbp + 0x40]
mov qword [rbp - 0x68], r14
mov dword [rsp + 0x60], edi
jmp 0x18001baad
mov eax, dword [rbp + 0x14]
mov edx, dword [rbp - 0x50]
mov rcx, qword [rbp + 0x40]
add rcx, rax
mov eax, edx
shr eax, 6
inc edx
mov qword [rbp + 0x40], rcx
mov dword [rbp + 0x14], eax
mov dword [rbp - 0x50], edx
cmp rcx, r9
jbe 0x18001baad
mov r11, qword [rsp + 0x68]
mov rdi, qword [rbp + 0x78]
mov r15d, 0xc3
mov r14d, 0x38
nop dword [rax + rax]
mov eax, r14d
sub eax, 0x36
je 0x18001bc00
sub eax, 1
je 0x18001bb79
cmp eax, 1
jne 0x18001bc18
mov rbx, qword [rbp + 0x48]
movabs r8, 0x8080808080808081
sub rbx, r11
mov rax, r8
mov qword [rbp + 0x50], rbx
lea rcx, [rbx + 0xf0]
mul rcx
mov rcx, qword [rbp + 0x70]
lea rax, [r12 + 1]
shr rdx, 7
add rdx, rbx
add rax, rdx
cmp rax, rcx
jbe 0x18001ba09
mov rbx, rcx
mov rax, r8
sub rbx, r12
dec rbx
lea rcx, [rbx + 0xf0]
mul rcx
shr rdx, 7
sub rbx, rdx
mov qword [rbp + 0x50], rbx
lea rax, [rbx + r11]
mov qword [rbp - 0x68], rax
jmp 0x18001bc18
mov eax, dword [r8]
mov r9d, 0x61
mov rcx, qword [rsp + 0x78]
lea r8, [rsp + 0x70]
mov dword [rsp + 0x70], eax
mov rdx, r10
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x50], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.1800119b0
mov rcx, qword [rbp + 0x40]
lea rdx, [rsp + 0x50]
mov qword [rbp - 0x20], rax
mov r8d, 0xf4
mov rax, qword [rbp - 0x28]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
call fcn.18001df50
mov rcx, qword [rbp - 0x48]
lea r8, [rsp + 0x50]
mov edi, eax
lea rdx, [rsp + 0x70]
mov rax, qword [rbp - 0x28]
mov r9d, 0x6f
mov qword [rbp - 8], rdi
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
call fcn.180028df0
mov r9, qword [rbp - 0x80]
mov r8, qword [rbp - 0x28]
dec ebx
mov r10, qword [rbp - 0x48]
cmp ebx, 0xba
ja 0x18001b920
cmp dword [r8], 2
mov rdx, qword [rbp - 0x20]
je 0x18001badd
lea rax, [rdx + 0xffff]
cmp rax, r14
jb 0x18001b910
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov r8d, 0x133
mov qword [rsp + 0x20], rax
call fcn.18001e1a0
mov rbx, rax
xor r9d, r9d
xor eax, eax
mov r8d, 0x133
mov qword [rsp + 0x28], rax
mov rdx, r14
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18001e1a0
mov r8, qword [rbp - 0x28]
mov r9, qword [rbp - 0x80]
mov r10, qword [rbp - 0x48]
cmp ebx, eax
jne 0x18001b910
mov r8, qword [rbp - 0x28]
dec esi
mov r10, qword [rbp - 0x48]
cmp esi, 0xa9
ja 0x18001b8e0
mov r11, qword [rsp + 0x68]
mov r14, qword [rbp - 0x68]
inc r15d
mov r8, qword [rbp - 0x28]
mov r9, qword [rbp - 0x80]
mov r10, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rbp - 0x70]
mov rsi, qword [rbp]
cmp r15d, 0x69
jb 0x18001b430
jmp case.0x18001b059.193
mov rbx, qword [rbp + 0x50]
cmp rbx, 0xf
jb 0x18001bbf1
mov esi, 0x26
mov eax, esi
sub eax, 0x26
je 0x18001bbe0
cmp eax, 1
jne 0x18001bbe4
mov byte [r12], 0xf0
inc r12
cmp rdi, 0xff
jb 0x18001bbd7
movabs rax, 0x8080808080808081
mov rcx, r12
mul rdi
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
imul rax, rbx, 0xffffffffffffff01
add r12, rbx
mov rbx, qword [rbp + 0x50]
add rdi, rax
mov byte [r12], dil
inc r12
jmp 0x18001bbe4
lea rdi, [rbx - 0xf]
inc esi
cmp esi, 0x28
jb 0x18001bb88
mov qword [rbp + 0x78], rdi
jmp 0x18001bc13
movzx eax, bl
shl al, 4
mov byte [r12], al
inc r12
jmp 0x18001bc18
mov r8, qword [rbp + 0x50]
mov rdx, r11
mov rcx, r12
call sub.VCRUNTIME140.dll_memcpy
add r12, qword [rbp + 0x50]
mov r11, qword [rsp + 0x68]
dec r14d
cmp r14d, 0x35
ja 0x18001b990
mov rdi, qword [rbp - 8]
jmp 0x18001bde1
mov eax, dword [r8]
xor r9d, r9d
mov dword [rsp + 0x50], eax
mov r8, rdx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], r14
mov rdx, r10
mov qword [rsp + 0x20], rax
mov ecx, SHSetFolderPathW
call fcn.18001d4a0
mov rax, qword [rbp - 0x28]
lea rdx, [rsp + 0x50]
inc r14
mov r8d, 0xf4
mov rcx, r14
mov qword [rbp - 0x68], r14
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
call fcn.18001df50
mov edi, eax
mov qword [rbp - 8], rdi
jmp 0x18001bde1
movzx eax, byte [rbp + 0xbe]
mov ecx, 0x52
and al, 0x1f
mov byte [rbp + 0xa3], 0
mov byte [rbp + 0xa2], al
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp + 0x80], rax
jmp 0x18001bde1
mov r15d, 0xc2
jmp case.0x18001b059.208
movzx eax, byte [rbp + 0xc6]
movzx ecx, byte [rbp + 0xc7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc4]
shl ecx, 8
or ecx, eax
mov dword [rbp + 0x98], ecx
jmp case.0x18001b059.208
movzx edx, byte [rbp + 0xc1]
movzx eax, dl
and dl, 1
shr al, 1
movzx ecx, al
mov eax, 0x7bc
add cx, ax
shl dl, 3
mov word [rbp + 0x9c], cx
movzx ecx, byte [rbp + 0xc0]
movzx eax, cl
shr al, 5
or dl, al
and cl, 0x1f
mov byte [rbp + 0x9e], dl
mov byte [rbp + 0x9f], cl
jmp 0x18001bde5
movzx ecx, byte [rbp + 0xc3]
movzx eax, byte [rbp + 0xc2]
shl ecx, 8
or ecx, eax
mov dword [rbp + 0x94], ecx
jmp case.0x18001b059.208
mov rcx, qword [rbp + 0x80]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp dword [0x18007bc70], 0
je 0x18001bdca
mov ebx, 0x4f
cmp ebx, 0x4f
je 0x18001bd84
cmp ebx, 0x62
je 0x18001be58
jmp 0x18001bdc2
mov eax, dword [rsp + 0x58]
mov r9d, SHSetInstanceExplorer
mov dword [rsp + 0x50], eax
xor r8d, r8d
lea rax, [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x38], rax
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
call fcn.18000ee30
mov eax, dword [0x18007bc70]
mov dword [rbp - 0x60], eax
add ebx, 0x13
cmp ebx, 0x75
jb 0x18001bd74
mov eax, 0x3d
nop
cmp eax, 0x3d
je 0x18001be18
add eax, 0xa4
cmp eax, 0xe1
jb 0x18001bdd0
mov r9, qword [rbp - 0x80]
mov rdx, qword [rsp + 0x78]
lea rcx, [0x180000000]
inc r15d
cmp r15d, dword [rbp - 0x30]
jae 0x18001be58
mov r14, qword [rbp - 0x68]
mov r8, qword [rbp - 0x28]
mov r10, qword [rbp - 0x48]
mov r11, qword [rsp + 0x68]
mov rbx, qword [rbp - 0x70]
mov rsi, qword [rbp]
jmp 0x18001b030
mov eax, dword [rsp + 0x58]
xor ebx, ebx
mov dword [rbp - 0x30], eax
mov r9d, SHSetInstanceExplorer
lea rax, [rbp - 0x30]
xor r8d, r8d
mov qword [rsp + 0x38], rax
xor edx, edx
mov qword [rsp + 0x30], rbx
xor ecx, ecx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.18000ee30
mov dword [rbp - 0x60], ebx
jmp 0x18001be58
sub r12d, dword [rbp - 0x78]
mov dword [rbp - 0x60], r12d
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.180069d20
add rsp, 0x2b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret