Function at 0x533840
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x62d040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov edi, edx
xor esi, esi
mov edx, ecx
mov dword [ebp - 0xac], edx
test edi, edi
jne 0x53387e
mov eax, 0xc000000d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0057fcaf
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword fs:[0x18]
mov eax, dword [0x635aac]
cmp eax, dword [ecx + 0x24]
je 0x5338ab
mov eax, 0xc0000476
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0057fcaf
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x635aa8]
test eax, eax
jne 0x533d81
test edx, edx
je 0x5338d4
mov ecx, dword ds:[edx]
test ecx, ecx
jne 0x5338ec
mov dword [0x635aa8], 0xc0000008
mov dword [0x635ab4], edx
mov eax, 0xc0000008
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0057fcaf
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x90], eax
call fcn.00533500
mov ecx, edi
mov dword [ebp - 0x88], eax
call fcn.00533500
mov dword [ebp - 0x9c], eax
cmp eax, dword [ebp - 0x88]
jne 0x533931
jmp 0x533920
cmp dword [0x633864], ebx
jne 0x533d74
jmp 0x533d9b
push 0x18
call fcn.0057feba
mov esi, dword [ebp - 0x88]
lea edx, [ebp - 0x8c]
add esp, 4
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x94]
mov ecx, esi
push eax
call fcn.00532fe0
mov ecx, dword [0x635ab0]
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
mov eax, dword [0x635ab8]
test ecx, ecx
jne 0x533982
test eax, eax
je 0x533995
mov ecx, eax
mov dword [0x635ab0], ecx
mov edx, dword [ecx + 8]
test edx, edx
je 0x533995
cmp edx, ebx
jb 0x533995
cmp edx, edi
jbe 0x533a2e
mov ecx, eax
mov dword [0x635ab0], ecx
test eax, eax
je 0x5339c6
mov edx, eax
mov eax, dword [edx + 8]
test eax, eax
je 0x5339b5
cmp eax, ebx
jb 0x5339b5
cmp eax, edi
jbe 0x533a2e
mov ecx, dword [ecx + 4]
mov eax, ecx
mov dword [0x635ab0], ecx
mov edx, ecx
test eax, eax
jne 0x5339a6
mov ecx, esi
mov edx, ebx
push edi
and ecx, 0xffff0000
call fcn.005332e0
mov ecx, eax
test ecx, ecx
je 0x533d94
mov dword [ecx], 0x52334953
xor edx, edx
mov dword [ecx + 8], 0
mov esi, 0x38b
mov eax, dword [0x635ab8]
mov dword [ecx + 4], eax
lea eax, [ecx + 0xffa8]
mov dword [0x635ab0], ecx
mov dword [0x635ab8], ecx
mov dword ds:[eax + 0x40], edx
mov edx, eax
sub eax, 0x48
sub esi, 1
jne 0x533a16
mov esi, dword [ebp - 0x88]
mov dword [ecx + 8], edx
mov ebx, dword [ecx + 8]
cmp ebx, dword [ebp - 0x8c]
jb 0x533d94
lea ecx, [ecx]
cmp ebx, edi
ja 0x533d94
mov eax, dword [ebx + 0x40]
push 0x48
push 0xcc
push ebx
mov dword [ecx + 8], eax
call fcn.00581cf0
add esp, 0xc
test ebx, ebx
je 0x533d96
lea eax, [ebx + 0x38]
mov byte [ebp - 0x7d], bl
xor ecx, ecx
mov dword [ebp - 0xa4], eax
mov dword [eax], ecx
mov edx, ebx
mov dword [eax + 4], ecx
mov edi, esi
lea eax, [ebx + 0x1e]
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x84], ebx
lea ebx, [ebx]
lea eax, [ebp - 0x50]
mov dword [ebp - 0x7c], 0
test edx, edx
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x78], 0
mov esi, edi
mov dword [ebp - 0x74], 0
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xb0], esi
cmovne ecx, edx
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0xa0], 0
test edi, edi
jne 0x533b0f
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x533b38
movzx eax, byte [edi]
mov esi, dword [eax*8 + 0x63884c]
lea eax, [eax*8 + 0x638848]
push edi
push ecx
push eax
mov ecx, esi
call dword [0x5a38e4]
lea ecx, [ebp - 0x7c]
call esi
mov esi, dword [ebp - 0xb0]
mov edi, eax
mov edx, dword [ebp - 0x98]
mov eax, edi
sub eax, esi
mov ebx, edi
add eax, dword [ebp - 0xa0]
sub ebx, dword [ebp - 0x88]
add edx, eax
mov cl, dl
mov dword [ebp - 0x98], edx
sub cl, byte [ebp - 0x7d]
mov al, bl
shl cl, 3
and al, 7
or cl, al
mov eax, dword [ebp - 0xa4]
mov byte [eax], cl
inc eax
mov ecx, dword [ebp - 0x8c]
inc ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x8c], ecx
cmp ecx, 8
jae 0x533be9
mov al, byte [esi]
cmp al, 0xeb
je 0x533be9
cmp al, 0xe9
je 0x533be9
cmp al, 0xe0
je 0x533be9
cmp al, 0xc2
je 0x533be9
cmp al, 0xc3
je 0x533be9
lea ecx, [ecx]
cmp al, 0xcc
je 0x533be9
cmp al, 0xf3
jne 0x533c69
cmp byte [esi + 1], 0xc3
je 0x533be9
cmp al, 0x26
je 0x533bcc
cmp al, 0x2e
je 0x533bcc
cmp al, 0x36
je 0x533bcc
mov edi, edi
cmp al, 0x3e
je 0x533bcc
cmp al, 0x64
je 0x533bcc
cmp al, 0x65
jne 0x533bd8
cmp byte [esi + 1], 0xff
jne 0x533bd8
cmp byte [esi + 2], 0x25
je 0x533be9
jmp 0x533be0
cmp ebx, 5
jb 0x533aa0
cmp ebx, 5
jae 0x533c1a
mov edi, edi
mov ecx, edi
call fcn.00533080
test eax, eax
je 0x533d44
add edi, eax
mov ebx, edi
sub ebx, dword [ebp - 0x88]
cmp ebx, 5
jb 0x533bf0
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x8c]
lea ebx, [ebx]
cmp ecx, 8
ja 0x533d44
cmp edx, dword [ebp - 0x94]
jbe 0x533c32
int3
mov eax, dword [ebp - 0x84]
sub dl, al
mov edi, dword [ebp - 0x88]
push ebx
push edi
mov byte [eax + 0x1e], dl
mov byte [eax + 0x36], bl
add eax, 0x20
push eax
call fcn.005831c0
add esp, 0xc
cmp ebx, 0x19
jbe 0x533c7a
mov ebx, dword [ebp - 0x84]
mov esi, 0xc0000008
jmp 0x533d9b
cmp al, 0xff
jne 0x533bb2
cmp byte [esi + 1], 0x25
jmp 0x533bd6
mov eax, dword [ebp - 0x84]
lea esi, [ebx + edi]
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x94]
mov dword [eax + 0x44], ecx
movzx ecx, byte [eax + 0x1e]
add ecx, eax
mov dword [eax + 0x40], esi
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub esi, eax
mov dword [ecx + 1], esi
add ecx, 5
call fcn.00532fa0
lea eax, ds:[ebp - 0xa8]
mov dword [ebp - 0xa8], 0
push eax
push 0x40
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb8], edi
push eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xb4], ebx
push eax
push 0xffffffffffffffff
call dword [sym.imp.ntdll.dll_NtProtectVirtualMemory]
mov esi, eax
test esi, esi
jns 0x533cf7
mov ebx, dword [ebp - 0x84]
jmp 0x533d9b
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xac]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x84]
mov dword [ecx + 0x10], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], edi
mov eax, dword [ebp - 0xa8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x635ac0]
mov dword [ecx], eax
xor eax, eax
mov dword [0x635ac0], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0057fcaf
mov esp, ebp
pop ebp
ret 0xc
cmp dword [0x633864], 0
mov esi, 0xc0000141
mov ebx, dword [ebp - 0x84]
je 0x533d9b
mov edi, dword [ebp - 0x90]
mov ecx, ebx
call fcn.005334c0
test edi, edi
je 0x533d74
push 0x18
push edi
call fcn.0057feea
add esp, 8
mov eax, dword [ebp - 0xac]
mov dword [0x635ab4], eax
mov eax, esi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057fcaf
mov esp, ebp
pop ebp
ret 0xc
xor ebx, ebx
mov esi, 0xc0000017
mov edi, dword [ebp - 0x90]
mov dword [0x635aa8], esi
test ebx, ebx
je 0x533d65
jmp 0x533d5e