Function at 0x401190
Capabilities:
Create process on windows
Get disk information
Persist via winlogon helper dll registry key
Query environment variable
Set registry value
Shutdown system

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x11ec
call fcn.00404830
push ebx
push esi
push edi
lea edi, [ebp - 0x11ec]
mov ecx, 0x47b
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x21c], 0
mov eax, dword [str.Explorer.exe]
mov dword [ebp - 0x62c], eax
mov ecx, dword [0x414900]
mov dword [ebp - 0x628], ecx
mov edx, dword [0x414904]
mov dword [ebp - 0x624], edx
mov ax, word [0x414908]
mov word [ebp - 0x620], ax
mov ecx, 0x7c
xor eax, eax
lea edi, [ebp - 0x61e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x638], 0
mov eax, dword [0x4148f8]
mov dword [ebp - 0x644], eax
mov ecx, 8
mov esi, str.http:__www.bombina.com_index.htm
lea edi, [ebp - 0x670]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x67c], 0x41
mov dword [ebp - 0x688], 0
mov dword [ebp - 0x694], 0
mov dword [ebp - 0x6a0], 0
mov dword [ebp - 0x6ac], 0
mov dword [ebp - 0x6b8], 0
mov dword [ebp - 0x6c4], 0
mov dword [ebp - 0x6d0], 0
mov ecx, 0xd
mov esi, str.SOFTWAREMicrosoftWindows_NTCurrentVersionWinlogon
lea edi, [ebp - 0xae0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, 0x72
xor eax, eax
lea edi, [ebp - 0xaaa]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0xefc], 0
mov dword [ebp - 0xf14], 0x200
mov eax, dword [str.userinit.exe]
mov dword [ebp - 0x111c], eax
mov ecx, dword [0x414890]
mov dword [ebp - 0x1118], ecx
mov edx, dword [0x414894]
mov dword [ebp - 0x1114], edx
mov al, byte [0x414898]
mov byte [ebp - 0x1110], al
mov ecx, 0x7c
xor eax, eax
lea edi, [ebp - 0x110f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x1128], 1
push 0x200
push 0
lea eax, [ebp - 0x204]
push eax
call fcn.004047d0
add esp, 0xc
mov esi, esp
push 0x200
lea eax, [ebp - 0x204]
push eax
push str.windir
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
cmp esi, esp
call fcn.00404550
mov esi, esp
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x424]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push str.System32_
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x62c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x111c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push str.userinit.exe
lea eax, [ebp - 0x111c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push 0x414810
lea eax, [ebp - 0xef0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push 0x414728
lea eax, [ebp - 0xef0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
push 0x414708
lea eax, [ebp - 0xef0]
push eax
call fcn.00403440
add esp, 8
push 0
lea eax, [ebp - 0x424]
push eax
call fcn.00402370
add esp, 8
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x67c], 0x43
jmp 0x401441
mov eax, dword [ebp - 0x67c]
add eax, 1
mov dword [ebp - 0x67c], eax
cmp dword [ebp - 0x67c], 0x5a
jg 0x4014f0
mov al, byte [ebp - 0x67c]
mov byte [ebp - 0x644], al
mov esi, esp
lea eax, [ebp - 0x644]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp esi, esp
call fcn.00404550
mov dword [ebp - 0x6d0], eax
cmp dword [ebp - 0x6d0], 3
jne 0x4014c5
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x6ac], eax
push 0
lea eax, [ebp - 0x644]
push eax
call fcn.00402370
add esp, 8
add eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x6a0], eax
mov eax, dword [ebp - 0x6a0]
sub eax, dword [ebp - 0x6ac]
cmp eax, 6
jle 0x4014c3
mov dword [ebp - 0x6c4], 1
jmp 0x4014eb
cmp dword [ebp - 0x6d0], 2
jne 0x4014eb
push 0
lea eax, [ebp - 0x644]
push eax
call fcn.00402370
add esp, 8
add eax, dword [ebp - 0x6b8]
mov dword [ebp - 0x6b8], eax
jmp 0x401432
mov eax, dword [ebp - 0x694]
add eax, dword [ebp - 0x6a0]
add eax, dword [ebp - 0x6b8]
jne 0x401558
push 0x414704
push 0x4146a8
call fcn.00403710
add esp, 8
mov dword [ebp - 0xefc], eax
cmp dword [ebp - 0xefc], 6
jne 0x40154e
mov esi, esp
push 1
push 0x4141e5
push 0x4141e5
lea eax, [ebp - 0x670]
push eax
push str.Open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp esi, esp
call fcn.00404550
mov eax, 1
jmp 0x401969
cmp dword [ebp - 0x694], 6
jle 0x401582
push 0x414704
push 0x41465c
call fcn.00403440
add esp, 8
mov dword [ebp - 0x21c], 1
jmp 0x40165a
cmp dword [ebp - 0x6c4], 0
je 0x4015ac
push 0x414704
push 0x414610
call fcn.00403440
add esp, 8
mov dword [ebp - 0x21c], 1
jmp 0x40165a
cmp dword [ebp - 0x6b8], 6
jle 0x4015ee
push 0x414704
push 0x414560
call fcn.00403710
add esp, 8
mov dword [ebp - 0xefc], eax
cmp dword [ebp - 0xefc], 6
jne 0x4015e2
mov dword [ebp - 0x21c], 1
jmp 0x4015ec
mov dword [ebp - 0x21c], 2
jmp 0x40165a
mov esi, esp
mov eax, dword [ebp - 0x6b8]
push eax
mov ecx, dword [ebp - 0x6a0]
push ecx
mov edx, dword [ebp - 0x694]
push edx
push 0x414420
lea eax, [ebp - 0xef0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
cmp esi, esp
call fcn.00404550
push 0x414704
lea eax, [ebp - 0xef0]
push eax
call fcn.00403710
add esp, 8
mov dword [ebp - 0xefc], eax
cmp dword [ebp - 0xefc], 6
jne 0x401650
mov dword [ebp - 0x21c], 1
jmp 0x40165a
mov dword [ebp - 0x21c], 3
push 1
lea eax, [ebp - 0x424]
push eax
call fcn.00402370
add esp, 8
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x67c], 0x43
jmp 0x40168c
mov eax, dword [ebp - 0x67c]
add eax, 1
mov dword [ebp - 0x67c], eax
cmp dword [ebp - 0x67c], 0x5a
jg 0x401724
mov al, byte [ebp - 0x67c]
mov byte [ebp - 0x644], al
mov esi, esp
lea eax, [ebp - 0x644]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp esi, esp
call fcn.00404550
mov dword [ebp - 0x6d0], eax
cmp dword [ebp - 0x6d0], 3
jne 0x4016f0
cmp dword [ebp - 0x21c], 1
jne 0x4016f0
push 1
lea eax, [ebp - 0x644]
push eax
call fcn.00402370
add esp, 8
add eax, dword [ebp - 0x210]
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x6d0], 2
jne 0x40171f
cmp dword [ebp - 0x21c], 3
jge 0x40171f
push 1
lea eax, [ebp - 0x644]
push eax
call fcn.00402370
add esp, 8
add eax, dword [ebp - 0x210]
mov dword [ebp - 0x210], eax
jmp 0x40167d
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x688], 0
je 0x40175e
mov esi, esp
mov eax, dword [ebp - 0x688]
push eax
push 0x4143f8
lea ecx, [ebp - 0xce8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp esi, esp
call fcn.00404550
lea eax, [ebp - 0xce8]
push eax
lea ecx, [ebp - 0x8d8]
push ecx
call fcn.00404640
add esp, 8
mov esi, esp
lea eax, [ebp - 0xf08]
push eax
push 2
push 0
lea ecx, [ebp - 0xae0]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp esi, esp
call fcn.00404550
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
jne 0x4017e5
lea eax, [ebp - 0x111c]
push eax
call fcn.00404740
add esp, 4
mov esi, esp
push eax
lea ecx, [ebp - 0x111c]
push ecx
push 1
push 0
push str.Userinit
mov edx, dword [ebp - 0xf08]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp esi, esp
call fcn.00404550
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x688], 0
je 0x401828
cmp dword [ebp - 0x210], 0
jne 0x40180d
push 0x4143c4
lea eax, [ebp - 0x8d8]
push eax
call fcn.00404650
add esp, 8
jmp 0x401828
mov esi, esp
push 0x414390
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
mov eax, dword [ebp - 0xf08]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, esp
call fcn.00404550
cmp dword [ebp - 0x688], 0
je 0x4018b7
cmp dword [ebp - 0x21c], 1
jne 0x4018b7
mov esi, esp
push 0x414360
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push 0x414334
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
push 0x414310
lea eax, [ebp - 0x8d8]
push eax
call fcn.00403440
add esp, 8
mov esi, esp
push 0xffffffffffffffff
push 0
call dword [sym.imp.USER32.dll_ExitWindowsEx]
cmp esi, esp
call fcn.00404550
mov eax, 1
jmp 0x401969
cmp dword [ebp - 0x688], 0
je 0x40191a
cmp dword [ebp - 0x21c], 2
jne 0x40191a
mov esi, esp
push 0x4142e0
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
mov esi, esp
push 0x414268
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, esp
call fcn.00404550
push 0x414310
lea eax, [ebp - 0x8d8]
push eax
call fcn.00403440
add esp, 8
mov eax, 1
jmp 0x401969
push 0x414704
push 0x4141e8
call fcn.00403710
add esp, 8
mov dword [ebp - 0xefc], eax
cmp dword [ebp - 0xefc], 6
jne 0x401964
mov esi, esp
push 1
push 0x4141e5
push 0x4141e5
lea eax, [ebp - 0x670]
push eax
push str.Open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp esi, esp
call fcn.00404550
mov eax, 1
push edx
mov ecx, ebp
push eax
lea edx, [0x40198e]
call fcn.00404580
pop eax
pop edx
pop edi
pop esi
pop ebx
add esp, 0x11ec
cmp ebp, esp
call fcn.00404550
mov esp, ebp
pop ebp
ret