Function at 0x180012080
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1d0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x180146748]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r15, rdx
xor r12d, r12d
lea rdx, [rsp + 0x30]
call fcn.180011c90
nop
call fcn.18000a3f0
mov rcx, rax
test rax, rax
je 0x1800129bc
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
mov rdi, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18001211e
mov edx, 0x104
lea rcx, [rsp + 0x40]
call fcn.18000b0d0
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0x104
jl 0x1800129c7
mov dword [rbx - 0x10], 0x104
mov word [rbx + 0x208], r12w
lea r8, str.prefs.js
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1800bf270
test eax, eax
js 0x1800129b1
cmp eax, dword [rbx - 0xc]
jg 0x1800129b1
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r12w
cmp dword [rbx - 0x10], 0
je 0x180012934
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180012934
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x180012934
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], al
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.180057e90
test eax, eax
jne 0x18001225d
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x180012204
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800121ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800129d2
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
mov byte [rsp + 0x50], 0
movdqu xmmword [rsp + 0x60], xmm0
mov rsi, 0xffffffffffffffff
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180012238
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180012972
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x180012972
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
lea r13, [rsp + 0x50]
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x68]
cmp r14, 0x10
cmovae r13, rsi
mov rax, qword [rsp + 0x60]
cmp rax, 0x1b
jb 0x1800122f9
add rax, 0xffffffffffffffe6
add rax, r13
mov qword [rsp + 0x38], rax
mov r8, rax
sub r8, r13
mov edx, 0x22
mov rcx, r13
call fcn.1800bc1d0
mov rdi, rax
test rax, rax
je 0x1800122f9
nop dword [rax + rax]
mov r8d, 0x1b
lea rdx, str._browser.startup.homepage__
mov rcx, rdi
call fcn.1800bb810
test eax, eax
je 0x180012347
inc rdi
mov r8, qword [rsp + 0x38]
sub r8, rdi
mov edx, 0x22
mov rcx, rdi
call fcn.1800bc1d0
mov rdi, rax
test rax, rax
jne 0x1800122c0
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
cmp r14, 0x10
jb 0x180012204
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x18001292c
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800129ab
jmp 0x18001292c
sub rdi, r13
cmp rdi, 0xffffffffffffffff
je 0x1800122f9
add rdi, 0x1b
lea r13, [rsp + 0x50]
cmp r14, 0x10
cmovae r13, rsi
mov rax, qword [rsp + 0x60]
cmp rdi, rax
jae 0x1800128eb
sub rax, rdi
mov qword [rsp + 0x38], rax
lea rcx, [rdi + r13]
mov r8, rax
mov edx, 0x29
call fcn.1800bc1d0
mov r8, rax
test rax, rax
je 0x1800128eb
sub r8, r13
cmp r8, 0xffffffffffffffff
je 0x1800128eb
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
cmp qword [rsp + 0x60], rdi
jb 0x1800129d8
sub r8, rdi
cmp qword [rsp + 0x38], r8
cmovb r8, qword [rsp + 0x38]
lea rdx, [rsp + 0x50]
cmp r14, 0x10
cmovae rdx, rsi
add rdx, rdi
lea rcx, [rbp - 0x70]
call fcn.18000c180
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x180012420
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001241b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800129de
call fcn.18008c16c
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rsp + 0x70], xmm0
movdqu xmm1, xmmword [rbp - 0x60]
movups xmmword [rbp - 0x80], xmm1
lea r13, [rsp + 0x70]
movq rcx, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 0x10
cmovae r13, rcx
lea rax, [rbp - 0x48]
mov qword [rbp - 0x50], rax
mov rsi, 0xffffffffffffffff
test r13, r13
jne 0x18001246e
mov rdx, r12
mov qword [rbp - 0x50], rdx
jmp 0x18001252d
mov r14, rsi
inc r14
cmp byte [r14 + r13], 0
jne 0x180012471
inc r14d
mov r9d, 0x80
lea r8, [rbp - 0x48]
mov edx, r14d
lea rcx, [rbp - 0x50]
call fcn.180007380
mov dword [rsp + 0x28], r14d
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, r13
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, r12d
test eax, eax
sete dil
test eax, eax
jne 0x180012521
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x180012521
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9d, r14d
mov r8, r13
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
mov r9d, 0x80
lea r8, [rbp - 0x48]
mov edx, eax
lea rcx, [rbp - 0x50]
call fcn.180007380
mov dword [rsp + 0x28], edi
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, r13
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, r12d
test eax, eax
sete dil
test edi, edi
jne 0x1800129e4
mov rdx, qword [rbp - 0x50]
test rdx, rdx
jne 0x180012537
mov eax, r12d
jmp 0x18001254a
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x180012540
mov r8d, eax
mov rcx, r15
call fcn.18000b310
nop
lea rax, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
cmp rcx, rax
je 0x180012568
call fcn.1800bea88
mov r14, qword [r15]
mov rdi, r12
movzx eax, word [r14]
test ax, ax
je 0x1800125ed
movzx ecx, ax
call fcn.1800bf030
test eax, eax
je 0x180012592
mov rax, r14
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x180012595
mov rdi, r12
add r14, 2
movzx eax, word [r14]
test ax, ax
jne 0x180012577
test rdi, rdi
je 0x1800125ed
mov rdx, qword [r15]
sub rdi, rdx
sar rdi, 1
test edi, edi
js 0x1800129fd
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1800125d6
mov edx, edi
mov rcx, r15
call fcn.18000b0d0
mov rdx, qword [r15]
cmp edi, dword [rdx - 0xc]
jg 0x180012a13
mov dword [rdx - 0x10], edi
movsxd rcx, edi
mov rax, qword [r15]
mov word [rax + rcx*2], r12w
mov rdi, qword [r15]
movzx ecx, word [rdi]
call fcn.1800bf030
test eax, eax
je 0x180012610
nop dword [rax]
add rdi, 2
movzx ecx, word [rdi]
call fcn.1800bf030
test eax, eax
jne 0x180012600
mov r14, qword [r15]
cmp rdi, r14
je 0x1800126c0
sub rdi, r14
sar rdi, 1
mov edx, dword [r14 - 0x10]
test edx, edx
js 0x180012a08
mov ecx, 1
sub ecx, dword [r14 - 8]
mov eax, dword [r14 - 0xc]
sub eax, edx
or eax, ecx
jge 0x18001264c
mov rcx, r15
call fcn.18000b0d0
mov r14, qword [r15]
movsxd rax, edi
lea rdx, [r14 + rax*2]
mov ecx, dword [r14 - 0x10]
mov r13d, ecx
sub r13d, edi
lea eax, [r13 + 1]
movsxd r8, eax
add r8, r8
je 0x180012698
test rdx, rdx
jne 0x18001267e
call fcn.1800bf0f4
mov dword [rax], 0x16
jmp 0x180012a29
lea eax, [rcx + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x180012a1e
mov rcx, r14
call fcn.1800bb910
test r13d, r13d
js 0x180012a39
mov rax, qword [r15]
cmp r13d, dword [rax - 0xc]
jg 0x180012a39
mov dword [rax - 0x10], r13d
movsxd rcx, r13d
mov rax, qword [r15]
mov word [rax + rcx*2], r12w
mov r14, qword [r15]
mov rdi, r12
movzx eax, word [r14]
test ax, ax
je 0x18001274e
movzx edx, ax
lea rcx, [0x1800f5e9c]
call fcn.1800bbf10
test rax, rax
je 0x1800126f3
mov rax, r14
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x1800126f6
mov rdi, r12
add r14, 2
movzx eax, word [r14]
test ax, ax
jne 0x1800126d0
test rdi, rdi
je 0x18001274e
mov rdx, qword [r15]
sub rdi, rdx
sar rdi, 1
test edi, edi
js 0x180012a44
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, edi
or eax, ecx
jge 0x180012737
mov edx, edi
mov rcx, r15
call fcn.18000b0d0
mov rdx, qword [r15]
cmp edi, dword [rdx - 0xc]
jg 0x180012a5a
mov dword [rdx - 0x10], edi
movsxd rcx, edi
mov rax, qword [r15]
mov word [rax + rcx*2], r12w
mov rdi, qword [r15]
movzx eax, word [rdi]
test ax, ax
je 0x180012780
nop dword [rax]
movzx edx, ax
lea rcx, [0x1800f5e9c]
call fcn.1800bbf10
test rax, rax
je 0x180012780
add rdi, 2
movzx eax, word [rdi]
test ax, ax
jne 0x180012760
mov r9, qword [r15]
cmp rdi, r9
je 0x180012842
sub rdi, r9
sar rdi, 1
mov edx, dword [r9 - 0x10]
test edx, edx
js 0x180012a4f
mov ecx, 1
sub ecx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
sub eax, edx
or eax, ecx
jge 0x1800127bc
mov rcx, r15
call fcn.18000b0d0
mov r9, qword [r15]
movsxd rax, edi
lea rdx, [r9 + rax*2]
mov ecx, dword [r9 - 0x10]
mov r14d, ecx
sub r14d, edi
lea eax, [r14 + 1]
movsxd r8, eax
add r8, r8
je 0x18001281d
test r9, r9
jne 0x1800127ee
call fcn.1800bf0f4
mov dword [rax], 0x16
jmp 0x180012a70
test rdx, rdx
jne 0x180012803
call fcn.1800bf0f4
mov dword [rax], 0x16
jmp 0x180012a70
lea eax, [rcx + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x180012a65
mov rcx, r9
call fcn.1800bb910
test r14d, r14d
js 0x180012a86
mov rax, qword [r15]
cmp r14d, dword [rax - 0xc]
jg 0x180012a86
mov dword [rax - 0x10], r14d
movsxd rcx, r14d
mov rax, qword [r15]
mov word [rax + rcx*2], r12w
mov r12d, 1
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x180012884
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001287f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012a80
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x1800128d3
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800128ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012a91
call fcn.18008c16c
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
jmp 0x18001221e
movdqa xmm0, xmmword [0x1800f5220]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
cmp r14, 0x10
jb 0x180012204
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x18001292c
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800129a5
mov rcx, rsi
jmp 0x1800121ff
lea rdx, [rbx - 0x18]
mov rsi, 0xffffffffffffffff
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180012955
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180012972
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, r12d
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.18008c720
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1800beee8
nop
call fcn.1800beee8
int3
mov ecx, 0x80070057
call fcn.180009990
nop
mov ecx, 0x80004005
call fcn.180009990
nop
mov ecx, 0x80070057
call fcn.180009990
int3
call fcn.1800beee8
nop
call fcn.18000be60
int3
call fcn.1800beee8
int3
mov r8d, 0x80
lea rdx, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
call fcn.180007410
call fcn.1800099c0
int3
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
call fcn.1800bf0f4
mov dword [rax], 0x22
call fcn.1800beec8
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
mov ecx, 0x80070057
call fcn.180009990
int3
call fcn.1800bf0f4
mov dword [rax], 0x22
call fcn.1800beec8
mov ecx, 0x80070057
call fcn.180009990
nop
call fcn.1800beee8
nop
mov ecx, 0x80070057
call fcn.180009990
nop
call fcn.1800beee8
int3