Function at 0x40194c
Capabilities:
Create process on windows
Delete file
Get common file path
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x704]
sub esp, 0x784
mov eax, dword [0x42197c]
xor eax, ebp
push ebx
mov dword [ebp + 0x700], eax
mov eax, ecx
mov ecx, dword [ebp + 0x70c]
push esi
push edi
mov edi, dword [ebp + 0x710]
mov dword [ebp - 0x70], ecx
lea ecx, [eax + 0x74]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x68], edi
call fcn.00401922
push 0x14
xor esi, esi
lea eax, [ebp + 0x6d8]
push esi
push eax
call fcn.004058a0
push 0x14
lea eax, [ebp + 0x6ec]
push esi
push eax
call fcn.004058a0
push 0x190
lea eax, [ebp + 0x528]
push esi
push eax
mov dword [ebp - 0x6c], esi
call fcn.004058a0
add esp, 0x24
mov esi, str.._name.ini
push esi
push 0x14
lea eax, [ebp + 0x6d8]
push eax
mov ebx, 0x41a74c
push ebx
push str.installed
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call edi
push esi
push 0x14
lea eax, [ebp + 0x6ec]
push eax
push ebx
push str.notinstall
push dword [ebp - 0x68]
call edi
push esi
push 0x64
lea eax, [ebp + 0x334]
push eax
push ebx
push str.Title
push dword [ebp - 0x68]
call edi
push esi
push 0x64
lea eax, [ebp + 0x1a4]
push eax
push ebx
push str.Check
push dword [ebp - 0x68]
call edi
push esi
push 0x64
lea eax, [ebp + 0x2d0]
push eax
push ebx
push str.forceinstall
push dword [ebp - 0x68]
call edi
push esi
push 0x64
lea eax, [ebp + 0x208]
push eax
push ebx
push str.forcepass
push dword [ebp - 0x68]
call edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp + 0x334]
push eax
mov eax, dword [ebp - 0x74]
push 0
push 0x180
push dword [eax + 0x90]
call edi
mov eax, dword [ebp - 0x74]
push str.
push 0
push 0x180
push dword [eax + 0x90]
call edi
push 0x63
xor eax, eax
mov byte [ebp + 0x398], 0
pop ecx
lea edi, [ebp + 0x399]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp - 0x70]
add edi, 0xd6
mov dword [ebp - 0x70], 0xf
and word [edi - 0x70], 0
push 0x190
lea eax, [ebp + 0x528]
push 0
push eax
call fcn.004058a0
push 0x190
lea eax, [ebp + 0x398]
push 0
push eax
call fcn.004058a0
add esp, 0x18
cmp word [edi - 0x72], 1
jne 0x401da0
push esi
push 0x64
lea eax, [edi - 0x6e]
push eax
push ebx
push str.path
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0xa
lea eax, [edi - 0xa]
push eax
push ebx
push str.type
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x190
lea eax, [ebp + 0x528]
push eax
push ebx
push str.type
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp + 0x528]
push eax
call fcn.00405743
mov word [edi + 0xa], ax
lea eax, [edi - 0xa]
push eax
push str.regread
call fcn.00405750
add esp, 0xc
test eax, eax
jne 0x401bb2
lea eax, [ebp - 0x80]
push eax
lea eax, [edi - 0x6e]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x401b8a
lea eax, [ebp + 0x6d8]
push eax
lea eax, [edi - 0xd6]
push eax
lea eax, [ebp + 0x398]
push str._s_t_s
push eax
call fcn.004057d8
add esp, 0x10
and word [edi - 0x70], 0
jmp 0x401bb2
lea eax, [ebp + 0x6ec]
push eax
lea eax, [edi - 0xd6]
push eax
lea eax, [ebp + 0x398]
push str._s_t_s
push eax
call fcn.004057d8
add esp, 0x10
mov word [edi - 0x70], 1
lea eax, [edi - 0xa]
push eax
push str.filefind
call fcn.00405750
test eax, eax
pop ecx
pop ecx
jne 0x401d98
push esi
push 0x190
lea eax, [ebp + 0x528]
push eax
push ebx
push str.count
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp + 0x528]
push eax
call fcn.00405743
mov dword [ebp - 0x78], eax
mov dword [esp], 0x190
lea eax, [ebp + 0x528]
push 0
push eax
call fcn.004058a0
add esp, 0xc
push esi
push 0x190
lea eax, [ebp + 0x528]
push eax
push ebx
push str.start
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp + 0x528]
push eax
call fcn.00405743
pop ecx
push esi
push 0x1e
mov dword [ebp - 0x68], eax
lea eax, [ebp + 0x6b8]
push eax
push ebx
push str.last
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movzx eax, word [ebp - 0x78]
xor ecx, ecx
inc ecx
cmp eax, ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
jl 0x401d69
push 0x190
lea eax, [ebp + 0x528]
push 0
push eax
call fcn.004058a0
add esp, 0xc
push esi
push 0
push str.windir
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test ax, ax
jne 0x401cb1
lea eax, [ebp + 0x6b8]
push eax
movzx eax, word [ebp - 0x68]
push eax
lea eax, [edi - 0x6e]
push eax
lea eax, [ebp + 0x528]
push str._s_d_s
push eax
call fcn.004057d8
add esp, 0x14
jmp 0x401cee
push 0xc8
lea eax, [ebp + 0xdc]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp + 0x6b8]
push eax
movzx eax, word [ebp - 0x68]
push eax
lea eax, [edi - 0x6e]
push eax
lea eax, [ebp + 0xdc]
push eax
lea eax, [ebp + 0x528]
push str._s_s_d_s
push eax
call fcn.004057d8
add esp, 0x18
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x401d4e
cmp word [edi + 0xa], 1
jne 0x401d35
lea eax, [ebp + 0x528]
push eax
lea eax, [ebp + 0x26c]
push str.regsvr32__s__s
push eax
call fcn.004057d8
add esp, 0xc
push 5
lea eax, [ebp + 0x26c]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
and word [edi - 0x70], 0
inc dword [ebp - 0x68]
inc dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x78]
jle 0x401c61
jmp 0x401d69
push 0xffffffffffffffff
mov word [edi - 0x70], 1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp word [edi - 0x70], 0
lea eax, [ebp + 0x6d8]
je 0x401d7c
lea eax, [ebp + 0x6ec]
push eax
lea eax, [edi - 0xd6]
push eax
lea eax, [ebp + 0x398]
push str._s_t_s
push eax
call fcn.004057d8
add esp, 0x10
mov ax, word [edi - 0x70]
add word [ebp - 0x6c], ax
cmp word [edi - 0x72], 2
jne 0x401dd2
lea eax, [ebp + 0x2d0]
push eax
lea eax, [edi - 0xd6]
push eax
lea eax, [ebp + 0x398]
push str._s_t_s
push eax
call fcn.004057d8
add esp, 0x10
inc dword [ebp - 0x6c]
mov word [edi - 0x70], 1
cmp word [edi - 0x72], 3
jne 0x401e00
lea eax, [ebp + 0x208]
push eax
lea eax, [edi - 0xd6]
push eax
lea eax, [ebp + 0x398]
push str._s_t_s
push eax
call fcn.004057d8
add esp, 0x10
and word [edi - 0x70], 0
lea eax, [ebp + 0x398]
push eax
push ebx
call fcn.00405750
test eax, eax
pop ecx
pop ecx
je 0x401e30
lea eax, [ebp + 0x398]
push eax
mov eax, dword [ebp - 0x74]
push 0
push 0x180
push dword [eax + 0x90]
call dword [sym.imp.USER32.dll_SendMessageA]
add edi, 0x146
dec dword [ebp - 0x70]
jne 0x401aaa
mov esi, dword [ebp - 0x74]
push str.
push 0
push 0x180
push dword [esi + 0x90]
call dword [sym.imp.USER32.dll_SendMessageA]
push 5
lea ecx, [esi + 0x168]
mov word [esi + 0x164], 5
call fcn.00401935
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [ebp + 0x700]
movzx eax, word [ebp - 0x6c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040526e
add ebp, 0x704
leave
ret 8