Function at 0x180053ed0
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 [0x180168908]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r15, rdx
xor r12d, r12d
lea rdx, [rsp + 0x30]
call fcn.180053ae0
nop
call fcn.180009090
mov rcx, rax
test rax, rax
je 0x18005480c
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 0x180053f6e
mov edx, 0x104
lea rcx, [rsp + 0x40]
call fcn.180009160
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0x104
jl 0x180054817
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.1800d7f80
test eax, eax
js 0x180054801
cmp eax, dword [rbx - 0xc]
jg 0x180054801
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r12w
cmp dword [rbx - 0x10], 0
je 0x180054784
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180054784
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x180054784
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], al
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.18006e600
test eax, eax
jne 0x1800540ad
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x180054054
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005404f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180054822
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
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 0x180054088
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 0x1800547c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x1800547c2
movdqa xmm0, xmmword [0x1801106e0]
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 0x180054149
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.1800d4ce0
mov rdi, rax
test rax, rax
je 0x180054149
nop dword [rax + rax]
mov r8d, 0x1b
lea rdx, str._browser.startup.homepage__
mov rcx, rdi
call fcn.1800d4b70
test eax, eax
je 0x180054197
inc rdi
mov r8, qword [rsp + 0x38]
sub r8, rdi
mov edx, 0x22
mov rcx, rdi
call fcn.1800d4ce0
mov rdi, rax
test rax, rax
jne 0x180054110
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
cmp r14, 0x10
jb 0x180054054
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x18005477c
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800547fb
jmp 0x18005477c
sub rdi, r13
cmp rdi, 0xffffffffffffffff
je 0x180054149
add rdi, 0x1b
lea r13, [rsp + 0x50]
cmp r14, 0x10
cmovae r13, rsi
mov rax, qword [rsp + 0x60]
cmp rdi, rax
jae 0x18005473b
sub rax, rdi
mov qword [rsp + 0x38], rax
lea rcx, [rdi + r13]
mov r8, rax
mov edx, 0x29
call fcn.1800d4ce0
mov r8, rax
test rax, rax
je 0x18005473b
sub r8, r13
cmp r8, 0xffffffffffffffff
je 0x18005473b
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
cmp qword [rsp + 0x60], rdi
jb 0x180054828
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.18000a3d0
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x180054270
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005426b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005482e
call fcn.1800a4c5c
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 0x1800542be
mov rdx, r12
mov qword [rbp - 0x50], rdx
jmp 0x18005437d
mov r14, rsi
inc r14
cmp byte [r14 + r13], 0
jne 0x1800542c1
inc r14d
mov r9d, 0x80
lea r8, [rbp - 0x48]
mov edx, r14d
lea rcx, [rbp - 0x50]
call fcn.180009580
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 0x180054371
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x180054371
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.180009580
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 0x180054834
mov rdx, qword [rbp - 0x50]
test rdx, rdx
jne 0x180054387
mov eax, r12d
jmp 0x18005439a
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x180054390
mov r8d, eax
mov rcx, r15
call fcn.180009210
nop
lea rax, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
cmp rcx, rax
je 0x1800543b8
call fcn.1800d7598
mov r14, qword [r15]
mov rdi, r12
movzx eax, word [r14]
test ax, ax
je 0x18005443d
movzx ecx, ax
call fcn.1800dd4d4
test eax, eax
je 0x1800543e2
mov rax, r14
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x1800543e5
mov rdi, r12
add r14, 2
movzx eax, word [r14]
test ax, ax
jne 0x1800543c7
test rdi, rdi
je 0x18005443d
mov rdx, qword [r15]
sub rdi, rdx
sar rdi, 1
test edi, edi
js 0x18005484d
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, edi
or eax, ecx
jge 0x180054426
mov edx, edi
mov rcx, r15
call fcn.180009160
mov rdx, qword [r15]
cmp edi, dword [rdx - 0xc]
jg 0x180054863
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.1800dd4d4
test eax, eax
je 0x180054460
nop dword [rax]
add rdi, 2
movzx ecx, word [rdi]
call fcn.1800dd4d4
test eax, eax
jne 0x180054450
mov r14, qword [r15]
cmp rdi, r14
je 0x180054510
sub rdi, r14
sar rdi, 1
mov edx, dword [r14 - 0x10]
test edx, edx
js 0x180054858
mov ecx, 1
sub ecx, dword [r14 - 8]
mov eax, dword [r14 - 0xc]
sub eax, edx
or eax, ecx
jge 0x18005449c
mov rcx, r15
call fcn.180009160
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 0x1800544e8
test rdx, rdx
jne 0x1800544ce
call fcn.1800d7e04
mov dword [rax], 0x16
jmp 0x180054879
lea eax, [rcx + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x18005486e
mov rcx, r14
call fcn.1800d4190
test r13d, r13d
js 0x180054889
mov rax, qword [r15]
cmp r13d, dword [rax - 0xc]
jg 0x180054889
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 0x18005459e
movzx edx, ax
lea rcx, [0x180116b38]
call fcn.1800d4c38
test rax, rax
je 0x180054543
mov rax, r14
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x180054546
mov rdi, r12
add r14, 2
movzx eax, word [r14]
test ax, ax
jne 0x180054520
test rdi, rdi
je 0x18005459e
mov rdx, qword [r15]
sub rdi, rdx
sar rdi, 1
test edi, edi
js 0x180054894
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, edi
or eax, ecx
jge 0x180054587
mov edx, edi
mov rcx, r15
call fcn.180009160
mov rdx, qword [r15]
cmp edi, dword [rdx - 0xc]
jg 0x1800548aa
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 0x1800545d0
nop dword [rax]
movzx edx, ax
lea rcx, [0x180116b38]
call fcn.1800d4c38
test rax, rax
je 0x1800545d0
add rdi, 2
movzx eax, word [rdi]
test ax, ax
jne 0x1800545b0
mov r9, qword [r15]
cmp rdi, r9
je 0x180054692
sub rdi, r9
sar rdi, 1
mov edx, dword [r9 - 0x10]
test edx, edx
js 0x18005489f
mov ecx, 1
sub ecx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
sub eax, edx
or eax, ecx
jge 0x18005460c
mov rcx, r15
call fcn.180009160
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 0x18005466d
test r9, r9
jne 0x18005463e
call fcn.1800d7e04
mov dword [rax], 0x16
jmp 0x1800548c0
test rdx, rdx
jne 0x180054653
call fcn.1800d7e04
mov dword [rax], 0x16
jmp 0x1800548c0
lea eax, [rcx + 1]
movsxd rcx, eax
add rcx, rcx
cmp rcx, r8
jb 0x1800548b5
mov rcx, r9
call fcn.1800d4190
test r14d, r14d
js 0x1800548d6
mov rax, qword [r15]
cmp r14d, dword [rax - 0xc]
jg 0x1800548d6
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 0x1800546d4
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800546cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800548d0
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x180054723
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005471e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800548e1
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
jmp 0x18005406e
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x80], xmm0
mov byte [rsp + 0x70], 0
cmp r14, 0x10
jb 0x180054054
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x18005477c
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800547f5
mov rcx, rsi
jmp 0x18005404f
lea rdx, [rbx - 0x18]
mov rsi, 0xffffffffffffffff
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800547a5
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 0x1800547c2
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.1800a5130
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.1800d79f8
nop
call fcn.1800d79f8
int3
mov ecx, 0x80070057
call fcn.180008c20
nop
mov ecx, 0x80004005
call fcn.180008c20
nop
mov ecx, 0x80070057
call fcn.180008c20
int3
call fcn.1800d79f8
nop
call fcn.180019980
int3
call fcn.1800d79f8
int3
mov r8d, 0x80
lea rdx, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
call fcn.180009610
call fcn.1800098d0
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
call fcn.1800d7e04
mov dword [rax], 0x22
call fcn.1800d79d8
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
mov ecx, 0x80070057
call fcn.180008c20
int3
call fcn.1800d7e04
mov dword [rax], 0x22
call fcn.1800d79d8
mov ecx, 0x80070057
call fcn.180008c20
nop
call fcn.1800d79f8
nop
mov ecx, 0x80070057
call fcn.180008c20
nop
call fcn.1800d79f8
int3