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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100540b0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x10087040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x1008a5a0], 0
je 0x10031743
mov edx, 0x10031670
mov ecx, 0x109f2561
call fcn.100043c0
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 0x10031660
sub eax, 0x1095e336
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x14]
push eax
push 0x40
push 5
push 0x1095e331
call esi
mov edi, dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
test eax, eax
je 0x100317a4
mov eax, dword [ebp - 0x38]
mov byte [0x1095e331], 0xe9
mov dword [0x1095e332], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 5
push 0x1095e331
call esi
test eax, eax
je 0x100317a4
push 5
push 0x1095e331
call ebx
push eax
call edi
mov eax, 0x10031650
sub eax, 0x109ec834
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x18]
push eax
push 0x40
push 5
push 0x109ec82f
call esi
test eax, eax
je 0x100317f3
mov eax, dword [ebp - 0x38]
mov byte [0x109ec82f], 0xe9
mov dword [0x109ec830], eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x18]
push 5
push 0x109ec82f
call esi
test eax, eax
je 0x100317f3
push 5
push 0x109ec82f
call ebx
push eax
call edi
mov eax, 0x10031160
sub eax, 0x10908021
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x1c]
push eax
push 0x40
push 5
push 0x1090801c
call esi
test eax, eax
je 0x10031842
mov eax, dword [ebp - 0x38]
mov byte [0x1090801c], 0xe9
mov dword [0x1090801d], eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
push 5
push 0x1090801c
call esi
test eax, eax
je 0x10031842
push 5
push 0x1090801c
call ebx
push eax
call edi
mov eax, 0x10030e40
sub eax, 0x1095ca78
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x20]
push eax
push 0x40
push 5
push 0x1095ca73
call esi
test eax, eax
je 0x10031891
mov eax, dword [ebp - 0x38]
mov byte [0x1095ca73], 0xe9
mov dword [0x1095ca74], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x20]
push 5
push 0x1095ca73
call esi
test eax, eax
je 0x10031891
push 5
push 0x1095ca73
call ebx
push eax
call edi
mov eax, 0x10030a10
sub eax, 0x1095ba80
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
push 0x40
push 5
push 0x1095ba7b
call esi
test eax, eax
je 0x100318e0
mov eax, dword [ebp - 0x38]
mov byte [0x1095ba7b], 0xe9
mov dword [0x1095ba7c], eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x24]
push 5
push 0x1095ba7b
call esi
test eax, eax
je 0x100318e0
push 5
push 0x1095ba7b
call ebx
push eax
call edi
mov eax, 0x1002e9d0
sub eax, 0x1095b98b
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x28]
push eax
push 0x40
push 5
push 0x1095b986
call esi
test eax, eax
je 0x1003192f
mov eax, dword [ebp - 0x38]
mov byte [0x1095b986], 0xe9
mov dword [0x1095b987], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
push 5
push 0x1095b986
call esi
test eax, eax
je 0x1003192f
push 5
push 0x1095b986
call ebx
push eax
call edi
mov eax, 0x10030a50
sub eax, 0x10b0f9a6
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x2c]
push eax
push 0x40
push 5
push 0x10b0f9a1
call esi
test eax, eax
je 0x1003197e
mov eax, dword [ebp - 0x38]
mov byte [0x10b0f9a1], 0xe9
mov dword [0x10b0f9a2], eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x2c]
push 5
push 0x10b0f9a1
call esi
test eax, eax
je 0x1003197e
push 5
push 0x10b0f9a1
call ebx
push eax
call edi
mov eax, 0x10030a90
sub eax, 0x1095c9b6
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
push 0x40
push 5
push 0x1095c9b1
call esi
test eax, eax
je 0x100319cd
mov eax, dword [ebp - 0x38]
mov byte [0x1095c9b1], 0xe9
mov dword [0x1095c9b2], eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x30]
push 5
push 0x1095c9b1
call esi
test eax, eax
je 0x100319cd
push 5
push 0x1095c9b1
call ebx
push eax
call edi
mov eax, 0x100310f0
sub eax, 0x1096ca0c
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x34]
push eax
push 0x40
push 5
push 0x1096ca07
call esi
test eax, eax
je 0x10031a1c
mov eax, dword [ebp - 0x38]
mov byte [0x1096ca07], 0xe9
mov dword [0x1096ca08], eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x34]
push 5
push 0x1096ca07
call esi
test eax, eax
je 0x10031a1c
push 5
push 0x1096ca07
call ebx
push eax
call edi
mov edx, 0x10031110
mov ecx, 0x1097827b
call fcn.100043c0
mov edx, 0x10031130
mov ecx, 0x1096bc07
call fcn.100043c0
mov edx, 0x10031450
mov ecx, 0x109ec46b
call fcn.100043c0
mov edx, 0x100313c0
mov ecx, 0x10a0b126
call fcn.100043c0
mov edx, 0x10031420
mov ecx, 0x10af8e07
call fcn.100043c0
mov edx, 0x100313f0
mov ecx, 0x10afb10c
call fcn.100043c0
mov edx, 0x10030f10
mov ecx, 0x10a0fdc0
call fcn.100043c0
mov edx, 0x10030f30
mov ecx, 0x10a0fe4b
call fcn.100043c0
mov edx, 0x10031640
mov ecx, 0x1095e417
call fcn.100043c0
mov edx, 0x10031640
mov ecx, 0x1095e43c
call fcn.100043c0
mov edx, 0x100316d0
mov ecx, 0x10b0fc5e
call fcn.100043c0
cmp byte [0x1008a59b], 0
je 0x10031af5
cmp byte [0x1008a59a], 0
je 0x10031af5
push ecx
lea edx, [ebp - 0x39]
mov byte [ebp - 0x39], 2
mov ecx, 0x1095bec8
call fcn.10004100
lea edx, [ebp - 0x39]
mov ecx, 0x1095bf40
call fcn.10004100
add esp, 4
mov edx, 0x100316f0
mov ecx, 0x109bf1bd
call fcn.100043c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10052757
mov esp, ebp
pop ebp
ret