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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
push 7
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea75d
mov dword [edi], 0xadc8b883
mov word [edi + 4], 0x94
mov byte [edi + 6], 0xa
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x14], 7
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 7
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
mov al, byte [edi + 6]
mov byte [esi + 6], al
cmp byte [ebp - 0xc], 0
je 0x100176cc
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 6
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea764
mov dword [edi], 0xd68c0f
mov word [edi + 4], 0
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 6
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
cmp byte [ebp - 0xc], 0
je 0x1001773f
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 6
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea9bd
mov dword [edi], 0xadc8888b
mov word [edi + 4], 0x94
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 6
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
cmp byte [ebp - 0xc], 0
je 0x100177b2
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 3
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea9c3
mov word [edi], 0xf983
mov byte [edi + 2], 1
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 3
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 3
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov ax, word [edi]
setne byte [ebp - 0xc]
mov word [esi], ax
mov al, byte [edi + 2]
mov byte [esi + 2], al
cmp byte [ebp - 0xc], 0
je 0x10017822
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 2
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea9c6
mov word [edi], 0x207e
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 2
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 2
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov ax, word [edi]
setne byte [ebp - 0xc]
mov word [esi], ax
cmp byte [ebp - 0xc], 0
je 0x10017888
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 6
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea9cf
mov dword [edi], 0xadc88889
mov word [edi + 4], 0x94
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 6
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
cmp byte [ebp - 0xc], 0
je 0x100178fb
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 7
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4ea9df
mov dword [edi], 0x9680ff66
mov word [edi + 4], 5
mov byte [edi + 6], 0
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 7
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 7
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
mov al, byte [edi + 6]
mov byte [esi + 6], al
cmp byte [ebp - 0xc], 0
je 0x10017978
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 8
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4f1221
mov dword [edi], 0xc8c53c83
mov dword [edi + 4], 0x640094ad
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 8
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 8
push esi
mov dword [ebp - 0x18], esi
call ebx
mov ecx, dword [edi + 4]
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov dword [esi + 4], ecx
cmp byte [ebp - 0xc], 0
je 0x100179ea
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 2
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x4f1229
mov word [edi], 0x5b7e
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 2
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 2
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov ax, word [edi]
setne byte [ebp - 0xc]
mov word [esi], ax
cmp byte [ebp - 0xc], 0
je 0x10017a50
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
push 6
call fcn.10018e38
mov edi, eax
add esp, 4
mov ecx, 0x501368
mov dword [edi], 0xadc8b089
mov word [edi + 4], 0x94
call fcn.100183f0
mov dword [ebp - 4], eax
lea ecx, [ebp - 4]
lea eax, [ebp - 8]
push eax
call fcn.10008800
mov dword [ebp - 0x14], 6
mov esi, dword [eax]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
mov dword [ebp - 0x18], esi
call ebx
test eax, eax
mov eax, dword [edi]
setne byte [ebp - 0xc]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
cmp byte [ebp - 0xc], 0
je 0x10017ac3
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 4]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 4], eax
push dword [ebp - 0x18]
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret