Function at 0x401d20
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1354
call fcn.00403a90
push ebx
push esi
push edi
xor esi, esi
push 0x206
lea eax, [ebp - 0xa5a]
push esi
push eax
mov word [ebp - 0xa5c], si
call fcn.004036f0
push 0x206
lea ecx, [ebp - 0xc62]
push esi
push ecx
mov word [ebp - 0xc64], si
call fcn.004036f0
mov eax, dword [ebp + 8]
lea edx, [ebp - 8]
push edx
push eax
call fcn.00401210
mov ebx, dword [ebp - 8]
add esp, 0x20
cmp ebx, esi
jne 0x401dc3
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x100
lea ecx, [ebp - 0x654]
push ecx
mov esi, eax
push 0x6d
push esi
call edi
push 0x100
lea edx, [ebp - 0x854]
push edx
push 0x6e
push esi
call edi
push 0
lea eax, [ebp - 0x854]
push eax
lea ecx, [ebp - 0x654]
push ecx
push 0
jmp 0x402285
call fcn.00402a90
test eax, eax
je 0x401e13
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x100
lea edx, [ebp - 0x854]
push edx
mov esi, eax
push 0x6f
push esi
call edi
push 0x100
lea eax, [ebp - 0x654]
push eax
push 0x70
push esi
call edi
push 0
lea ecx, [ebp - 0x654]
push ecx
lea edx, [ebp - 0x854]
push edx
push ebx
jmp 0x402285
call fcn.004013e0
call fcn.00402a30
push eax
push str._swin32_setup.exe
lea eax, [ebp - 0xa5c]
push 0x104
push eax
call fcn.00403230
call fcn.00402a30
push eax
push str._swin64_setup.exe
lea ecx, [ebp - 0xc64]
push 0x104
push ecx
call fcn.00403230
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
add esp, 0x20
lea edx, [ebp - 0xeb4]
push edx
lea eax, [ebp - 0xa5c]
push eax
call esi
lea ecx, [ebp - 0x1104]
push ecx
lea edx, [ebp - 0xc64]
push edx
mov ebx, eax
call esi
cmp ebx, 0xffffffff
mov edi, eax
jne 0x402132
cmp edi, ebx
jne 0x402132
xor edi, edi
push 0x206
lea eax, [ebp - 0x24a]
push edi
push eax
mov word [ebp - 0x24c], di
call fcn.004036f0
push 0x206
lea ecx, [ebp - 0x452]
push edi
push ecx
mov word [ebp - 0x454], di
call fcn.004036f0
add esp, 0x18
call fcn.00402b90
push eax
call fcn.00402a30
push eax
push str._s_s
lea edx, [ebp - 0x24c]
push 0x104
push edx
call fcn.00403230
add esp, 0x14
lea eax, [ebp - 0x1354]
push eax
lea ecx, [ebp - 0x24c]
push ecx
call esi
mov esi, eax
call fcn.00402b90
cmp esi, ebx
push eax
jne 0x401f2d
call fcn.00402a30
push eax
push str._s_bin_smwinstall.dll
lea edx, [ebp - 0x454]
push 0x104
push edx
call fcn.00403230
push edi
call fcn.00402a10
add esp, 0x18
jmp 0x401f59
call fcn.00402b90
push eax
call fcn.00402a30
push eax
push str._s_s_bin_smwinstall.dll
lea eax, [ebp - 0x454]
push 0x104
push eax
call fcn.00403230
push 1
call fcn.00402a10
add esp, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x40]
push ecx
lea edx, [ebp - 0x454]
push edx
call fcn.00403e6f
add esp, 8
cmp eax, 0xffffffff
jne 0x401fca
call fcn.004029a0
test eax, eax
jne 0x401fca
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
mov esi, eax
push 0x100
lea eax, [ebp - 0x854]
push eax
push 0x71
push esi
call ebx
push 0x100
lea ecx, [ebp - 0x654]
push ecx
push 0x72
push esi
call ebx
mov ecx, dword [ebp - 8]
push edi
lea edx, [ebp - 0x654]
push edx
lea eax, [ebp - 0x854]
push eax
push ecx
jmp 0x402285
call fcn.00403260
test eax, eax
jne 0x401fd8
call fcn.00403350
call fcn.004029a0
test eax, eax
jne 0x4020e4
push 0x206
lea edx, [ebp - 0x452]
push edi
push edx
mov word [ebp - 0x454], di
call fcn.004036f0
add esp, 0xc
call fcn.00402a20
test eax, eax
je 0x402031
call fcn.00402b90
push eax
call fcn.00402a30
push eax
push str._s_smatinfoxml.enc
lea eax, [ebp - 0x454]
push 0x104
push eax
call fcn.00403230
add esp, 0x14
jmp 0x402050
call fcn.00402a30
push eax
push 0x4145e0
lea ecx, [ebp - 0x454]
push 0x104
push ecx
call fcn.00403230
add esp, 0x10
lea edx, [ebp - 0x40]
push edx
lea eax, [ebp - 0x454]
push eax
call fcn.00403e6f
add esp, 8
cmp eax, 0xffffffff
je 0x402075
call fcn.004029e0
test eax, eax
jne 0x402075
push 1
jmp 0x4020dc
call fcn.00402a20
test eax, eax
je 0x4020cd
push 0x206
lea ecx, [ebp - 0x24a]
push edi
push ecx
mov word [ebp - 0x24c], di
call fcn.004036f0
add esp, 0xc
call fcn.00402b90
push eax
call fcn.00402a30
push eax
push str._s_s
lea edx, [ebp - 0x24c]
push 0x104
push edx
call fcn.00403230
lea eax, [ebp - 0x24c]
push eax
call fcn.00402be0
add esp, 0x18
jmp 0x4020db
call fcn.00402a30
push eax
call fcn.00402be0
add esp, 4
push edi
call fcn.004029b0
add esp, 4
call fcn.004029a0
test eax, eax
jne 0x40211f
call fcn.00401900
test eax, eax
je 0x402100
call fcn.00401700
jmp 0x40228b
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401bd0
add esp, 4
call fcn.00402b50
call fcn.00402bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.00401700
call fcn.00402bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
push ebx
call esi
push edi
call esi
call fcn.00401070
test eax, eax
je 0x402152
lea edi, [ebp - 0xc64]
mov dword [ebp - 0x10], edi
jmp 0x40215d
lea edx, [ebp - 0xa5c]
mov dword [ebp - 0x10], edx
mov edi, edx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
test eax, eax
je 0x402175
lea ecx, [ebp + 8]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
add edx, 1
push 4
push edx
call fcn.00403d33
add esp, 8
push edi
mov ebx, eax
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [ebx], eax
mov eax, 1
cmp dword [ebp + 8], eax
mov dword [ebp - 4], eax
jle 0x402204
mov esi, dword [ebp - 0xc]
mov edi, ebx
add esi, 4
sub edi, dword [ebp - 0xc]
lea esp, [esp]
mov eax, dword [esi]
push 1
push 0x4145dc
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
mov ecx, dword [esi]
push ecx
je 0x4021e7
push str.__s_
lea edx, [ebp - 0x24c]
push 0x105
push edx
call fcn.00403230
add esp, 0x10
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [edi + esi], eax
mov eax, dword [ebp - 4]
add eax, 1
add esi, 4
cmp eax, dword [ebp + 8]
mov dword [ebp - 4], eax
jl 0x4021b0
mov edi, dword [ebp - 0x10]
push ebx
push edi
call fcn.00403bc8
xor esi, esi
add esp, 8
cmp dword [ebp + 8], esi
mov dword [ebp - 4], eax
jle 0x402234
jmp 0x402220
mov edx, dword [ebx + esi*4]
push edx
call fcn.00403b3a
add esi, 1
add esp, 4
cmp esi, dword [ebp + 8]
jl 0x402220
push ebx
call fcn.00403b3a
mov eax, dword [ebp - 0xc]
add esp, 4
test eax, eax
je 0x40224b
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 4], 0xffffffff
jne 0x402295
call fcn.00403af6
mov eax, dword [eax]
push edi
push eax
push str.exec_error__d_attempting_to_run__s
lea ecx, [ebp - 0x654]
push 0x100
push ecx
call fcn.00403230
mov eax, dword [ebp - 8]
add esp, 0x14
push 0
push str.exec_error
lea edx, [ebp - 0x654]
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call fcn.00402ba0
add esp, 4
call fcn.00402bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10