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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x452566
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x46b664]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push esi
push edi
mov eax, dword [0x46b664]
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.0041bdd0
mov esi, eax
mov dword [esp + 0xa4], 0
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
push edx
call fcn.0041bdd0
add esp, 8
mov ecx, eax
mov byte [esp + 0xa0], 1
cmp dword [esi + 0x14], 8
mov edi, dword [esi + 0x10]
jb 0x4172d9
mov esi, dword [esi]
mov eax, dword [ecx + 0x10]
push esi
call fcn.004086f0
test eax, eax
sete byte [esp + 0x17]
mov byte [esp + 0xa0], 0
mov esi, 8
cmp dword [esp + 0x3c], esi
jb 0x417309
mov eax, dword [esp + 0x28]
push eax
call fcn.00431dda
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 0x41733f
mov edx, dword [esp + 0x5c]
push edx
call fcn.00431dda
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 0x41735f
mov al, 1
jmp 0x41754b
mov ecx, ebx
call fcn.00416f40
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], al
call fcn.00416f40
mov cl, byte [esp + 0x17]
cmp al, cl
jne 0x417549
mov esi, dword [esp + 0x18]
mov edi, 8
cmp dword [esi + 0x14], edi
jb 0x417391
mov eax, dword [esi]
jmp 0x417393
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4173a3
xor cl, cl
jmp 0x4173aa
and al, 0x10
cmp al, 0x10
sete cl
cmp dword [esi + 0x14], edi
jb 0x4173b3
mov eax, dword [esi]
jmp 0x4173b5
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 0x4173ff
mov eax, dword [ebx]
jmp 0x417401
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x417411
xor al, al
jmp 0x417418
and al, 0x10
cmp al, 0x10
sete al
cmp dword [ebx + 0x14], 8
jb 0x417420
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 0x417473
cmp edi, ebx
je 0x417473
cmp esi, 0xffffffff
je 0x417524
cmp esi, ebx
je 0x417524
cmp edi, ebx
jne 0x417480
cmp esi, 0xffffffff
je 0x417480
cmp esi, ebx
jne 0x417524
cmp edi, 0xffffffff
je 0x417524
cmp edi, ebx
je 0x417524
cmp esi, 0xffffffff
je 0x417524
cmp esi, ebx
je 0x417524
push 0x30
lea eax, [esp + 0x30]
push ebx
push eax
mov dword [esp + 0x34], ebx
call fcn.004397f0
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 0x417524
push 0x30
lea edx, [esp + 0x64]
push ebx
push edx
mov dword [esp + 0x68], 1
call fcn.004397f0
add esp, 0xc
lea eax, [esp + 0x5c]
push eax
push esi
call edi
cmp eax, ebx
je 0x417524
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x28]
call fcn.004171e0
mov bl, al
mov byte [esp + 0xa0], 2
lea esi, [esp + 0x18]
call fcn.00407db0
mov dword [esp + 0xa0], 0xffffffff
lea esi, [esp + 0x20]
call fcn.00407db0
mov al, bl
jmp 0x41754b
mov byte [esp + 0xa0], 2
lea esi, [esp + 0x18]
call fcn.00407db0
mov dword [esp + 0xa0], 0xffffffff
lea esi, [esp + 0x20]
call fcn.00407db0
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.00431de5
mov esp, ebp
pop ebp
ret