Function at 0x409f50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4424d6
mov eax, dword fs:[0]
push eax
sub esp, 0x2a8
mov eax, dword [0x4533e4]
xor eax, esp
mov dword [esp + 0x2a0], eax
push ebx
push esi
push edi
mov eax, dword [0x4533e4]
xor eax, esp
push eax
lea eax, [esp + 0x2b8]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, ecx
push 0x446f14
push edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], 0
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x409fef
lea ebx, [ebx]
cmp dword [eax*8 + 0x454898], 1
je 0x409fd5
inc eax
cmp eax, 0xe
jb 0x409fc0
jmp 0x40a56f
mov eax, dword [eax*8 + 0x45489c]
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_SETUPMODE
call fcn.004040d0
jmp 0x40a56f
push 0x446f10
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a034
mov ecx, 6
cmp dword [eax*8 + 0x454898], ecx
je 0x40a01a
inc eax
cmp eax, 0xe
jb 0x40a006
jmp 0x40a56f
mov ecx, dword [eax*8 + 0x45489c]
push ecx
lea ecx, [ebx + 4]
mov ebx, str.IIF_SETUPMODE
call fcn.004040d0
jmp 0x40a56f
push 0x446f0c
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a04f
mov byte [ebx + 0x2c], 1
jmp 0x40a56f
push str.drvsource
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a082
lea edi, [esp + 0xa4]
call fcn.004189f0
mov edx, edi
lea ecx, [ebx + 4]
push edx
mov ebx, str.IIF_DRVFOLDER
call fcn.004040d0
jmp 0x40a56f
push 0x446ef0
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a0cd
push ebx
lea ecx, [eax + 6]
call fcn.0040b9e0
lea edi, [esp + 0xa4]
call fcn.004189f0
mov ecx, edi
call fcn.00418a60
test al, al
je 0x40a2bf
mov eax, edi
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_INSTALLFOLDER
call fcn.004040d0
jmp 0x40a56f
push str.extract
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a118
push ebx
lea ecx, [eax + 2]
call fcn.0040b9e0
lea edi, [esp + 0xa4]
call fcn.004189f0
mov ecx, edi
call fcn.00418a60
test al, al
je 0x40a2bf
mov ecx, edi
push ecx
lea ecx, [ebx + 4]
mov ebx, str.IIF_EXTRACTFOLDER
call fcn.004040d0
jmp 0x40a56f
push 0x446ed4
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a141
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOICC
call fcn.004040d0
jmp 0x40a56f
push 0x446ed0
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
je 0x40a55b
push 0x448840
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
je 0x40a55b
push str.nodrv
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a1a9
lea esi, [ebx + 4]
push 0x4462c0
mov ebx, 0x448844
mov ecx, esi
call fcn.004040d0
push 0x4462c0
mov ebx, str.IIF_SKIPHWCHECK
mov ecx, esi
call fcn.004040d0
jmp 0x40a56f
push str.noinstall
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a1db
push ebx
lea ecx, [eax + 3]
call fcn.0040b9e0
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOINSTALL
call fcn.004040d0
jmp 0x40a56f
push 0x446e4c
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a254
lea edi, [esp + 0xa4]
call fcn.004189f0
mov edx, edi
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp word [eax], 0
je 0x40a226
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea ecx, [ebx + 0x84]
push ecx
call fcn.00401990
mov edx, edi
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [esp + 0xa4]
call fcn.00418a60
test al, al
je 0x40a2bf
lea eax, [esp + 0xa4]
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_LOGFOLDER
call fcn.004040d0
jmp 0x40a56f
push 0x446e48
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
je 0x40a2de
push 0x446e40
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a28f
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_SIMULATE
call fcn.004040d0
jmp 0x40a56f
push 0x446e5c
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a2cc
mov ecx, esi
call fcn.00418a60
test al, al
je 0x40a2bf
lea ecx, [ebx + 4]
push esi
mov ebx, str.IIF_INSTALLFOLDER
call fcn.004040d0
jmp 0x40a56f
mov dword [esp + 0x14], 0x4e29
jmp 0x40a56f
push 0x446650
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a2ea
mov ecx, ebx
call fcn.0040ba20
jmp 0x40a56f
push 0x446e24
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a30a
push ebx
lea ecx, [eax + 4]
call fcn.0040b9e0
jmp 0x40a56f
push 0x446e20
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a3c4
push esi
lea edi, [ebx + 4]
push edi
call fcn.00404270
test al, al
je 0x40a3b7
mov ebx, str.EXTRACTDRIVERS
call fcn.00404090
test al, al
je 0x40a56f
push ebx
call fcn.00403fe0
lea ecx, [esp + 0x20]
call fcn.00405f50
mov dword [esp + 0x2c0], 0
cmp dword [esp + 0x34], 8
mov esi, dword [esp + 0x20]
jae 0x40a36d
lea esi, [esp + 0x20]
lea edi, [esp + 0xa4]
call fcn.004189f0
mov ecx, edi
call fcn.00418a60
test al, al
je 0x40a3a1
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, 5
call fcn.0040b9e0
lea esi, [esp + 0x20]
call fcn.00402d10
jmp 0x40a56f
lea esi, [esp + 0x20]
mov dword [esp + 0x14], 0x4e29
call fcn.00402d10
jmp 0x40a56f
mov dword [esp + 0x14], 0x667
jmp 0x40a56f
push 0x446e60
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a3ed
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, 0x4462c4
call fcn.004040d0
jmp 0x40a56f
push 0x44665c
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a40d
push ebx
lea ecx, [eax + 0xc]
call fcn.0040b9e0
jmp 0x40a56f
push 0x446e2c
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a42d
push ebx
lea ecx, [eax + 0xd]
call fcn.0040b9e0
jmp 0x40a56f
push str.nooscheck
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a456
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOOSCHECK
call fcn.004040d0
jmp 0x40a56f
push str.nodncheck
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a47f
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NODNCHECK
call fcn.004040d0
jmp 0x40a56f
push str.nohwcheck
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a4a8
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_SKIPHWCHECK
call fcn.004040d0
jmp 0x40a56f
push str.fresh
push edi
call fcn.0042c25d
add esp, 8
test eax, eax
jne 0x40a4e4
lea esi, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_FRESH
mov ecx, esi
call fcn.004040d0
push 0x4462c0
mov ebx, 0x4462c4
mov ecx, esi
call fcn.004040d0
jmp 0x40a56f
lea eax, [esp + 0x3c]
call fcn.00422e40
push edi
add ebx, 0x14
mov edi, eax
mov dword [esp + 0x2c4], 1
call fcn.00423110
mov edi, dword [esp + 0x1c]
lea esi, [esp + 0x3c]
call fcn.004230a0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x40a550
cmp byte [esp + 0x58], 0
mov eax, 8
jne 0x40a535
mov edi, dword [esp + 0x78]
cmp dword [esp + 0x8c], eax
jae 0x40a535
lea edi, [esp + 0x78]
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x70], eax
jae 0x40a543
lea ebx, [esp + 0x5c]
mov ecx, dword [esp + 0x18]
push edi
add ecx, 4
call fcn.004040d0
lea esi, [esp + 0x3c]
call fcn.00402600
jmp 0x40a56f
push 0x10
push 0
push esi
call fcn.0042d266
add esp, 0xc
mov word [ebx + 0x144], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.0042c039
mov esp, ebp
pop ebp
ret 8