Function at 0x409990
Capabilities:
Enumerate process modules
Get process image filename

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x511743
mov eax, dword fs:[0]
push eax
mov eax, 0x22dc
call fcn.004f2220
mov eax, dword [0x577680]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xffc
lea eax, [ebp - 0x200c]
push 0
push eax
mov dword [ebp - 4], 1
mov byte [ebp - 0x22b5], 0
mov dword [ebp - 0x2010], 0
call fcn.004f2250
add esp, 0xc
lea eax, [ebp - 0x22c4]
push eax
push 0x4000
lea eax, [ebp - 0x2010]
push eax
mov dword [ebp - 0x22c4], 0
call sub.PSAPI.DLL_EnumProcesses
test eax, eax
jne 0x409a1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x22c4]
shr eax, 2
xor ecx, ecx
or ebx, 0xffffffff
mov dword [ebp - 0x22c4], eax
mov dword [ebp - 0x22cc], ecx
test eax, eax
je 0x409fbf
mov edi, dword [0x578ad4]
mov eax, edi
imul eax, edi
cdq
mov esi, 7
idiv esi
cmp edx, 6
jne 0x409a73
xor esi, esi
mov ebx, edi
lea ebx, [ebx]
inc esi
dec ebx
cmp esi, 0xa9
jb 0x409a60
mov ecx, dword [ebp - 0x22cc]
or ebx, 0xffffffff
push dword [ebp + ecx*4 - 0x2010]
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, dword [0x578ad4]
mov ecx, edi
imul ecx, edi
imul ecx, edi
mov esi, eax
mov dword [ebp - 0x22e0], esi
and ecx, 0x80000003
jns 0x409aaa
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 2
jne 0x409afa
movsd xmm3, qword [0x52a190]
movd xmm4, edi
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x409ae0
subsd xmm2, xmm3
divsd xmm3, qword [0x52a198]
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmmword [0x52a188]
ja 0x409ac2
test esi, esi
je 0x409f94
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push eax
call fcn.004f2250
add esp, 0xc
call fcn.0040d120
test al, al
jne 0x409b40
push 0xc3
push 0xc2
push str._d__d_n
call fcn.004f20c4
add esp, 0xc
push 0x800
lea eax, [ebp - 0x810]
push eax
push esi
call sub.PSAPI.DLL_GetProcessImageFileNameW
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x22c8], esi
lea eax, [ebp - 0x810]
mov byte [ebp - 4], 2
test eax, 0xffff0000
jne 0x409b9a
movzx edi, ax
push 0
push edi
call fcn.00403070
add esp, 8
test eax, eax
je 0x409bcb
push edi
push eax
lea ecx, [ebp - 0x22c8]
call fcn.00408b00
jmp 0x409bc5
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409ba3
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x22c8]
call fcn.0040c730
mov esi, dword [ebp - 0x22c8]
mov eax, dword [0x5771f0]
push ecx
mov edi, esp
mov ecx, 0x5771f0
mov byte [ebp - 4], 3
mov dword [ebp - 0x22bc], edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov eax, str.ab928f879b98859285d9928f92
mov byte [ebp - 4], 4
test eax, 0xffff0000
jne 0x409c1f
movzx eax, ax
push 0
push eax
call fcn.00403070
add esp, 8
test eax, eax
je 0x409c2d
mov edx, str.ab928f879b98859285d9928f92
movzx ecx, dx
push ecx
push eax
mov ecx, edi
call fcn.00408b00
jmp 0x409c2d
push 0x1a
push str.ab928f879b98859285d9928f92
mov ecx, edi
call fcn.0040c730
lea eax, [ebp - 0x22e8]
push eax
mov byte [ebp - 4], 3
call fcn.004146c0
mov eax, dword [eax]
add esp, 8
test eax, eax
jne 0x409c4b
or eax, 0xffffffff
jmp 0x409c6d
cmp dword [esi - 0xc], 0
jge 0x409c56
or eax, 0xffffffff
jmp 0x409c6d
push eax
push esi
call fcn.004f19aa
add esp, 8
test eax, eax
jne 0x409c69
or eax, 0xffffffff
jmp 0x409c6d
sub eax, esi
sar eax, 1
mov edx, dword [ebp - 0x22e8]
cmp eax, 0xffffffff
setne byte [ebp - 0x22bd]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409c96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x22bd], 0
je 0x409f5c
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x1010], ax
lea eax, [ebp - 0x100e]
push eax
call fcn.004f2250
add esp, 0xc
lea eax, [ebp - 0x1010]
push 0x400
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22d4], eax
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov byte [ebp - 4], 5
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22d0], eax
mov eax, dword [ebp - 0x22cc]
mov byte [ebp - 4], 6
push dword [ebp + eax*4 - 0x2010]
lea eax, [ebp - 0x22d0]
push eax
lea eax, [ebp - 0x22d4]
push eax
call fcn.00412280
mov eax, dword [0x5771f0]
add esp, 0xc
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22dc], eax
push dword [ebp - 0x22d4]
lea eax, [ebp - 0x22dc]
push dword [ebp - 0x22d0]
mov byte [ebp - 4], 7
push 0x5296d4
push eax
call fcn.004059e0
mov eax, dword [0x5771f0]
add esp, 0x10
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22d8], eax
mov byte [ebp - 4], 8
call fcn.004f1791
push eax
mov eax, dword [0x5771f0]
push ecx
mov edi, esp
mov ecx, 0x5771f0
mov dword [ebp - 0x22bc], edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov eax, str.a3929a87a396849cd293
mov byte [ebp - 4], 9
test eax, 0xffff0000
jne 0x409dd2
movzx edi, ax
push 0
push edi
call fcn.00403070
add esp, 8
test eax, eax
je 0x409de0
mov ecx, dword [ebp - 0x22bc]
push edi
push eax
call fcn.00408b00
jmp 0x409de0
push 0x14
push str.a3929a87a396849cd293
mov ecx, edi
call fcn.0040c730
lea eax, [ebp - 0x22e4]
push eax
mov byte [ebp - 4], 8
call fcn.004146c0
add esp, 8
push dword [eax]
lea eax, [ebp - 0x22d8]
push eax
mov byte [ebp - 4], 0xa
call fcn.004059e0
mov edx, dword [ebp - 0x22e4]
add edx, 0xfffffff0
add esp, 0xc
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409e2b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, dword [ebp - 0x22dc]
push 0
push 0
push ecx
mov ecx, dword [edi - 0x10]
add edi, 0xfffffff0
mov eax, dword [ecx]
mov dword [ebp - 0x22bc], esp
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x409e6b
cmp ecx, dword [edi]
jne 0x409e6b
mov ebx, edi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x409ea7
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x409fae
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [edi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004f18c0
add esp, 0x10
mov ecx, dword [ebp - 0x22bc]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
lea eax, [ebp - 0x22d8]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00427200
add esp, 0x18
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [ebp - 0x22d8]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 0x22b5], 1
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409efc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409f16
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22d0]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409f39
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x22d4]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409f5c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x22e0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esi, 0xfffffff0
mov byte [ebp - 4], 1
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
cmp byte [ebp - 0x22b5], 0
jne 0x409fb3
test ecx, ecx
jg 0x409f8e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [0x578ad4]
mov ecx, dword [ebp - 0x22cc]
inc ecx
mov dword [ebp - 0x22cc], ecx
cmp ecx, dword [ebp - 0x22c4]
jae 0x409fbf
jmp 0x409a44
call fcn.0040cb60
test ecx, ecx
jg 0x409fbf
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409fdf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0xc]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x40a000
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x22b5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f0cd4
mov esp, ebp
pop ebp
ret 8