Function at 0x405fe3
Capabilities:
Delete file
Enumerate files on windows
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45ae27
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x650
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ebx, ebx
push esi
lea edi, [esp + 0x38]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x28], ebx
call fcn.00401b17
push str.mupdb
mov eax, edi
mov dword [esp + 0x668], ebx
call fcn.00401bbe
call fcn.00401cf4
mov edi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x34], edi
mov dword [esp], str.cache
call fcn.00401bbe
call fcn.00401cf4
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp], str..files
call fcn.00401cf4
mov dword [esp + 0x44], eax
mov eax, edi
mov dword [esp], str..packages
call fcn.00401cf4
mov dword [esp + 0x78], eax
mov eax, edi
mov dword [esp], str.filedb
call fcn.00401cf4
mov dword [esp + 0x30], eax
mov dword [esp], 0x103
lea eax, [esp + 0x44d]
push ebx
push eax
mov byte [esp + 0x454], bl
call fcn.0044f6b0
mov eax, dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [eax + 0x30c]
push ecx
add esi, 0x208
push esi
push eax
lea eax, [esp + 0x454]
push str._Smupdb_s__S
push eax
call edi
add esp, 0x14
push 0x13c
lea eax, [esp + 0x208]
push ebx
push eax
mov dword [esp + 0x20c], ebx
call fcn.0044f6b0
add esp, 0xc
push 0x103
lea eax, [esp + 0x345]
push ebx
push eax
mov byte [esp + 0x34c], bl
call fcn.0044f6b0
add esp, 0xc
push esi
push 0x45f79c
push dword [esp + 0x38]
lea eax, [esp + 0x34c]
push str._s_s_s_
push eax
call edi
add esp, 0x14
lea eax, [esp + 0x200]
push eax
lea eax, [esp + 0x344]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x406253
lea eax, [esp + 0x22c]
push eax
mov eax, dword [esp + 0x34]
call fcn.00401cf4
pop ecx
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push eax
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
je 0x406225
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebx
jbe 0x406225
lea eax, [esi + 1]
push eax
call fcn.00445488
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esi + 1]
push eax
push ebx
push dword [esp + 0x18]
call fcn.0044f6b0
add esp, 0xc
push ebx
lea eax, [esp + 0x18]
push eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
call fcn.0041214c
push ebx
push ebx
mov byte [esp + 0x66c], 1
mov dword [esp + 0x14], ebx
push 1
jmp 0x406206
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
inc dword [esp + 0x1c]
push ebx
push ebx
inc eax
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
test eax, eax
jne 0x4061f6
lea esi, [esp + 0x48]
mov byte [esp + 0x664], bl
call fcn.004121d2
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x28]
call fcn.00445f74
pop ecx
lea eax, [esp + 0x200]
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x406155
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x28], eax
cmp eax, 0xffffffff
je 0x406324
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebx
jbe 0x40631a
lea eax, [esi + 1]
push eax
call fcn.00445488
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esi + 1]
push eax
push ebx
push dword [esp + 0x18]
call fcn.0044f6b0
add esp, 0xc
push ebx
lea eax, [esp + 0x1c]
push eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x28], ebx
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
call fcn.0041214c
push ebx
push ebx
mov byte [esp + 0x66c], 2
mov dword [esp + 0x14], ebx
push 1
jmp 0x4062fb
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
inc dword [esp + 0x1c]
push ebx
push ebx
inc eax
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
test eax, eax
jne 0x4062eb
lea esi, [esp + 0x48]
mov byte [esp + 0x664], bl
call fcn.004121d2
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x200]
push eax
lea eax, [esp + 0x344]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x406513
lea eax, [esp + 0x22c]
push eax
mov eax, dword [esp + 0x34]
call fcn.00401cf4
pop ecx
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push eax
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
je 0x4064d8
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebx
jbe 0x4064d8
lea eax, [esi + 1]
push eax
call fcn.00445488
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esi + 1]
push eax
push ebx
push dword [esp + 0x18]
call fcn.0044f6b0
add esp, 0xc
push ebx
lea eax, [esp + 0x2c]
push eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x38], ebx
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
call fcn.0041214c
push ebx
push ebx
mov byte [esp + 0x66c], 3
mov dword [esp + 0x14], ebx
push 1
jmp 0x4064ab
mov eax, dword [esp + 0x48]
push 1
push str.shared
push esi
lea ecx, [esp + 0x54]
call dword [eax + 0x14]
test eax, eax
jne 0x40649f
push 0x103
lea eax, [esp + 0x7d]
push ebx
push eax
mov byte [esp + 0x84], bl
call fcn.0044f6b0
mov eax, dword [esp + 0x54]
add esp, 0xc
push ebx
push str.location
push esi
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
mov esi, eax
push str.systemcomponents
push esi
call fcn.00445cf0
pop ecx
pop ecx
test eax, eax
je 0x406452
push 0x5c
push esi
call fcn.00445950
pop ecx
inc eax
pop ecx
mov esi, eax
push esi
push 0x45f79c
push dword [ebp + 8]
lea eax, [esp + 0x84]
push str._S_s_s
push eax
call edi
add esp, 0x14
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
push ebx
push dword [esp + 0x24]
add eax, ecx
push eax
call fcn.00405b9b
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
push ebx
push ebx
inc eax
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
mov esi, eax
cmp esi, ebx
jne 0x4063eb
mov eax, dword [esp + 0xc]
add dword [esp + 0x24], eax
lea esi, [esp + 0x48]
mov byte [esp + 0x664], bl
call fcn.004121d2
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.0040e9f6
push esi
call fcn.00445f74
pop ecx
lea eax, [esp + 0x200]
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x406347
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x28], eax
cmp eax, 0xffffffff
je 0x406825
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebx
jbe 0x40681b
lea eax, [esi + 1]
push eax
call fcn.00445488
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esi + 1]
push eax
push ebx
push dword [esp + 0x18]
call fcn.0044f6b0
add esp, 0xc
push ebx
lea eax, [esp + 0x40]
push eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x4c], ebx
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
call fcn.0041214c
push ebx
xor esi, esi
push ebx
mov byte [esp + 0x66c], 4
mov eax, dword [esp + 0x50]
inc esi
push esi
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], ebx
call dword [eax + 0x18]
mov dword [esp + 0x20], eax
cmp eax, ebx
je 0x406801
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], esi
sub dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
push 0x45ebc7
push str.hash
push dword [esp + 0x28]
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
push 0x103
mov dword [esp + 0x30], eax
lea eax, [esp + 0x7d]
push ebx
push eax
mov byte [esp + 0x84], bl
call fcn.0044f6b0
add esp, 0xc
push dword [esp + 0x20]
lea eax, [esp + 0x38]
call fcn.00401bbe
push eax
lea eax, [esp + 0x80]
push 0x45f430
push eax
call edi
add esp, 0x10
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x30]
call fcn.00405b9b
push 0x103
lea eax, [esp + 0x555]
push ebx
push eax
mov byte [esp + 0x55c], bl
call fcn.0044f6b0
add esp, 0xc
push 0x5c
push dword [esp + 0x24]
call fcn.00445950
push 0x2e
push dword [esp + 0x2c]
mov dword [esp + 0x24], eax
call fcn.00445950
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x406762
cmp dword [esp + 0x14], ebx
je 0x406762
push 0x3f
lea eax, [esp + 0x185]
push ebx
push eax
mov byte [esp + 0x18c], bl
call fcn.0044f6b0
mov eax, dword [esp + 0x38]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4066c3
sub eax, ecx
lea ecx, [esp + 0x180]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.004118d3
pop ecx
push eax
lea eax, [esp + 0x184]
push eax
lea edx, [esp + 0x1c8]
call fcn.0040ecfa
inc dword [esp + 0x1c]
lea eax, [esi + 1]
push eax
mov eax, edx
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x564]
push str._s._s._s
push eax
mov byte [esi], bl
call edi
add esp, 0x1c
lea eax, [esp + 0x550]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x80]
push 0x45f430
push eax
mov byte [esi], 0x2e
call edi
add esp, 0x10
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x30]
call fcn.00405b9b
mov esi, dword [esp + 0x20]
push 0x10
push esi
push str.systemcomponents
call fcn.00445b76
add esp, 0xc
test eax, eax
jne 0x4067be
add esi, 0x11
push esi
push dword [ebp + 8]
lea eax, [esp + 0x80]
push str._S_s
push eax
call edi
add esp, 0x10
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x30]
call fcn.00405b9b
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x30]
call fcn.00405b9b
inc dword [esp + 0xc]
inc dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push ebx
add eax, ecx
push ebx
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x54]
call dword [eax + 0x18]
mov dword [esp + 0x20], eax
cmp eax, ebx
jne 0x4065d2
push dword [esp + 0x10]
call fcn.00445940
pop ecx
lea esi, [esp + 0x48]
mov byte [esp + 0x664], bl
call fcn.004121d2
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push dword [esp + 0x58]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x2c], eax
cmp eax, 0xffffffff
je 0x4069de
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebx
jbe 0x4069d4
lea eax, [esi + 1]
push eax
call fcn.00445488
pop ecx
mov dword [esp + 0x14], eax
lea eax, [esi + 1]
push eax
push ebx
push dword [esp + 0x1c]
call fcn.0044f6b0
add esp, 0xc
push ebx
lea eax, [esp + 0x40]
push eax
push esi
push dword [esp + 0x20]
mov dword [esp + 0x4c], ebx
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push dword [esp + 0x18]
lea eax, [esp + 0x50]
push eax
call fcn.00401de4
lea ecx, [esp + 0x48]
mov byte [esp + 0x664], 5
call fcn.00412b92
jmp 0x4068cf
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4068b7
sub eax, edx
je 0x4068d3
inc dword [esp + 0x1c]
lea ecx, [esp + 0x48]
call fcn.00412baa
cmp eax, ebx
jne 0x4068b4
lea ecx, [esp + 0x48]
call fcn.00412b92
jmp 0x4069ae
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4068e8
sub eax, edx
je 0x4069ba
push 0x103
lea eax, [esp + 0x7d]
push ebx
push eax
mov byte [esp + 0x84], bl
call fcn.0044f6b0
add esp, 0xc
push dword [esp + 0x10]
lea eax, [esp + 0x7c]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x45f430
push eax
call edi
add esp, 0x14
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov esi, dword [esp + 0x10]
push 0x10
push esi
push str.systemcomponents
call fcn.00445b76
add esp, 0xc
test eax, eax
jne 0x40698a
add esi, 0x10
push esi
push dword [esp + 0x3c]
lea eax, [esp + 0x80]
push dword [esp + 0x3c]
push 0x45f430
push eax
call edi
add esp, 0x14
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea esi, [esp + 0x78]
call fcn.0040e9f6
mov eax, dword [ebp + 8]
push dword [eax + 0x324]
inc dword [esp + 0x10]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x18]
call fcn.00405b9b
lea ecx, [esp + 0x48]
call fcn.00412baa
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x4068e1
push dword [esp + 0x14]
call fcn.00445940
pop ecx
lea esi, [esp + 0x48]
mov byte [esp + 0x664], bl
call fcn.0041264a
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x448]
push eax
call esi
push dword [esp + 0x40]
call esi
push dword [esp + 0x74]
call esi
push ebx
push dword [esp + 0x34]
call fcn.0040ea15
push ebx
push dword [esp + 0x50]
call fcn.0040ea15
push dword [esp + 0x84]
call fcn.00445f74
add esp, 0x14
push dword [esp + 0x40]
call fcn.00445f74
pop ecx
push dword [esp + 0x30]
call fcn.00445f74
pop ecx
push dword [esp + 0x44]
call fcn.00445f74
pop ecx
call fcn.004055cb
mov edi, eax
cmp edi, ebx
je 0x406a57
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x406a49
sub eax, edx
je 0x406a57
push edi
call esi
push edi
call fcn.00445f74
lea eax, [esp + 0x38]
mov dword [esp], str.systemcomponents
call fcn.00401bbe
call fcn.00401cf4
mov esi, eax
pop ecx
lea eax, [esp + 0x34]
call fcn.00401bd8
xor ebx, ebx
inc ebx
push ebx
push esi
mov edi, eax
call fcn.0040ea15
push ebx
push edi
call fcn.0040ea15
push edi
call fcn.00445f74
add esp, 0x14
push esi
call fcn.00445f74
mov eax, dword [ebp + 8]
pop ecx
push dword [eax + 0x324]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x18]
call fcn.00405b9b
lea eax, [esp + 0x34]
call fcn.00401b67
mov ecx, dword [esp + 0x65c]
pop edi
pop esi
mov eax, ebx
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret