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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x68aaf040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, edx
mov esi, ecx
push edi
xor edi, edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], esi
test ebx, ebx
jne 0x68a18df9
pop edi
pop esi
lea eax, [edx + 0x57]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.68a3943b
mov esp, ebp
pop ebp
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x68ab1e1c], eax
je 0x68a18e1f
pop edi
pop esi
mov eax, 0x10dd
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.68a3943b
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x68ab1e20]
test eax, eax
jne 0x68a191b6
test esi, esi
je 0x68a18e48
mov esi, dword [esi]
test esi, esi
jne 0x68a18e60
mov eax, dword [ebp - 0x28]
mov dword [0x68ab1e20], 6
mov dword [0x68ab1e14], eax
pop edi
pop esi
mov eax, 6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.68a3943b
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
cmp byte [esi], 0xff
mov dword [ebp - 0x1c], eax
jne 0x68a18e88
cmp byte [esi + 1], 0x25
jne 0x68a18e88
mov eax, dword [esi + 2]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x10], eax
call fcn.68a182a0
test al, al
je 0x68a18e88
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
cmp byte [esi], 0xeb
jne 0x68a18ec9
movsx eax, byte [esi + 1]
add eax, 2
add esi, eax
mov cl, byte [esi]
lea eax, [esi + 1]
cmp cl, 0xff
jne 0x68a18ebf
cmp byte [eax], 0x25
jne 0x68a18ebf
mov eax, dword [esi + 2]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x10], eax
call fcn.68a182a0
test al, al
je 0x68a18ec9
mov esi, dword [ebp - 0x10]
mov esi, dword [esi]
jmp 0x68a18ec9
cmp cl, 0xe9
jne 0x68a18ec9
add esi, 5
add esi, dword [eax]
cmp byte [ebx], 0xff
jne 0x68a18eef
cmp byte [ebx + 1], 0x25
jne 0x68a18eef
mov eax, dword [ebx + 2]
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0x10], eax
call fcn.68a182a0
test al, al
je 0x68a18eef
mov ebx, dword [ebp - 0x10]
mov ebx, dword [ebx]
mov dword [ebp - 0x18], ebx
cmp byte [ebx], 0xeb
jne 0x68a18f36
movsx eax, byte [ebx + 1]
add eax, 2
add ebx, eax
mov dword [ebp - 0x18], ebx
mov cl, byte [ebx]
lea eax, [ebx + 1]
cmp cl, 0xff
jne 0x68a18f29
cmp byte [eax], 0x25
jne 0x68a18f29
mov eax, dword [ebx + 2]
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0x10], eax
call fcn.68a182a0
test al, al
je 0x68a18f36
mov ebx, dword [ebp - 0x10]
mov ebx, dword [ebx]
jmp 0x68a18f33
cmp cl, 0xe9
jne 0x68a18f36
add ebx, 5
add ebx, dword [eax]
mov dword [ebp - 0x18], ebx
cmp ebx, esi
jne 0x68a18f4d
cmp dword [0x68ab1e04], edi
jne 0x68a191ac
xor ebx, ebx
jmp 0x68a19167
push 0x18
call fcn.68a397a3
add esp, 4
mov dword [ebp - 0x1c], eax
mov ecx, esi
call fcn.68a186f0
mov ebx, eax
mov dword [ebp - 0x14], ebx
test ebx, ebx
jne 0x68a18f72
lea edi, [eax + 8]
jmp 0x68a19167
lea eax, [ebx + 0x38]
mov dword [ebp - 0x24], edi
xorps xmm0, xmm0
mov dword [ebp - 0x10], eax
movq qword [eax], xmm0
mov edx, esi
mov eax, ebx
add ebx, 0x1e
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], ebx
nop
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push ecx
push ecx
push edx
mov ecx, eax
mov edi, edx
call fcn.68a191d0
mov ecx, dword [ebp - 0x20]
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ebx, edx
sub eax, edi
sub ebx, esi
add eax, edx
add ecx, eax
mov al, bl
mov dword [ebp - 0x20], ecx
and al, 7
sub cl, byte [ebp - 0x14]
shl cl, 3
or cl, al
mov eax, dword [ebp - 0x10]
mov byte [eax], cl
inc eax
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], ecx
cmp ecx, 8
jae 0x68a19034
mov al, byte [edi]
cmp al, 0xeb
je 0x68a19034
cmp al, 0xe9
je 0x68a19034
cmp al, 0xe0
je 0x68a19034
cmp al, 0xc2
je 0x68a19034
cmp al, 0xc3
je 0x68a19034
cmp al, 0xcc
je 0x68a19034
cmp al, 0xf3
jne 0x68a1909f
cmp byte [edi + 1], 0xc3
je 0x68a19034
cmp al, 0x26
je 0x68a1901c
cmp al, 0x2e
je 0x68a1901c
cmp al, 0x36
je 0x68a1901c
cmp al, 0x3e
je 0x68a1901c
cmp al, 0x64
je 0x68a1901c
cmp al, 0x65
jne 0x68a19028
cmp byte [edi + 1], 0xff
jne 0x68a19028
cmp byte [edi + 2], 0x25
je 0x68a19034
mov eax, dword [ebp - 0x20]
cmp ebx, 5
jb 0x68a18f90
mov dword [ebp - 0x10], edx
cmp ebx, 5
jae 0x68a19063
nop dword [eax]
mov ecx, edx
call fcn.68a18370
test eax, eax
je 0x68a19156
mov edx, dword [ebp - 0x10]
add edx, eax
mov ebx, edx
mov dword [ebp - 0x10], edx
sub ebx, esi
cmp ebx, 5
jb 0x68a19040
mov ecx, dword [ebp - 0x24]
cmp ecx, 8
ja 0x68a19156
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x2c]
cmp ecx, edi
jbe 0x68a19077
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.68a3b1d0
add esp, 0xc
cmp ebx, 0x19
jbe 0x68a190b0
mov edi, 6
jmp 0x68a19164
cmp al, 0xff
jne 0x68a19004
cmp byte [edi + 1], 0x25
jmp 0x68a19026
mov ecx, dword [ebp - 0x14]
lea edx, [esi + ebx]
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x40], edx
movzx ecx, byte [ecx + 0x1e]
add ecx, dword [ebp - 0x14]
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub edx, eax
mov eax, edi
mov dword [ecx + 1], edx
add ecx, 5
sub eax, ecx
xor edx, edx
cmp ecx, edi
cmova eax, edx
test eax, eax
je 0x68a190f2
push eax
push 0xcc
push ecx
call fcn.68a3b750
add esp, 0xc
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 0x68a19115
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x68a19164
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
pop edi
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], esi
mov dword [ecx + 4], 0
mov eax, dword [ebp - 8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x68ab1e00]
pop esi
mov dword [ecx], eax
xor eax, eax
mov dword [0x68ab1e00], ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.68a3943b
mov esp, ebp
pop ebp
ret 0xc
cmp dword [0x68ab1e04], 0
mov edi, 9
jne 0x68a19179
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [0x68ab1e20], edi
test ebx, ebx
je 0x68a1919d
jmp 0x68a1917c
mov ebx, dword [ebp - 0x14]
push 0x48
push 0
mov esi, ebx
push ebx
and esi, 0xffff0000
call fcn.68a3b750
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 8], ebx
test eax, eax
je 0x68a191ac
push 0x18
push eax
call fcn.68a39763
add esp, 8
mov eax, dword [ebp - 0x28]
mov dword [0x68ab1e14], eax
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.68a3943b
mov esp, ebp
pop ebp
ret 0xc