Function at 0x417190
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x452e06
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x46c664]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push esi
push edi
mov eax, dword [0x46c664]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
lea ecx, [esp + 0x5c]
push ecx
mov edi, ebx
mov dword [esp + 0x1c], eax
call fcn.0041c330
mov esi, eax
mov dword [esp + 0xa4], 0
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
push edx
call fcn.0041c330
add esp, 8
mov ecx, eax
mov byte [esp + 0xa0], 1
cmp dword [esi + 0x14], 8
mov edi, dword [esi + 0x10]
jb 0x417219
mov esi, dword [esi]
mov eax, dword [ecx + 0x10]
push esi
call fcn.004084d0
test eax, eax
sete byte [esp + 0x17]
mov byte [esp + 0xa0], 0
mov esi, 8
cmp dword [esp + 0x3c], esi
jb 0x417249
mov eax, dword [esp + 0x28]
push eax
call fcn.0043266a
add esp, 4
mov edi, 7
xor ecx, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], 0
mov word [esp + 0x28], cx
mov dword [esp + 0xa0], 0xffffffff
cmp dword [esp + 0x70], esi
jb 0x41727f
mov edx, dword [esp + 0x5c]
push edx
call fcn.0043266a
add esp, 4
xor eax, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], 0
mov word [esp + 0x5c], ax
cmp byte [esp + 0x17], al
je 0x41729f
mov al, 1
jmp 0x41748b
mov ecx, ebx
call fcn.00416e80
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], al
call fcn.00416e80
mov cl, byte [esp + 0x17]
cmp al, cl
jne 0x417489
mov esi, dword [esp + 0x18]
mov edi, 8
cmp dword [esi + 0x14], edi
jb 0x4172d1
mov eax, dword [esi]
jmp 0x4172d3
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4172e3
xor cl, cl
jmp 0x4172ea
and al, 0x10
cmp al, 0x10
sete cl
cmp dword [esi + 0x14], edi
jb 0x4172f3
mov eax, dword [esi]
jmp 0x4172f5
mov eax, esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
movzx ecx, cl
neg ecx
push 0
sbb ecx, ecx
and ecx, 0x1ffff80
sub ecx, 0xffffff80
push ecx
push 3
push 0
push 1
push 0x80000000
push eax
call esi
mov edi, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0xa0], 2
cmp dword [ebx + 0x14], 8
jb 0x41733f
mov eax, dword [ebx]
jmp 0x417341
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x417351
xor al, al
jmp 0x417358
and al, 0x10
cmp al, 0x10
sete al
cmp dword [ebx + 0x14], 8
jb 0x417360
mov ebx, dword [ebx]
movzx edx, al
neg edx
push 0
sbb edx, edx
and edx, 0x1ffff80
sub edx, 0xffffff80
push edx
push 3
push 0
push 1
push 0x80000000
push ebx
call esi
mov esi, eax
xor ebx, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xa0], 3
cmp edi, 0xffffffff
je 0x4173b3
cmp edi, ebx
je 0x4173b3
cmp esi, 0xffffffff
je 0x417464
cmp esi, ebx
je 0x417464
cmp edi, ebx
jne 0x4173c0
cmp esi, 0xffffffff
je 0x4173c0
cmp esi, ebx
jne 0x417464
cmp edi, 0xffffffff
je 0x417464
cmp edi, ebx
je 0x417464
cmp esi, 0xffffffff
je 0x417464
cmp esi, ebx
je 0x417464
push 0x30
lea eax, [esp + 0x30]
push ebx
push eax
mov dword [esp + 0x34], ebx
call fcn.0043a080
add esp, 0xc
lea ecx, [esp + 0x28]
push ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
call edi
cmp eax, ebx
je 0x417464
push 0x30
lea edx, [esp + 0x64]
push ebx
push edx
mov dword [esp + 0x68], 1
call fcn.0043a080
add esp, 0xc
lea eax, [esp + 0x5c]
push eax
push esi
call edi
cmp eax, ebx
je 0x417464
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x28]
call fcn.00417120
mov bl, al
mov byte [esp + 0xa0], 2
lea esi, [esp + 0x18]
call fcn.004074c0
mov dword [esp + 0xa0], 0xffffffff
lea esi, [esp + 0x20]
call fcn.004074c0
mov al, bl
jmp 0x41748b
mov byte [esp + 0xa0], 2
lea esi, [esp + 0x18]
call fcn.004074c0
mov dword [esp + 0xa0], 0xffffffff
lea esi, [esp + 0x20]
call fcn.004074c0
xor al, al
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.00432675
mov esp, ebp
pop ebp
ret