Function at 0x10008260
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100a8ce7
mov eax, dword fs:[0]
push eax
sub esp, 0x1d8
mov eax, dword [0x100d65e8]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push esi
push edi
mov eax, dword [0x100d65e8]
xor eax, esp
push eax
lea eax, [esp + 0x1e8]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], 0
cmp dword [edi + 0x10], 0
jne 0x100082bd
xor al, al
jmp 0x1000897a
call fcn.1000af20
lea eax, [esp + 0x1b0]
push edi
push eax
call fcn.100190c0
add esp, 8
mov dword [esp + 0x1f0], 0
cmp dword [eax + 0x10], 0
jne 0x100082e8
xor al, al
jmp 0x100082fd
cmp dword [eax + 0x14], 8
jb 0x100082f0
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
sete al
mov byte [esp + 0x17], al
mov dword [esp + 0x1f0], 0xffffffff
cmp dword [esp + 0x1c4], 8
jb 0x1000832e
push dword [esp + 0x1b0]
call fcn.1007d9ed
mov al, byte [esp + 0x1b]
add esp, 4
xor ecx, ecx
mov dword [esp + 0x1c4], 7
mov dword [esp + 0x1c0], 0
mov word [esp + 0x1b0], cx
test al, al
je 0x100083c7
lea eax, [esp + 0x1b0]
push edi
push eax
mov byte [0x100d9ba9], 1
call fcn.100190c0
mov dword [esp + 0x1f8], 1
push eax
call fcn.1002cbb0
add esp, 0xc
mov byte [ebx + 0xc], al
mov dword [esp + 0x1f0], 0xffffffff
cmp dword [esp + 0x1c4], 8
jb 0x100083a2
push dword [esp + 0x1b0]
call fcn.1007d9ed
add esp, 4
xor eax, eax
mov dword [esp + 0x1c4], 7
mov dword [esp + 0x1c0], 0
mov word [esp + 0x1b0], ax
jmp 0x10008977
xor eax, eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], ecx
push eax
mov dword [esp + 0x1c4], ecx
push 0x100bd6c4
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x1cc], 7
mov word [esp + 0x1b8], ax
call fcn.1000f9f0
mov dword [esp + 0x1f0], 2
lea eax, [esp + 0x1b0]
push eax
lea eax, [esp + 0x1a0]
push eax
lea eax, [esp + 0xe8]
push eax
call fcn.10033880
add esp, 0xc
mov dword [esp + 0x1f0], 0xffffffff
cmp dword [esp + 0x1c4], 8
jb 0x10008452
push dword [esp + 0x1b0]
call fcn.1007d9ed
add esp, 4
xor eax, eax
mov ecx, esi
mov dword [esp + 0x1c4], 7
mov dword [esp + 0x1c0], 0
mov word [esp + 0x1b0], ax
call fcn.1000eb30
push eax
push 0
push 0
lea eax, [esp + 0xec]
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov esi, eax
test esi, esi
je 0x100084c5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x100084c5
push 0xbb8
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100084c5
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10008977
push 1
lea ecx, [esp + 0x28]
call fcn.10009400
mov dword [esp + 0x1f0], 3
cmp dword [edi + 0x14], 0x10
jb 0x100084e5
mov eax, dword [edi]
jmp 0x100084e7
mov eax, edi
cmp dword [esp + 0x84], 0
jne 0x10008578
push 0x40
push 1
push eax
call fcn.1007d7f9
add esp, 0xc
test eax, eax
je 0x10008578
push 1
push eax
lea ecx, [esp + 0x3c]
call fcn.10006d30
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x38]
call fcn.1000a970
mov byte [esp + 0x1f0], 4
push eax
call fcn.10008e60
add esp, 4
lea ecx, [esp + 0x34]
push eax
call fcn.10006f90
mov byte [esp + 0x1f0], 3
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1000855c
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, eax
test ecx, ecx
je 0x1000855c
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x24]
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
cmp dword [ecx + 0x38], eax
mov edx, 4
cmove eax, edx
jmp 0x10008594
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x24]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10008594
or eax, 4
push 0
push eax
call fcn.1000e8e0
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x84], 0
je 0x1000879b
lea eax, [esp + 0x154]
mov dword [esp + 0xec], 0x100bd80c
mov dword [esp + 0xfc], 0x100bd804
mov dword [esp + 0x18], eax
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
mov byte [esp + 0x1f0], 5
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov byte [esp + 0x1f0], 6
push 0
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0xf4]
mov dword [esp + 0x24], 1
call fcn.1000a070
mov dword [esp + 0x1f0], 7
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xec], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0xe8], eax
lea eax, [esp + 0x104]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.1000a450
mov byte [esp + 0x1f0], 8
mov dword [esp + method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov byte [esp + 0x1f0], 0xa
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x100]
call fcn.10009100
lea ecx, [esp + 0x34]
call fcn.10006c80
test eax, eax
jne 0x100086d6
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x24]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x100086ce
or eax, 4
push 0
push eax
call fcn.1000e8e0
lea eax, [esp + 0x1c8]
push eax
lea ecx, [esp + 0xf0]
call fcn.100096a0
mov byte [esp + 0x1f0], 0xb
lea eax, [esp + 0x1c8]
push eax
push edi
lea ecx, [esp + 0x1f]
call fcn.10032a30
cmp dword [esp + 0x1d8], 0
jne 0x100087b4
mov byte [ebx + 0xc], 1
mov byte [esp + 0x1f0], 0xa
cmp dword [esp + 0x1dc], 0x10
jb 0x10008737
push dword [esp + 0x1c8]
call fcn.1007d9ed
add esp, 4
mov dword [esp + 0x1dc], 0xf
mov dword [esp + 0x1d8], 0
mov byte [esp + 0x1c8], 0
mov byte [esp + 0x1f0], 3
lea ecx, [esp + 0x154]
call fcn.100095d0
lea eax, [esp + 0x154]
mov dword [esp + 0x18], eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov byte [esp + 0x1f0], 3
push eax
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.1007d636
add esp, 4
mov dword [esp + 0x1f0], 0xffffffff
lea ecx, [esp + 0x24]
call fcn.10008ff0
jmp 0x10008977
lea eax, [esp + 0x1c8]
push eax
mov ecx, ebx
call fcn.1000b030
mov byte [ebx + 0xc], al
mov byte [esp + 0x1f0], 0xa
cmp dword [esp + 0x1dc], 0x10
jb 0x100087e7
push dword [esp + 0x1c8]
call fcn.1007d9ed
add esp, 4
mov dword [esp + 0x1dc], 0xf
mov dword [esp + 0x1d8], 0
mov byte [esp + 0x1c8], 0
mov byte [esp + 0x1f0], 3
lea ecx, [esp + 0x154]
call fcn.100095d0
lea eax, [esp + 0x154]
mov dword [esp + 0x18], eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov byte [esp + 0x1f0], 3
push eax
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.1007d636
add esp, 4
mov dword [esp + 0x1f0], 0xffffffff
lea eax, [esp + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x24], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [esp + ecx + 0x20], eax
mov dword [esp + 0x1f0], 0xe
lea eax, [esp + 0x34]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [esp + 0x1f0], 0x10
cmp dword [esp + 0x84], 0
je 0x100088cf
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x78]
cmp dword [edx], eax
jne 0x100088cf
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov dword [eax], ecx
mov eax, dword [esp + 0x60]
sub ecx, ecx
mov dword [eax], ecx
cmp byte [esp + 0x80], 0
je 0x100088e2
lea ecx, [esp + 0x34]
call fcn.10006c80
mov byte [esp + 0x1f0], 0xe
mov esi, dword [esp + 0x68]
mov dword [esp + 0x34], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
test esi, esi
je 0x1000891a
mov ecx, dword [esi]
test ecx, ecx
je 0x10008911
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, eax
test ecx, ecx
je 0x10008911
mov eax, dword [ecx]
push 1
call dword [eax]
push esi
call fcn.1007d9ed
add esp, 4
mov dword [esp + 0x1f0], 0xffffffff
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x24], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [esp + ecx + 0x20], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x20], eax
mov dword [esp + 0x94], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov dword [esp + 0x1f0], 0xffffffff
push eax
mov dword [esp + 0x98], vtable.std::ios_base.0
call fcn.1007d636
add esp, 4
mov al, byte [ebx + 0xc]
mov ecx, dword [esp + 0x1e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.1007e654
mov esp, ebp
pop ebp
ret 8