Function at 0x40551b
Capabilities:
Check if file exists
Enumerate process modules
Get file attributes

Disassembly:
push 0x45c
mov eax, 0x44616f
call fcn.0042bfea
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x464], eax
mov edi, ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x444], edi
mov esi, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x43c], esi
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00406642
push dword [ebp - 0x464]
push 8
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x440], eax
test eax, eax
je 0x405802
push 0x420
lea eax, [ebp - 0x430]
mov dword [ebp - 0x438], 0x428
push ebx
push eax
mov dword [ebp - 0x434], ebx
call fcn.0042a420
add esp, 0xc
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x440]
call sub.KERNEL32.dll_Module32FirstW
test eax, eax
je 0x4057f6
mov edi, dword [ebp - 0x440]
lea eax, [ebp - 0x418]
push 0x44b4f0
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
je 0x40570a
lea eax, [ebp - 0x418]
push 0x44b50c
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
je 0x40570a
lea eax, [ebp - 0x418]
push 0x44b51c
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
je 0x40570a
lea eax, [ebp - 0x418]
push 0x44b534
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
je 0x40570a
lea eax, [ebp - 0x418]
push 0x44b54c
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
je 0x40570a
lea eax, [ebp - 0x418]
push 0x44b534
push eax
call fcn.0042a0ec
pop ecx
pop ecx
test eax, eax
jne 0x4057db
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.0042a57d
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x458]
push 0x44b578
call fcn.004051c4
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x460]
call fcn.004051c4
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 5
push ecx
lea ecx, [ebp - 0x45c]
push ecx
mov ecx, eax
call fcn.00405319
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040399c
mov ecx, dword [ebp - 0x45c]
test ecx, ecx
je 0x4056d3
call fcn.00403368
mov dword [ebp - 0x45c], ebx
mov ecx, dword [ebp - 0x460]
test ecx, ecx
je 0x4056e8
call fcn.00403368
mov dword [ebp - 0x460], ebx
mov ecx, dword [ebp - 0x458]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x4057ad
call fcn.00403368
mov dword [ebp - 0x458], ebx
jmp 0x4057ad
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.0042a57d
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebp - 0x454]
push 0x44b564
call fcn.004051c4
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x448]
call fcn.004051c4
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 3
push ecx
lea ecx, [ebp - 0x44c]
push ecx
mov ecx, eax
call fcn.00405319
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040399c
mov ecx, dword [ebp - 0x44c]
test ecx, ecx
je 0x40577f
call fcn.00403368
mov dword [ebp - 0x44c], ebx
mov ecx, dword [ebp - 0x448]
test ecx, ecx
je 0x405794
call fcn.00403368
mov dword [ebp - 0x448], ebx
mov ecx, dword [ebp - 0x454]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x4057ad
call fcn.00403368
mov dword [ebp - 0x454], ebx
mov esi, dword [ebp - 0x43c]
test esi, esi
je 0x4057bb
mov eax, dword [esi]
jmp 0x4057bd
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4057f0
push ebx
lea ecx, [ebp - 0x43c]
call fcn.004052aa
mov esi, dword [ebp - 0x43c]
lea eax, [ebp - 0x438]
push eax
push edi
call sub.KERNEL32.dll_Module32NextW
test eax, eax
jne 0x4055bc
mov edi, dword [ebp - 0x444]
push dword [ebp - 0x440]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x43c]
call fcn.004066d6
test eax, eax
je 0x405980
mov ecx, 0x45b948
call fcn.004059c6
test al, al
je 0x405980
mov edx, dword [0x45bb60]
xorps xmm0, xmm0
movlpd qword [ebp - 0x450], xmm0
mov dword [ebp - 0x448], edx
test esi, esi
je 0x405853
mov ecx, esi
call fcn.004059ae
mov edx, dword [ebp - 0x448]
mov ecx, eax
jmp 0x405855
mov ecx, ebx
mov eax, dword [edx]
lea edi, [ebp - 0x450]
push edi
push ebx
push ecx
push edx
call dword [eax + 0x128]
mov edi, dword [ebp - 0x444]
test eax, eax
jne 0x405972
push 0x10
call fcn.0042a681
mov edx, eax
mov dword [ebp - 0x440], edx
pop ecx
test edx, edx
je 0x40589e
mov dword [edx], vtable.COutput.0
mov dword [edx + 4], 1
mov dword [edx + 8], ebx
mov byte [edx + 0xc], bl
jmp 0x4058a6
mov edx, ebx
mov dword [ebp - 0x440], ebx
mov eax, dword [0x45bb64]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x88]
test eax, eax
jne 0x40594b
mov eax, dword [0x45bb64]
push 1
push dword [ebp - 0x464]
mov ecx, dword [eax]
push ebx
push ebx
push eax
call dword [ecx + 0x30]
test eax, eax
jne 0x40593f
mov eax, dword [0x45bb60]
push 0x3e8
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
test eax, eax
jne 0x405934
mov edi, dword [ebp - 0x440]
push 0x44b596
push 0x44b598
mov byte [edi + 0xc], 1
mov eax, dword [0x45bb60]
push dword [ebp - 0x44c]
push dword [ebp - 0x450]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x134]
lea eax, [edi + 8]
push eax
lea ecx, [ebp - 0x444]
call fcn.0040399c
mov byte [edi + 0xc], bl
mov edi, dword [ebp - 0x444]
mov eax, dword [0x45bb64]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov ecx, dword [ebp - 0x440]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [0x45bb60]
push dword [ebp - 0x44c]
push dword [ebp - 0x450]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x12c]
test edi, edi
je 0x405972
mov ecx, edi
call fcn.004059ae
mov ebx, eax
push dword [ebp - 0x468]
push ebx
call fcn.00405b58
pop ecx
pop ecx
lea ecx, [ebp - 0x444]
call fcn.004066d6
test eax, eax
setne bl
test esi, esi
je 0x40599b
mov ecx, esi
call fcn.00403368
test edi, edi
je 0x4059a6
mov ecx, edi
call fcn.00403368
mov al, bl
call fcn.0042bf99
ret