Function at 0x46cb70
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a1a91
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x4bf6bc]
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 0x46cbfd
cmp dword [ebx + 0x14], 8
jb 0x46cbc8
mov eax, dword [ebx]
jmp 0x46cbca
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x46cbfd
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.00407860
jmp 0x46cda8
call fcn.00460cf0
lea edx, [ebp - 0x2c]
mov ecx, edi
test eax, eax
je 0x46cc41
call fcn.0046c670
mov dword [ebp - 4], 1
mov edi, eax
mov esi, ebx
call fcn.00408590
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x46cc36
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0047bd91
add esp, 4
xor eax, eax
mov word [ebp - 0x2c], ax
jmp 0x46cd7a
call fcn.0046c3f0
mov dword [ebp - 4], 2
mov edi, eax
mov esi, ebx
call fcn.00408590
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x46cc6c
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0047bd91
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 0x46cc94
mov esi, dword [ebp - 0x34]
mov dword [esi + 0x14], ecx
jmp 0x46cd94
ja 0x46cca0
push str.invalid_string_position
call fcn.0047b38e
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x46ccac
mov eax, dword [esi]
jmp 0x46ccae
mov eax, esi
mov edx, 0x5c
cmp dx, word [eax]
je 0x46cce0
cmp ecx, 8
jb 0x46ccc1
mov eax, dword [esi]
jmp 0x46ccc3
mov eax, esi
mov ecx, 0x2f
cmp cx, word [eax]
je 0x46cce0
push ebx
mov eax, 0x4a7b0c
call fcn.0040d5c0
push edi
mov ecx, eax
push esi
mov esi, ecx
jmp 0x46cce4
push edi
push esi
mov esi, ebx
or eax, 0xffffffff
call fcn.00409b60
push edi
push eax
or eax, 0xffffffff
mov ecx, ebx
call fcn.00407860
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10c]
dec eax
cmp dword [ebx + 0x10], eax
ja 0x46cd11
push str.invalid_string_position
call fcn.0047b38e
mov edx, dword [ebx + 0x14]
cmp edx, 8
jb 0x46cd1d
mov ecx, dword [ebx]
jmp 0x46cd1f
mov ecx, ebx
mov esi, 0x5c
cmp si, word [ecx + eax*2]
je 0x46cd40
cmp edx, 8
jb 0x46cd33
mov ecx, dword [ebx]
jmp 0x46cd35
mov ecx, ebx
mov edx, 0x2f
cmp dx, word [ecx + eax*2]
jne 0x46cd88
push eax
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, ebx
call fcn.0045f8e0
mov dword [ebp - 4], 3
mov edi, eax
mov esi, ebx
call fcn.00408590
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 8
jb 0x46cd74
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0047bd91
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.00407860
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.0047bd9c
mov esp, ebp
pop ebp
ret 4