Function at 0x479650
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c4031
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x4eb6b8]
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 0x4796dd
cmp dword [ebx + 0x14], 8
jb 0x4796a8
mov eax, dword [ebx]
jmp 0x4796aa
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x4796dd
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.00416830
jmp 0x47988b
call fcn.0047d110
test eax, eax
je 0x479721
lea edx, [ebp - 0x2c]
mov ecx, edi
call fcn.00478f50
mov dword [ebp - 4], 1
mov edi, eax
mov esi, ebx
call fcn.004165a0
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x479716
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0049ca60
add esp, 4
xor eax, eax
mov word [ebp - 0x2c], ax
jmp 0x47985d
lea ecx, [ebp - 0x2c]
call fcn.00479450
mov dword [ebp - 4], 2
mov edi, eax
mov esi, ebx
call fcn.004165a0
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x47974f
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0049ca60
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 0x479777
mov esi, dword [ebp - 0x34]
mov dword [esi + 0x14], ecx
jmp 0x479877
ja 0x479783
push str.invalid_string_position
call fcn.0049c6af
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x47978f
mov eax, dword [esi]
jmp 0x479791
mov eax, esi
mov edx, 0x5c
cmp dx, word [eax]
je 0x4797c3
cmp ecx, 8
jb 0x4797a4
mov eax, dword [esi]
jmp 0x4797a6
mov eax, esi
mov ecx, 0x2f
cmp cx, word [eax]
je 0x4797c3
push ebx
mov eax, 0x4cdc90
call fcn.00412d50
push edi
mov ecx, eax
push esi
mov esi, ecx
jmp 0x4797c7
push edi
push esi
mov esi, ebx
or eax, 0xffffffff
call fcn.00416610
push edi
push eax
or eax, 0xffffffff
mov ecx, ebx
call fcn.00416830
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10c]
dec eax
cmp dword [ebx + 0x10], eax
ja 0x4797f4
push str.invalid_string_position
call fcn.0049c6af
mov edx, dword [ebx + 0x14]
cmp edx, 8
jb 0x479800
mov ecx, dword [ebx]
jmp 0x479802
mov ecx, ebx
mov esi, 0x5c
cmp si, word [ecx + eax*2]
je 0x479823
cmp edx, 8
jb 0x479816
mov ecx, dword [ebx]
jmp 0x479818
mov ecx, ebx
mov edx, 0x2f
cmp dx, word [ecx + eax*2]
jne 0x47986b
push eax
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, ebx
call fcn.0046f160
mov dword [ebp - 4], 3
mov edi, eax
mov esi, ebx
call fcn.004165a0
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x479857
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0049ca60
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.00416830
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.0049ca6b
mov esp, ebp
pop ebp
ret 4