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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x508a8d
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x53b0f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xfc], 0
mov dword [ebp - 4], 1
push 0x5c
lea ecx, [ebp + 8]
call fcn.004229d0
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.00422820
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x114], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x114]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00423a50
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x60]
call fcn.00417b10
lea ecx, [ebp + 0xc]
call fcn.00411e30
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x415ee1
mov byte [ebp - 0xea], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00422090
mov al, byte [ebp - 0xea]
jmp 0x41623a
lea ecx, [ebp - 0xe8]
call fcn.0042d0c0
mov byte [ebp - 4], 5
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
push 0
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp + 8]
call fcn.00422270
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xfc]
or edx, 1
mov dword [ebp - 0xfc], edx
mov ecx, dword [ebp - 0x11c]
call fcn.00411e10
push eax
lea ecx, [ebp - 0xe8]
call fcn.0042f2c0
movzx eax, al
test eax, eax
je 0x415f7b
lea ecx, [ebp - 0xe8]
call fcn.004185c0
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
je 0x415f7b
mov dword [ebp - 0x108], 0
jmp 0x415f85
mov dword [ebp - 0x108], 1
mov cl, byte [ebp - 0x108]
mov byte [ebp - 0xeb], cl
mov dword [ebp - 4], 5
mov edx, dword [ebp - 0xfc]
and edx, 1
je 0x415fb2
and dword [ebp - 0xfc], 0xfffffffe
lea ecx, [ebp - 0x78]
call fcn.0040b260
movzx eax, byte [ebp - 0xeb]
test eax, eax
je 0x416005
mov byte [ebp - 0xec], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe8]
call fcn.00417c00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00422090
mov al, byte [ebp - 0xec]
jmp 0x41623a
mov byte [ebp - 0xe9], 0
push str.dependency
mov ecx, dword [ebp - 0x100]
call fcn.00418080
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
je 0x416046
push 0x510580
mov ecx, dword [ebp - 0x10c]
call fcn.00418080
test eax, eax
je 0x416046
mov byte [ebp - 0xe9], 1
push 0x510588
mov ecx, dword [ebp - 0x100]
call fcn.00418080
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
je 0x41615e
push 0x510594
mov ecx, dword [ebp - 0xf8]
call fcn.0042e140
push eax
lea ecx, [ebp - 0x48]
call fcn.00423820
mov byte [ebp - 4], 7
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [ebp - 0x48]
call fcn.00422500
test eax, eax
jne 0x4160a7
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x104], edx
jmp 0x416137
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x120], esp
lea eax, [ebp - 0x2c]
push eax
call fcn.00423970
movzx ecx, byte [ebp - 0xe9]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
call fcn.00416c70
add esp, 0x24
mov byte [ebp - 0xed], al
movzx eax, byte [ebp - 0xed]
test eax, eax
jne 0x416137
mov byte [ebp - 0xee], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x48]
call fcn.00422090
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe8]
call fcn.00417c00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00422090
mov al, byte [ebp - 0xee]
jmp 0x41623a
push 0x5105a0
mov ecx, dword [ebp - 0xf8]
call fcn.00418140
mov dword [ebp - 0xf8], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x48]
call fcn.00422090
jmp 0x41605c
cmp dword [ebp - 0x104], 0
je 0x4161ec
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x124], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.00423970
movzx eax, byte [ebp - 0xe9]
push eax
mov ecx, dword [ebp - 0x104]
push ecx
call fcn.00416c70
add esp, 0x24
mov byte [ebp - 0xef], al
movzx edx, byte [ebp - 0xef]
test edx, edx
jne 0x4161ec
mov byte [ebp - 0xf0], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe8]
call fcn.00417c00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00422090
mov al, byte [ebp - 0xf0]
jmp 0x41623a
lea ecx, [ebp - 0xe8]
call fcn.0042e400
mov byte [ebp - 0xf1], 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe8]
call fcn.00417c00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00422090
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00422090
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x24]
call fcn.00422090
mov al, byte [ebp - 0xf1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00434475
mov esp, ebp
pop ebp
ret