Function at 0x409da0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x864
mov eax, dword [0x4116b8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 4], eax
mov eax, dword [esi]
push edi
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x450], edi
jne 0x409f64
cmp dword [esi + 0x10], edi
je 0x409f4d
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ebx, eax
mov dword [ebp - 0x458], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp ebx, edi
je 0x409f4d
mov eax, dword [esi + 0x10]
push str.EnumProcessModules
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, eax
mov dword [ebp - 0x454], edi
xor eax, eax
test edx, edx
mov ecx, 0x100
lea edi, [ebp - 0x864]
rep stosd dword es:[edi], eax
je 0x409f4d
lea ecx, [ebp - 0x454]
push ecx
push 0x400
lea eax, [ebp - 0x864]
push eax
push ebx
call edx
test eax, eax
mov dword [ebp - 0x450], eax
je 0x409f4d
mov eax, dword [ebp - 0x454]
shr eax, 2
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x454], eax
jbe 0x409f4d
jmp 0x409e60
xor eax, eax
mov ecx, 0x89
lea edi, [ebp - 0x228]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x460], ecx
mov dword [ebp - 0x228], 0x224
mov dword [ebp - 0x45c], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x104
lea edx, [ebp - 0x108]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp + ebx*4 - 0x864]
push edx
push eax
mov dword [ebp - 0x20c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, dword [esi + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetModuleBaseNameA
push eax
call edi
test eax, eax
je 0x409eeb
mov edx, dword [ebp + ebx*4 - 0x864]
push 0xff
lea ecx, [ebp - 0x208]
push ecx
mov ecx, dword [ebp - 0x458]
push edx
push ecx
call eax
mov edx, dword [esi + 0x10]
push str.GetModuleInformation
push edx
call edi
test eax, eax
je 0x409f30
mov edx, dword [ebp + ebx*4 - 0x864]
push 0xc
lea ecx, [ebp - 0x464]
push ecx
mov ecx, dword [ebp - 0x458]
push edx
push ecx
call eax
test eax, eax
je 0x409f30
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x210], eax
lea ecx, [ebp - 0x228]
push ecx
push esi
call dword [ebp + 8]
mov eax, dword [ebp - 0x454]
add esp, 8
inc ebx
cmp ebx, eax
jb 0x409e60
mov eax, dword [ebp - 0x450]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
call fcn.0040cc02
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 8]
cmp eax, edi
je 0x40a020
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Module32First
push eax
call edi
mov edx, dword [esi + 8]
push str.Module32Next
push edx
mov ebx, eax
call edi
test ebx, ebx
mov dword [ebp - 0x450], eax
je 0x40a020
test eax, eax
je 0x40a020
xor eax, eax
mov ecx, 0x89
lea edi, [ebp - 0x44c]
rep stosd dword es:[edi], eax
mov ecx, dword [esi]
lea eax, [ebp - 0x44c]
push eax
push ecx
mov dword [ebp - 0x44c], 0x224
call ebx
mov ebx, dword [ebp + 8]
mov edi, eax
test edi, edi
je 0x40a00d
lea edx, [ebp - 0x44c]
push edx
push esi
call ebx
add esp, 8
test edi, edi
je 0x40a00d
nop
mov ecx, dword [esi]
lea eax, [ebp - 0x44c]
push eax
push ecx
mov dword [ebp - 0x44c], 0x224
call dword [ebp - 0x450]
test eax, eax
je 0x40a00d
lea edx, [ebp - 0x44c]
push edx
push esi
call ebx
add esp, 8
jmp 0x409fe0
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
call fcn.0040cc02
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.0040cc02
mov esp, ebp
pop ebp
ret 4