Function at 0x409120
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x430d3b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x5e48
call fcn.00416960
mov eax, dword [0x43e270]
xor eax, esp
mov dword [esp + 0x5e44], eax
push esi
push edi
mov eax, dword [0x43e270]
xor eax, esp
push eax
lea eax, [esp + 0x5e58]
mov dword fs:[0], eax
mov edi, ecx
push str.Compress_
mov ecx, 0x440628
call fcn.00403b70
add esp, 4
lea esi, [esp + 0x1c]
mov dword [esp + 0x10], 1
call fcn.00408a70
mov ecx, edi
mov dword [esp + 0x18], 0
call fcn.00409610
lea eax, [esp + 0x121c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4091a2
sub eax, edx
sar eax, 1
jne 0x40920a
push 0x400
lea eax, [esp + 0x1220]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4091ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.Compress_Fail______Get_Directory_Fail_
mov ecx, eax
mov edx, 0x440628
mov dword [esp + 0x14], eax
call fcn.00403a30
add esp, 4
jmp 0x4095e3
lea ecx, [esp + 0x121c]
push 0x5c
push ecx
call fcn.0040c87b
add esp, 8
test eax, eax
je 0x40920a
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x121c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409214
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x121a], 0x5c
jne 0x409259
lea eax, [esp + 0x121c]
lea edx, [eax + 2]
jmp 0x409240
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409240
sub eax, edx
sar eax, 1
xor ecx, ecx
mov word [esp + eax*2 + 0x121a], cx
lea eax, [esp + 0x1a1c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409263
sub eax, edx
sar eax, 1
jne 0x409328
lea eax, [esp + 0x81c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409282
sub eax, edx
sar eax, 1
jne 0x409328
push 0x800
lea edx, [esp + 0x5650]
push 0
push edx
call fcn.0040d9a0
add esp, 0xc
lea eax, [esp + 0x121c]
push eax
push str._s_setup.exe
lea edx, [esp + 0x5654]
call fcn.004029a0
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 8
lea ecx, [esp + 0x564c]
push ecx
call edi
test eax, eax
je 0x4092ff
push 0x3ff
push str.setup.exe
lea edx, [esp + 0x1a24]
push 0x400
push edx
call fcn.0040cafb
add esp, 0x10
jmp 0x40932e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x121c]
push eax
push str.Compress_Fail______No_command__No_Inf___s_
mov ecx, 0x440628
call fcn.00403b70
add esp, 8
jmp 0x4095e3
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x81c]
lea edx, [eax + 2]
jmp 0x409340
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409340
sub eax, edx
sar eax, 1
je 0x409465
lea eax, [esp + 0x101c]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409360
sub eax, edx
sar eax, 1
jne 0x409465
push 0x800
lea ecx, [esp + 0x5650]
push 0
push ecx
call fcn.0040d9a0
add esp, 0xc
lea edx, [esp + 0x81c]
push edx
lea eax, [esp + 0x1220]
push eax
push 0x43470c
lea edx, [esp + 0x5658]
call fcn.004029a0
add esp, 0xc
lea ecx, [esp + 0x564c]
push ecx
call edi
test eax, eax
je 0x409506
or edi, 0xffffffff
lea esi, [esp + 0x421c]
mov dword [esp + 0x421c], 0x4351f8
mov dword [esp + 0x5448], edi
call fcn.00403310
mov dword [esp + 0x5e60], 0
lea edx, [esp + 0x564c]
push edx
mov ecx, esi
call fcn.00402a40
test al, al
je 0x4094b7
lea edx, [esp + 0x101c]
mov ecx, esi
call fcn.004036a0
test al, al
jne 0x40944c
lea eax, [esp + 0x564c]
push eax
push str.Compress_Fail______Invalid_Inf_file__s_
mov ecx, 0x440628
mov dword [esp + 0x18], 0xd
call fcn.00403b70
add esp, 8
mov dword [esp + 0x5e60], edi
mov ecx, esi
call fcn.00402a20
jmp 0x4095e3
mov dword [esp + 0x5e60], edi
lea ecx, [esp + 0x421c]
call fcn.00402a20
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x1c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409470
sub eax, edx
sar eax, 1
jne 0x4095ce
push 0x200
lea edx, [esp + 0x5450]
push 0
push edx
call fcn.0040d9a0
add esp, 0xc
lea eax, [esp + 0x121c]
push 0x5c
push eax
call fcn.0040c87b
add esp, 8
test eax, eax
je 0x409527
add eax, 2
jmp 0x40952e
lea ecx, [esp + 0x564c]
push ecx
push str.Compress_Fail______Invalid_Inf_file__s_
mov ecx, 0x440628
mov dword [esp + 0x18], 0xd
call fcn.00403b70
add esp, 8
mov dword [esp + 0x5e60], edi
mov eax, dword [esp + 0x5448]
mov dword [esp + 0x421c], 0x4351f8
cmp eax, edi
je 0x4095e3
push eax
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x4095e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.Compress_Fail______No_Driver_Name
mov ecx, 0x440628
mov dword [esp + 0x14], eax
call fcn.00403b70
add esp, 4
jmp 0x4095e3
lea eax, [esp + 0x121c]
push 0xff
push eax
lea ecx, [esp + 0x5454]
push 0x100
push ecx
call fcn.0040cafb
lea edx, [esp + 0x545c]
push edx
lea eax, [esp + 0x1230]
push eax
push str._s_s.exe
lea edx, [esp + 0x38]
call fcn.004029a0
add esp, 0x1c
lea ecx, [esp + 0x544c]
push ecx
call edi
test eax, eax
je 0x4095ce
xor esi, esi
push esi
lea edx, [esp + 0x5450]
push edx
lea eax, [esp + 0x1224]
push eax
push str._s_s__d_.exe
lea edx, [esp + 0x2c]
call fcn.004029a0
add esp, 0x10
lea ecx, [esp + 0x544c]
push ecx
call edi
test eax, eax
je 0x4095ad
inc esi
cmp esi, 0x64
jl 0x409577
cmp esi, 0x64
jne 0x4095ce
push str.Compress_Fail______Invalid_Target_file
mov ecx, 0x440628
mov dword [esp + 0x14], 0xd
call fcn.00403b70
add esp, 4
jmp 0x4095e3
lea ecx, [esp + 0x1c]
call fcn.004040e0
test al, al
je 0x4095e3
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5e58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x5e44]
xor ecx, esp
call fcn.0040c641
mov esp, ebp
pop ebp
ret