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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
push 0x100648e0
push 0x7e3e5a
push 0xe9
call fcn.100d5c50
push 0x100667a0
push 0x4e8b80
push 0xe9
call fcn.100d5c50
push 0x6e00
push 0
push 0x1053007c
call sub.VCRUNTIME140.dll_memset
push 0xd
mov dword [0x10530058], 0x1053007c
mov dword [0x1053005c], 0x4e957b
call fcn.10131c6d
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 0x28
mov ebx, eax
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push 0x40
mov dword [ebx], 0x90909090
mov dword [ebx + 4], 0x90909090
push 0xd
mov dword [ebx + 8], 0x90909090
push 0x4e956e
mov byte [ebx + 0xc], 0x90
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10065a70
movq xmm0, qword [ebx]
mov ecx, 0x4e956e
movq qword [ecx], xmm0
mov eax, dword [ebx + 8]
mov dword [ecx + 8], eax
mov al, byte [ebx + 0xc]
mov byte [ecx + 0xc], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xd
push ecx
call esi
test eax, eax
jne 0x10065a72
call edi
mov eax, 0x10066ac0
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4e9573
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4e956e
call esi
test eax, eax
je 0x10065ac4
mov eax, dword [ebp - 0x10]
mov ecx, 0x4e956e
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065ac6
call edi
push 0xa
mov dword [0x10530060], 0x4e9275
call fcn.10131c6d
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4e926b
call esi
test eax, eax
je 0x10065b30
movq xmm0, qword [ebx]
mov ecx, 0x4e926b
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10065b32
call edi
mov eax, 0x10066ad0
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4e9270
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4e926b
call esi
test eax, eax
je 0x10065b84
mov eax, dword [ebp - 0x10]
mov ecx, 0x4e926b
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065b86
call edi
mov eax, dword [0x101f6810]
sub eax, 0
je 0x10065cb7
sub eax, 1
je 0x10065c51
sub eax, 1
jne 0x10065d8e
push 0x10065990
push 0x5bfad8
push 0xe9
call fcn.100d5c50
push 0x10065950
push 0x4ebc06
push 0xe9
call fcn.100d5c50
push 0x10065980
push 0x5c0000
push 0xe9
call fcn.100d5c50
push 0x10064d10
push 0x7e5cb6
push 0xe8
call fcn.100d5c50
push fcn.10064960
push 0x5bfc9b
push 0xe8
call fcn.100d5c50
push 0x100648a0
push 0x5bfec6
push 0xe9
call fcn.100d5c50
add esp, 0x48
push 0x10064920
push 0x5bfe5f
push 0xe9
call fcn.100d5c50
push 0x10066170
push 0x4ec410
push 0xe9
call fcn.100d5c50
add esp, 0x18
jmp 0x10065d8e
push 0x10064d10
push 0x7e5cb6
push 0xe8
call fcn.100d5c50
push fcn.10064960
push 0x5bfc9b
push 0xe8
call fcn.100d5c50
push 0x100648a0
push 0x5bfec6
push 0xe9
call fcn.100d5c50
push 0x10064920
push 0x5bfe5f
push 0xe9
call fcn.100d5c50
push 0xa
mov dword [0x10530064], 0x4ec4ce
call fcn.10131c6d
add esp, 0x34
jmp 0x10065ccb
push 0xa
mov dword [0x10530064], 0x4ec4ce
call fcn.10131c6d
add esp, 4
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4ec4c4
call esi
test eax, eax
je 0x10065d21
movq xmm0, qword [ebx]
mov ecx, 0x4ec4c4
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10065d23
call edi
mov eax, 0x10066ae0
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ec4c9
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ec4c4
call esi
test eax, eax
je 0x10065d75
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ec4c4
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065d77
call edi
push 0x100658a0
push 0x7e5ca2
push 0xe9
call fcn.100d5c50
add esp, 0xc
push 0xa
mov dword [0x10530068], 0x4ec2af
call fcn.10131c6d
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4ec2a5
call esi
test eax, eax
je 0x10065df8
movq xmm0, qword [ebx]
mov ecx, 0x4ec2a5
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10065dfa
call edi
mov eax, 0x10066af0
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ec2aa
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ec2a5
call esi
test eax, eax
je 0x10065e4c
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ec2a5
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065e4e
call edi
push 0xa
mov dword [0x1053006c], 0x4ec3b3
call fcn.10131c6d
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4ec3a9
call esi
test eax, eax
je 0x10065eb8
movq xmm0, qword [ebx]
mov ecx, 0x4ec3a9
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10065eba
call edi
mov eax, 0x10066b00
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ec3ae
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ec3a9
call esi
test eax, eax
je 0x10065f0c
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ec3a9
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065f0e
call edi
push 0xd
mov dword [0x10530070], 0x4ebd8c
call fcn.10131c6d
add esp, 4
mov dword [ebp - 4], 0
mov ebx, eax
lea eax, [ebp - 4]
push eax
push 0x40
mov dword [ebx], 0x90909090
mov dword [ebx + 4], 0x90909090
push 0xd
mov dword [ebx + 8], 0x90909090
push 0x4ebd7f
mov byte [ebx + 0xc], 0x90
call esi
test eax, eax
je 0x10065f86
movq xmm0, qword [ebx]
mov ecx, 0x4ebd7f
movq qword [ecx], xmm0
mov eax, dword [ebx + 8]
mov dword [ecx + 8], eax
mov al, byte [ebx + 0xc]
mov byte [ecx + 0xc], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xd
push ecx
call esi
test eax, eax
jne 0x10065f88
call edi
mov eax, 0x10066b10
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ebd84
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ebd7f
call esi
test eax, eax
je 0x10065fda
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ebd7f
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10065fdc
call edi
push 0xa
mov dword [0x10530074], 0x4ebef3
call fcn.10131c6d
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4ebee9
call esi
test eax, eax
je 0x10066046
movq xmm0, qword [ebx]
mov ecx, 0x4ebee9
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10066048
call edi
mov eax, 0x10066b20
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ebeee
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ebee9
call esi
test eax, eax
je 0x1006609a
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ebee9
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x1006609c
call edi
push 0xa
mov dword [0x10530078], 0x4ecab4
call fcn.10131c6d
mov ebx, eax
mov dword [ebp - 4], 0
mov eax, 0x90909090
add esp, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov word [ebx + 8], ax
lea eax, [ebp - 4]
push eax
push 0x40
push 0xa
push 0x4ecaaa
call esi
test eax, eax
je 0x10066106
movq xmm0, qword [ebx]
mov ecx, 0x4ecaaa
movq qword [ecx], xmm0
mov ax, word [ebx + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 0xa
push ecx
call esi
test eax, eax
jne 0x10066108
call edi
mov eax, 0x10066b30
mov byte [ebp - 0x10], 0xe9
sub eax, 0x4ecaaf
mov dword [ebp - 4], 0
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x4ecaaa
call esi
test eax, eax
je 0x1006615a
mov eax, dword [ebp - 0x10]
mov ecx, 0x4ecaaa
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x1006615c
call edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret