Function at 0x10001e20
Capabilities:
Allocate or change rwx memory
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e08b0
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x10114d18]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ecx, 0x1012c670
call fcn.100657a3
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x30], eax
xor eax, eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
cmp eax, ecx
jge 0x100020bd
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x2c], ecx
test esi, esi
je 0x100020b7
cmp dword [ecx + 4], 0
je 0x100020b7
mov esi, dword [esi]
test esi, esi
je 0x10001ecf
mov al, byte [esi]
cmp al, 0xff
jne 0x10001eba
cmp byte [esi + 1], 0x25
jne 0x10001ecf
mov edi, dword [esi + 2]
push edi
push esi
call fcn.10002160
add esp, 8
test al, al
je 0x10001ecf
mov esi, dword [edi]
jmp 0x10001ecf
cmp al, 0xeb
jne 0x10001ecf
movsx eax, byte [esi + 1]
add esi, 2
add esi, eax
cmp byte [esi], 0xe9
jne 0x10001ecf
add esi, dword [esi + 1]
mov edi, dword [ebp - 0x2c]
mov edi, dword [edi + 4]
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x10001ee1
mov dword [ebp - 0x14], edi
jmp 0x10001f26
mov al, byte [edi]
cmp al, 0xff
jne 0x10001f0b
cmp byte [edi + 1], 0x25
jne 0x10001f26
mov eax, dword [edi + 2]
push eax
push edi
mov dword [ebp - 0x28], eax
call fcn.10002160
add esp, 8
test al, al
je 0x10001f26
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x10001f26
cmp al, 0xeb
jne 0x10001f26
movsx eax, byte [edi + 1]
add edi, 2
add edi, eax
mov dword [ebp - 0x14], edi
cmp byte [edi], 0xe9
jne 0x10001f26
add edi, dword [edi + 1]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp + 8]
cmp dword [edi], 0
jne 0x10001f46
mov eax, dword [ebp + 0x10]
push 0x40
push 0x3000
shl eax, 5
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [edi], eax
mov ecx, dword [ebp - 0x20]
mov edx, esi
movaps xmm0, xmmword [0x100ea500]
shl ecx, 5
add ecx, dword [edi]
mov dword [ebp - 0x28], ecx
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
xor ecx, ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 5
jge 0x10001ff4
push 0
push 0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
mov eax, dword [ebp - 0x28]
mov edi, edx
push 0
push edx
add eax, ecx
push eax
call fcn.10035cf0
add esp, 0x18
mov edx, eax
cmp dword [ebp - 0x24], 0
jne 0x10001ff1
mov al, byte [edi]
mov ecx, edx
sub ecx, esi
mov dword [ebp - 0x18], ecx
cmp al, 0xe9
je 0x10001ff4
cmp al, 0xe0
je 0x10001ff4
cmp al, 0xc2
je 0x10001ff4
cmp al, 0xc3
je 0x10001ff4
cmp al, 0xcc
je 0x10001ff4
cmp al, 0xff
jne 0x10001fc0
cmp byte [edi + 1], 0x25
je 0x10001ff4
cmp al, 0x26
je 0x10001fd8
cmp al, 0x2e
je 0x10001fd8
cmp al, 0x36
je 0x10001fd8
cmp al, 0xe3
je 0x10001fd8
cmp al, 0x64
je 0x10001fd8
cmp al, 0x65
jne 0x10001f66
cmp byte [edi + 1], 0xff
jne 0x10001f66
cmp byte [edi + 2], 0x25
jne 0x10001f66
jmp 0x10001ff4
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
lea edx, [ecx + esi]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], 0
mov byte [edi + 0x17], cl
add ecx, edi
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], edx
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub edx, eax
lea eax, [edi + 0x17]
mov dword [ecx + 1], edx
lea edx, [ecx + 5]
mov ecx, eax
sub ecx, edx
cmp edx, eax
cmova ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x1000203d
push ecx
push 0xcc
push edx
call fcn.10087b80
add esp, 0xc
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
push 0x40
push dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [edi + 0x1c]
lea eax, [esi + 5]
sub ecx, eax
mov byte [esi], 0xe9
mov dword [esi + 1], ecx
lea edx, [esi + 5]
mov ecx, dword [edi + 0x18]
sub ecx, edx
mov dword [ebp - 0x28], 0
cmp edx, dword [edi + 0x18]
cmova ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x1000208b
push ecx
push 0xcc
push edx
call fcn.10087b80
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [eax], edi
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
movzx eax, byte [edi + 0x17]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
movzx eax, byte [edi + 0x17]
push eax
push esi
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov eax, dword [ebp - 0x20]
inc eax
jmp 0x10001e67
lea eax, [ebp + 0x10]
shl ecx, 5
push eax
mov eax, dword [ebp + 8]
push 0x20
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, 0x1012c670
mov dword [ebp - 4], 0xffffffff
call fcn.100659d1
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret