Function at 0x10035360
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x1009e3c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x10123368]
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp al, byte [0x10123346]
je 0x100353f1
cmp al, 1
mov byte [0x10123346], al
mov edx, 0x10099788
mov ebx, 0x10099794
push str.xxxxxxxxxxx
cmovne edx, ebx
call fcn.10035280
mov esi, eax
add esp, 4
test esi, esi
je 0x100355d1
cmp byte [0x10123368], 1
mov eax, 0x10099788
cmovne ebx, eax
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push esi
call edi
movzx eax, byte [ebx]
mov byte [esi], al
movzx eax, byte [ebx + 1]
mov byte [esi + 1], al
movzx eax, byte [ebx + 2]
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
mov byte [esi + 3], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push esi
call edi
mov al, byte [0x10123362]
cmp al, byte [0x1012336a]
je 0x10035469
cmp al, 1
mov byte [0x1012336a], al
mov edx, 0x100997ac
mov ebx, 0x100997b8
push str.xxxxxxxxxx
cmovne edx, ebx
call fcn.10035280
mov esi, eax
add esp, 4
test esi, esi
je 0x100355d1
cmp byte [0x10123362], 1
mov eax, 0x100997ac
cmovne ebx, eax
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push esi
call edi
movzx eax, byte [ebx]
mov byte [esi], al
movzx eax, byte [ebx + 1]
mov byte [esi + 1], al
movzx eax, byte [ebx + 2]
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
mov byte [esi + 3], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push esi
call edi
mov al, byte [0x10123345]
cmp al, byte [0x1012336b]
je 0x100354e1
cmp al, 1
mov byte [0x1012336b], al
mov edx, 0x100997d0
mov ebx, 0x100997e0
push str.xxxxxxxxxxxx
cmovne edx, ebx
call fcn.10035280
mov esi, eax
add esp, 4
test esi, esi
je 0x100355d1
cmp byte [0x10123345], 1
mov eax, 0x100997d0
cmovne ebx, eax
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push esi
call edi
movzx eax, byte [ebx]
mov byte [esi], al
movzx eax, byte [ebx + 1]
mov byte [esi + 1], al
movzx eax, byte [ebx + 2]
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
mov byte [esi + 3], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push esi
call edi
mov al, byte [0x10123369]
cmp al, byte [0x10123361]
je 0x10035559
cmp al, 1
mov byte [0x10123361], al
mov edx, 0x10099800
mov ebx, 0x1009980c
push str.xxxxxxxxxx
cmovne edx, ebx
call fcn.10035280
mov esi, eax
add esp, 4
test esi, esi
je 0x100355d1
cmp byte [0x10123369], 1
mov eax, 0x10099800
cmovne ebx, eax
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push esi
call edi
movzx eax, byte [ebx]
mov byte [esi], al
movzx eax, byte [ebx + 1]
mov byte [esi + 1], al
movzx eax, byte [ebx + 2]
mov byte [esi + 2], al
movzx eax, byte [ebx + 3]
mov byte [esi + 3], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 4
push esi
call edi
mov al, byte [0x10123347]
cmp al, byte [0x10123360]
je 0x100355d3
push str.xxxxxxx__x
mov edx, 0x10099818
mov byte [0x10123360], al
call fcn.10035280
mov esi, eax
add esp, 4
test esi, esi
je 0x100355d1
cmp byte [0x10123347], 1
jne 0x100355d3
lea eax, [ebp - 8]
push eax
push 0x40
push 6
lea ecx, [esi + 6]
push esi
mov dword [0x10123364], ecx
call edi
mov eax, 0x10033a40
mov byte [esi + 5], 0x90
sub eax, esi
mov byte [esi], 0xe9
sub eax, 5
mov dword [esi + 1], eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
push 6
push esi
call edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100841e2
mov esp, ebp
pop ebp
ret
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100841e2
mov esp, ebp
pop ebp
ret