Function at 0x180075d00
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x360]
sub rsp, 0x460
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x4b8], rbx
mov rax, qword [0x180146748]
xor rax, rsp
mov qword [rbp + 0x350], rax
mov rsi, r8
mov r14, rdx
mov qword [rbp - 0x80], rdx
mov r13, rcx
lea rax, vtable._BaseModule::CAutoLocker.0
mov qword [rbp - 0x78], rax
lea rbx, [rcx + 0x88]
mov qword [rbp - 0x70], rbx
test rbx, rbx
je 0x180075d6d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
nop
cmp byte [r13 + 0x80], 0
je 0x180075d7f
mov sil, 1
jmp 0x180076923
mov r15, 0xffffffffffffffff
mov r8, r15
nop dword [rax]
inc r8
cmp word [rsi + r8*2], 0
jne 0x180075d90
lea rdi, [r13 + 0xb8]
mov rdx, rsi
mov rcx, rdi
call fcn.18001b240
xor sil, sil
mov rcx, rdi
cmp qword [rdi + 0x18], 8
jb 0x180075dbd
mov rcx, qword [rdi]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180076923
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x70], xmm0
mov byte [rbp + 0x60], 0
cmp qword [rdi + 0x18], 8
jb 0x180075de6
mov rdi, qword [rdi]
lea rdx, [rbp + 0x60]
mov rcx, rdi
call fcn.180077580
test eax, eax
jne 0x180075e3a
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180076923
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075e30
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180076972
call fcn.18008c16c
jmp 0x180076923
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
movdqu xmmword [rbp + 0x110], xmm0
mov byte [rbp + 0x100], 0
mov r8d, 0x24
lea rdx, str.0B366EA2_A363_4D44_965A_A63918D5B6A9
lea rcx, [rbp + 0x100]
call fcn.18000c180
nop
lea r8, [rbp + 0x20]
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0x60]
call fcn.18008d6f0
test eax, eax
sete dil
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x180075ecf
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075eca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180076978
call fcn.18008c16c
test dil, dil
je 0x180075f67
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x180075f13
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075f0e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18007697e
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180076923
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075e30
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180076966
jmp 0x180075e30
lea rcx, [rbp - 0x68]
call fcn.18006e670
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x68]
call fcn.18006f2c0
test al, al
jne 0x18007601f
lea rcx, [rbp - 0x68]
call fcn.18006bcf0
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x180075fcb
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075fc6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180076984
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180076923
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180075e30
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18007696c
jmp 0x180075e30
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x130], xmm0
mov byte [rbp + 0x120], 0
mov r8d, 4
lea rdx, [0x180105108]
lea rcx, [rbp + 0x120]
call fcn.18000c180
nop
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x68]
call fcn.18006e900
mov edi, eax
mov dword [rsp + 0x50], eax
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x1800760a7
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800760a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18007698a
call fcn.18008c16c
call fcn.18000a3f0
mov rcx, rax
test rax, rax
je 0x180076990
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r12, [0x1800f2fd8]
cmp r12, 0x10000
jae 0x1800760e7
movzx edx, r12w
lea rcx, [rsp + 0x38]
call fcn.18000af40
jmp 0x18007610c
mov rax, r15
nop word [rax + rax]
inc rax
cmp word [r12 + rax*2], 0
jne 0x1800760f0
mov r8d, eax
mov rdx, r12
lea rcx, [rsp + 0x38]
call fcn.18000b310
nop
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0xf0], xmm0
mov byte [rbp + 0xe0], 0
mov r8d, 7
lea rdx, str.version
lea rcx, [rbp + 0xe0]
call fcn.18000c180
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x38]
lea r8, [rbp + 0xe0]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x68]
call fcn.18006f0c0
nop
mov rdx, qword [rax]
mov r8, r15
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x180076170
lea rcx, [r13 + 0x20]
call fcn.18001b240
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800761a5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x1800761e6
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800761e1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18007699b
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0xf0], xmm0
mov byte [rbp + 0xe0], 0
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18007621c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor esi, esi
mov ebx, esi
mov dword [rsp + 0x34], ebx
test edi, edi
jle 0x180076888
nop dword [rax]
mov rdx, r14
lea rcx, [rbp + 0x140]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
mov r8d, 4
lea rdx, [0x180105108]
lea rcx, [rbp + 0x80]
call fcn.18000c180
nop
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x68]
call fcn.18006e790
mov rcx, rax
mov edx, ebx
call fcn.18006bfb0
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.18006e630
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1800762db
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800762d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769a1
call fcn.18008c16c
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
call fcn.18000a3f0
mov rcx, rax
test rax, rax
je 0x1800769ca
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
cmp r12, 0x10000
jae 0x18007632d
movzx edx, r12w
call fcn.18000af40
jmp 0x180076339
xor r8d, r8d
mov rdx, r12
call fcn.18000b310
nop
mov qword [rbp + 0xb0], rsi
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov r8d, 0xa
lea rdx, str.product_id
lea rcx, [rbp + 0xa0]
call fcn.18000c180
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x40]
lea r8, [rbp + 0xa0]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x28]
call fcn.18006f0c0
nop
mov rdx, qword [rax]
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], 7
mov word [rbp], si
mov r8, r15
inc r8
cmp word [rdx + r8*2], 0
jne 0x1800763a5
lea rcx, [rbp]
call fcn.18001b240
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800763da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x18007641b
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180076416
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769a7
call fcn.18008c16c
mov qword [rbp + 0xb0], rsi
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180076453
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
call fcn.18000a3f0
mov rcx, rax
test rax, rax
je 0x1800769bf
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x48]
cmp r12, 0x10000
jae 0x18007648c
movzx edx, r12w
call fcn.18000af40
jmp 0x180076498
xor r8d, r8d
mov rdx, r12
call fcn.18000b310
nop
mov qword [rbp + 0xd0], rsi
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
mov r8d, 0x11
lea rdx, str.main_process_name
lea rcx, [rbp + 0xc0]
call fcn.18000c180
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x48]
lea r8, [rbp + 0xc0]
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x28]
call fcn.18006f0c0
nop
mov rdx, qword [rax]
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], 7
mov word [rbp + 0x40], si
mov r8, r15
inc r8
cmp word [rdx + r8*2], 0
jne 0x180076504
lea rcx, [rbp + 0x40]
call fcn.18001b240
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180076539
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x18007657a
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180076575
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769ad
call fcn.18008c16c
mov qword [rbp + 0xd0], rsi
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800765b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rdx, [rbp + 0x40]
cmp qword [rbp + 0x58], 8
cmovae rdx, qword [rbp + 0x40]
lea rcx, [rbp + 0x140]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp qword [r13 + 0x10], 0
jne 0x180076608
lea rcx, [rbp + 0x140]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180076608
lea rax, [rbp]
cmp r13, rax
je 0x180076608
lea rdx, [rbp]
cmp qword [rbp + 0x18], 8
cmovae rdx, qword [rbp]
mov r8, qword [rbp + 0x10]
mov rcx, r13
call fcn.18001b240
lea r12, [r13 + 0xd8]
mov rbx, qword [r12]
mov r10, qword [rbx + 8]
mov r15, rbx
mov rsi, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x10]
mov r14, qword [rbp]
cmp byte [r10 + 0x19], 0
jne 0x1800766df
mov r12, 0xffffffffffffffff
nop dword [rax + rax]
lea rax, [rbp]
cmp rsi, 8
cmovae rax, r14
lea r9, [r10 + 0x20]
cmp qword [r10 + 0x38], 8
jb 0x18007665b
mov r9, qword [r10 + 0x20]
mov r11, qword [r10 + 0x30]
mov qword [rbp - 0x38], r11
mov rcx, r11
cmp rdi, r11
cmovb rcx, rdi
test rcx, rcx
je 0x180076699
sub r9, rax
nop word [rax + rax]
movzx edx, word [r9 + rax]
movzx r8d, word [rax]
cmp dx, r8w
jne 0x1800766a3
add rax, 2
sub rcx, 1
jne 0x180076680
cmp r11, rdi
jae 0x1800766b2
mov eax, r12d
jmp 0x1800766ba
mov eax, 1
cmp dx, r8w
cmovb eax, r12d
jmp 0x1800766ba
xor eax, eax
cmp r11, rdi
seta al
shr eax, 0x1f
test al, al
je 0x1800766c7
mov r10, qword [r10 + 0x10]
jmp 0x1800766cd
mov rbx, r10
mov r10, qword [r10]
cmp byte [r10 + 0x19], 0
je 0x180076640
lea r12, [r13 + 0xd8]
cmp rbx, r15
je 0x180076768
lea rcx, [rbx + 0x20]
mov rax, rcx
cmp qword [rcx + 0x18], 8
jb 0x1800766f9
mov rax, qword [rcx]
lea r9, [rbp]
cmp rsi, 8
cmovae r9, r14
mov r10, qword [rcx + 0x10]
mov qword [rbp - 0x30], r10
mov r8, rdi
cmp r10, rdi
cmovb r8, r10
test r8, r8
je 0x180076737
sub r9, rax
nop
movzx ecx, word [r9 + rax]
movzx edx, word [rax]
cmp cx, dx
jne 0x180076745
add rax, 2
sub r8, 1
jne 0x180076720
cmp rdi, r10
jae 0x180076759
mov rax, 0xffffffffffffffff
jmp 0x180076761
mov eax, 1
cmp cx, dx
mov rcx, 0xffffffffffffffff
cmovb eax, ecx
jmp 0x180076761
xor eax, eax
cmp rdi, r10
seta al
shr eax, 0x1f
test al, al
je 0x1800767a8
lea rax, [rbp]
mov qword [rsp + 0x70], rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x70]
lea rdx, [0x180104801]
mov rcx, r12
call fcn.18006f740
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rsp + 0x78]
mov rcx, r12
call fcn.180070070
mov rbx, qword [rsp + 0x78]
lea rcx, [rbx + 0x40]
lea rdx, [rbp - 0x28]
call fcn.18006e6c0
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 8
jb 0x1800767f6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800767f1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769b3
call fcn.18008c16c
xor esi, esi
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], 7
mov word [rbp + 0x40], si
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x180076848
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180076843
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769b9
call fcn.18008c16c
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], 7
mov word [rbp], si
lea rcx, [rbp - 0x28]
call fcn.18006bcf0
mov ebx, dword [rsp + 0x34]
inc ebx
mov dword [rsp + 0x34], ebx
cmp ebx, dword [rsp + 0x50]
jge 0x180076888
mov r14, qword [rbp - 0x80]
mov r15, 0xffffffffffffffff
lea r12, [0x1800f2fd8]
jmp 0x180076230
mov sil, 1
mov byte [r13 + 0x80], sil
lea rcx, [rbp - 0x68]
call fcn.18006bcf0
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x1800768d7
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800768d2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800769d5
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x18007691f
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18007691a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180076960
call fcn.18008c16c
mov rbx, qword [rbp - 0x70]
test rbx, rbx
je 0x180076932
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 8]
nop
movzx eax, sil
mov rcx, qword [rbp + 0x350]
xor rcx, rsp
call fcn.18008c720
mov rbx, qword [rsp + 0x4b8]
add rsp, 0x460
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800beee8
nop
call fcn.1800beee8
int3
call fcn.1800beee8
int3
call fcn.1800beee8
nop
call fcn.1800beee8
nop
call fcn.1800beee8
int3
call fcn.1800beee8
nop
call fcn.1800beee8
int3
mov ecx, 0x80004005
call fcn.180009990
nop
call fcn.1800beee8
nop
call fcn.1800beee8
nop
call fcn.1800beee8
nop
call fcn.1800beee8
nop
call fcn.1800beee8
nop
call fcn.1800beee8
nop
mov ecx, 0x80004005
call fcn.180009990
nop
mov ecx, 0x80004005
call fcn.180009990
nop
call fcn.1800beee8
int3