Function at 0x10007100
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov dword [esp + 4], ecx
test edx, edx
je 0x100073d0
mov esi, edx
cmp byte [edx], 0xe9
jne 0x100071ac
sub esp, 0x10
vmovaps xmm0, xmmword [0x10024350]
vmovups xmmword [esp], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x100073d0
mov ebx, eax
mov edi, dword [esi + 1]
mov dword [esp], 0
mov ebp, esp
push ebp
push 0x40
push 5
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x10007363
add edi, esi
sub edi, ebx
mov byte [ebx], 0xe9
mov dword [ebx + 1], edi
push ebp
push dword [esp + 4]
push 5
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10007334
mov dword [eax], ebx
mov dword [esp], 0
push ebp
push 0x40
push 5
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1000734b
mov dword [edi], 0
jmp 0x10007363
mov ebp, 8
cmp dword [esi], 0x5100ff3
je 0x10007274
xor eax, eax
mov ecx, esi
nop word cs:[eax + eax]
movzx edx, byte [ecx]
movzx edx, byte [edx + 0x10024540]
cmp dl, 0x10
jae 0x10007200
test dl, dl
je 0x100073d0
movzx edi, dl
add ecx, edi
add al, dl
cmp al, 5
jb 0x100071d0
jmp 0x10007271
xor ebx, ebx
nop word cs:[eax + eax]
movzx edx, dl
mov edx, dword [edx*4 + 0x10024330]
movzx ebx, bl
movzx edi, byte [ecx + ebx*4 + 1]
movzx edx, byte [edx + edi]
cmp edx, 0x10
jb 0x100071df
mov edx, dword [edx*4 + 0x10024330]
movzx edi, byte [ecx + ebx*4 + 2]
movzx edx, byte [edx + edi]
cmp edx, 0x10
jb 0x100071df
mov edx, dword [edx*4 + 0x10024330]
movzx edi, byte [ecx + ebx*4 + 3]
movzx edx, byte [edx + edi]
cmp edx, 0x10
jb 0x100071df
mov edx, dword [edx*4 + 0x10024330]
movzx edi, byte [ecx + ebx*4 + 4]
movzx edx, byte [edx + edi]
inc bl
cmp dl, 0xf
ja 0x10007210
jmp 0x100071df
movzx ebp, al
lea eax, [ebp + 5]
push 0x40
push 0x3000
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
je 0x100073d0
mov edi, eax
push ebp
push esi
push eax
call fcn.10007a70
add esp, 0xc
mov ebx, edi
add ebx, ebp
mov dword [esp], 0
mov eax, esp
push eax
push 0x40
push 5
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x100073c2
lea eax, [esi + ebp]
sub eax, ebx
add eax, 0xfffffffb
mov byte [ebx], 0xe9
mov dword [ebx + 1], eax
mov eax, esp
push eax
push dword [esp + 4]
push 5
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1000736d
mov dword [eax], edi
mov dword [esp], 0
mov ecx, esp
push ecx
push 0x40
push ebp
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x100073bc
lea eax, [ebp - 5]
mov ecx, dword [esp + 4]
sub ecx, esi
add ecx, 0xfffffffb
mov byte [esi], 0xe9
mov dword [esi + 1], ecx
test eax, eax
je 0x1000732f
lea ecx, [esi + 5]
push eax
push 0x90
push ecx
call fcn.10007b20
add esp, 0xc
mov eax, esp
push eax
jmp 0x100073ae
mov dword [esp], 0
push ebp
push 0x40
push 5
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x10007363
mov eax, dword [esp + 4]
sub eax, esi
add eax, 0xfffffffb
mov byte [esi], 0xe9
mov dword [esi + 1], eax
push ebp
push dword [esp + 4]
push 5
jmp 0x100073b3
push 0x8000
push 0
push ebx
jmp 0x100073ca
mov dword [esp], 0
mov ebx, esp
push ebx
push 0x40
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x100073c2
lea eax, [ebp - 5]
mov ecx, dword [esp + 4]
sub ecx, esi
add ecx, 0xfffffffb
mov byte [esi], 0xe9
mov dword [esi + 1], ecx
test eax, eax
je 0x100073ad
lea ecx, [esi + 5]
push eax
push 0x90
push ecx
call fcn.10007b20
add esp, 0xc
push ebx
push dword [esp + 4]
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x100073d0
mov dword [ebx], 0
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret