Function at 0x404bd0
Capabilities:
Check for time delay via gettickcount
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x81c
mov eax, dword [0x461008]
xor eax, esp
mov dword [esp + 0x818], eax
cmp byte [0x46368c], 0
mov eax, ecx
push ebx
push esi
push edi
mov edi, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
jne 0x404c1d
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x818]
xor ecx, esp
call fcn.0043183b
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x462294
call esi
mov eax, dword [0x4622b0]
test eax, eax
jne 0x404c44
push dword [0x4622ac]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [0x4622b0]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
inc eax
push 0x462294
mov dword [0x4622b0], eax
call ebx
push 0x463674
call esi
push edi
push dword [esp + 0x10]
call fcn.00417100
test al, al
jne 0x404de2
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00405140
mov eax, dword [eax]
cmp eax, dword [0x463788]
je 0x404cc2
mov edi, dword [eax + 0x14]
lea eax, [edi + 0x28]
push eax
call esi
cmp dword [edi + 0x44], 0
jne 0x404ca1
push dword [edi + 0x40]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
inc dword [edi + 0x44]
lea eax, [edi + 0x28]
push eax
call ebx
push 0x463674
call ebx
mov eax, dword [esp + 0x18]
mov ecx, edi
push eax
call fcn.00406140
jmp 0x404de9
push 0x48
call fcn.0043198f
mov edi, eax
add esp, 4
test edi, edi
je 0x404ced
push 0x48
push 0
push edi
call fcn.0043cf50
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, edi
push esi
call fcn.00406040
jmp 0x404cf3
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], esi
call fcn.00405740
push eax
add eax, 0x10
push eax
push ecx
lea eax, [esp + 0x1c]
push eax
call fcn.00405770
push 0x463674
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x10], 0
call esi
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x10]
mov edi, eax
call fcn.00404e30
movzx ecx, al
mov eax, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
and ecx, dword [esp + 0x10]
mov dword [eax], ecx
call esi
mov esi, eax
mov eax, dword [esp + 0x18]
sub esi, edi
mov eax, dword [eax]
test eax, eax
jne 0x404d78
push dword [esp + 0x1c]
lea eax, [esp + 0x24]
push str.FileClassifier:_FAILED___s__r_n
push eax
call fcn.00405720
add esp, 0xc
jmp 0x404d94
movzx eax, byte [eax + 8]
push esi
push dword [esp + 0x20]
push eax
lea eax, [esp + 0x2c]
push str.FileClassifier:_Signed_d___s___u_ms_r_n
push eax
call fcn.00405720
add esp, 0x14
cmp esi, 0x2710
jbe 0x404da7
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x463674
call esi
push dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.004061c0
push dword [esp + 0x10]
call fcn.00417040
lea eax, [esp + 0x1c]
push eax
call fcn.004050e0
test edi, edi
je 0x404de2
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
push 0x463674
call ebx
push 0x462294
call esi
dec dword [0x4622b0]
jne 0x404e04
push dword [0x4622ac]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0x462294
call ebx
mov ecx, dword [esp + 0x824]
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0043183b
mov esp, ebp
pop ebp
ret