Function at 0x405230
Capabilities:
Get common file path

Disassembly:
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
sub esp, 0x658
push ebx
xor ebx, ebx
cmp ecx, 0x1a
jae 0x405254
mov dword [eax], 0x1a
xor eax, eax
pop ebx
add esp, 0x658
ret
push esi
push edi
mov edi, dword [esp + 0x670]
mov ecx, 6
mov esi, 0x412da4
rep movsd dword es:[edi], dword [esi]
push 0x104
lea eax, [esp + 0x364]
push eax
push ebx
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x464]
push ecx
lea edx, [esp + 0x568]
push edx
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x370]
push edx
call fcn.00408524
mov esi, dword [esp + 0x67c]
lea eax, [esp + 0x2c]
push eax
push esi
call fcn.00404380
mov edi, dword [esp + 0x694]
add esp, 0x1c
cmp edi, 3
je 0x405516
cmp edi, 2
je 0x405516
cmp edi, 4
je 0x405516
cmp edi, 1
jne 0x405345
add esi, 0x20
push esi
call fcn.00404e10
add esp, 4
test eax, eax
jne 0x405334
cmp dword [0x415380], ebx
je 0x40531a
push ebx
push 0x412fc8
push str.Failed_to_install_the_Modem_driver._nPlease_logon_with_administrative_rights_and_try_again_...
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push str._nFailed_to_install_the_Modem_driver._Please_logon_with_administrative_rights_and_try_again_..._n
push ebx
call fcn.00403960
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push 1
lea ecx, [esp + 0x10]
push ecx
push 0x4130a8
jmp 0x4056bd
cmp dword [0x415380], ebx
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x10]
push eax
lea edx, [esp + 0x5c]
push ecx
je 0x405365
push str._s_smdminstminst2k.dll
jmp 0x40536a
push str._s_sminst2k.dll
push edx
call fcn.0040800d
add esp, 0x10
push ebp
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x10], edi
jne 0x4053b9
mov eax, dword [0x415380]
test eax, eax
je 0x4053aa
push 0
push 0x4130ec
push str.Failed_to_load_the_Library_MInst2k.dll
push 0
call ebp
jmp 0x4053b9
push str._nFailed_to_load_the_Library_MInst2k.dll..._n
push 0
call fcn.00403960
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CheckUserAdmin
push edi
xor ebx, ebx
call esi
test eax, eax
je 0x4054fa
call eax
test eax, eax
jne 0x40540d
mov eax, dword [0x415380]
test eax, eax
je 0x4053f7
push 0
push 0x4131a8
push str.User_should_have_administrative_rights_to_install_the_driver._nPlease_logon_with_administrative_rights_and_try_again_...
push 0
call ebp
xor ebx, ebx
jmp 0x4054fa
push str._nUser_should_have_Administrator_rights_to_install_the_driver.__nPlease_logon_with_administrative_rights_and_try_again_..._n
push 0
call fcn.00403960
add esp, 8
xor ebx, ebx
jmp 0x4054fa
push str.Modem_Install_2k
push edi
call esi
mov ebp, eax
test ebp, ebp
jne 0x405422
xor ebx, ebx
jmp 0x4054fa
push 0x104
lea ecx, [esp + 0x264]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x4054fa
mov eax, str.infmdmgen.inf
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405444
lea edi, [esp + 0x260]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x405455
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x66c]
add esi, 0x20
push esi
lea edx, [esp + 0x264]
push str.MDMGEN192
push edx
call ebp
add esp, 0xc
test eax, eax
je 0x405491
cmp eax, 2
jne 0x4054f6
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xbb8
xor ebx, ebx
call edi
mov eax, dword [esp + 0x67c]
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0x413328
push esi
call fcn.004049d0
add esp, 0x10
cmp eax, 1
jne 0x4054f6
mov esi, dword [esp + 0x18]
push 0x1c200
lea edx, [esp + 0x20]
push edx
push esi
call fcn.004048f0
add esp, 0xc
cmp eax, 1
jne 0x4054ef
push esi
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
push 0xbb8
mov ebx, 1
call edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [esp + 0x10]
test edi, edi
pop ebp
je 0x4056fa
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push edi
lea eax, [esp + 0x10]
push eax
add esi, 0x20
push 0x412dc0
push esi
mov dword [esp + 0x24], ebx
call fcn.004049d0
add esp, 0x10
cmp eax, 1
jne 0x405570
mov esi, dword [esp + 0xc]
push 0x1c200
lea ecx, [esp + 0x1c]
push ecx
push esi
call fcn.004048f0
add esp, 0xc
cmp eax, 1
jne 0x4056f3
push esi
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push edi
call fcn.00404ee0
add esp, 4
test eax, eax
jne 0x4055bd
cmp dword [0x415380], ebx
je 0x4055a3
push ebx
push 0x412ddc
push str.Please_Install_DialUp_Networking_and_try_again_...
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push str._nPlease_Install_DialUp_Networking_and_try_again_..._n
push ebx
call fcn.00403960
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push edi
call fcn.00405000
add esp, 4
test eax, eax
mov eax, dword [0x415380]
jne 0x40560b
cmp eax, ebx
je 0x4055f1
push ebx
push 0x412e64
push str.Please_Install_DialUp_Adapter_and_try_again_...
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push str._nPlease_Install_DialUp_Adapter_and_try_again_..._n
push ebx
call fcn.00403960
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
cmp eax, ebx
lea ecx, [esp + 0x58]
lea edx, [esp + 0x15c]
push esi
lea eax, [esp + 0x14]
je 0x405632
push 0x412ee4
push 0x412ef0
push edx
push eax
push str._s_smdminst_s__s__s
jmp 0x405643
push str.mdmgen192
push str.MINST9X.EXE
push edx
push eax
push str._s_s_s__s__s
push ecx
call fcn.0040800d
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x5c]
push 0x415384
push eax
call fcn.00404d50
add esp, 0xc
test eax, eax
jne 0x4056a7
cmp dword [0x415380], ebx
je 0x40568d
push ebx
push 0x412f44
push str.Failed_to_install_the_Modem_driver.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push str._nFailed_to_install_the_Modem_driver._n
push ebx
call fcn.00403960
add esp, 8
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
push edi
lea ecx, [esp + 0x10]
push ecx
push 0x412fac
push esi
call fcn.004049d0
add esp, 0x10
cmp eax, 1
jne 0x4056fa
mov esi, dword [esp + 0xc]
lea edx, [esp + 0x18]
push 0x1c200
push edx
push esi
call fcn.004048f0
add esp, 0xc
cmp eax, 1
jne 0x4056ee
push esi
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov ebx, 1
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov eax, ebx
pop ebx
add esp, 0x658
ret