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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x1012c034]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
mov dword [ebp - 0x68], ebx
xor esi, esi
mov dword [ebp - 0x70], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x1013175c], eax
je 0x10003105
pop edi
pop esi
mov eax, 0x10dd
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067ac0
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x10131758]
test eax, eax
jne 0x1000340f
test edi, edi
je 0x1000312e
mov edi, dword [edi]
test edi, edi
jne 0x10003146
mov eax, dword [ebp - 0x70]
mov dword [0x10131758], 6
mov dword [0x10131764], eax
pop edi
pop esi
mov eax, 6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067ac0
mov esp, ebp
pop ebp
ret 0xc
mov cl, byte [edi]
xor eax, eax
mov dword [ebp - 0x6c], eax
cmp cl, 0xff
jne 0x10003172
cmp byte [edi + 1], 0x25
jne 0x10003172
mov eax, dword [edi + 2]
mov ecx, edi
mov edx, eax
mov dword [ebp - 0x64], eax
call fcn.10002520
test al, al
je 0x10003188
mov edi, dword [ebp - 0x64]
mov edi, dword [edi]
jmp 0x10003188
cmp cl, 0xeb
jne 0x10003188
movsx eax, byte [edi + 1]
add edi, 2
add edi, eax
cmp byte [edi], 0xe9
jne 0x10003188
add edi, dword [edi + 1]
test ebx, ebx
je 0x100031ca
mov al, byte [ebx]
cmp al, 0xff
jne 0x100031b2
cmp byte [ebx + 1], 0x25
jne 0x100031b2
mov eax, dword [ebx + 2]
mov ecx, ebx
mov edx, eax
mov dword [ebp - 0x64], eax
call fcn.10002520
test al, al
je 0x100031cd
mov ebx, dword [ebp - 0x64]
mov ebx, dword [ebx]
jmp 0x100031ca
cmp al, 0xeb
jne 0x100031cd
movsx eax, byte [ebx + 1]
add ebx, 2
add ebx, eax
mov dword [ebp - 0x68], ebx
cmp byte [ebx], 0xe9
jne 0x100031cd
add ebx, dword [ebx + 1]
mov dword [ebp - 0x68], ebx
cmp ebx, edi
jne 0x100031e4
cmp dword [0x10131770], esi
jne 0x10003314
xor eax, eax
jmp 0x100033ba
push 0x18
call fcn.100671c0
add esp, 4
mov dword [ebp - 0x6c], eax
mov ecx, edi
call fcn.10002740
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x10003207
lea esi, [eax + 8]
jmp 0x100033ba
mov ecx, edi
xor ebx, ebx
nop dword [eax + eax]
lea edx, [ebp - 0x48]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x54], edx
add eax, ebx
lea edx, [ebp - 0x74]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x50], edx
mov esi, ecx
lea edx, [ebp - 0x44]
mov dword [ebp - 0x58], 0
cmovne edx, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x74], 0
test ecx, ecx
jne 0x10003259
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ecx, ecx
jmp 0x10003270
movzx eax, byte [ecx]
push ecx
push edx
lea ecx, [ebp - 0x60]
lea eax, [eax*8 + 0x10120790]
push eax
mov eax, dword [eax + 4]
call eax
mov ecx, eax
cmp dword [ebp - 0x74], 0
jne 0x100032ca
mov al, byte [esi]
mov ebx, ecx
sub ebx, edi
cmp al, 0xe9
je 0x100032ca
cmp al, 0xe0
je 0x100032ca
cmp al, 0xc2
je 0x100032ca
cmp al, 0xc3
je 0x100032ca
cmp al, 0xcc
je 0x100032ca
cmp al, 0xff
jne 0x1000329a
cmp byte [esi + 1], 0x25
jmp 0x100032bc
cmp al, 0x26
je 0x100032b2
cmp al, 0x2e
je 0x100032b2
cmp al, 0x36
je 0x100032b2
cmp al, 0xe3
je 0x100032b2
cmp al, 0x64
je 0x100032b2
cmp al, 0x65
jne 0x100032be
cmp byte [esi + 1], 0xff
jne 0x100032be
cmp byte [esi + 2], 0x25
je 0x100032ca
mov eax, dword [ebp - 0x64]
cmp ebx, 5
jl 0x10003210
cmp ebx, 5
jge 0x10003331
cmp dword [0x10131770], 0
mov esi, 9
mov eax, dword [ebp - 0x64]
je 0x100033ba
mov edx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x64]
mov ecx, eax
and ecx, 0xffff0000
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov eax, dword [ecx + 8]
mov dword [ebx + 0x18], eax
mov dword [ecx + 8], ebx
test edx, edx
je 0x10003314
push 0x18
push edx
call fcn.10067210
add esp, 8
mov eax, dword [ebp - 0x70]
pop edi
mov dword [0x10131764], eax
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10067ac0
mov esp, ebp
pop ebp
ret 0xc
cmp ebx, 0x12
jbe 0x1000333d
mov esi, 6
jmp 0x100033b7
mov ecx, dword [ebp - 0x64]
lea esi, [edi + ebx]
mov eax, dword [ebp - 0x68]
lea edx, [ecx + 0x17]
mov byte [edx], bl
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], eax
add ecx, ebx
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub esi, eax
mov dword [ecx + 1], esi
add ecx, 5
call fcn.100025f0
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0
push eax
push 0x40
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push edi
call ebx
test eax, eax
je 0x100033af
mov ecx, edi
call fcn.10002980
mov esi, eax
test esi, esi
je 0x100033e1
mov eax, 0x6544
cmp word [esi + 0x1c], ax
je 0x100033e1
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], 0
push eax
push 0x40
push 0x40
push esi
call ebx
test eax, eax
jne 0x100033d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
mov dword [0x10131758], esi
test eax, eax
je 0x10003305
jmp 0x100032e7
mov dword [esi + 0x1c], 0x6f746544
mov dword [esi + 0x20], 0x21737275
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x64]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0xc], edi
mov eax, dword [ebp - 0x78]
mov dword [ecx + 0x14], eax
mov eax, dword [0x10131774]
mov dword [ecx], eax
xor eax, eax
mov dword [0x10131774], ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067ac0
mov esp, ebp
pop ebp
ret 0xc