Function at 0x402075
Capabilities:
Create process on windows
Delete registry key
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x308
mov eax, dword [0x42197c]
xor eax, ebp
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x74]
push ebx
push esi
push edi
mov dword [ebp - 0x244], eax
mov eax, dword [ebp + 0x7c]
mov edx, ecx
mov dword [ebp - 0x240], eax
xor eax, eax
push 0x31
mov esi, dword [ebp + 0x70]
pop ecx
xor ebx, ebx
mov byte [ebp - 0x16c], bl
lea edi, [ebp - 0x16b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x18
xor eax, eax
pop ecx
mov byte [ebp - 0x40], bl
lea edi, [ebp - 0x3f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x10
xor eax, eax
pop ecx
lea edi, [ebp - 0x29c]
mov dword [ebp - 0x2a0], 0x44
rep stosd dword es:[edi], eax
add esi, 0xd6
lea eax, [edx + 0x168]
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x248], 0xf
mov esi, str.._name.ini
mov edi, 0x41a74c
jmp 0x40211d
mov edx, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x238]
add eax, 0xc
cmp word [eax - 0x7c], 1
jne 0x40247f
push 0x44
lea eax, [ebp - 0x2a0]
push ebx
push eax
call fcn.004058a0
push 0xc8
lea eax, [ebp - 0x16c]
push ebx
push eax
mov dword [ebp - 0x2a0], 0x44
mov dword [ebp - 0x274], 1
mov word [ebp - 0x270], 5
call fcn.004058a0
push 0x1e
lea eax, [ebp + 0x38]
push ebx
push eax
call fcn.004058a0
push 0xa
lea eax, [ebp + 0x58]
push ebx
push eax
call fcn.004058a0
push 0x64
lea eax, [ebp - 0x1d0]
push ebx
push eax
call fcn.004058a0
push 0x64
lea eax, [ebp - 0xa4]
push ebx
push eax
call fcn.004058a0
add esp, 0x48
push 0x64
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.004058a0
add esp, 0xc
push esi
push 0xa
lea eax, [ebp + 0x58]
push eax
push edi
push str.local
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x1e
lea eax, [ebp + 0x38]
push eax
push edi
push 0x41a9d0
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x64
lea eax, [ebp - 0x40]
push eax
push edi
push str.parameter
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x14
lea eax, [ebp + 0x24]
push eax
push edi
push str.nowinstall
push dword [ebp - 0x244]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x64
lea eax, [ebp - 0x234]
push eax
push edi
push str.copy
push dword [ebp - 0x244]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp word [ebp + 0x78], bx
je 0x402346
lea eax, [ebp - 0x234]
push eax
mov eax, dword [ebp - 0x23c]
push ebx
push 0x180
push dword [eax + 0x90]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp + 0x58]
push eax
push eax
lea eax, [ebp - 0x1d0]
push str.xcopy__s_d:_s__s_y
push eax
call fcn.004057d8
add esp, 0x10
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x2a0]
push eax
push dword [ebp - 0x240]
lea eax, [ebp - 0x1d0]
push ebx
push 0x20
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push 0xffffffffffffffff
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x44
lea eax, [ebp - 0x2a0]
push ebx
push eax
call fcn.004058a0
mov eax, dword [ebp - 0x238]
add eax, 0xffffff2a
push eax
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x16c]
push str._s_t_s_n
push eax
mov dword [ebp - 0x2a0], 0x44
mov dword [ebp - 0x274], 1
mov word [ebp - 0x270], 5
call fcn.004057d8
mov ecx, dword [ebp - 0x23c]
add esp, 0x1c
lea eax, [ebp - 0x16c]
push eax
add ecx, 0xc4
call fcn.0041486c
push 0x41a98c
push dword [ebp - 0x240]
call fcn.00405900
pop ecx
pop ecx
jmp 0x4023cc
mov eax, dword [ebp - 0x238]
push esi
push 0x64
add eax, 0xc
push eax
push edi
push str.regremove
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x238]
add eax, 0xc
push eax
push edi
call fcn.00405750
test eax, eax
pop ecx
pop ecx
je 0x402390
mov eax, dword [ebp - 0x238]
add eax, 0xc
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [ebp - 0x238]
add eax, 0xffffff2a
push eax
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x16c]
push str._s_t_s_n
push eax
call fcn.004057d8
mov ecx, dword [ebp - 0x23c]
add esp, 0x10
lea eax, [ebp - 0x16c]
push eax
add ecx, 0xc4
call fcn.0041486c
push esi
push ebx
push 0x41a97c
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x58]
push eax
push dword [ebp - 0x240]
lea eax, [ebp - 0xa4]
je 0x402402
push str.MSIEXEC.EXE__i___s_s_s___s
jmp 0x402407
push str.__s_s_s___s
push eax
call fcn.004057d8
mov eax, dword [ebp - 0x238]
mov word [eax - 0x72], 1
mov eax, dword [ebp - 0x23c]
add esp, 0x18
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x2a0]
push eax
push dword [ebp - 0x240]
lea eax, [ebp - 0xa4]
push ebx
push 0x20
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push 0xffffffffffffffff
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x23c]
add word [edx + 0x164], 5
movsx eax, word [edx + 0x164]
mov ecx, dword [ebp - 0x25c]
push eax
call fcn.00401935
mov eax, dword [ebp - 0x23c]
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
add dword [ebp - 0x238], 0x146
dec dword [ebp - 0x248]
jne 0x402117
mov ecx, dword [ebp + 0x64]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040526e
add ebp, 0x68
leave
ret 0x10