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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x100f4384]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], eax
push edi
mov edi, dword [ebp + 0xc]
test edx, edx
je 0x1006e466
mov dword [edx], ebx
test ecx, ecx
je 0x1006e46c
mov dword [ecx], ebx
test eax, eax
je 0x1006e472
mov dword [eax], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x100fa7d0], eax
je 0x1006e498
pop edi
pop esi
mov eax, 0x10dd
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100683c1
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [0x100fa7d4]
test eax, eax
jne 0x1006e7fb
test esi, esi
je 0x1006e4c1
mov esi, dword [esi]
test esi, esi
jne 0x1006e4d9
mov eax, dword [ebp - 0x20]
mov dword [0x100fa7d4], 6
mov dword [0x100fa7d8], eax
pop edi
pop esi
mov eax, 6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100683c1
mov esp, ebp
pop ebp
ret 0x14
cmp byte [esi], 0xff
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
jne 0x1006e503
cmp byte [esi + 1], 0x25
jne 0x1006e503
mov eax, dword [esi + 2]
push eax
push esi
mov dword [ebp - 0xc], eax
call fcn.1006e2e0
add esp, 8
test al, al
je 0x1006e503
mov esi, dword [ebp - 0xc]
mov esi, dword [esi]
cmp byte [esi], 0xeb
jne 0x1006e544
movsx eax, byte [esi + 1]
add esi, 2
add esi, eax
mov al, byte [esi]
cmp al, 0xff
jne 0x1006e538
cmp byte [esi + 1], 0x25
jne 0x1006e544
mov eax, dword [esi + 2]
push eax
push esi
mov dword [ebp - 0xc], eax
call fcn.1006e2e0
add esp, 8
test al, al
je 0x1006e544
mov esi, dword [ebp - 0xc]
mov esi, dword [esi]
jmp 0x1006e544
cmp al, 0xe9
jne 0x1006e544
mov eax, dword [esi + 1]
add esi, 5
add esi, eax
test edi, edi
je 0x1006e5ad
cmp byte [edi], 0xff
jne 0x1006e56c
cmp byte [edi + 1], 0x25
jne 0x1006e56c
mov eax, dword [edi + 2]
push eax
push edi
mov dword [ebp - 0xc], eax
call fcn.1006e2e0
add esp, 8
test al, al
je 0x1006e56c
mov edi, dword [ebp - 0xc]
mov edi, dword [edi]
cmp byte [edi], 0xeb
jne 0x1006e5ad
movsx eax, byte [edi + 1]
add edi, 2
add edi, eax
mov al, byte [edi]
cmp al, 0xff
jne 0x1006e5a1
cmp byte [edi + 1], 0x25
jne 0x1006e5ad
mov eax, dword [edi + 2]
push eax
push edi
mov dword [ebp - 0xc], eax
call fcn.1006e2e0
add esp, 8
test al, al
je 0x1006e5ad
mov edi, dword [ebp - 0xc]
mov edi, dword [edi]
jmp 0x1006e5ad
cmp al, 0xe9
jne 0x1006e5ad
mov eax, dword [edi + 1]
add edi, 5
add edi, eax
cmp edi, esi
jne 0x1006e5c2
cmp dword [0x100fa7c8], ebx
jne 0x1006e7b0
jmp 0x1006e77b
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x1006e5cb
mov dword [eax], esi
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x1006e5d4
mov dword [eax], edi
push 0x18
call fcn.100683d7
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x1006e5ed
lea ebx, [eax + 8]
jmp 0x1006e77b
push esi
call fcn.1006e120
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1006e605
lea ebx, [eax + 8]
jmp 0x1006e77b
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x1006e60e
mov dword [ecx], eax
xorps xmm0, xmm0
mov ecx, eax
movq qword [eax + 0x38], xmm0
mov edx, esi
add eax, 0x1e
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push eax
push 0
push edx
lea eax, [ebp - 0x10]
mov ebx, edx
push eax
push ecx
mov dword [ebp - 0x24], ebx
call fcn.1006f280
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0xc]
sub eax, ebx
mov ebx, edx
add eax, edx
sub ebx, esi
add ecx, eax
mov al, bl
mov dword [ebp - 0x18], ecx
and al, 7
sub cl, byte [ebp - 0x14]
shl cl, 3
or cl, al
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x38], cl
mov ecx, dword [ebp - 0x24]
mov al, byte [ecx]
cmp al, 0xeb
je 0x1006e6bf
cmp al, 0xe9
je 0x1006e6bf
cmp al, 0xe0
je 0x1006e6bf
cmp al, 0xc2
je 0x1006e6bf
cmp al, 0xc3
je 0x1006e6bf
cmp al, 0xcc
je 0x1006e6bf
cmp al, 0xff
jne 0x1006e68e
cmp byte [ecx + 1], 0x25
jmp 0x1006e6b0
cmp al, 0x26
je 0x1006e6a6
cmp al, 0x2e
je 0x1006e6a6
cmp al, 0x36
je 0x1006e6a6
cmp al, 0xe3
je 0x1006e6a6
cmp al, 0x64
je 0x1006e6a6
cmp al, 0x65
jne 0x1006e6b2
cmp byte [ecx + 1], 0xff
jne 0x1006e6b2
cmp byte [ecx + 2], 0x25
je 0x1006e6bf
cmp ebx, 5
jae 0x1006e6d3
mov ecx, dword [ebp - 0x18]
jmp 0x1006e623
cmp ebx, 5
jae 0x1006e6d3
cmp byte [edx], 0x90
jne 0x1006e701
inc edx
mov ebx, edx
sub ebx, esi
cmp ebx, 5
jb 0x1006e6c4
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x10]
jbe 0x1006e6dc
int3
mov eax, dword [ebp - 0x14]
sub cl, al
push ebx
push esi
mov byte [eax + 0x1e], cl
mov byte [eax + 0x36], bl
add eax, 0x20
push eax
call fcn.1008eae0
add esp, 0xc
cmp ebx, 0x19
jbe 0x1006e716
mov ebx, 6
jmp 0x1006e77b
cmp ebx, 5
jae 0x1006e6d3
cmp dword [0x100fa7c8], 0
mov ebx, 9
jne 0x1006e781
jmp 0x1006e77b
mov eax, dword [ebp - 0x14]
lea edx, [esi + ebx]
movzx ecx, byte [eax + 0x1e]
add ecx, eax
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], edi
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub edx, eax
lea edi, [ecx + 5]
mov dword [ecx + 1], edx
xor edx, edx
mov ecx, dword [ebp - 0x10]
sub ecx, edi
cmp edi, dword [ebp - 0x10]
cmova ecx, edx
test ecx, ecx
je 0x1006e75a
mov edx, ecx
mov eax, 0xcccccccc
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1006e7cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x100fa7d4], ebx
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1006e79e
push eax
call fcn.1006e2b0
mov eax, dword [ebp - 0x28]
add esp, 4
test eax, eax
je 0x1006e79e
mov dword [eax], 0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1006e7b0
push 0x18
push eax
call fcn.10068042
add esp, 8
mov eax, dword [ebp - 0x20]
pop edi
mov dword [0x100fa7d8], eax
mov eax, ebx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100683c1
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], esi
mov eax, dword [ebp - 8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x100fa7e0]
mov dword [ecx], eax
xor eax, eax
mov dword [0x100fa7e0], ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100683c1
mov esp, ebp
pop ebp
ret 0x14