Function at 0x404380
Capabilities:
Create process on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41ded8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x184
push ebx
push esi
mov ebx, ecx
push edi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x15], 0
call fcn.00419bc8
mov eax, dword [0x42ad0c]
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], eax
mov ecx, dword [ebx + 0xdc]
mov byte [ebp - 4], 2
mov eax, dword [ecx + 0x14]
lea ecx, [ebp - 0x24]
push eax
call fcn.00415644
mov edx, dword [0x42ad0c]
mov dword [ebp - 0x14], edx
push str.MsiExec.exe
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 3
call fcn.00415644
push str.__i__
lea ecx, [ebp - 0x14]
call fcn.00415897
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x14]
push eax
call fcn.004158d3
push 0x429934
lea ecx, [ebp - 0x14]
call fcn.00415897
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x33]
test al, al
je 0x404457
push str.INTEGRATEDINSTALLER
lea ecx, [ebp - 0x14]
call fcn.00415897
push 0x42991c
lea ecx, [ebp - 0x14]
call fcn.00415897
lea ecx, [esi + 0x2c]
push ecx
lea ecx, [ebp - 0x14]
call fcn.004158d3
push 0x429918
lea ecx, [ebp - 0x14]
call fcn.00415897
mov al, byte [esi + 0x30]
test al, al
je 0x404477
add esi, 0x24
lea ecx, [ebp - 0x14]
push esi
call fcn.004158d3
push 0x429918
lea ecx, [ebp - 0x14]
call fcn.00415897
mov al, byte [ebx + 0xe0]
test al, al
je 0x4044b9
mov eax, dword [ebx + 0xd8]
mov cl, byte [eax + 0x14]
test cl, cl
je 0x4044b9
add eax, 0x18
lea ecx, [ebp - 0x14]
push eax
call fcn.004158d3
push 0x42991c
lea ecx, [ebp - 0x14]
call fcn.00415897
mov edx, dword [ebx + 0xd8]
lea ecx, [ebp - 0x14]
add edx, 0x1c
push edx
call fcn.004158d3
mov eax, dword [ebx + 0xd4]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4044da
mov ecx, dword [ebx + 0xd4]
push 0
call fcn.004195ae
mov ecx, 0x11
xor eax, eax
lea edi, [ebp - 0x8c]
lea edx, [ebp - 0x8c]
rep stosd dword es:[edi], eax
xor ecx, ecx
push edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov ecx, 0x41
xor eax, eax
lea edi, [ebp - 0x190]
push 0x104
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x190]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x190]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00415644
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.004144f4
inc eax
lea edx, [ebp + 8]
push eax
push edx
lea ecx, [ebp - 0x14]
call fcn.0041447c
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.004155f4
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.00415507
mov eax, dword [ebx + 0xd8]
lea ecx, [ebp - 0x14]
add eax, 0x28
push eax
call fcn.004158d3
mov ecx, dword [0x42ad0c]
mov dword [ebp - 0x1c], ecx
add ebx, 0xf4
lea edx, [ebp - 0x20]
push ebx
push str.MEDIATYPE_
push edx
mov byte [ebp - 4], 5
call fcn.004157c4
push 0x429844
push eax
lea eax, [ebp + 8]
mov bl, 6
push eax
mov byte [ebp - 4], bl
call fcn.00415750
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 7
call fcn.004155f4
lea ecx, [ebp + 8]
mov byte [ebp - 4], bl
call fcn.00415507
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 5
call fcn.00415507
mov edi, dword [ebp - 0x2c]
mov eax, dword [edi + 0x70]
cmp byte [eax], 0
jne 0x40464b
lea ecx, [ebp - 0x14]
push str.__v_
lea edx, [ebp - 0x28]
push ecx
push edx
call fcn.00415750
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x20]
push ecx
push eax
push edx
mov byte [ebp - 4], 8
call fcn.004156ea
push 0x429844
push eax
lea eax, [ebp + 8]
mov bl, 9
push eax
mov byte [ebp - 4], bl
call fcn.00415750
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xa
call fcn.004155f4
lea ecx, [ebp + 8]
mov byte [ebp - 4], bl
call fcn.00415507
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.00415507
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00415507
jmp 0x404751
mov ecx, dword [0x42ad0c]
xor bl, bl
mov dword [ebp + 8], ecx
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xb
call fcn.00415644
push 0x429900
lea ecx, [ebp + 8]
call fcn.00414516
mov esi, eax
test esi, esi
jge 0x404689
push 0x4298fc
lea ecx, [ebp + 8]
call fcn.00414516
mov esi, eax
test esi, esi
jl 0x4046fc
lea edx, [esi + 1]
lea ecx, [ebp + 8]
push edx
push 0x4298f8
call fcn.00414524
test eax, eax
jle 0x4046ca
sub eax, esi
cmp eax, 2
jne 0x4046c7
push 0x22
push 0
lea ecx, [ebp - 0x1c]
call fcn.0041420e
push 0x429918
lea ecx, [ebp - 0x1c]
call fcn.00415897
mov eax, 2
mov bl, 1
jmp 0x4046dc
cmp eax, 3
push 0x429918
lea ecx, [ebp - 0x1c]
call fcn.00415897
mov eax, 3
mov ecx, dword [ebp - 0x1c]
add eax, esi
push ecx
push eax
lea ecx, [ebp + 8]
call fcn.00414292
test bl, bl
je 0x4046fc
push 0x429844
lea ecx, [ebp + 8]
call fcn.00415897
lea edx, [ebp - 0x14]
push 0x429918
lea eax, [ebp - 0x20]
push edx
push eax
call fcn.00415750
lea ecx, [ebp + 8]
lea edx, [ebp - 0x28]
push ecx
mov bl, 0xc
push eax
push edx
mov byte [ebp - 4], bl
call fcn.004156ea
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xd
call fcn.004155f4
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.00415507
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xb
call fcn.00415507
lea ecx, [ebp + 8]
mov byte [ebp - 4], 5
call fcn.00415507
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x8c]
push eax
xor ebx, ebx
push ecx
push ebx
push ebx
push 0x4000000
push ebx
push ebx
push ebx
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4047ae
push 0xff
push 0xffffffffffffffff
lea eax, [ebp - 0x3c]
push ebx
push eax
push 1
mov ecx, edi
call fcn.00404a20
test al, al
mov byte [ebp - 0x15], al
jne 0x4047e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, edi
call fcn.00404b20
mov ecx, dword [ebp - 0x3c]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x4047e1
mov edx, dword [edi + 0xd8]
mov esi, dword [edx + 0x28]
call fcn.00418566
cmp eax, ebx
je 0x4047c9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x4047cb
xor eax, eax
push esi
push 0x232f
add edi, 0xc0
push eax
push edi
call fcn.00401050
add esp, 0x10
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x4047f2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x38], ebx
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
je 0x404803
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x3c], ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.00415507
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00415507
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00415507
mov dword [ebp - 4], 0xffffffff
call fcn.00419c06
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0x15]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4