Function at 0x401050
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
mov ebx, ecx
mov dword [ebp - 0xc], edx
push esi
push edi
mov edi, dword [ebx + 0x3c]
add edi, ebx
movzx eax, word [edi + 0x14]
lea esi, [edi + 0x18]
movzx ecx, word [edi + 6]
add esi, eax
mov eax, ecx
add eax, 0xffffffff
je 0x40107d
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
lea eax, [ecx + 1]
mov dword [ebp - 0x14], 0xe0000040
mov ecx, dword [edi + 0x3c]
xorps xmm0, xmm0
mov word [edi + 6], ax
xor eax, eax
mov edx, dword [esi + 0x10]
mov word [ebp - 0x33], ax
dec edx
add edx, ecx
mov byte [ebp - 0x31], al
mov dword [ebp - 0x18], eax
neg ecx
and edx, ecx
movlpd qword [ebp - 0x20], xmm0
mov dword [esi + 0x10], edx
mov eax, dword [str..tls]
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x38], eax
mov al, byte [0x44a6a8]
mov byte [ebp - 0x34], al
lea eax, [ecx + 0x1d]
neg ecx
and eax, ecx
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x14]
add eax, edx
mov dword [ebp - 0x24], eax
lea edx, [ecx - 1]
not edx
lea eax, [ecx + 0x1d]
and eax, edx
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0xc]
dec eax
add eax, dword [esi + 8]
add eax, ecx
and eax, edx
cmp dword [esi + 0x4c], 0
mov dword [ebp - 0x2c], eax
je 0x401113
push str.____Injection_does_not_support_extending_IMAGE_SECTION_HEADER_table_yet.
call fcn.00401010
add esp, 4
call fcn.00412ff0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movups xmm0, xmmword [ebp - 0x38]
movups xmmword [esi + 0x28], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [esi + 0x38], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [esi + 0x48], xmm0
mov eax, dword [esi + 0x38]
add eax, dword [edi + 0x50]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 8
mov dword [ebp - 4], eax
call eax
push eax
mov eax, dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x10], eax
call eax
push dword [edi + 0x50]
mov dword [ebp - 8], eax
push ebx
mov ebx, eax
push ebx
call fcn.004040b0
mov eax, dword [edi + 0x34]
xorps xmm0, xmm0
add eax, dword [esi + 0x34]
add esp, 0xc
mov dword [ebp - 0x20], eax
add eax, 0x18
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x3c]
mov edx, dword [ebp - 0xc]
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x18], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [eax + ebx], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [eax + ebx + 0x10], xmm0
mov ecx, dword [edi + 0x34]
mov eax, dword [esi + 0x3c]
add ecx, 0x1c
add ecx, dword [esi + 0x34]
mov dword [eax + ebx + 0x18], ecx
mov eax, edx
mov ecx, dword [esi + 0x3c]
mov byte [ecx + ebx + 0x1c], 0x68
add ecx, ebx
shr eax, 8
mov byte [ecx + 0x1d], dl
mov byte [ecx + 0x1e], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x1f], al
shr edx, 0x18
mov byte [ecx + 0x20], dl
mov byte [ecx + 0x21], 0xc3
mov edx, dword [ebx + 0x3c]
add edx, ebx
mov dword [edx + 0xc4], 0x18
mov eax, dword [esi + 0x34]
mov ecx, dword [edx + 0x38]
mov dword [edx + 0xc0], eax
mov eax, dword [esi + 0x30]
dec eax
add eax, ecx
neg ecx
and eax, ecx
add eax, dword [esi + 0x34]
mov dword [edx + 0x50], eax
mov dword [edx + 0x28], 0
mov ecx, dword [ebx + 0x3c]
movzx eax, word [ecx + ebx + 0x14]
lea edx, [ecx + ebx]
add eax, 0x18
add edx, eax
movzx eax, word [ecx + ebx + 6]
sub eax, 1
je 0x40121b
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov esi, dword [edx + 0x14]
add esi, dword [edx + 0x10]
push esi
push 8
call dword [ebp - 4]
push eax
call dword [ebp - 0x10]
push esi
mov edi, eax
push ebx
push edi
call fcn.004040b0
add esp, 0xc
push ebx
push 0
call dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret