Function at 0x18001cb90
Capabilities:
Authenticate hmac
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x420]
sub rsp, 0x520
mov rax, qword [0x180357660]
xor rax, rsp
mov qword [rbp + 0x410], rax
mov r13, qword [rbp + 0x480]
mov ebx, r8d
mov r8, qword [rbp + 0x488]
mov r10, rcx
mov qword [rbp - 0x58], rcx
mov r11, rdx
mov qword [rbp + 0x80], r9
mov ecx, ebx
lea eax, [rbx + 0x7fe]
mov dword [rsp + 0x60], ebx
cmp ebx, eax
mov qword [rbp - 0x68], rdx
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x10], rax
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x28], r8
mov dword [rsp + 0x50], ebx
jae 0x18001d126
mov rax, qword [rbp - 0x20]
movzx edx, byte [rsp + 0x41]
mov rbx, qword [rbp - 0x70]
mov r14, qword [rbp - 0x70]
mov rdi, qword [rbp - 0x70]
mov r13, qword [rbp - 0x70]
mov r15, qword [rbp - 0x70]
mov r12, qword [rbp - 0x70]
mov qword [rbp + 0x78], rax
mov rax, qword [rbp - 0x20]
mov byte [rsp + 0x41], dl
mov edx, ecx
mov qword [rbp + 0x68], rax
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x40], al
movabs r9, 0x7fffffffffffffff
cmp ecx, 0x1cc
ja 0x18001cd76
je 0x18001cd36
mov eax, ecx
sub eax, 0x58
je 0x18001cd12
sub eax, 0x77
je 0x18001ccfb
sub eax, 0xa
je 0x18001ccdc
sub eax, 0x39
je 0x18001cc92
cmp eax, 0x81
jne 0x18001ccb7
mov byte [rsp + 0x40], 0
jmp 0x18001ccb7
mov rax, qword [rbp + 0x28]
mov r8, qword [rax + 0x68]
mov r9, qword [rbp - 0x80]
mov edx, 0xca
mov rcx, r10
call fcn.180014ba0
mov ecx, dword [rsp + 0x50]
mov r8, qword [rbp - 0x28]
mov edx, dword [rsp + 0x60]
mov r11, qword [rbp - 0x68]
lea eax, [rdx + 0x7fe]
add ecx, 0xba
mov dword [rsp + 0x50], ecx
cmp ecx, eax
jae 0x18001d14a
mov r10, qword [rbp - 0x58]
jmp 0x18001cc4a
mov rax, qword [r8]
mov rbx, qword [rax + 0x28]
mov rax, qword [rbp - 0x40]
mov rax, qword [rax]
mov r14, qword [rax + 0x28]
mov rax, qword [r10]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x10], rax
jmp 0x18001ccb7
mov byte [rsp + 0x41], 1
mov qword [rbp + 0x78], 0
mov qword [rbp + 0x68], 0
jmp 0x18001ccb7
mov rax, qword [r10]
xor edx, edx
mov qword [rbp + 0x28], rax
mov r8d, 0x100
mov rax, qword [r10 + 0x18]
mov rcx, rax
mov qword [rbp - 0x80], rax
call sub.VCRUNTIME140.dll_memset
jmp 0x18001ccab
mov rsi, qword [rbp + 0x28]
mov r8, qword [rsi + 0x70]
mov rax, qword [rsi + 0x68]
cmp rax, r8
je 0x18001cd64
mov r9, qword [rbp - 0x80]
mov edx, 0xca
mov rcx, r10
call fcn.180014ba0
mov rax, qword [rsi + 0x68]
mov ecx, dword [rsp + 0x50]
mov r10, qword [rbp - 0x58]
mov r8, qword [rsi + 0x78]
cmp rax, r8
je 0x18001ccaf
jmp 0x18001cc9a
mov eax, ecx
sub eax, 0x24d
je 0x18001d10f
sub eax, 0x39
je 0x18001d0db
sub eax, 0x81
je 0x18001cdb4
sub eax, 0x39
je 0x18001cda8
cmp eax, 0xba
je 0x18001df1d
jmp 0x18001ccb7
mov dword [rbp + 0x18], 0
jmp 0x18001ccb7
mov rax, qword [r10]
mov qword [rax + 0x10], 0
test rbx, rbx
je 0x18001cdca
mov rsi, qword [rbx + 0x10]
jmp 0x18001cdcd
mov rsi, r9
test r14, r14
je 0x18001cdd8
mov rdx, qword [r14 + 0x10]
jmp 0x18001cddb
mov rdx, r9
mov qword [rsp + 0x68], rdx
test rbx, rbx
jne 0x18001cdee
test r14, r14
je 0x18001ccab
mov eax, 0x52
mov dword [rsp + 0x7c], eax
cmp eax, 0x52
je 0x18001cf29
cmp eax, 0xd6
je 0x18001ce6d
cmp eax, 0x15a
jne 0x18001d0a4
xor r8d, r8d
mov qword [rsp + 0x20], 0
mov r9, rdi
xor ecx, ecx
lea edx, [r8 + 0x40]
call fcn.180031810
test al, al
jne 0x18001ce55
mov rax, qword [rbp - 0x58]
lea r9, [rbp - 0x20]
xor edx, edx
mov qword [rdi + 0x10], r13
mov r8, rdi
mov rax, qword [rax]
lea ecx, [rdx + 0x4e]
mov qword [rbp - 0x20], rax
call fcn.1800881d0
jmp 0x18001d09c
mov r9d, 0xb9
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
call fcn.180064360
jmp 0x18001d09c
mov ecx, dword [r11]
sub ecx, 8
je 0x18001cee4
sub ecx, 1
je 0x18001cec5
sub ecx, 1
je 0x18001cea6
cmp ecx, 1
jne 0x18001d11f
mov eax, dword [r12]
not eax
and eax, dword [r15]
cmp dword [rdi + 0x18], eax
je 0x18001ce9d
mov byte [rsp + 0x40], cl
mov dword [rdi + 0x18], eax
mov eax, dword [r12 + 4]
not eax
jmp 0x18001cefd
mov eax, dword [r12]
xor eax, dword [r15]
cmp dword [rdi + 0x18], eax
je 0x18001ceba
mov byte [rsp + 0x40], 1
mov dword [rdi + 0x18], eax
mov eax, dword [r12 + 4]
xor eax, dword [r15 + 4]
jmp 0x18001cf01
mov eax, dword [r12]
or eax, dword [r15]
cmp dword [rdi + 0x18], eax
je 0x18001ced9
mov byte [rsp + 0x40], 1
mov dword [rdi + 0x18], eax
mov eax, dword [r12 + 4]
or eax, dword [r15 + 4]
jmp 0x18001cf01
mov eax, dword [r12]
and eax, dword [r15]
cmp dword [rdi + 0x18], eax
je 0x18001cef8
mov byte [rsp + 0x40], 1
mov dword [rdi + 0x18], eax
mov eax, dword [r12 + 4]
and eax, dword [r15 + 4]
cmp dword [rdi + 0x1c], eax
je 0x18001cf0e
mov dword [rdi + 0x1c], eax
mov byte [rsp + 0x40], 1
mov ecx, 0x307
add r15, 8
mov dword [rsp + 0x50], ecx
add r12, 8
mov eax, 0xd6
jmp 0x18001d0a4
cmp rsi, rdx
jne 0x18001cf9f
mov ecx, 0x5d
mov eax, ecx
sub eax, 0x5c
je 0x18001cf57
cmp eax, 1
jne 0x18001cf89
mov r15, rbx
mov qword [rsp + 0x70], rbx
mov rbx, qword [rbx]
mov r13, rsi
mov r12, r14
mov qword [rsp + 0x48], r14
jmp 0x18001cf93
test rbx, rbx
je 0x18001cf62
mov rsi, qword [rbx + 0x10]
jmp 0x18001cf65
mov rsi, r9
mov r14, qword [r14]
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x48]
test r14, r14
je 0x18001cf82
mov rdx, qword [r14 + 0x10]
mov qword [rsp + 0x68], rdx
jmp 0x18001cf93
mov qword [rsp + 0x68], r9
jmp 0x18001cf93
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x48]
dec ecx
cmp ecx, 0x5b
ja 0x18001cf33
jmp 0x18001d040
jae 0x18001d009
mov eax, SHTestTokenMembership
cmp eax, 0xf1
je 0x18001cff0
cmp eax, 0x1ac
je 0x18001cfd5
cmp eax, 0x267
jne 0x18001cfd8
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x48]
test rbx, rbx
je 0x18001cfd0
mov rsi, qword [rbx + 0x10]
jmp 0x18001cfe2
mov rsi, r9
jmp 0x18001cfe2
mov rbx, qword [rbx]
mov r12, qword [rsp + 0x48]
mov r15, qword [rsp + 0x70]
add eax, 0xbb
cmp eax, 0x322
jb 0x18001cfa6
jmp 0x18001d040
lea r12, [0x180358630]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], r12
mov r13, rsi
mov r15, rbx
jmp 0x18001cfe2
mov r12, r14
mov qword [rsp + 0x48], r14
mov r14, qword [r14]
lea r15, [0x180358630]
mov qword [rsp + 0x70], r15
mov r13, rdx
test r14, r14
je 0x18001d033
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x68], rax
jmp 0x18001d040
mov qword [rsp + 0x68], r9
nop dword [rax + rax]
mov rdi, qword [rbp + 0x10]
test rdi, rdi
je 0x18001d07a
nop dword [rax]
cmp qword [rdi + 0x10], r13
jae 0x18001d0cc
mov rdx, rdi
mov byte [rsp + 0x40], 1
mov rdi, qword [rdi]
mov r9d, 0xb9
xor r8d, r8d
mov qword [rbp + 0x10], rdi
xor ecx, ecx
call fcn.180064360
test rdi, rdi
jne 0x18001d050
xor r9d, r9d
mov dword [rsp + 0x20], 0x10d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18006ca00
mov rdi, rax
add r15, 0x18
add r12, 0x18
mov eax, dword [rsp + 0x7c]
mov r11, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x68]
add eax, 0x84
mov dword [rsp + 0x7c], eax
movabs r9, 0x7fffffffffffffff
cmp eax, 0x1de
jb 0x18001cdf7
jmp 0x18001cde0
jne 0x18001d07a
mov r11, qword [rbp + 0x10]
mov r11, qword [r11]
mov qword [rbp + 0x10], r11
jmp 0x18001d094
mov rsi, qword [rbp + 0x28]
mov r8, qword [rsi + 0x80]
cmp qword [rsi + 0x68], r8
je 0x18001d105
mov r9, qword [rbp - 0x80]
mov edx, 0xca
mov rcx, r10
call fcn.180014ba0
mov ecx, dword [rsp + 0x50]
mov r10, qword [rbp - 0x58]
or dword [r10 + 0x30], 8
jmp 0x18001ccaf
mov rax, qword [r10]
mov qword [rax + 0x28], 0
jmp 0x18001ccb7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_abort]
int3
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x41], al
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x78], rax
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x68], rax
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x40], al
jmp 0x18001d152
mov ebx, dword [rsp + 0x60]
mov r13, qword [rbp - 0x40]
lea eax, [rbx + 0xa0]
mov dword [rsp + 0x48], eax
cmp ebx, eax
jae 0x18001df1d
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x48]
mov r8, qword [rbp - 0x70]
mov rdx, qword [rbp - 0x70]
mov r12, qword [rbp - 0x70]
mov r9, qword [rbp - 0x70]
mov r10d, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x48]
mov edi, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x48]
mov esi, dword [rsp + 0x48]
mov dword [rbp + 0x40], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x30], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x34], eax
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x20], rax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x50], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x48], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x44], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x1c], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x50], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x18], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x5c], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x58], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x54], eax
mov eax, dword [rbp - 0x60]
mov dword [rbp - 0x30], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rbp + 8], eax
mov eax, dword [rbp - 0x60]
mov dword [rbp + 0x38], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rbp + 0xc], eax
mov eax, dword [rbp - 0x60]
mov qword [rbp + 0x88], r8
mov r8d, dword [rsp + 0x48]
mov qword [rbp + 0x60], rdx
mov edx, dword [rsp + 0x48]
mov dword [rbp + 0x28], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rbp + 0x20], eax
mov qword [rbp + 0x70], r12
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x78], r10d
mov dword [rbp - 0x38], r14d
mov dword [rsp + 0x7c], edi
mov dword [rsp + 0x50], edx
mov dword [rbp + 0x3c], ecx
mov dword [rbp - 0x78], r8d
mov dword [rbp - 0x10], r15d
mov dword [rbp - 0x14], esi
nop dword [rax]
lea eax, [rbx - 0x83]
cmp eax, 0x9c
ja case.0x18001d291.141
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x1df78]
mov ecx, dword [rcx + rax*4 + 0x1df4c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov dword [rbp + 0x40], 0x36
mov dword [rbp + 0x30], 0x2381f
jmp case.0x18001d291.141
lea rax, [r12 + 0xb20]
mov qword [rbp + 0x88], rax
mov rax, qword [r12 + 0x1320]
mov qword [rbp + 0x60], rax
jmp case.0x18001d291.141
movzx eax, word [r13]
lea rdx, [rsp + 0x60]
mov rcx, qword [rbp - 0x58]
mov r8d, 0x82
mov word [rsp + 0x60], ax
mov dword [rbp + 0x34], 1
call fcn.180072200
mov r9, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x78]
mov edx, dword [rsp + 0x50]
jmp case.0x18001d291.141
mov rax, qword [rbp - 0x58]
lea r8, [0x18001e020]
xor ecx, ecx
mov qword [rbp - 0x20], rcx
mov dword [rbp + 0x48], ecx
mov qword [rax], r8
xor eax, eax
mov qword [rbp + 0x98], rax
mov dword [rbp + 0xa0], eax
jmp case.0x18001d291.141
test r11, r11
je 0x18001de8f
movsxd r12, dword [rbp + 0x44]
mov eax, 0xd9
mov dword [rbp + 0x4c], eax
mov qword [rbp + 0x90], r12
sub eax, 0xd6
je 0x18001db73
sub eax, 1
je 0x18001d659
sub eax, 1
je 0x18001d428
cmp eax, 1
jne 0x18001dadf
xor r8d, r8d
test r12, r12
jle 0x18001d410
nop word [rax + rax]
mov edx, 0x11e
cmp edx, 0x11e
je 0x18001d397
cmp edx, 0x1a7
jne 0x18001d3f1
jmp 0x18001d3d8
mov r10d, dword [r11 + r8*4]
mov ecx, dword [r9 + 0x340]
and r10d, 0x7fff
sub ecx, 1
je 0x18001d3d4
sub ecx, 1
je 0x18001d3ce
sub ecx, 1
je 0x18001d3c3
cmp ecx, 1
jne 0x18001d3f1
shr r10d, 4
jmp 0x18001d3d8
mov eax, 0xaaaaaaab
mul r10d
mov r10d, edx
shr r10d, 3
jmp 0x18001d3d8
shr r10d, 2
and dword [r11 + r8*4], 0x8000
mov edx, 0x1a7
or dword [r11 + r8*4], r10d
mov dword [rsp + 0x60], 0xa3
add edx, 0x89
cmp edx, 0x230
jb 0x18001d385
inc r8
mov dword [rsp + 0x78], r10d
cmp r8, r12
jl 0x18001d380
mov eax, dword [r11]
mov dword [rbp + 0xf0], eax
mov eax, dword [r11 + 4]
mov dword [rbp + 0xf4], eax
jmp 0x18001dadb
cmp r12, 2
jle 0x18001d60c
mov r15, r13
lea rsi, [rbp + 0xf0]
mov r12, r9
lea rdi, [r11 + 8]
sub r12, r13
sub r15, r11
mov r13, qword [rbp + 0x90]
sub rsi, r11
add r13, 0xfffffffffffffffe
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x60], r13
nop
mov r13d, dword [rbp]
mov r14d, 0x33
nop word [rax + rax]
mov eax, r14d
sub eax, 0x33
je 0x18001d5be
sub eax, 1
je 0x18001d5b2
cmp eax, 1
jne 0x18001d5e8
lea rax, [rdi + r12]
mov ecx, dword [rax + r15 + 0x344]
lea r9, [rsp + 0x58]
movsxd rax, r13d
lea r8, [rbp]
mov dword [rsp + 0x58], ecx
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x68]
lea rbx, [r11 + rax*4]
mov eax, dword [r11 + rax*4]
mov dword [rbp], eax
mov eax, dword [rbp + 0x5c]
mov dword [rbp - 8], eax
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0x68], eax
mov eax, dword [rbp + 0x58]
mov dword [rbp - 0x80], eax
lea rax, [rbp - 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], SHTestTokenMembership
call fcn.1800b8f90
mov r9d, eax
mov eax, dword [rdi]
bt eax, 0xf
jb 0x18001d594
cmp r9d, eax
je 0x18001d594
movsxd r10, dword [rsp + 0x50]
mov r8d, 0x112
mov r12, qword [rbp - 0x68]
nop
mov eax, r8d
sub eax, 0x112
je 0x18001d536
sub eax, 1
je 0x18001d52c
cmp eax, 1
jne 0x18001d575
and dword [rbx], 0x7fff
jmp 0x18001d575
and dword [r12 + r10*4], 0x7fff
jmp 0x18001d575
mov rax, qword [rbp - 0x40]
mov edx, r9d
mov eax, dword [rax + 0x50c]
sub eax, r9d
cmp eax, r9d
cmovl edx, eax
mov eax, dword [rdi]
sub eax, r9d
jns 0x18001d568
mov ecx, edx
neg ecx
cmp eax, ecx
jge 0x18001d562
sub edx, eax
lea eax, [rdx - 1]
jmp 0x18001d572
add eax, eax
not eax
jmp 0x18001d572
cmp eax, edx
jl 0x18001d570
add eax, edx
jmp 0x18001d572
add eax, eax
mov dword [rdi + rsi], eax
inc r8d
cmp r8d, 0x115
jb 0x18001d510
mov r12, qword [rbp - 0x70]
mov r9, qword [rsp + 0x70]
mov edx, dword [rsp + 0x50]
mov r11, qword [rbp - 0x68]
jmp 0x18001d5e8
mov edx, dword [rsp + 0x50]
bts r9d, 0xf
mov r11, qword [rbp - 0x68]
mov dword [rdi], r9d
mov r9, qword [rsp + 0x70]
mov dword [rdi + rsi], 0
jmp 0x18001d5e8
movsxd rax, edx
mov eax, dword [r11 + rax*4]
mov dword [rbp + 0x5c], eax
jmp 0x18001d5e8
movsxd rdx, dword [rdi + r15 + 0x400]
movsxd r13, dword [rdi + r15 + 0x304]
mov dword [rsp + 0x50], edx
mov eax, dword [r9 + rdx*4 + 0x344]
mov dword [rbp + 0x58], eax
mov eax, dword [r9 + r13*4 + 0x344]
mov dword [rbp + 0x54], eax
inc r14d
cmp r14d, 0x36
jb 0x18001d470
add rdi, 4
mov dword [rbp], r13d
sub qword [rbp - 0x60], 1
jne 0x18001d460
mov r13, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x58]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x80]
xor eax, eax
mov dword [rsp + 0x68], 1
mov qword [rsp + 0x28], rax
xor edx, edx
mov dword [rbp - 0x80], 1
mov qword [rsp + 0x20], rax
lea r9d, [rax + 0x1a]
call fcn.180057120
inc dword [r13 + 0x520]
mov r9, qword [rsp + 0x70]
mov r11, qword [rbp - 0x68]
jmp 0x18001dadb
mov rbx, qword [rbp - 0x40]
mov edx, 0x11a
mov eax, dword [rbx + 0x50c]
dec eax
mov dword [rsp + 0x58], eax
nop
mov ecx, edx
sub ecx, 0x117
je 0x18001d6b8
sub ecx, 3
je 0x18001d68c
cmp ecx, 1
jne 0x18001d6a6
mov eax, r8d
xor r12d, r12d
jmp 0x18001d6ed
xor r8d, r8d
mov dword [rbp - 0x78], r8d
test eax, eax
je 0x18001d6a6
inc r8d
shr eax, 1
jne 0x18001d697
mov dword [rsp + 0x58], eax
mov dword [rbp - 0x78], r8d
inc edx
cmp edx, 0x11d
jb 0x18001d670
mov eax, dword [rbp + 8]
xor r12d, r12d
jmp 0x18001d6f0
xor r12d, r12d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], r12
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x28], rax
xor r9d, r9d
mov r8d, 0x102
mov qword [rsp + 0x20], r12
xor ecx, ecx
mov dword [rsp + 0x68], r12d
call fcn.1800822b0
mov qword [rbp - 0x60], rax
mov dword [rbp + 8], eax
add eax, eax
mov edx, 0x11a
add dword [rbx + 0x51c], eax
mov eax, dword [rbx + 0x50c]
dec eax
mov dword [rsp + 0x58], eax
nop dword [rax]
mov ecx, edx
sub ecx, 0x117
je 0x18001d752
sub ecx, 3
je 0x18001d729
cmp ecx, 1
jne 0x18001d743
mov eax, r15d
jmp 0x18001d784
mov dword [rbp - 0x10], r12d
mov r15d, r12d
test eax, eax
je 0x18001d743
inc r15d
shr eax, 1
jne 0x18001d734
mov dword [rsp + 0x58], eax
mov dword [rbp - 0x10], r15d
inc edx
cmp edx, 0x11d
jb 0x18001d710
mov eax, dword [rbp + 0xc]
jmp 0x18001d787
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x20], r12
mov r8d, 0x102
mov dword [rsp + 0x68], r12d
xor ecx, ecx
call fcn.1800822b0
mov qword [rbp - 0x60], rax
mov dword [rbp + 0xc], eax
mov r15, qword [rbp - 0x58]
lea r8, [rbp - 0x80]
mov dword [rsp + 0x68], eax
mov r9d, 0x1a
mov eax, dword [rbp + 0xf0]
xor edx, edx
mov dword [rbp - 0x80], eax
mov rcx, r15
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.180057120
mov eax, dword [rbx + 0x50c]
mov edx, 0x11a
dec eax
mov dword [rsp + 0x58], eax
mov ecx, edx
sub ecx, 0x117
je 0x18001d810
sub ecx, 3
je 0x18001d7e9
cmp ecx, 1
jne 0x18001d801
mov eax, esi
jmp 0x18001d842
mov dword [rbp - 0x14], r12d
mov esi, r12d
test eax, eax
je 0x18001d801
inc esi
shr eax, 1
jne 0x18001d7f4
mov dword [rsp + 0x58], eax
mov dword [rbp - 0x14], esi
inc edx
cmp edx, 0x11d
jb 0x18001d7d1
mov eax, dword [rbp + 0x20]
jmp 0x18001d845
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x20], r12
mov r8d, 0x102
mov dword [rsp + 0x68], r12d
xor ecx, ecx
call fcn.1800822b0
mov qword [rbp - 0x60], rax
mov dword [rbp + 0x20], eax
mov dword [rsp + 0x68], eax
lea r8, [rbp - 0x80]
mov eax, dword [rbp + 0xf4]
mov r9d, 0x1a
mov dword [rbp - 0x80], eax
xor edx, edx
lea rax, [rsp + 0x68]
mov rcx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.180057120
mov r9, qword [rsp + 0x70]
mov r12d, 2
mov dword [rsp + 0x58], 0
cmp dword [r9], 0
jle 0x18001dd79
lea r13, [r9 + 4]
mov qword [rbp - 0x80], r13
nop
mov r15d, 0xdf
nop word [rax + rax]
mov eax, r15d
sub eax, 0xdf
je 0x18001db3e
sub eax, 1
je 0x18001db1e
sub eax, 1
je 0x18001d8dd
cmp eax, 1
jne 0x18001daa8
add r12d, r14d
jmp 0x18001daa8
xor ebx, ebx
movsxd rdi, edi
movsxd rsi, r12d
movsxd r14, r14d
cmp dword [rbp + 0x1c], ebx
je 0x18001da23
movsxd r11, dword [rbp + 0x50]
xor edx, edx
test r11, r11
jle 0x18001d93e
mov r13, qword [rbp + 0x88]
lea r8, [rdi + 0xa]
shl r8, 5
nop dword [rax + rax]
lea rax, [r9 + rdx*4]
movsxd rcx, dword [rax + r8]
test ecx, ecx
jns 0x18001d923
mov eax, 1
jmp 0x18001d92b
mov rcx, qword [r13 + rcx*8]
mov eax, dword [rcx + 4]
mov dword [rbp + rdx*4 + 0xc8], eax
inc rdx
cmp rdx, r11
jl 0x18001d910
mov r13, qword [rbp - 0x80]
xor r9d, r9d
test r14, r14
jle 0x18001d9e4
mov r13d, dword [rbp - 0x18]
lea r10, [rsi*4]
mov esi, dword [rbp + 0x1c]
nop dword [rax]
lea rax, [r10 + r9*4]
mov edx, ILClone
lea r8, [rbp + 0xf0]
add r8, rax
mov eax, edx
sub eax, 0xf
je 0x18001d992
cmp eax, 1
jne 0x18001d9ca
mov eax, dword [rbp + r9*4 + 0xa8]
mov ecx, ebx
shl eax, cl
or r13d, eax
add ebx, esi
jmp 0x18001d9ca
xor ecx, ecx
xor eax, eax
test r11, r11
jle 0x18001d9bd
mov edx, dword [r8]
nop
cmp edx, dword [rbp + rax*4 + 0xc8]
jl 0x18001d9b5
inc ecx
inc rax
cmp rax, r11
jl 0x18001d9a0
jmp 0x18001d9bd
mov dword [rbp + r9*4 + 0xa8], ecx
mov edx, ILClone
mov dword [rsp + 0x60], 0xa3
inc edx
cmp edx, 0x11
jb 0x18001d973
inc r9
mov dword [rbp - 0x18], r13d
cmp r9, r14
jl 0x18001d960
mov r13, qword [rbp - 0x80]
movsxd rsi, r12d
mov eax, dword [rbp - 0x18]
lea rcx, [rsp + 0x68]
mov r8, qword [rbp - 0x58]
mov r9d, 0x3d
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x70]
movsxd rax, dword [rax + rdi*4 + 0x100]
imul rdx, rax, 0x58
add rdx, qword [rbp + 0x60]
call fcn.1800b6160
mov rcx, qword [rbp - 0x40]
mov r9, qword [rsp + 0x70]
add dword [rcx + 0x518], eax
xor ebx, ebx
test r14, r14
jle 0x18001daa0
mov r13, qword [rbp + 0x60]
lea rdi, [rdi*8 + 0x50]
lea rsi, [rsi*4]
nop
movsxd rax, dword [rbp + rbx*4 + 0xa8]
add rax, rdi
movsxd rcx, dword [r9 + rax*4]
test ecx, ecx
js 0x18001da94
imul rdx, rcx, 0x58
lea rax, [rsi + rbx*4]
mov r8d, dword [rbp + rax + 0xf0]
add rdx, r13
cmp r8d, dword [rdx + 4]
jge 0x18001da94
mov dword [rsp + 0x68], r8d
lea rcx, [rsp + 0x68]
mov r8, qword [rbp - 0x58]
mov r9d, 0x3d
call fcn.1800b6160
mov rdx, qword [rbp - 0x40]
mov r9, qword [rsp + 0x70]
add dword [rdx + 0x51c], eax
inc rbx
cmp rbx, r14
jl 0x18001da40
mov r13, qword [rbp - 0x80]
mov edi, dword [rsp + 0x7c]
mov r14d, dword [rbp - 0x38]
inc r15d
cmp r15d, 0xe3
jb 0x18001d8b0
mov eax, dword [rsp + 0x58]
add r13, 4
inc eax
mov qword [rbp - 0x80], r13
mov dword [rsp + 0x58], eax
cmp eax, dword [r9]
jl 0x18001d8a0
mov r11, qword [rbp - 0x68]
mov r13, qword [rbp - 0x40]
mov r8d, dword [rbp - 0x78]
mov eax, dword [rbp + 0x4c]
mov r10d, dword [rsp + 0x78]
dec eax
mov edx, dword [rsp + 0x50]
mov r14d, dword [rbp - 0x38]
mov edi, dword [rsp + 0x7c]
mov esi, dword [rbp - 0x14]
mov r15d, dword [rbp - 0x10]
mov r12, qword [rbp + 0x90]
mov dword [rbp + 0x4c], eax
cmp eax, 0xd5
ja 0x18001d345
mov ebx, dword [rsp + 0x60]
mov r12, qword [rbp + 0x70]
jmp case.0x18001d291.141
xorps xmm0, xmm0
mov dword [rbp - 0x18], 0
xorps xmm1, xmm1
movups xmmword [rbp + 0xa8], xmm0
movups xmmword [rbp + 0xb8], xmm1
jmp 0x18001daa8
movsxd rdi, dword [r13]
mov dword [rsp + 0x7c], edi
mov r8d, dword [r9 + rdi*4 + 0xc0]
mov ecx, r8d
mov r14d, dword [r9 + rdi*4 + 0x80]
mov dword [rbp + 0x1c], r8d
mov r8d, 1
shl r8d, cl
mov dword [rbp + 0x50], r8d
mov dword [rbp - 0x38], r14d
jmp 0x18001daa8
mov r13d, 0x78
mov dword [rbp - 8], r13d
nop dword [rax]
cmp r13d, 0x78
je 0x18001dd39
cmp r13d, 0x32a0
je 0x18001dbf2
cmp r13d, 0x64c8
jne 0x18001dd58
mov r9, qword [rbp - 0x28]
movsxd r8, dword [rbp - 0x50]
mov eax, dword [r9 + 0x34]
cdq
sub eax, edx
sar eax, 1
cmp r8d, eax
jge 0x18001dbe8
mov rcx, qword [rbp + 0x80]
mov r11d, dword [rbp - 0x48]
lea rcx, [rcx + r8*4]
nop word [rax + rax]
mov dword [rcx], r11d
lea rcx, [rcx + 4]
mov eax, dword [r9 + 0x34]
inc r8d
cdq
sub eax, edx
sar eax, 1
cmp r8d, eax
jl 0x18001dbd0
mov eax, 1
jmp 0x18001df20
mov rax, qword [rbp - 0x28]
mov r12d, 1
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp - 0x40]
mov dword [rsp + 0x58], r12d
movsxd rax, dword [rax + 0x2c]
mov eax, dword [rcx + rax*4]
cdq
sub eax, edx
sar eax, 1
mov r14d, eax
cmp dword [rbx + 0x504], r12d
jle 0x18001dd58
mov r13d, dword [rbp - 0x50]
lea r15, [rbx + 0x108]
mov qword [rbp - 0x60], r15
nop dword [rax]
nop dword [rax + rax]
movsxd rsi, dword [r15]
mov edi, dword [r11 + rsi*4]
and edi, 0x7fff
cmp edi, dword [r11 + rsi*4]
jne 0x18001dd16
mov r12d, dword [rbp - 0x48]
mov ebx, 0x5b
mov r15d, dword [rbp - 0x30]
cmp ebx, 0x5b
je 0x18001dc83
cmp ebx, 0x2e91
je 0x18001dc7e
cmp ebx, 0x5cc7
jne 0x18001dce7
mov r12d, edi
jmp 0x18001dce7
mov r15d, r13d
jmp 0x18001dce7
imul edi, dword [r9 + 0x340]
lea rax, [rsp + 0x68]
mov r13d, dword [r9 + rsi*4 + 0x344]
lea r8, [rbp - 0x30]
mov qword [rsp + 0x38], rax
lea rdx, [rbp - 0x48]
lea rax, [rbp - 0x80]
mov dword [rsp + 0x68], r12d
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x50]
mov rax, qword [rbp + 0x80]
xor r9d, r9d
mov dword [rsp + 0x28], 0xfe
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x48], edi
mov dword [rbp - 0x80], r13d
mov dword [rbp - 0x50], r15d
mov dword [rbp - 0x30], r14d
call fcn.180055890
mov r9, qword [rsp + 0x70]
add ebx, 0x2e36
cmp ebx, 0x8aa2
jbe 0x18001dc64
mov r11, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x40]
mov dword [rbp - 0x30], r15d
mov r15, qword [rbp - 0x60]
mov dword [rbp - 0x48], r12d
mov r12d, dword [rsp + 0x58]
mov dword [rbp - 0x50], r13d
inc r12d
add r15, 4
mov dword [rsp + 0x58], r12d
mov qword [rbp - 0x60], r15
cmp r12d, dword [rbx + 0x504]
jl 0x18001dc40
mov r13d, dword [rbp - 8]
jmp 0x18001dd58
mov rax, qword [rbp - 0x68]
xor r8d, r8d
mov r11d, dword [r9 + 0x340]
xor ecx, ecx
mov dword [rbp - 0x50], r8d
mov dword [rbp - 0x30], ecx
imul r11d, dword [rax]
mov dword [rbp - 0x48], r11d
mov r11, qword [rbp - 0x68]
add r13d, 0x3228
mov dword [rbp - 8], r13d
cmp r13d, 0x9678
jbe 0x18001db80
jmp 0x18001dad7
mov r11, qword [rbp - 0x68]
mov r13, rbx
jmp 0x18001dadb
movzx eax, byte [rsp + 0x41]
xor ecx, ecx
mov edx, dword [rbp + 0x38]
test edx, edx
cmovne ecx, eax
mov byte [rsp + 0x41], cl
test cl, cl
je 0x18001dda4
mov ecx, edx
call qword [sym.imp.SHELL32.dll_SHChangeNotifyDeregister]
mov r9d, dword [rbp + 0x48]
lea rax, [rbp + 0x200]
mov r8, qword [rbp - 0x20]
mov edx, dword [rbp + 0x40]
mov rcx, qword [rbp + 0x68]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rcx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x28]
add rcx, 0xa
cmp rcx, rax
je 0x18001ddec
cmp qword [rax + 0x18], 0x10
mov rdx, rax
jb 0x18001dde3
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
call fcn.18002f400
mov r9, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x78]
mov edx, dword [rsp + 0x50]
jmp case.0x18001d291.141
mov eax, dword [r13 + 0x504]
mov r9, qword [r13 + 0x510]
mov dword [rbp + 0x44], eax
mov rax, qword [rbp - 0x28]
mov qword [rsp + 0x70], r9
mov rax, qword [rax + 0x50]
mov rcx, qword [rax + 8]
mov r12, qword [rcx + 0x20]
mov qword [rbp + 0x70], r12
jmp case.0x18001d291.141
mov r9d, dword [rbp + 0x3c]
lea rax, [rbp + 0x98]
mov r8d, dword [rbp + 0x30]
mov edx, dword [rbp + 0x34]
mov rcx, qword [rbp + 0x78]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x20], eax
call qword [sym.imp.SHELL32.dll_SHChangeNotifyRegister]
mov r9, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x78]
mov edx, dword [rsp + 0x50]
mov dword [rbp + 0x38], eax
jmp case.0x18001d291.141
mov dword [rbp + 0x3c], 0
mov dword [rbp + 0x28], 1
add ebx, 0x10
mov dword [rsp + 0x60], ebx
cmp ebx, dword [rsp + 0x48]
jae 0x18001df1d
mov r11, qword [rbp - 0x68]
mov r8d, dword [rbp - 0x78]
jmp 0x18001d260
mov rcx, qword [rbp - 0x58]
lea rax, [rsp + 0x48]
xor ebx, ebx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
lea r8, [rbp - 0x70]
xor edx, edx
mov dword [rsp + 0x48], 1
mov dword [rbp - 0x70], ebx
lea r9d, [rbx + 0x1a]
mov qword [rsp + 0x20], rbx
call fcn.180057120
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x80]
mov eax, dword [rax + 0x34]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
movsxd r8, eax
shl r8, 2
call sub.VCRUNTIME140.dll_memset
mov eax, ebx
jmp 0x18001df20
mov r11, qword [rbp + 0x10]
test r11, r11
je 0x18001df15
mov rax, qword [rbp - 0x58]
lea r9, [rbp - 0x70]
mov r8d, 0x67
mov byte [rsp + 0x40], 1
mov rdx, r11
xor ecx, ecx
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
call fcn.180045260
movzx eax, byte [rsp + 0x40]
mov byte [rbp + 0x18], al
mov eax, dword [rbp + 0x18]
mov rcx, qword [rbp + 0x410]
xor rcx, rsp
call fcn.1800bfa40
mov rbx, qword [rsp + 0x570]
add rsp, 0x520
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret