Function at 0x40241f
Capabilities:
Accept command line arguments
Copy file
Create process on windows
Get installed programs
Query or enumerate registry value
Set registry value

Disassembly:
push 0x200
push 0x40405a
call sub.KERNEL32.DLL_RtlZeroMemory
call sub.KERNEL32.DLL_GetCommandLineA
cmp byte [eax], 0x22
jne 0x402439
inc eax
push eax
push 0x40405a
call sub.KERNEL32.DLL_lstrcpyA
mov eax, 0x40405a
add eax, 0x200
dec eax
cmp byte [eax], 0x2f
je 0x402460
cmp eax, 0x40405a
jne 0x40244e
add eax, 0x200
dec eax
cmp byte [eax], 0x5c
je 0x40246e
cmp eax, 0x40405a
jne 0x402460
dec eax
inc eax
mov byte [eax], 0
push eax
push 0x40405a
push 0x40525a
call sub.KERNEL32.DLL_lstrcpyA
pop eax
inc eax
mov cl, byte [eax]
cmp cl, 0
je 0x40269f
cmp cl, 0x2f
jne 0x402483
inc eax
mov cl, byte [eax]
or cl, 0x20
cmp cl, 0x75
jne 0x4024a8
mov byte [0x404004], 3
jmp 0x4024cd
cmp cl, 0x66
jne 0x4024b6
mov byte [0x404004], 2
jmp 0x4024cd
cmp cl, 0x6d
jne 0x4024c4
mov byte [0x404004], 1
jmp 0x4024cd
cmp cl, 0x72
jne 0x40269f
inc eax
mov cl, byte [eax]
cmp cl, 0x3d
je 0x4024df
and cl, 3
mov byte [0x40607a], cl
inc eax
push eax
inc eax
cmp byte [eax], 0
je 0x4024ee
cmp byte [eax], 0x2c
jne 0x4024e0
mov byte [eax], 0
pop esi
inc esi
push eax
push esi
push 0x40535a
call sub.KERNEL32.DLL_lstrcpyA
cmp byte [0x404004], 0
jne 0x4026c7
pop eax
push eax
inc eax
cmp byte [eax], 0
je 0x4026c4
cmp byte [eax], 0x2c
jne 0x40250b
mov byte [eax], 0
pop esi
inc esi
push eax
push esi
push 0x405e5a
call sub.KERNEL32.DLL_lstrcpyA
pop eax
push eax
inc eax
cmp byte [eax], 0
je 0x40253b
cmp byte [eax], 0x2c
jne 0x40252d
mov byte [eax], 0
pop esi
inc esi
push eax
push esi
push 0x405e7a
call sub.KERNEL32.DLL_lstrcpyA
pop eax
push eax
inc eax
cmp byte [eax], 0
jne 0x40254b
pop esi
inc esi
push esi
cmp eax, esi
je 0x402577
push 0
push esi
push 0x405e7a
call sub.KERNEL32.DLL_CopyFileA
cmp eax, 1
jne 0x402577
pop eax
push eax
push 0x405e7a
call sub.KERNEL32.DLL_lstrcpyA
push eax
pop eax
push 0x40535a
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_s_is1
push 0x40405a
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0x404044
push 3
push 0
push 0x40405a
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
or eax, eax
jne 0x40269d
push 0x405e7a
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
push 0x405e7a
push 1
push 0
push str.UninsHs:_InstPack
push dword [0x404044]
call sub.advapi32.dll_RegSetValueExA
push str.UninsHs:_Language
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
push 0x405e5a
push 1
push 0
push str.UninsHs:_Language
push dword [0x404044]
call sub.advapi32.dll_RegSetValueExA
push 0x404008
push 0x40405a
push 0
push 0
push str.UninstallString
push dword [0x404044]
call sub.advapi32.dll_RegQueryValueExA
push 0x40405a
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
push 0x40405a
push 1
push 0
push str.UninsHs:_UninsStr
push dword [0x404044]
call sub.advapi32.dll_RegSetValueExA
and word [0x40607a], 0xff
or byte [0x40607a], 0x30
push 0x40535a
push 0x40607a
push 0x40525a
push str.__sUninsHs.exe___u_s_s
push 0x40405a
call sub.user32.dll_wsprintfA
add esp, 0x14
push 0x40405a
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
push 0x40405a
push 1
push 0
push str.UninstallString
push dword [0x404044]
call sub.advapi32.dll_RegSetValueExA
push dword [0x404044]
call sub.advapi32.dll_RegCloseKey
jmp 0x4026cd
push 0x40525a
push str.__sUnins000.exe_
push 0x40405a
call sub.user32.dll_wsprintfA
add esp, 0xc
push 1
push 0x40405a
call sub.KERNEL32.DLL_WinExec
jmp 0x4026cd
pop eax
jmp 0x4026cd
pop eax
call fcn.00402001
push 0
call sub.KERNEL32.DLL_ExitProcess