Function at 0x401040
Capabilities:
Delete directory
Delete file
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb64
mov eax, dword [0x4360fc]
mov dword [esp + 0xb60], eax
xor eax, eax
push ebx
xor ebx, ebx
push esi
push edi
mov byte [esp + 0x958], bl
mov ecx, 0x40
lea edi, [esp + 0x959]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x10], bl
mov ecx, 0x40
lea edi, [esp + 0x11]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x748], bl
mov ecx, 0x40
lea edi, [esp + 0x749]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x538], bl
mov ecx, 0x40
lea edi, [esp + 0x539]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x220], bl
mov ecx, 0x40
lea edi, [esp + 0x221]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x328], bl
mov ecx, 0x40
lea edi, [esp + 0x329]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x430], bl
mov ecx, 0x40
lea edi, [esp + 0x431]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x640], bl
mov ecx, 0x40
lea edi, [esp + 0x641]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x850], bl
mov ecx, 0x40
lea edi, [esp + 0x851]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0xa60], bl
mov ecx, 0x40
lea edi, [esp + 0xa61]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x119]
mov byte [esp + 0x118], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x10]
push eax
push ebx
push ebx
push 0x26
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea edi, [esp + 0x10]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x401190
mov ecx, dword [str.BIOSUPDATE]
mov edx, dword [0x42a784]
mov eax, dword [0x42a788]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
mov dword [edi], ecx
lea ecx, [esp + 0x10]
push ecx
mov dword [edi + 4], edx
lea edx, [esp + 0x95c]
push str._sSWinFlash.exe
push edx
mov dword [edi + 8], eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 0xc
lea eax, [esp + 0x958]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x74c]
push str._smfc42.dll
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x748]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x53c]
push str._smsvcp60.dll
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x538]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x224]
push str._smsvcrt.dll
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x220]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x32c]
push str._sPHLASH.INI
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x328]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x434]
push str._sPhlashLc.dll
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x430]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x644]
push str._sPhlash9X.vxd
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x640]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
push str._sPhlashNT.sys
lea edx, [esp + 0x858]
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x850]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0xa64]
push str._sWINPHLASH.GID
push edx
call esi
add esp, 0xc
lea eax, [esp + 0xa60]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x11c]
push str._sPHLASH.txt
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x118]
push eax
call edi
push str.huntsf0f.imc
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x120]
push str._s_s
push edx
call esi
add esp, 0x10
lea eax, [esp + 0x118]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ecx, dword [esp + 0xb6c]
xor eax, eax
call fcn.0040e7f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret