Function at 0x18001dd00
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x230]
sub rsp, 0x330
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x388], rbx
mov rax, qword [0x1801548a8]
xor rax, rsp
mov qword [rbp + 0x220], rax
mov qword [rsp + 0x50], r8
mov r15, rdx
mov qword [rsp + 0x48], rdx
mov rsi, rcx
xor r12d, r12d
mov r14d, r12d
mov rdi, qword [rdx + 8]
mov rbx, qword [rdx]
lea r13, [r12 - 1]
cmp rbx, rdi
je 0x18001dd99
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [rbx]
sub rdx, 0x18
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001dd8d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rbx, 8
cmp rbx, rdi
jne 0x18001dd70
mov rbx, qword [r15]
mov qword [r15 + 8], rbx
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.18001dbb0
nop
call fcn.18000a5b0
mov rcx, rax
test rax, rax
je 0x18001e7da
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
mov rdi, qword [rsi + 0x68]
mov rsi, qword [rsp + 0x40]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18001ddfc
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.18000b290
mov rbx, qword [rsp + 0x38]
cmp dword [rbx - 0xc], 0x104
jl 0x18001e7e5
mov dword [rbx - 0x10], 0x104
mov word [rbx + 0x208], r12w
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1800c96c0
test eax, eax
js 0x18001e7cf
cmp eax, dword [rbx - 0xc]
jg 0x18001e7cf
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r12w
cmp dword [rbx - 0x10], 0
je 0x18001e762
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18001e762
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x18001e762
mov dword [rsp + 0x20], 1
lea r9d, [rax + 0x40]
lea r8d, [rax + 1]
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.18001caf0
nop
mov qword [rbp + 0xb8], r12
mov qword [rbp + 0xc0], 0xf
mov byte [rbp + 0xa8], 0
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x70], 6
jne 0x18001e5f9
nop word [rax + rax]
lea rax, [rsp + 0x60]
add rcx, rax
mov dl, 0xa
call fcn.18001fcd0
movzx r8d, al
lea rdx, [rbp + 0xa8]
lea rcx, [rsp + 0x60]
call fcn.18001c550
lea rbx, [rbp + 0xa8]
mov r15, qword [rbp + 0xc0]
cmp r15, 0x10
mov r12, qword [rbp + 0xa8]
cmovae rbx, r12
mov r14, qword [rbp + 0xb8]
cmp r14, 0xb
jb 0x18001df7c
lea rsi, [rbx + r14]
lea r8, [rsi - 0xa]
sub r8, rbx
mov edx, 0x68
mov rcx, rbx
call fcn.1800c6620
mov rdi, rax
test rax, rax
je 0x18001df7c
nop
mov r8d, 0xb
lea rdx, str.homepages_
mov rcx, rdi
call fcn.1800c5c60
test eax, eax
je 0x18001dffd
inc rdi
lea r8, [rsi - 0xa]
sub r8, rdi
mov edx, 0x68
mov rcx, rdi
call fcn.1800c6620
mov rdi, rax
test rax, rax
jne 0x18001df40
lea rbx, [rbp + 0xa8]
cmp r15, 0x10
cmovae rbx, r12
cmp r14, 0xa
jb 0x18001e015
lea rsi, [rbx + r14]
lea r8, [rsi - 9]
sub r8, rbx
mov edx, 0x68
mov rcx, rbx
call fcn.1800c6620
mov rdi, rax
test rax, rax
je 0x18001dff8
nop word [rax + rax]
mov r8d, 0xa
lea rdx, str.homepage_
mov rcx, rdi
call fcn.1800c5c60
test eax, eax
je 0x18001e010
inc rdi
lea r8, [rsi - 9]
sub r8, rdi
mov edx, 0x68
mov rcx, rdi
call fcn.1800c6620
mov rdi, rax
test rax, rax
jne 0x18001dfc0
mov rdi, r13
jmp 0x18001e026
sub rdi, rbx
cmp rdi, 0xffffffffffffffff
je 0x18001df7c
add rdi, 0xb
jmp 0x18001e026
sub rdi, rbx
jmp 0x18001e018
mov rdi, r13
cmp rdi, 0xffffffffffffffff
je 0x18001e3f6
add rdi, 0xa
cmp rdi, 0xffffffffffffffff
je 0x18001e3f6
lea r15, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0x10
cmovae r15, r12
cmp r14, 1
jb 0x18001e0b6
lea rax, [r14 - 1]
cmp rdi, rax
ja 0x18001e0b6
lea r12, [r15 + r14]
lea rcx, [r15 + rdi]
mov r8, r12
sub r8, rcx
mov edx, 0x22
call fcn.1800c6620
mov rsi, rax
test rax, rax
je 0x18001e0af
movzx ebx, word [0x180101fb4]
nop dword [rax]
cmp byte [rsi], bl
jne 0x18001e088
xor eax, eax
jmp 0x18001e08d
sbb eax, eax
or eax, 1
test eax, eax
je 0x18001e10a
inc rsi
mov r8, r12
sub r8, rsi
mov edx, 0x22
mov rcx, rsi
call fcn.1800c6620
mov rsi, rax
test rax, rax
jne 0x18001e080
mov r12, qword [rbp + 0xa8]
mov rsi, r13
lea r15, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0x10
cmovae r15, r12
cmp r14, 1
jb 0x18001e145
lea rax, [r14 - 1]
cmp rdi, rax
ja 0x18001e145
lea r12, [r15 + r14]
lea rcx, [r15 + rdi]
mov r8, r12
sub r8, rcx
mov edx, 9
call fcn.1800c6620
mov rcx, rax
test rax, rax
je 0x18001e13e
movzx ebx, word [0x180101fb8]
cmp byte [rcx], bl
jne 0x18001e116
xor eax, eax
jmp 0x18001e11b
sub rsi, r15
mov r12, qword [rbp + 0xa8]
jmp 0x18001e0b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x18001e1e8
inc rcx
mov r8, r12
sub r8, rcx
mov edx, 9
call fcn.1800c6620
mov rcx, rax
test rax, rax
jne 0x18001e102
mov r12, qword [rbp + 0xa8]
mov rcx, r13
cmp rcx, rsi
cmovae rcx, rsi
cmp rcx, 0xffffffffffffffff
cmove rcx, r14
xor r15d, r15d
mov qword [rbp + 0xd8], r15
mov qword [rbp + 0xe0], 0xf
mov byte [rbp + 0xc8], r15b
cmp r14, rdi
jb 0x18001e820
sub rcx, rdi
sub r14, rdi
cmp r14, rcx
cmovb rcx, r14
lea rdx, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0x10
cmovae rdx, r12
add rdx, rdi
mov r8, rcx
lea rcx, [rbp + 0xc8]
call fcn.18000c340
nop
lea rsi, [rbp + 0xc8]
cmp qword [rbp + 0xe0], 0x10
cmovae rsi, qword [rbp + 0xc8]
lea rax, [rbp + 0x118]
mov qword [rbp + 0x110], rax
test rsi, rsi
jne 0x18001e1f7
mov ebx, r15d
mov qword [rbp + 0x110], rbx
jmp 0x18001e2d4
sub rcx, r15
mov r12, qword [rbp + 0xa8]
jmp 0x18001e148
mov rdi, r13
nop word [rax + rax]
inc rdi
cmp byte [rsi + rdi], 0
jne 0x18001e200
inc edi
mov r9d, 0x80
lea r8, [rbp + 0x118]
mov edx, edi
lea rcx, [rbp + 0x110]
call fcn.180007540
mov dword [rsp + 0x28], edi
mov rax, qword [rbp + 0x110]
mov qword [rsp + 0x20], rax
mov r9d, edi
mov r8, rsi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r15d
test eax, eax
sete bl
test eax, eax
jne 0x18001e2c5
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x18001e2c5
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
mov r9d, edi
mov r8, rsi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
mov r9d, 0x80
lea r8, [rbp + 0x118]
mov edx, eax
lea rcx, [rbp + 0x110]
call fcn.180007540
mov dword [rsp + 0x28], ebx
mov rax, qword [rbp + 0x110]
mov qword [rsp + 0x20], rax
mov r9d, edi
mov r8, rsi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r15d
test eax, eax
sete bl
test ebx, ebx
jne 0x18001e801
mov rbx, qword [rbp + 0x110]
call fcn.18000a5b0
test rax, rax
je 0x18001e7f6
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
test rbx, rbx
je 0x18001e320
cmp rbx, 0x10000
jae 0x18001e311
movzx edx, bx
lea rcx, [rsp + 0x30]
call fcn.18000b100
jmp 0x18001e334
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x18001e314
jmp 0x18001e323
mov eax, r15d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.18000b4d0
nop
lea rax, [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
cmp rcx, rax
je 0x18001e34c
call fcn.1800c8ed8
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsi + 8]
cmp qword [rsi + 0x10], rdi
je 0x18001e377
mov rbx, qword [rsp + 0x30]
lea rcx, [rbx - 0x18]
call fcn.180009ba0
add rax, 0x18
mov qword [rdi], rax
add qword [rsi + 8], 8
jmp 0x18001e38c
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, rsi
call fcn.1800076a0
mov rbx, qword [rsp + 0x30]
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e3a7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xe0]
cmp rdx, 0x10
jb 0x18001e3e8
inc rdx
mov rcx, qword [rbp + 0xc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e3e3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e7f0
call fcn.1800965cc
mov r12, qword [rbp + 0xa8]
mov r14, qword [rbp + 0xb8]
lea rdi, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0x10
cmovae rdi, r12
cmp r14, 0x10
jb 0x18001e5dd
lea rsi, [rdi + r14]
lea r8, [rsi - 0xf]
sub r8, rdi
mov edx, 0x68
mov rcx, rdi
call fcn.1800c6620
mov rbx, rax
test rax, rax
je 0x18001e5dd
nop word [rax + rax]
mov r8d, 0x10
lea rdx, str.homepagetype50_
mov rcx, rbx
call fcn.1800c5c60
test eax, eax
je 0x18001e47d
inc rbx
lea r8, [rsi - 0xf]
sub r8, rbx
mov edx, 0x68
mov rcx, rbx
call fcn.1800c6620
mov rbx, rax
test rax, rax
jne 0x18001e440
jmp 0x18001e5dd
sub rbx, rdi
cmp rbx, 0xffffffffffffffff
je 0x18001e5dd
lea r15, [rbx + 0x10]
lea rdi, [rbp + 0xa8]
mov rdx, qword [rbp + 0xc0]
cmp rdx, 0x10
cmovae rdi, r12
cmp r14, 1
jb 0x18001e517
lea rax, [r14 - 1]
cmp r15, rax
ja 0x18001e517
lea rsi, [rdi + r14]
lea rcx, [rdi + r15]
mov r8, rsi
sub r8, rcx
mov edx, 0x22
call fcn.1800c6620
mov rcx, rax
test rax, rax
je 0x18001e510
movzx ebx, word [0x180101fb4]
nop word [rax + rax]
cmp byte [rcx], bl
jne 0x18001e4e8
xor eax, eax
jmp 0x18001e4ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x18001e64c
inc rcx
mov r8, rsi
sub r8, rcx
mov edx, 0x22
call fcn.1800c6620
mov rcx, rax
test rax, rax
jne 0x18001e4e0
mov rdx, qword [rbp + 0xc0]
mov rcx, r13
cmp rcx, 0xffffffffffffffff
je 0x18001e5dd
mov qword [rbp + 0xf8], 0
mov qword [rbp + 0x100], 0xf
mov byte [rbp + 0xe8], 0
cmp r14, r15
jb 0x18001e82c
sub rcx, r15
sub r14, r15
cmp r14, rcx
cmovb rcx, r14
lea rax, [rbp + 0xa8]
cmp rdx, 0x10
cmovae rax, r12
lea rdx, [rax + r15]
mov r8, rcx
lea rcx, [rbp + 0xe8]
call fcn.18000c340
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
call fcn.1800ce3fc
mov rcx, qword [rsp + 0x50]
mov dword [rcx], eax
mov rdx, qword [rbp + 0x100]
cmp rdx, 0x10
jb 0x18001e5dd
inc rdx
mov rcx, qword [rbp + 0xe8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e5d8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e826
call fcn.1800965cc
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x70], 6
je 0x18001ded0
mov rbx, qword [rsp + 0x38]
xor r12d, r12d
lea rcx, [rsp + 0x70]
call fcn.18001eff0
test rax, rax
jne 0x18001e65b
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rbp + rcx - 0x58], 0
cmovne eax, edx
or eax, dword [rsp + rcx + 0x70]
and eax, 0x17
mov dword [rsp + rcx + 0x70], eax
mov edx, dword [rsp + rcx + 0x74]
and edx, eax
je 0x18001e65b
test dl, 4
je 0x18001e832
lea rbx, str.ios_base::badbit_set
jmp 0x18001e847
sub rcx, rdi
mov rdx, qword [rbp + 0xc0]
jmp 0x18001e51a
mov r14d, 1
mov rdx, qword [rbp + 0xc0]
cmp rdx, 0x10
jb 0x18001e6a2
inc rdx
mov rcx, qword [rbp + 0xa8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e69d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e7c9
call fcn.1800965cc
mov qword [rbp + 0xb8], r12
mov qword [rbp + 0xc0], 0xf
mov byte [rbp + 0xa8], 0
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5c], edx
lea rcx, [rsp + 0x70]
call fcn.18001cf40
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x5c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x10], rax
lea rcx, [rbp + 0x10]
call fcn.180067c54
nop
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e742
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x18001e79c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x18001e79c
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e77d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x18001e79c
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, r14d
mov rcx, qword [rbp + 0x220]
xor rcx, rsp
call fcn.180096b80
mov rbx, qword [rsp + 0x388]
add rsp, 0x330
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800c9338
nop
mov ecx, 0x80070057
call fcn.180009b50
nop
mov ecx, 0x80004005
call fcn.180009b50
nop
mov ecx, 0x80070057
call fcn.180009b50
nop
call fcn.1800c9338
nop
mov ecx, 0x80004005
call fcn.180009b50
nop
mov r8d, 0x80
lea rdx, [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
call fcn.1800075d0
call fcn.180009b80
nop
call fcn.18000c020
int3
call fcn.1800c9338
int3
call fcn.18000c020
int3
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x70]
call fcn.18000cbe0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x80]
call fcn.180008af0
lea rdx, [0x18014dc00]
lea rcx, [rbp + 0x80]
call fcn.1800c5b90
int3