Function at 0x18004d430
Capabilities:
Check if file exists

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2a8]
sub rsp, 0x3a8
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x180168908]
xor rax, rsp
mov qword [rbp + 0x290], rax
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r8
mov r12, rdx
mov r14, rcx
xor r15d, r15d
mov r13d, r15d
mov rsi, qword [rdx + 8]
mov rbx, qword [rdx]
lea rdi, [r15 - 1]
cmp rbx, rsi
je 0x18004d4b9
nop dword [rax]
mov rdx, qword [rbx]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18004d4ac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rbx, 8
cmp rbx, rsi
jne 0x18004d490
mov rbx, qword [r12]
mov qword [r12 + 8], rbx
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.18004d270
nop
call fcn.180009090
mov rcx, rax
test rax, rax
je 0x18004dc9c
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
mov rsi, qword [r14 + 0x68]
mov r14, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18004d51d
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.180009160
mov rbx, qword [rsp + 0x38]
cmp dword [rbx - 0xc], 0x104
jl 0x18004dca7
mov dword [rbx - 0x10], 0x104
mov word [rbx + 0x208], r15w
mov r8, rsi
mov rdx, r14
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 0x18004dc91
cmp eax, dword [rbx - 0xc]
jg 0x18004dc91
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r15w
cmp dword [rbx - 0x10], 0
je 0x18004dc45
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18004dc45
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x18004dc45
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], al
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.18006e600
test eax, eax
jne 0x18004d650
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18004d5fe
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d5f9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dcb2
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
mov byte [rsp + 0x68], 0
movdqu xmmword [rsp + 0x78], xmm0
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18004d62b
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], edi
sub edi, 1
jg 0x18004d6fd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x18004d6fd
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rcx, qword [rsp + 0x68]
call fcn.18008caa0
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x18004d72b
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18004d6af
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d6aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dcb8
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], 0
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18004d6dc
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], edi
sub edi, 1
jg 0x18004d6f8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r13, qword [rsp + 0x40]
mov rcx, r13
call fcn.18008c920
mov eax, r15d
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.1800a5130
add rsp, 0x3a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.session
mov rcx, rax
call fcn.18008c9d0
mov rsi, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x18004da4e
lea rdx, str.urls_to_restore_on_startup
mov rcx, rax
call fcn.18008c9d0
mov r13, rax
test rax, rax
je 0x18004d9d5
cmp dword [rax + 0x18], 5
jne 0x18004d9d5
mov rcx, rax
call fcn.18008c9b0
mov dword [rsp + 0x20], eax
call fcn.180009090
mov rcx, rax
test rax, rax
je 0x18004dcbe
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x28], rbx
mov qword [rbp - 0x68], r15
mov eax, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x60], rax
mov byte [rbp - 0x78], 0
mov r14d, r15d
cmp dword [rsp + 0x20], r15d
jle 0x18004d96f
nop dword [rax + rax]
mov qword [rbp + 0x18], r15
mov qword [rbp + 0x20], reloc.WS2_32.dll_ntohs
mov byte [rbp + 8], 0
xor r8d, r8d
lea rdx, [0x180112398]
lea rcx, [rbp + 8]
call fcn.18000a3d0
nop
lea r9, [rbp + 8]
mov r8d, r14d
mov rdx, r13
lea rcx, [rbp + 0x28]
call fcn.18008d3f0
mov rbx, rax
lea rax, [rbp - 0x78]
cmp rax, rbx
je 0x18004d82a
lea rcx, [rbp - 0x78]
call fcn.180008ad0
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
mov rdx, qword [rbp + 0x40]
cmp rdx, 0x10
jb 0x18004d865
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d860
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dccf
call fcn.1800a4c5c
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x40], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x28], 0
mov rdx, qword [rbp + 0x20]
cmp rdx, 0x10
jb 0x18004d8b0
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d8ab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dcd5
call fcn.1800a4c5c
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae rdx, qword [rbp - 0x78]
mov r8d, 0xfde9
lea rcx, [rbp + 0x70]
call fcn.180009620
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x18004d8db
mov eax, r15d
jmp 0x18004d8ea
mov rax, rdi
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x18004d8e0
mov r8d, eax
lea rcx, [rsp + 0x28]
call fcn.180009210
nop
lea rax, [rbp + 0x78]
mov rcx, qword [rbp + 0x70]
cmp rcx, rax
je 0x18004d90a
call fcn.1800d7598
lea rcx, [rsp + 0x28]
call fcn.18004e0a0
mov rbx, qword [rsp + 0x28]
cmp dword [rbx - 0x10], 0
je 0x18004d958
mov rsi, qword [r12 + 8]
cmp qword [r12 + 0x10], rsi
je 0x18004d943
lea rcx, [rbx - 0x18]
call fcn.180008df0
add rax, 0x18
mov qword [rsi], rax
add qword [r12 + 8], 8
jmp 0x18004d958
lea r8, [rsp + 0x28]
mov rdx, rsi
mov rcx, r12
call fcn.18004c400
mov rbx, qword [rsp + 0x28]
inc r14d
cmp r14d, dword [rsp + 0x20]
jl 0x18004d7c0
mov rax, qword [rbp - 0x60]
mov rsi, qword [rsp + 0x48]
cmp rax, 0x10
jb 0x18004d9a7
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d9a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dcc9
call fcn.1800a4c5c
mov qword [rbp - 0x68], r15
mov qword [rbp - 0x60], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x78], 0
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18004d9d0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x38]
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp + 0x58], xmm0
mov byte [rbp + 0x48], 0
mov r8d, 0x12
lea rdx, str.restore_on_startup
lea rcx, [rbp + 0x48]
call fcn.18000a3d0
nop
mov r8d, edi
lea rdx, [rbp + 0x48]
mov rcx, rsi
call fcn.18008d4a0
mov rcx, qword [rsp + 0x50]
mov dword [rcx], eax
mov rdx, qword [rbp + 0x60]
cmp rdx, 0x10
jb 0x18004da4e
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004da49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dcdb
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x28], xmm0
mov byte [rbp - 0x38], 0
xor r8d, r8d
lea rdx, [0x180112398]
lea rcx, [rbp - 0x38]
call fcn.18000a3d0
nop
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
mov r8d, 8
lea rdx, str.homepage
lea rcx, [rbp - 0x58]
call fcn.18000a3d0
nop
lea r9, [rbp - 0x38]
lea r8, [rbp - 0x58]
mov r13, qword [rsp + 0x40]
mov rdx, r13
lea rcx, [rbp - 0x18]
call fcn.18008d4e0
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x18004daf0
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004daeb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dce1
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x18004db3c
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004db37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dce7
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 0x28], xmm0
mov byte [rbp - 0x38], 0
lea rdx, [rbp - 0x18]
cmp qword [rbp], 0x10
cmovae rdx, qword [rbp - 0x18]
mov r8d, 0xfde9
lea rcx, [rbp + 0x180]
call fcn.180009620
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x18004db8d
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x18004db80
mov r15d, eax
mov r8d, r15d
mov rcx, qword [rsp + 0x58]
call fcn.180009210
nop
lea rax, [rbp + 0x188]
mov rcx, qword [rbp + 0x180]
cmp rcx, rax
je 0x18004dbb3
call fcn.1800d7598
mov r15d, 1
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x18004dbf4
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004dbef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dc85
call fcn.1800a4c5c
movdqa xmm0, xmmword [0x1801106e0]
movdqu xmmword [rbp - 8], xmm0
mov byte [rbp - 0x18], 0
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18004d5fe
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d5f9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004dc8b
jmp 0x18004d5f9
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18004dc5f
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], edi
sub edi, 1
jg 0x18004d6fd
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
jmp 0x18004d6fd
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
int3
call fcn.1800d79f8
nop
mov ecx, 0x80004005
call fcn.180008c20
nop
call fcn.1800d79f8
nop
call fcn.1800d79f8
nop
call fcn.1800d79f8
nop
call fcn.1800d79f8
nop
call fcn.1800d79f8
nop
call fcn.1800d79f8
int3