Function at 0x401420
Capabilities:
Enumerate processes
Terminate process
Terminate process by name

Disassembly:
sub esp, 0x148
mov eax, dword [0x424fb0]
xor eax, esp
mov dword [esp + 0x144], eax
fldz
push ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x20], edi
fst dword [esp + 0x1c]
xor eax, eax
mov word [esp + 0xc], ax
fstp dword [esp + 0x10]
push 0x104
mov dword [esp + 0x1c], edi
call fcn.0040ab09
add esp, 4
push edi
push 2
mov ebx, eax
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
mov dword [esp + 0x24], esi
cmp esi, edi
je 0x4016d4
fld qword [0x424c10]
mov ecx, dword [0x4230ac]
fadd qword [0x41e380]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
push ebp
faddp st(1)
call fcn.0040abf0
fld1
mov dword [0x4230ac], eax
mov dx, word [esp + 0x10]
movsx eax, dx
add eax, 0x38ee0065
cmp eax, 0x45f53ff5
mov dword [esp + 0x2c], 0x128
lea ebp, [edi + 1]
jle 0x40152c
fld qword [0x422f48]
fadd st(1)
fstp qword [0x422f48]
dec dword [esp + 0x10]
add dword [0x424b58], ebp
fld qword [0x422f48]
mov ecx, dword [0x424b58]
fadd qword [0x41e378]
mov dx, word [esp + 0x10]
add ecx, 0x2f31d74d
movsx eax, dx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fsubp st(2)
fadd dword [esp + 0x14]
fcompp
fnstsw ax
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
test ah, 1
jne 0x40152e
mov ecx, dword [0x423088]
fld dword [esp + 0x20]
fstp st(0)
jmp 0x40152e
fstp st(0)
lea edx, [esp + 0x2c]
push edx
push esi
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x4016cc
mov edi, ebx
lea eax, [esp + 0x50]
sub edi, eax
lea esp, [esp]
mov ecx, dword [0x424be4]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
lea eax, [esp + 0x50]
fadd qword [0x423000]
fsub qword [0x41e370]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
add dword [0x424be4], ebp
lea esp, [esp]
mov cl, byte [eax]
mov byte [edi + eax], cl
add eax, ebp
test cl, cl
jne 0x401580
push ebx
call fcn.0041dc73
mov dx, word [0x424e70]
movsx eax, dx
mov ecx, 0xf0548165
add esp, 4
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x15c]
mov eax, ebx
fild dword [esp + 0x18]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4015e0
test dl, dl
je 0x4015dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4015e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4015c0
xor eax, eax
jmp 0x4015e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40163f
fld dword [esp + 0x20]
fld dword [esp + 0x14]
fadd qword [0x41e368]
fsubp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x20]
fadd qword [0x41e348]
fstp dword [esp + 0x20]
cmp dword [esp + 0x160], eax
je 0x401682
mov edx, dword [esp + 0x34]
push edx
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x40163b
add dword [esp + 0x1c], ebp
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x28]
fld qword [0x424e00]
mov ax, word [esp + 0x10]
movsx ecx, ax
add ecx, dword [esp + 0x24]
lea edx, [esp + 0x2c]
mov dword [esp + 0x18], ecx
push edx
mov dword [esp + 0x30], 0x128
fild dword [esp + 0x1c]
push esi
fadd dword [esp + 0x1c]
fsubp st(1)
fstp qword [0x424e00]
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x401550
jmp 0x4016cc
mov ax, word [esp + 0x10]
add dword [esp + 0x1c], ebp
movsx ecx, ax
sub ecx, 0x20ec1cc0
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fld dword [esp + 0x14]
add dword [esp + 0x10], ebp
fucompp
fnstsw ax
test ah, 0x44
jp 0x4016cc
mov dx, word [esp + 0x10]
mov ecx, dword [0x424d14]
movsx eax, dx
add eax, 0x1abeaa18
imul eax, ecx
mov dword [0x424d14], eax
add dword [esp + 0x10], ebp
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebp
push ebx
call fcn.0040a92b
mov ecx, dword [esp + 0x154]
mov eax, dword [esp + 0x1c]
add esp, 4
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040abd3
add esp, 0x148
ret