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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 0x20
push ebx
push esi
xor esi, esi
push edi
test eax, eax
je 0x4be4f4
mov dword [eax], esi
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x4be4fd
mov dword [edi], esi
mov ebx, dword [ebp + 0x18]
test ebx, ebx
je 0x4be506
mov dword [ebx], esi
cmp dword [ebp + 0xc], esi
jne 0x4be519
pop edi
pop esi
mov eax, 0x57
pop ebx
mov esp, ebp
pop ebp
ret 0x14
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x5b06ac], eax
je 0x4be535
pop edi
pop esi
mov eax, 0x10dd
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [0x5b06b0]
test eax, eax
jne 0x4be806
mov eax, dword [ebp + 8]
test eax, eax
je 0x4be55e
mov ecx, dword [eax]
test ecx, ecx
jne 0x4be56c
mov dword [0x5b06b0], 6
mov dword [0x5b06b4], eax
pop edi
pop esi
mov eax, 6
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0
push ecx
call fcn.004be810
push 0
push dword [ebp + 0xc]
mov dword [ebp + 0x18], eax
call fcn.004be810
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp + 0x18]
jne 0x4be59e
cmp dword [0x5b06a4], esi
jne 0x4be7fc
xor eax, eax
xor ebx, ebx
jmp 0x4be7c5
mov esi, dword [ebp + 0x18]
test edi, edi
je 0x4be5a7
mov dword [edi], esi
test ebx, ebx
je 0x4be5ad
mov dword [ebx], eax
push 0x18
call fcn.004e240a
mov ebx, eax
add esp, 4
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x4be5c8
lea esi, [eax + 8]
jmp 0x4be7c5
push esi
call fcn.004bde70
add esp, 4
mov dword [ebp + 0x14], eax
test eax, eax
jne 0x4be5e0
lea esi, [eax + 8]
jmp 0x4be7c5
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4be5e9
mov dword [ecx], eax
lea ecx, [eax + 0x38]
mov dword [ebp - 8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x18], ecx
mov ebx, eax
movq qword [ecx], xmm0
add eax, 0x1e
mov edi, esi
mov dword [ebp - 0x10], eax
jmp 0x4be613
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 0
push edi
lea eax, [ebp - 0x10]
mov esi, edi
push eax
push ebx
call fcn.004c1090
mov edx, dword [ebp + 0x14]
mov edi, eax
mov eax, dword [ebp - 0x14]
inc dword [ebp - 8]
sub eax, esi
add eax, edi
add ebx, eax
mov dword [ebp - 0xc], ebx
mov ebx, edi
mov ch, byte [ebp - 0xc]
sub ebx, dword [ebp + 0x18]
sub ch, dl
mov al, bl
mov byte [ebp + 0xf], ch
and al, 7
mov cl, ch
shl cl, 3
or cl, al
mov eax, dword [ebp - 0x18]
mov byte [eax], cl
inc eax
cmp dword [ebp - 8], 8
mov dword [ebp - 0x18], eax
jae 0x4be6c3
mov al, byte [esi]
cmp al, 0xeb
je 0x4be6c3
cmp al, 0xe9
je 0x4be6c3
cmp al, 0xe0
je 0x4be6c3
cmp al, 0xc2
je 0x4be6c3
cmp al, 0xc3
je 0x4be6c3
cmp al, 0xcc
je 0x4be6c3
cmp al, 0xf3
jne 0x4be68c
cmp byte [esi + 1], 0xc3
je 0x4be6c3
cmp al, 0xff
jne 0x4be696
cmp byte [esi + 1], 0x25
jmp 0x4be6b8
cmp al, 0x26
je 0x4be6ae
cmp al, 0x2e
je 0x4be6ae
cmp al, 0x36
je 0x4be6ae
cmp al, 0x3e
je 0x4be6ae
cmp al, 0x64
je 0x4be6ae
cmp al, 0x65
jne 0x4be6ba
cmp byte [esi + 1], 0xff
jne 0x4be6ba
cmp byte [esi + 2], 0x25
je 0x4be6c3
cmp ebx, 5
jb 0x4be610
mov esi, dword [ebp + 0x18]
cmp ebx, 5
jae 0x4be6f2
nop dword [eax + eax]
push edi
call fcn.004be1a0
add esp, 4
test eax, eax
je 0x4be7b1
add edi, eax
mov ebx, edi
sub ebx, esi
cmp ebx, 5
jb 0x4be6d0
mov edx, dword [ebp + 0x14]
mov ch, byte [ebp + 0xf]
cmp dword [ebp - 8], 8
ja 0x4be7b1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jbe 0x4be705
int3
push ebx
lea eax, [edx + 0x20]
mov byte [edx + 0x1e], ch
push esi
push eax
mov byte [edx + 0x36], bl
call fcn.004e4890
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp ebx, 0x19
jbe 0x4be72b
mov esi, 6
jmp 0x4be7c2
mov ecx, dword [ebp - 0x20]
lea edx, [ebx + esi]
mov dword [eax + 0x44], ecx
movzx ecx, byte [eax + 0x1e]
add ecx, eax
mov dword [eax + 0x40], edx
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub edx, eax
lea eax, [ecx + 5]
mov dword [ecx + 1], edx
push dword [ebp - 0x10]
push eax
call fcn.004be160
add esp, 8
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
push 0x40
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x4be77a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x4be7bf
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
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 - 0x1c]
mov dword [ecx + 0x14], eax
mov eax, dword [0x5b06bc]
pop esi
mov dword [ecx], eax
xor eax, eax
mov dword [0x5b06bc], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [0x5b06a4], 0
mov esi, 9
jne 0x4be7d1
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 4]
mov dword [0x5b06b0], esi
test eax, eax
je 0x4be7ed
jmp 0x4be7d7
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 4]
push eax
call fcn.004be130
mov eax, dword [ebp + 0x10]
add esp, 4
test eax, eax
je 0x4be7ed
mov dword [eax], 0
test ebx, ebx
je 0x4be7fc
push 0x18
push ebx
call fcn.004e243a
add esp, 8
mov eax, dword [ebp + 8]
mov dword [0x5b06b4], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14