Function at 0x1007b860
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c3941
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x100eb6ac]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
lea ebx, [edi + 0xfc]
mov esi, edx
mov dword [ebp - 0x30], 0
cmp dword [ebx + 0x10], 0
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], eax
je 0x1007b8ed
cmp dword [ebx + 0x14], 8
jb 0x1007b8b8
mov eax, dword [ebx]
jmp 0x1007b8ba
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x1007b8ed
xor edi, edi
xor ecx, ecx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
push edi
mov word [esi], cx
push ebx
or eax, 0xffffffff
mov ecx, esi
call fcn.100166c0
jmp 0x1007ba9b
call fcn.10070ec0
test eax, eax
je 0x1007b931
lea edx, [ebp - 0x2c]
mov ecx, edi
call fcn.1007b160
mov dword [ebp - 4], 1
mov edi, eax
mov esi, ebx
call fcn.10016430
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x1007b926
mov edx, dword [ebp - 0x2c]
push edx
call fcn.1009c0c0
add esp, 4
xor eax, eax
mov word [ebp - 0x2c], ax
jmp 0x1007ba6d
lea ecx, [ebp - 0x2c]
call fcn.1007b660
mov dword [ebp - 4], 2
mov edi, eax
mov esi, ebx
call fcn.10016430
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x1007b95f
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.1009c0c0
add esp, 4
mov esi, dword [ebp - 0x38]
mov eax, dword [esi + 0x10]
xor edi, edi
xor edx, edx
mov ecx, 7
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edi
mov word [ebp - 0x2c], dx
cmp eax, edi
jne 0x1007b987
mov esi, dword [ebp - 0x34]
mov dword [esi + 0x14], ecx
jmp 0x1007ba87
ja 0x1007b993
push str.invalid_string_position
call fcn.1009b636
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x1007b99f
mov eax, dword [esi]
jmp 0x1007b9a1
mov eax, esi
mov edx, 0x5c
cmp dx, word [eax]
je 0x1007b9d3
cmp ecx, 8
jb 0x1007b9b4
mov eax, dword [esi]
jmp 0x1007b9b6
mov eax, esi
mov ecx, 0x2f
cmp cx, word [eax]
je 0x1007b9d3
push ebx
mov eax, 0x100cde64
call fcn.10012bb0
push edi
mov ecx, eax
push esi
mov esi, ecx
jmp 0x1007b9d7
push edi
push esi
mov esi, ebx
or eax, 0xffffffff
call fcn.100164a0
push edi
push eax
or eax, 0xffffffff
mov ecx, ebx
call fcn.100166c0
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10c]
dec eax
cmp dword [ebx + 0x10], eax
ja 0x1007ba04
push str.invalid_string_position
call fcn.1009b636
mov edx, dword [ebx + 0x14]
cmp edx, 8
jb 0x1007ba10
mov ecx, dword [ebx]
jmp 0x1007ba12
mov ecx, ebx
mov esi, 0x5c
cmp si, word [ecx + eax*2]
je 0x1007ba33
cmp edx, 8
jb 0x1007ba26
mov ecx, dword [ebx]
jmp 0x1007ba28
mov ecx, ebx
mov edx, 0x2f
cmp dx, word [ecx + eax*2]
jne 0x1007ba7b
push eax
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, ebx
call fcn.1006fc80
mov dword [ebp - 4], 3
mov edi, eax
mov esi, ebx
call fcn.10016430
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x1007ba67
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.1009c0c0
add esp, 4
xor edx, edx
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov esi, dword [ebp - 0x34]
mov dword [esi + 0x14], 7
xor edi, edi
xor eax, eax
mov dword [esi + 0x10], edi
push edi
mov word [esi], ax
push ebx
or eax, 0xffffffff
mov ecx, esi
call fcn.100166c0
mov dword [ebp - 4], edi
mov dword [ebp - 0x30], 1
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret 4