Function at 0x10007af8
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
push edi
and dword [ebp - 0xc], 0
and dword [ebp - 0x28], 0
and dword [ebp - 4], 0
mov byte [ebp - 0x18], 0xe9
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
mov byte [ebp - 0x15], 0
mov byte [ebp - 0x14], 0
cmp dword [ebp + 0xc], 0
jne 0x10007b2d
xor eax, eax
jmp 0x10007d4f
cmp dword [ebp + 8], 0
jne 0x10007b3a
xor eax, eax
jmp 0x10007d4f
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
cmp eax, 0xe9
je 0x10007b54
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
cmp eax, 0xe8
jne 0x10007b5b
xor eax, eax
jmp 0x10007d4f
cmp dword [ebp + 0x10], 0
jne 0x10007b71
mov dword [ebp - 0xc], 0x1b
mov dword [ebp - 0x28], 0x10028000
jmp 0x10007b85
cmp dword [ebp + 0x10], 1
jne 0x10007b85
mov dword [ebp - 0xc], 0x1d
mov dword [ebp - 0x28], 0x1002801b
push dword [ebp + 8]
call fcn.1000787f
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 5
jge 0x10007baa
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x20]
push eax
call fcn.1000787f
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
jmp 0x10007b90
cmp dword [ebp - 0x20], 0x10
jle 0x10007bb7
xor eax, eax
jmp 0x10007d4f
mov eax, dword [ebp - 0xc]
add eax, 0x58
mov dword [ebp - 0x10], eax
cmp dword [0x10052dac], 0
jne 0x10007bed
push 0
push 0
push 0x40000
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [0x10052dac], eax
cmp dword [0x10052dac], 0
jne 0x10007bed
xor eax, eax
jmp 0x10007d4f
push 0x58
push 0
push dword [0x10052dac]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x24], eax
push 0x16
pop ecx
mov esi, 0x10028040
mov edi, dword [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
mov eax, 0x90909090
mov edi, dword [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push dword [ebp - 0xc]
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
add eax, 0x15
push eax
call fcn.10019650
add esp, 0xc
push dword [ebp - 0x20]
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.10019650
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x10], 0xe9
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
add ecx, 0x15
sub eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x11], eax
mov eax, dword [ebp - 0x24]
add eax, 0x15
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x45], 0xe9
mov eax, dword [ebp - 0x24]
add eax, 0x4a
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x46], ecx
mov eax, dword [ebp - 0x24]
add eax, 0x45
mov ecx, dword [ebp + 8]
add ecx, 5
sub eax, ecx
mov dword [ebp - 0x17], eax
cmp dword [ebp + 0x10], 0
jne 0x10007cba
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [eax - 4], ecx
jmp 0x10007ce1
cmp dword [ebp + 0x10], 1
jne 0x10007ce1
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [eax - 4], ecx
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [eax - 9], 0x1000780a
lea eax, [ebp - 0x1c]
push eax
push 0x40
push dword [ebp - 0x20]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x10007d37
push 5
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 8]
call fcn.10007839
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 0x24]
add eax, 0x4a
mov ecx, dword [ebp - 8]
sub ecx, eax
push ecx
mov eax, dword [ebp - 0x24]
add eax, 0x46
push eax
call fcn.1000780d
pop ecx
pop ecx
jmp 0x10007d4c
push dword [ebp - 0x24]
push 0
push dword [0x10052dac]
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
jmp 0x10007d4f
mov eax, dword [ebp - 0x24]
pop edi
pop esi
leave
ret 0xc