Function at 0x4019b0
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x444
mov edx, dword [0x4106b0]
mov eax, dword [str.ltsetup3.exe]
mov ecx, dword [0x4106ac]
mov dword [esp + 0x1c], edx
mov edx, dword [0x41069c]
mov dword [esp + 0x14], eax
mov al, byte [0x4106b4]
mov dword [esp + 0x18], ecx
mov ecx, dword [str.agsetup3.exe]
mov dword [esp + 0x28], edx
mov edx, dword [str.ltmsg.exe]
push ebx
mov byte [esp + 0x24], al
mov eax, dword [0x4106a0]
mov dword [esp + 0x28], ecx
mov cl, byte [0x4106a4]
push ebp
push esi
mov dword [esp + 0xc], edx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [esp + 0x3c], eax
mov eax, dword [0x410690]
mov byte [esp + 0x40], cl
mov cx, word [0x410694]
lea edx, [esp + 0x44]
push 0x415080
push edx
mov dword [esp + 0x1c], eax
mov word [esp + 0x20], cx
mov dword [esp + 0x28], 0
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x44]
push 0x410350
push eax
call esi
lea ecx, [esp + 0x44]
lea edx, [esp + 0x144]
push ecx
push edx
call edi
mov eax, dword [0x410220]
mov edi, 4
cmp eax, edi
je 0x401a7b
lea eax, [esp + 0x24]
lea ecx, [esp + 0x44]
push eax
push ecx
jmp 0x401a85
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
call esi
lea ecx, [esp + 0x10]
lea edx, [esp + 0x144]
push ecx
push edx
call esi
mov al, byte [0x41600c]
cmp al, 3
jne 0x401c53
push 3
call fcn.004073e0
mov al, byte [0x416340]
add esp, 4
test al, al
je 0x401ad9
push 0
push 0x416340
lea eax, [esp + 0x18]
push 0x410688
lea ecx, [esp + 0x150]
push eax
push ecx
push 0
call fcn.00409e30
add esp, 0x18
mov eax, dword [0x410220]
push 0
cmp eax, edi
push str.remove
je 0x401af5
lea edx, [esp + 0x2c]
lea eax, [esp + 0x4c]
push edx
push eax
jmp 0x401aff
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
push edx
push 0
call fcn.00409e30
add esp, 0x14
call fcn.00409890
mov eax, dword [0x410220]
push eax
call fcn.00408820
add esp, 4
call fcn.00406cd0
push 0x415ce0
call fcn.00407960
add esp, 4
push 0x416020
call fcn.00407960
add esp, 4
call fcn.00407d00
call fcn.00408100
push 2
call fcn.00407e60
add esp, 4
call fcn.00403840
call fcn.00402d50
call fcn.00403870
mov eax, dword [0x414434]
test eax, eax
jne 0x401bad
mov eax, dword [0x410220]
push 0
cmp eax, edi
push str.refresh
je 0x401b92
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x4c]
push ecx
push edx
push 0
call fcn.00409e30
add esp, 0x14
call fcn.004075d0
jmp 0x401bb2
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x4c]
push eax
push ecx
push 0
call fcn.00409e30
add esp, 0x14
call fcn.004075d0
jmp 0x401bb2
call fcn.00403360
mov eax, dword [0x414458]
test eax, eax
je 0x401e83
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.LTSETUP2.DLL
call esi
test eax, eax
mov dword [0x414404], eax
jne 0x401be9
push str.AGSETUP2.DLL
call esi
test eax, eax
mov dword [0x414404], eax
je 0x40276c
push 0x4152a0
push str.CABNAME
call fcn.00408720
add esp, 8
push 0x415720
push str.CABPATH
call fcn.00408720
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 8
push 0x4152a0
call esi
test eax, eax
je 0x401e83
push 0x415720
call esi
test eax, eax
je 0x401e83
push 0x415720
push 0x4152a0
call fcn.00408600
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
cmp al, 4
je 0x40242d
cmp al, 6
je 0x40242d
cmp al, 7
je 0x40242d
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp al, 1
jne 0x402056
push 1
call fcn.004073e0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
add esp, 4
push str.LTSETUP2.DLL
call edi
test eax, eax
mov dword [0x414404], eax
jne 0x401cad
push str.AGSETUP2.DLL
call edi
test eax, eax
mov dword [0x414404], eax
je 0x40276c
push str.NTGetINF
push eax
call esi
mov dword [esp + 0x1c], eax
mov eax, dword [0x41443c]
cmp eax, 1
jne 0x401ce0
mov edx, dword [0x414404]
push str.RemoveRetailNTService
push edx
call esi
mov ebp, eax
mov eax, dword [0x414404]
push str.RemoveRetailModem
push eax
jmp 0x401cfc
mov ecx, dword [0x414404]
push str.RemoveNTService
push ecx
call esi
mov edx, dword [0x414404]
push str.RemoveModem
mov ebp, eax
push edx
call esi
mov ebx, eax
mov eax, dword [0x414404]
push str.RemovePort
push eax
call esi
mov ecx, dword [0x414404]
push str.GetInfByPci
push ecx
mov edi, eax
call esi
mov edx, dword [0x414404]
push str.CopyInfFiles
push edx
mov dword [0x4143c4], eax
call esi
mov dword [0x4143d8], eax
mov eax, dword [0x414404]
push str.FindComFromInfFile
push eax
call esi
mov ecx, dword [0x414404]
push str.DeleteLTModemINFFile
push ecx
mov dword [0x4143e4], eax
call esi
mov edx, dword [0x414404]
push str.SetModemType
push edx
mov dword [0x4143e8], eax
call esi
mov ecx, dword [esp + 0x1c]
mov dword [0x414464], eax
test ecx, ecx
je 0x40276c
test ebp, ebp
je 0x40276c
test edi, edi
je 0x40276c
test ebx, ebx
je 0x40276c
mov ecx, dword [0x4143c4]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143d8]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143e4]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143e8]
test ecx, ecx
je 0x40276c
test eax, eax
je 0x40276c
call fcn.00403dc0
cmp eax, 1
jne 0x4023fd
mov al, byte [0x416340]
test al, al
je 0x401e0b
push 0
push 0x416340
lea eax, [esp + 0x18]
push 0x410688
lea ecx, [esp + 0x150]
push eax
push ecx
push 0
call fcn.00409e30
add esp, 0x18
mov edx, dword [0x410220]
push edx
call dword [0x414464]
mov eax, dword [0x410220]
add esp, 4
push eax
call fcn.00408820
add esp, 4
call fcn.004056d0
push 1
mov dword [0x4155e4], eax
call fcn.004073e0
add esp, 4
call edi
push 1
call fcn.004073e0
add esp, 4
call fcn.00403b60
push 1
call fcn.004073e0
add esp, 4
call ebx
call fcn.00409890
push 1
call fcn.004073e0
add esp, 4
call ebp
test eax, eax
jne 0x401e93
push 1
call fcn.004073e0
add esp, 4
mov dword [0x41444c], 1
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
call fcn.00403180
lea ecx, [esp + 0x20]
mov byte [0x4151a0], 0
push ecx
push 0x4151a0
call dword [0x4143c4]
add esp, 8
push 1
call fcn.004073e0
mov eax, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x401ef0
mov eax, dword [0x414410]
test eax, eax
je 0x401ef0
push 0
push str.Debug
push str.NotFindHWid
push 0
call fcn.00404fa0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
call fcn.00403140
push 0x415e00
push 0x4169c0
push 0x415be0
push 5
call dword [esp + 0x2c]
add esp, 0x10
test eax, eax
jne 0x401f32
push eax
push str.Debug
push str.GetINF_Failed
push eax
call fcn.00404fa0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
push 1
call fcn.004073e0
add esp, 4
call fcn.00403870
push 1
call fcn.004073e0
mov eax, dword [0x4155e4]
add esp, 4
test eax, eax
jne 0x401f76
push 1
call fcn.004073e0
add esp, 4
call fcn.00404fe0
test eax, eax
jne 0x401f76
push 1
call fcn.004073e0
add esp, 4
call fcn.00405a00
call fcn.004052f0
test eax, eax
jne 0x401fa0
push eax
push str.Debug
push str.NTInstallModemDevice_Failed
push eax
call fcn.00404fa0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
push 1
call fcn.004073e0
add esp, 4
call fcn.004053c0
test eax, eax
jne 0x401fd4
push eax
push str.Debug
push str.AddOldAttachedtoKey_Failed
push eax
call fcn.00404fa0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
call fcn.004045f0
mov eax, dword [0x41440c]
test eax, eax
je 0x401fe7
call fcn.00404e10
mov eax, dword [0x414458]
test eax, eax
je 0x402042
push 0x4152a0
push str.CABNAME
call fcn.00408720
add esp, 8
push 0x415720
push str.CABPATH
call fcn.00408720
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 8
push 0x4152a0
call edi
test eax, eax
je 0x402042
push 0x415720
call edi
test eax, eax
je 0x402042
push 0x415720
push 0x4152a0
call fcn.00408600
add esp, 8
push 0x6e
call fcn.004073e0
add esp, 4
call fcn.00403360
mov al, byte [0x41600c]
cmp al, 2
jne 0x40241b
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.LTSETUP1.DLL
call edi
push str.LTSETUP2.DLL
mov dword [0x414400], eax
call edi
mov ecx, dword [0x414400]
mov dword [0x414404], eax
test ecx, ecx
je 0x40208a
test eax, eax
jne 0x4020b8
push str.AGSETUP1.DLL
call edi
push str.AGSETUP2.DLL
mov dword [0x414400], eax
call edi
mov ecx, dword [0x414400]
mov dword [0x414404], eax
test ecx, ecx
je 0x40276c
test eax, eax
je 0x40276c
mov edi, 1
push edi
call fcn.004073e0
mov edx, dword [0x414400]
add esp, 4
push str.UpdateNT5Device
push edx
call esi
mov dword [0x4143c8], eax
mov eax, dword [0x414404]
push str.GetHardWareId
push eax
call esi
mov ecx, dword [0x414404]
push str.GetNT5Inf
push ecx
mov dword [0x4143cc], eax
call esi
mov edx, dword [0x414404]
push str.RefreshWin2K
push edx
mov dword [0x4143d0], eax
call esi
mov dword [0x4143d4], eax
mov eax, dword [0x414404]
push str.CopyInfFiles
push eax
call esi
mov ecx, dword [0x414404]
push str.DeleteLTModemINFFile
push ecx
mov dword [0x4143d8], eax
call esi
mov edx, dword [0x414404]
push str.CopyNT5Inf
push edx
mov dword [0x4143e8], eax
call esi
mov dword [0x4143f0], eax
mov eax, dword [0x414404]
push str.SetModemType
push eax
call esi
mov ecx, dword [0x414404]
push str.GetNextHardWareId
push ecx
mov dword [0x414464], eax
call esi
mov ecx, dword [0x4143c8]
mov dword [0x4143f4], eax
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143cc]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143d0]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143d4]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143d8]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143e8]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143f0]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x414464]
test ecx, ecx
je 0x40276c
test eax, eax
je 0x40276c
push 2
call fcn.004073e0
add esp, 4
push 0x4148c0
push 0x4154e0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.driver_cache
push 0x4154e0
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x410220]
cmp eax, edi
jne 0x402220
push str.ltmdmnt.sys
jmp 0x40223b
cmp eax, 2
je 0x402236
cmp eax, 3
je 0x402236
cmp eax, 4
jne 0x402248
push str.agrsm.sys
jmp 0x40223b
push str.ltsm.sys
push 0x4154e0
call fcn.00403040
add esp, 8
push 0x415ce0
call fcn.00407960
add esp, 4
call fcn.00403dc0
cmp eax, edi
jne 0x4023fd
mov edx, dword [0x410220]
push edx
call dword [0x414464]
mov eax, dword [0x410220]
add esp, 4
push eax
call fcn.00408820
mov eax, dword [0x41443c]
add esp, 4
cmp eax, edi
jne 0x402299
mov dword [0x414418], edi
call fcn.00403870
jmp 0x40238c
mov al, byte [0x416340]
test al, al
je 0x4022c5
push 0
push 0x416340
lea ecx, [esp + 0x18]
push 0x410688
lea edx, [esp + 0x150]
push ecx
push edx
push 0
call fcn.00409e30
add esp, 0x18
push 2
call fcn.004073e0
add esp, 4
lea eax, [esp + 0x244]
push eax
call dword [0x4143cc]
add esp, 4
test eax, eax
je 0x402373
push 4
call fcn.004073e0
add esp, 4
call fcn.00409890
lea ecx, [esp + 0x244]
push ecx
call fcn.00406110
add esp, 4
test eax, eax
jne 0x402334
lea edx, [esp + 0x244]
push edx
call dword [0x4143f4]
add esp, 4
test eax, eax
je 0x40235d
lea eax, [esp + 0x244]
push eax
call fcn.00406110
add esp, 4
test eax, eax
je 0x402354
push 4
call fcn.004073e0
add esp, 4
call fcn.00403870
push 0x6e
call fcn.004073e0
add esp, 4
call fcn.00403360
jmp 0x402391
push 0
push str.Update_second_device_failed
jmp 0x402364
push 0
push str.UpdateDevice_failed
push str.PerformInstall
push 0
call fcn.00404fa0
add esp, 0x10
mov dword [0x414418], edi
call fcn.00403870
push edi
call fcn.00407e60
add esp, 4
call fcn.00409890
call fcn.00405b40
mov eax, dword [0x414458]
test eax, eax
je 0x402420
push 0x4152a0
push str.CABNAME
call fcn.00408720
add esp, 8
push 0x415720
push str.CABPATH
call fcn.00408720
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 8
push 0x4152a0
call esi
test eax, eax
je 0x402420
push 0x415720
call esi
test eax, eax
je 0x402420
push 0x415720
push 0x4152a0
call fcn.00408600
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
push 0x30
push 0
push str.You_must_have_administrator_privileges_to_install_the_modem.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
mov edi, 1
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.LTSETUP2.DLL
call esi
test eax, eax
mov dword [0x414404], eax
jne 0x402457
push str.AGSETUP2.DLL
call esi
test eax, eax
mov dword [0x414404], eax
je 0x40276c
push 1
call fcn.004073e0
mov ecx, dword [0x414404]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 4
push str.RefreshWin2K
push ecx
call esi
mov dword [0x4143d4], eax
mov eax, dword [0x41443c]
cmp eax, 1
jne 0x402492
mov edx, dword [0x414404]
push str.RemoveRetailModem
push edx
jmp 0x40249d
mov eax, dword [0x414404]
push str.RemoveModem
push eax
call esi
mov ecx, dword [0x414404]
push str.DeleteOtherDevice
push ecx
mov edi, eax
call esi
mov edx, dword [0x414404]
push str.CopyInfFiles
push edx
mov dword [0x4143dc], eax
call esi
mov dword [0x4143d8], eax
mov eax, dword [0x414404]
push str.WDMDeleteDevice
push eax
call esi
mov ecx, dword [0x414404]
push str.DeleteLTModemINFFile
push ecx
mov dword [0x4143e0], eax
call esi
mov edx, dword [0x414404]
push str.RemoveDisabledModem
push edx
mov dword [0x4143e8], eax
call esi
mov dword [0x4143ec], eax
mov eax, dword [0x414404]
push str.SetModemType
push eax
call esi
mov ecx, dword [0x4143d8]
mov dword [0x414464], eax
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143e0]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143e8]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143d4]
test ecx, ecx
je 0x40276c
test edi, edi
je 0x40276c
mov ecx, dword [0x4143dc]
test ecx, ecx
je 0x40276c
mov ecx, dword [0x4143ec]
test ecx, ecx
je 0x40276c
test eax, eax
je 0x40276c
mov ebx, 1
push ebx
call fcn.004073e0
mov eax, dword [0x414428]
add esp, 4
test eax, eax
jne 0x402599
mov eax, dword [0x41442c]
test eax, eax
jne 0x4026c9
mov ecx, dword [0x410220]
push ecx
call dword [0x414464]
mov edx, dword [0x410220]
add esp, 4
push edx
call fcn.00408820
mov eax, dword [0x41443c]
add esp, 4
cmp eax, ebx
jne 0x4025f1
cmp byte [0x41600c], 7
jne 0x4025dc
push str.ltmdmntr.sys
push 0x4147a0
call fcn.00403040
add esp, 8
call edi
push ebx
call fcn.004073e0
add esp, 4
call fcn.00403840
jmp 0x402680
mov al, byte [0x416340]
test al, al
je 0x40261c
push 0
push 0x416340
lea eax, [esp + 0x18]
push 0x410688
lea ecx, [esp + 0x150]
push eax
push ecx
push ebx
call fcn.00409e30
add esp, 0x18
call fcn.00406420
call edi
call dword [0x4143e0]
call fcn.00407440
call dword [0x4143ec]
push 0x415ce0
call fcn.00407960
add esp, 4
push 0x416020
call fcn.00407960
add esp, 4
call fcn.00407d00
push ebx
call fcn.004073e0
add esp, 4
call dword [0x4143dc]
call fcn.00403840
call fcn.00406cd0
call fcn.00408100
push 3
call fcn.00407e60
add esp, 4
call fcn.00409890
mov eax, dword [0x414428]
test eax, eax
je 0x4026b3
mov eax, dword [0x41442c]
test eax, eax
jne 0x4026c9
push 0x6e
call fcn.004073e0
add esp, 4
call fcn.00403360
push 0
call fcn.00403ed0
add esp, 4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, dword [0x41442c]
test eax, eax
jne 0x4026c9
mov eax, dword [0x414428]
test eax, eax
jne 0x40275f
mov al, byte [0x41600c]
cmp al, 7
je 0x4026e5
cmp al, 6
jne 0x4026de
cmp dword [0x41441c], ebx
je 0x4026e5
call fcn.00402d50
jmp 0x4026ea
call fcn.004065d0
call fcn.00403870
mov eax, dword [0x414434]
test eax, eax
jne 0x4026ff
call fcn.00407950
jmp 0x402704
call fcn.00403360
mov eax, dword [0x414458]
test eax, eax
je 0x40275f
push 0x4152a0
push str.CABNAME
call fcn.00408720
add esp, 8
push 0x415720
push str.CABPATH
call fcn.00408720
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 8
push 0x4152a0
call esi
test eax, eax
je 0x40275f
push 0x415720
call esi
test eax, eax
je 0x40275f
push 0x415720
push 0x4152a0
call fcn.00408600
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x444
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x444
ret