Function at 0x401de0
Capabilities:
Delete file
Extract resource via kernel32 functions
Get common file path
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x406990
mov eax, dword fs:[0]
push eax
sub esp, 0xe20
mov eax, dword [0x40d018]
xor eax, ebp
mov dword [ebp - 0x20], eax
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xdf0], ecx
mov dword [ebp - 0x10], 0x40b318
push 0x104
push 0
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x12c]
push ecx
push 0
push 0
push 0x25
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0x95c], eax
lea edx, [ebp - 0x12c]
add edx, 0xffffffff
mov dword [ebp - 0xdf4], edx
mov eax, dword [ebp - 0xdf4]
mov cl, byte [eax + 1]
mov byte [ebp - 0xdf5], cl
add dword [ebp - 0xdf4], 1
cmp byte [ebp - 0xdf5], 0
jne 0x401e59
mov edi, dword [ebp - 0xdf4]
mov edx, dword [0x40b324]
mov dword [edi], edx
mov eax, dword [0x40b328]
mov dword [edi + 4], eax
mov ecx, dword [0x40b32c]
mov dword [edi + 8], ecx
mov dl, byte [0x40b330]
mov byte [edi + 0xc], dl
call fcn.004023c0
mov dword [ebp - 0xdd8], eax
push str.PROG_DATA
push 0x83
mov eax, dword [ebp - 0xdd8]
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x401ed2
xor eax, eax
jmp 0x40231f
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0xdd8]
push edx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x538], eax
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0xdd8]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x530], eax
mov edx, dword [ebp - 0x530]
push edx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x1c], eax
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x534], eax
cmp dword [ebp - 0x534], 0
je 0x401f6c
push 0
lea ecx, [ebp - 0x958]
push ecx
mov edx, dword [ebp - 0x538]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x534]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [ebp - 0x534]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov ecx, esp
mov dword [ebp - 0xde4], esp
push 0x40b340
call dword [sym.imp.mfc90.dll_Ordinal_310]
mov dword [ebp - 0xdfc], eax
mov eax, dword [ebp - 0xdfc]
mov dword [ebp - 0xe00], eax
mov dword [ebp - 4], 0
push ecx
mov ecx, esp
mov dword [ebp - 0xde8], esp
lea edx, [ebp - 0x12c]
push edx
call dword [sym.imp.mfc90.dll_Ordinal_310]
mov dword [ebp - 0xe04], eax
mov dword [ebp - 4], 0xffffffff
call fcn.00405750
add esp, 8
push 0x104
push 0
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x12c]
push ecx
push 0
push 0
push 0x25
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0x95c], eax
lea edx, [ebp - 0x12c]
add edx, 0xffffffff
mov dword [ebp - 0xe08], edx
mov eax, dword [ebp - 0xe08]
mov cl, byte [eax + 1]
mov byte [ebp - 0xe09], cl
add dword [ebp - 0xe08], 1
cmp byte [ebp - 0xe09], 0
jne 0x402004
mov edi, dword [ebp - 0xe08]
mov edx, dword [str._netus.htm]
mov dword [edi], edx
mov eax, dword [0x40b34c]
mov dword [edi + 4], eax
mov cx, word [0x40b350]
mov word [edi + 8], cx
mov dl, byte [0x40b352]
mov byte [edi + 0xa], dl
push 0x80
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0x12c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor edx, edx
mov dword [ebp - 0x954], edx
mov dword [ebp - 0x950], edx
mov dword [ebp - 0x94c], edx
mov dword [ebp - 0x948], edx
mov dword [ebp - 0x944], edx
mov dword [ebp - 0xddc], 0
jmp 0x4020a7
mov eax, dword [ebp - 0xddc]
add eax, 1
mov dword [ebp - 0xddc], eax
cmp dword [ebp - 0xddc], 8
jge 0x4020d8
mov ecx, dword [ebp - 0xddc]
add ecx, 0xa
push ecx
mov ecx, dword [ebp - 0xdf0]
add ecx, 0x78
call dword [sym.imp.mfc90.dll_Ordinal_2672]
mov edx, dword [ebp - 0xddc]
mov byte [ebp + edx - 0x954], al
jmp 0x402098
mov dword [ebp - 0xde0], 8
jmp 0x4020f3
mov eax, dword [ebp - 0xde0]
add eax, 1
mov dword [ebp - 0xde0], eax
cmp dword [ebp - 0xde0], 0x10
jge 0x402124
mov ecx, dword [ebp - 0xde0]
add ecx, 0x17
push ecx
mov ecx, dword [ebp - 0xdf0]
add ecx, 0x78
call dword [sym.imp.mfc90.dll_Ordinal_2672]
mov edx, dword [ebp - 0xde0]
mov byte [ebp + edx - 0x954], al
jmp 0x4020e4
lea ecx, [ebp - 0xdd4]
call fcn.00402900
mov dword [ebp - 4], 1
push 0x10
push 0x10
mov eax, dword [0x40d0b8]
push eax
lea ecx, [ebp - 0x954]
push ecx
lea ecx, [ebp - 0xdd4]
call fcn.00402970
lea ecx, [ebp - 0xdd4]
call fcn.00401000
mov dword [ebp - 0x940], 0
push 0x400
push 0
lea edx, [ebp - 0x52c]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x400
push 0
lea eax, [ebp - 0x93c]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x18]
push ecx
push 0x3eb
mov ecx, dword [ebp - 0xdf0]
call sub.mfc90.dll_Ordinal_2899
mov ecx, eax
call sub.mfc90.dll_Ordinal_4116
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_910]
mov dword [ebp - 0xe10], eax
lea edx, [ebp - 0x93c]
mov dword [ebp - 0xe14], edx
mov eax, dword [ebp - 0xe14]
mov dword [ebp - 0xe18], eax
mov ecx, dword [ebp - 0xe10]
mov dl, byte [ecx]
mov byte [ebp - 0xe19], dl
mov eax, dword [ebp - 0xe14]
mov cl, byte [ebp - 0xe19]
mov byte [eax], cl
mov edx, dword [ebp - 0xe10]
add edx, 1
mov dword [ebp - 0xe10], edx
mov eax, dword [ebp - 0xe14]
add eax, 1
mov dword [ebp - 0xe14], eax
cmp byte [ebp - 0xe19], 0
jne 0x4021e2
push 0
lea ecx, [ebp - 0x52c]
push ecx
lea edx, [ebp - 0x93c]
push edx
lea ecx, [ebp - 0xdd4]
call fcn.004047d0
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x534], eax
lea ecx, [ebp - 0x52c]
mov dword [ebp - 0xe20], ecx
mov edx, dword [ebp - 0xe20]
add edx, 1
mov dword [ebp - 0xe24], edx
mov eax, dword [ebp - 0xe20]
mov cl, byte [eax]
mov byte [ebp - 0xe25], cl
add dword [ebp - 0xe20], 1
cmp byte [ebp - 0xe25], 0
jne 0x402280
mov edx, dword [ebp - 0xe20]
sub edx, dword [ebp - 0xe24]
mov dword [ebp - 0xe2c], edx
push 0
lea eax, [ebp - 0x958]
push eax
mov ecx, dword [ebp - 0xe2c]
push ecx
lea edx, [ebp - 0x52c]
push edx
mov eax, dword [ebp - 0x534]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0x534]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 7
lea edx, [ebp - 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [ebp - 0xdec], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xdd4]
call fcn.00402950
mov eax, dword [ebp - 0xdec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.00405de0
mov esp, ebp
pop ebp
ret