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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4416c6
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 0x446f08
push edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], 0
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a2bf
lea ebx, [ebx]
cmp dword [eax*8 + 0x454898], 1
je 0x40a2a5
inc eax
cmp eax, 0xe
jb 0x40a290
jmp 0x40a803
mov eax, dword [eax*8 + 0x45489c]
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_SETUPMODE
call fcn.00404120
jmp 0x40a803
push 0x446f04
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a304
mov ecx, 6
cmp dword [eax*8 + 0x454898], ecx
je 0x40a2ea
inc eax
cmp eax, 0xe
jb 0x40a2d6
jmp 0x40a803
mov ecx, dword [eax*8 + 0x45489c]
push ecx
lea ecx, [ebx + 4]
mov ebx, str.IIF_SETUPMODE
call fcn.00404120
jmp 0x40a803
push 0x446f00
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a31f
mov byte [ebx + 0x2c], 1
jmp 0x40a803
push str.drvsource
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a352
lea edi, [esp + 0xa4]
call fcn.00418160
mov edx, edi
lea ecx, [ebx + 4]
push edx
mov ebx, str.IIF_DRVFOLDER
call fcn.00404120
jmp 0x40a803
push 0x446ee4
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a39d
push ebx
lea ecx, [eax + 6]
call fcn.0040bb60
lea edi, [esp + 0xa4]
call fcn.00418160
mov ecx, edi
call fcn.004181d0
test al, al
je 0x40a58f
mov eax, edi
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_INSTALLFOLDER
call fcn.00404120
jmp 0x40a803
push str.extract
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a3e8
push ebx
lea ecx, [eax + 2]
call fcn.0040bb60
lea edi, [esp + 0xa4]
call fcn.00418160
mov ecx, edi
call fcn.004181d0
test al, al
je 0x40a58f
mov ecx, edi
push ecx
lea ecx, [ebx + 4]
mov ebx, str.IIF_EXTRACTFOLDER
call fcn.00404120
jmp 0x40a803
push 0x446ec8
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a411
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOICC
call fcn.00404120
jmp 0x40a803
push 0x446ec4
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
je 0x40a7ef
push 0x4487a0
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
je 0x40a7ef
push str.nodrv
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a479
lea esi, [ebx + 4]
push 0x4462c0
mov ebx, 0x4487a4
mov ecx, esi
call fcn.00404120
push 0x4462c0
mov ebx, str.IIF_SKIPHWCHECK
mov ecx, esi
call fcn.00404120
jmp 0x40a803
push str.noinstall
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a4ab
push ebx
lea ecx, [eax + 3]
call fcn.0040bb60
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOINSTALL
call fcn.00404120
jmp 0x40a803
push 0x446e40
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a524
lea edi, [esp + 0xa4]
call fcn.00418160
mov edx, edi
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp word [eax], 0
je 0x40a4f6
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea ecx, [ebx + 0x84]
push ecx
call fcn.00401970
mov edx, edi
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [esp + 0xa4]
call fcn.004181d0
test al, al
je 0x40a58f
lea eax, [esp + 0xa4]
lea ecx, [ebx + 4]
push eax
mov ebx, str.IIF_LOGFOLDER
call fcn.00404120
jmp 0x40a803
push 0x446e3c
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
je 0x40a5ae
push 0x446e34
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a55f
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_SIMULATE
call fcn.00404120
jmp 0x40a803
push 0x446e50
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a59c
mov ecx, esi
call fcn.004181d0
test al, al
je 0x40a58f
lea ecx, [ebx + 4]
push esi
mov ebx, str.IIF_INSTALLFOLDER
call fcn.00404120
jmp 0x40a803
mov dword [esp + 0x14], 0x4e29
jmp 0x40a803
push 0x446650
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a5ba
mov ecx, ebx
call fcn.0040bba0
jmp 0x40a803
push 0x446e18
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a5da
push ebx
lea ecx, [eax + 4]
call fcn.0040bb60
jmp 0x40a803
push 0x446e14
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a694
push esi
lea edi, [ebx + 4]
push edi
call fcn.004042c0
test al, al
je 0x40a687
mov ebx, str.EXTRACTDRIVERS
call fcn.004040e0
test al, al
je 0x40a803
push ebx
call fcn.00404030
lea ecx, [esp + 0x20]
call fcn.004062a0
mov dword [esp + 0x2c0], 0
cmp dword [esp + 0x34], 8
mov esi, dword [esp + 0x20]
jae 0x40a63d
lea esi, [esp + 0x20]
lea edi, [esp + 0xa4]
call fcn.00418160
mov ecx, edi
call fcn.004181d0
test al, al
je 0x40a671
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, 5
call fcn.0040bb60
lea esi, [esp + 0x20]
call fcn.00402d60
jmp 0x40a803
lea esi, [esp + 0x20]
mov dword [esp + 0x14], 0x4e29
call fcn.00402d60
jmp 0x40a803
mov dword [esp + 0x14], 0x667
jmp 0x40a803
push 0x446e54
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a6bd
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, 0x4462c4
call fcn.00404120
jmp 0x40a803
push 0x44665c
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a6dd
push ebx
lea ecx, [eax + 0xc]
call fcn.0040bb60
jmp 0x40a803
push 0x446e20
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a6fd
push ebx
lea ecx, [eax + 0xd]
call fcn.0040bb60
jmp 0x40a803
push str.nooscheck
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a726
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NOOSCHECK
call fcn.00404120
jmp 0x40a803
push str.nodncheck
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a74f
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_NODNCHECK
call fcn.00404120
jmp 0x40a803
push str.nohwcheck
push edi
call fcn.0042bb5d
add esp, 8
test eax, eax
jne 0x40a778
lea ecx, [ebx + 4]
push 0x4462c0
mov ebx, str.IIF_SKIPHWCHECK
call fcn.00404120
jmp 0x40a803
lea eax, [esp + 0x3c]
call fcn.00421ca0
push edi
add ebx, 0x14
mov edi, eax
mov dword [esp + 0x2c4], 1
call fcn.00421f70
mov edi, dword [esp + 0x1c]
lea esi, [esp + 0x3c]
call fcn.00421f00
mov dword [esp + 0x14], eax
test eax, eax
jne 0x40a7e4
cmp byte [esp + 0x58], 0
mov eax, 8
jne 0x40a7c9
mov edi, dword [esp + 0x78]
cmp dword [esp + 0x8c], eax
jae 0x40a7c9
lea edi, [esp + 0x78]
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x70], eax
jae 0x40a7d7
lea ebx, [esp + 0x5c]
mov ecx, dword [esp + 0x18]
push edi
add ecx, 4
call fcn.00404120
lea esi, [esp + 0x3c]
call fcn.00402650
jmp 0x40a803
push 0x10
push 0
push esi
call fcn.0042cb66
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.0042b939
mov esp, ebp
pop ebp
ret 8