Function at 0x1002e9e0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cdcd2
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x10102f10]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x44], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1002ed7c
cmp dword [edi + 0x14], 0x10
mov eax, edi
mov dword [edi + 0x10], 0
jb 0x1002ea3a
mov eax, dword [edi]
mov byte [eax], 0
mov dword [ebp - 0x104], 0x100d90e4
push 0
lea eax, [ebp - 0xf4]
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [ebp - 0x44], 1
push eax
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0x98], 0x58
movlpd qword [ebp - 0xfc], xmm0
call fcn.10030680
mov eax, dword [ebp - 0x104]
push 0
mov dword [ebp - 4], 2
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x108], eax
lea ecx, [ebp - 0xf4]
call fcn.1002c920
push 0x40
push 0x21
push esi
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], 3
call fcn.10030890
test eax, eax
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax + 4]
jne 0x1002eb1c
xor eax, eax
cmp dword [ebp + ecx - 0xcc], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0xf8]
and eax, 0x17
mov dword [ebp + ecx - 0xf8], eax
mov ecx, dword [ebp + ecx - 0xf4]
and ecx, eax
jne 0x1002ed97
jmp 0x1002eb56
xor edx, edx
mov eax, 4
cmp dword [ebp + ecx - 0xcc], edx
cmovne eax, edx
mov dword [ebp + ecx - 0xf8], eax
test dword [ebp + ecx - 0xf4], eax
je 0x1002eb56
lea eax, [ebp - 0x4c]
push 1
push eax
call fcn.10020590
add esp, 8
push eax
push str.ios_base::badbit_set
jmp 0x1002edc3
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xf8], 6
jne 0x1002ed6d
push 2
push 0
push 0
lea ecx, [ebp - 0x104]
call fcn.10027060
lea eax, [ebp - 0x104]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + eax - 0xcc]
test ecx, ecx
je 0x1002eba0
mov eax, dword [ecx]
call dword [eax + 4]
push 1
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 4
call fcn.10026260
mov byte [ebp - 0x48], al
mov eax, dword [ebp - 0x104]
mov byte [ebp - 4], 5
mov ecx, dword [eax + 4]
test byte [ebp + ecx - 0xf8], 6
jne 0x1002ebef
mov ecx, dword [ebp + ecx - 0xcc]
lea edx, [ebp - 0x28]
push 1
push 1
push 0
mov eax, dword [ecx]
push 0
push edx
call dword [eax + 0x28]
mov eax, dword [ebp - 0x104]
mov byte [ebp - 4], 6
jmp 0x1002ec08
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
movups xmmword [ebp - 0x20], xmm0
mov byte [ebp - 4], 7
mov eax, dword [eax + 4]
mov ecx, dword [ebp + eax - 0xcc]
test ecx, ecx
je 0x1002ec1b
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x20]
mov byte [ebp - 4], 3
mov dword [ebp - 0x48], eax
test eax, eax
jle 0x1002ed15
lea esi, [eax + 1]
push esi
call fcn.10064f7d
push esi
push 0
push eax
mov dword [ebp - 0x44], eax
call fcn.10092e90
add esp, 0x10
lea ecx, [ebp - 0x104]
push 0
push 0
push 0
call fcn.10027060
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x104]
mov esi, dword [ebp - 0x44]
cdq
push edx
push eax
push esi
call fcn.10026ef0
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xf8], 6
jne 0x1002ed08
push str.f484570d7cf557020e11ace406901b10
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10026550
push esi
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10026550
push edi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.10072a20
add esp, 0xc
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.10008170
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.10008170
xor edi, edi
mov eax, 1
test esi, esi
mov esi, dword [ebp - 0x44]
push esi
cmovne edi, eax
call fcn.10064f86
add esp, 4
jmp 0x1002ed1a
push esi
xor edi, edi
call fcn.10064f86
add esp, 4
jmp 0x1002ed1a
mov edi, 1
lea ecx, [ebp - 0xf4]
call fcn.10026650
test eax, eax
jne 0x1002ed6f
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + ecx - 0xcc], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0xf8]
and eax, 0x17
mov dword [ebp + ecx - 0xf8], eax
mov ecx, dword [ebp + ecx - 0xf4]
and ecx, eax
je 0x1002ed6f
test cl, 4
je 0x1002eda3
mov esi, str.ios_base::badbit_set
jmp 0x1002edb3
xor edi, edi
lea ecx, [ebp - 0x104]
call fcn.10021eb0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10064e61
mov esp, ebp
pop ebp
ret
test cl, 4
je 0x1002eda3
mov esi, str.ios_base::badbit_set
jmp 0x1002edb3
test cl, 2
mov esi, str.ios_base::failbit_set
mov eax, str.ios_base::eofbit_set
cmove esi, eax
lea eax, [ebp - 0x4c]
push 1
push eax
call fcn.10020590
add esp, 8
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.1001de40
push 0x100f7470
lea eax, [ebp - 0x24]
push eax
call fcn.10091f6d
int3