Function at 0x404efb
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x9c
mov eax, dword [0x432480]
xor eax, esp
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa4]
and dword [esp + 0x24], 0
and dword [esp + 0x20], 0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xac]
push edi
mov edi, dword [esi + 0x18]
push dword [esi + 0x38]
mov ebp, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 0xc
call fcn.004062a8
pop ecx
test eax, eax
je 0x404f6f
cmp dword [esi + 8], 0xffffffff
je 0x404f67
push dword [esi + 8]
call fcn.00412d17
pop ecx
xor eax, eax
inc eax
jmp 0x405453
push edi
call fcn.00406698
push 0x40
lea eax, [esp + 0x40]
push 0
push eax
mov dword [esp + 0x3c], eax
call fcn.0040c490
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x30]
add esp, 0x10
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x64], edi
xor edi, edi
push 0xc
mov dword [esp + 0x70], eax
mov eax, dword [esi]
pop ecx
inc edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x58], edx
cmp eax, ecx
jg 0x405187
je 0x405150
sub eax, 5
je 0x40513f
dec eax
dec eax
je 0x405039
dec eax
dec eax
je 0x4050e5
dec eax
je 0x40501e
dec eax
jne 0x404f67
push str.FILDES
push eax
call fcn.0040664b
push str.FILDES_support_not_compiled_in.
push esi
call fcn.00405810
push dword [esi + 8]
call fcn.00412d17
add esp, 0x14
xor eax, eax
jmp 0x405453
lea eax, [esp + 0x78]
push eax
push edx
call sub.libav.dll_Ordinal_44339
pop ecx
pop ecx
test eax, eax
jne 0x40504c
test dword [esp + 0x7e], 0x4000
jne 0x40504c
push str.CONTSCAN
push 0
call fcn.0040664b
mov ebp, edi
jmp 0x4051e0
push dword [esi + 0x2c]
call sub.libav.dll_Ordinal_44297
pop ecx
mov ecx, dword [esi + 0x2c]
mov eax, dword [ecx + 0x2c]
inc eax
cmp eax, dword [ecx + 0x1c]
jge 0x405066
mov dword [ecx + 0x2c], eax
jmp 0x40506b
or dword [esp + 0x34], 0xffffffff
push dword [esi + 0x2c]
call sub.libav.dll_Ordinal_44298
cmp dword [esp + 0x38], 0
pop ecx
je 0x405096
push str.ERROR
push str.Not_enough_threads_for_multiscan._Increase_MaxThreads.
push dword [esi + 4]
push esi
call fcn.00405703
add esp, 0x10
jmp 0x404f67
push str.MULTISCAN
push 0
mov dword [esp + 0x18], 8
call fcn.0040664b
pop ecx
pop ecx
push 2
pop ebp
call fcn.00406305
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], eax
test eax, eax
jne 0x4051e2
push str.ExitOnOOM
push ebx
call sub.libav.dll_Ordinal_44283
pop ecx
pop ecx
xor ecx, ecx
inc ecx
cmp dword [eax + 0x18], 0
push 0xffffffffffffffff
pop eax
cmovne ecx, eax
mov eax, ecx
jmp 0x405453
push str.STREAM
push 0
call fcn.0040664b
movzx eax, byte [esi + 0x28]
push eax
push ebx
push dword [esp + 0x30]
push dword [esp + 0x30]
push 0
push ebp
call fcn.00402c11
xor edi, edi
inc edi
add esp, 0x20
cmp eax, edi
jne 0x405118
mov ebp, dword [esp + 0x18]
mov dword [ebp], edi
cmp eax, 0x14
jne 0x405017
push str.ExitOnOOM
push ebx
call sub.libav.dll_Ordinal_44283
pop ecx
pop ecx
or ecx, 0xffffffff
cmp dword [eax + 0x18], 0
cmovne edi, ecx
mov eax, edi
jmp 0x405453
push str.SCAN
push 0
call fcn.0040664b
jmp 0x4051de
push str.STATS
push 0
call fcn.0040664b
cmp dword [esi + 0x38], 0
pop ecx
pop ecx
je 0x405175
push dword [esi + 0x30]
push str._u:
push ebp
call fcn.00407b32
add esp, 0xc
movzx eax, byte [esi + 0x28]
push eax
push ebp
call fcn.00406368
pop ecx
pop ecx
jmp 0x405017
sub eax, 0x12
je 0x4053f4
dec eax
je 0x405370
dec eax
je 0x4051a8
dec eax
jne 0x404f67
push str.SCANH
jmp 0x405144
push str.AllowAllMatchScan
push ebx
call sub.libav.dll_Ordinal_44283
cmp dword [eax + 0x18], 0
pop ecx
pop ecx
jne 0x4051ca
push str.ERROR
push str.ALLMATCHSCAN_command_disabled_by_clamd_configuration.
jmp 0x405085
push str.ALLMATCHSCAN
push 0
call fcn.0040664b
or dword [esp + 0x68], 0x200000
xor ebp, ebp
pop ecx
pop ecx
push str.MaxDirectoryRecursion
push ebx
mov dword [esp + 0x48], ebp
call sub.libav.dll_Ordinal_44283
mov eax, dword [eax + 0x10]
push str.FollowDirectorySymlinks
push ebx
mov dword [esp + 0x2c], eax
call sub.libav.dll_Ordinal_44283
add esp, 0x10
cmp dword [eax + 0x18], 0
je 0x405211
or dword [esp + 0x10], 2
push str.FollowFileSymlinks
push ebx
call sub.libav.dll_Ordinal_44283
cmp dword [eax + 0x18], 0
pop ecx
pop ecx
je 0x405228
or dword [esp + 0x10], edi
push str.CrossFilesystems
push ebx
call sub.libav.dll_Ordinal_44283
cmp dword [eax + 0x18], 0
pop ecx
pop ecx
jne 0x405259
lea eax, [esp + 0x78]
push eax
push dword [esi + 4]
call sub.libav.dll_Ordinal_44339
pop ecx
pop ecx
mov ecx, dword [esp + 0x74]
test eax, eax
cmove ecx, dword [esp + 0x78]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
push 0x403593
lea eax, [esp + 0x30]
push eax
test ecx, ecx
push fcn.0040314b
mov eax, Ordinal_3
cmovne eax, ecx
push eax
push dword [esp + 0x20]
push dword [esi + 4]
call sub.libav.dll_Ordinal_44221
add esp, 0x18
mov dword [esp + 0x10], eax
cmp eax, 0x14
jne 0x4052ab
push str.ExitOnOOM
push ebx
call sub.libav.dll_Ordinal_44283
cmp dword [eax + 0x18], 0
pop ecx
pop ecx
push 0xffffffffffffffff
pop eax
cmovne edi, eax
jmp 0x405138
cmp dword [esp + 0x70], 0
je 0x4052f6
cmp ebp, 2
jne 0x4052f6
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x3c]
call fcn.0040615c
push dword [esi + 0x2c]
call sub.libav.dll_Ordinal_44297
mov eax, dword [esi + 0x2c]
dec dword [eax + 0x2c]
push dword [esi + 0x2c]
call sub.libav.dll_Ordinal_44298
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
add esp, 0x18
jmp 0x405312
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov edi, ecx
sub edi, edx
sub edi, dword [esp + 0x44]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
lea eax, [edi + edx]
push 0x15
pop ebx
cmp eax, ecx
jne 0x40534b
cmp edx, ecx
je 0x40534b
push 0x429de0
push dword [esi + 4]
push esi
call fcn.0040576c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
add esp, 0xc
cmp eax, 0xffffffff
cmove ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
sub ecx, edi
sub ecx, edx
mov dword [ebp], ecx
cmp dword [esp + 0x10], ebx
jne 0x405369
push dword [esi + 0x38]
call fcn.004062e5
mov edx, dword [esp + 0x18]
pop ecx
mov eax, edx
jmp 0x405453
push str.INSTREAM
push 0
call fcn.0040664b
xor edi, edi
inc edi
push edi
push ebp
push ebx
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0
push esi
call fcn.004029db
add esp, 0x24
or ebp, 0xffffffff
cmp eax, edi
jne 0x4053c9
mov eax, dword [esp + 0x18]
mov dword [eax], edi
xor edi, edi
push 0
push dword [esi + 8]
call fcn.0040d8a8
push dword [esi + 8]
call fcn.00412d17
push dword [esi + 4]
mov dword [esi + 8], ebp
call sub.libav.dll_Ordinal_44219
add esp, 0x10
jmp 0x405138
cmp eax, 0x14
jne 0x4053e4
push str.ExitOnOOM
push ebx
call sub.libav.dll_Ordinal_44283
cmp dword [eax + 0x18], 0
pop ecx
pop ecx
cmovne edi, ebp
jmp 0x4053a4
cmp eax, 0x15
jne 0x4053a2
push dword [esi + 0x38]
call fcn.004062e5
pop ecx
jmp 0x4053a4
push str.MULTISCANFILE
xor ebx, ebx
push ebx
call fcn.0040664b
lea eax, [esp + 0x34]
push eax
push ebx
push dword [esi + 4]
mov dword [esp + 0x84], ebx
push dword [esi + 4]
mov dword [esp + 0x58], ebx
push ebx
mov dword [esp + 0x88], ebx
call fcn.0040314b
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
add esp, 0x1c
mov dword [esi + 4], ebx
mov dword [ebp], ecx
cmp eax, 0x16
jne 0x405448
push dword [esi + 0x38]
call fcn.004062e5
jmp 0x404f66
xor eax, eax
cmp dword [esp + 0x48], eax
cmovg eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xa8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00409448
add esp, 0x9c
ret