Function at 0x404ed0
Capabilities:
Enumerate files on windows
Extract resource via kernel32 functions
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4294
call fcn.0043d750
mov eax, dword [0x47b014]
xor eax, esp
mov dword [esp + 0x4290], eax
push ebx
push esi
push edi
push 0x250
lea eax, [esp + 0x3c]
mov dword [esp + 0x14], 0
push 0
push eax
call fcn.00423950
add esp, 0xc
lea eax, [esp + 0x2290]
push eax
push 0x1001
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ebx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x404f37
mov dword [esp + 0x10], 0x17
jmp 0x405190
mov edx, 0x1001
lea ecx, [esp + 0x288]
call fcn.00401e60
lea eax, [esp + 0x288]
push eax
call ebx
test eax, eax
jne 0x404f63
mov dword [esp + 0x10], 0x18
jmp 0x405190
lea eax, [esp + 0x38]
mov dword [esp + 0x1c], 0
push eax
push str.smj2534_.dll
mov dword [esp + 0x2c], 0
mov esi, 1
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x34], eax
test eax, eax
je 0x405184
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], esi
xor eax, eax
xor edi, edi
push 0x60
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x68]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ebx, eax
test ebx, ebx
je 0x40513b
push 0x10
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40504d
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esp + 0x18], eax
test eax, eax
je 0x40504d
push dword [esp + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40504d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0x30], eax
test eax, eax
je 0x405043
push dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x405043
push dword [esp + 0x18]
push dword [esp + 0x34]
push edi
call fcn.00424db0
add esp, 0xc
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
jmp 0x40504d
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FreeResource]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ebx, dword [esp + 0x28]
mov ecx, edi
push str.SCANMATIK
mov edx, ebx
call fcn.00404af0
add esp, 4
test al, al
je 0x40513b
push str.Router
mov edx, ebx
mov ecx, edi
call fcn.00404af0
add esp, 4
test al, al
je 0x40513b
test edi, edi
je 0x4050ab
test ebx, ebx
je 0x4050ab
push 0x466c04
mov edx, ebx
mov ecx, edi
call fcn.00404af0
add esp, 4
test al, al
jne 0x40513b
mov eax, dword [esp + 0x1c]
mov edi, eax
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
jae 0x405102
mov ecx, closesocket
nop
add edi, esi
add esi, esi
cmove esi, ecx
cmp edi, ebx
jb 0x4050c0
cmp edi, eax
jbe 0x405102
xor ecx, ecx
mov eax, edi
mov edx, 0x208
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
push dword [esp + 0x10]
call fcn.0042cad8
mov dword [esp + 0x14], eax
add esp, 8
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0xc], 0
cmovne eax, edi
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0xc]
push 0x208
push 0
push edi
call fcn.00423950
inc dword [esp + 0x30]
lea eax, [esp + 0x70]
add dword [esp + 0x2c], 0x208
inc ebx
push eax
push 0x104
push edi
mov dword [esp + 0x44], ebx
call fcn.0042cae3
add esp, 0x18
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x38]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404fa8
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x40517e
mov esi, dword [esp + 0xc]
xor dl, dl
mov ecx, esi
call fcn.00403ba0
add esi, 0x208
mov dword [esp + 0x10], eax
sub ebx, 1
jne 0x405166
mov ebx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push dword [esp + 0xc]
call fcn.00430bb8
add esp, 4
lea eax, [esp + 0x2290]
push eax
call ebx
mov ecx, dword [esp + 0x429c]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00422009
mov esp, ebp
pop ebp
ret