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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001ad6d
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x100220c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, 0x6a
xor edx, edx
mov al, byte [edx + 0x1001ec88]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x78], al
and ecx, 0x800000ff
jns 0x10017b6e
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xe
jl 0x10017b51
mov byte [ebp - 0x6a], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x78]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], 0
call edi
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10017bc4
call esi
push 0xc
lea ecx, [ebp - 0x20]
mov dword [0x1003afb4], 0x11dcfa20
push ecx
push dword [ebp - 0x14]
push eax
mov eax, 0x11dcfa20
call eax
mov dword [ebp - 4], 0xffffffff
xorps xmm0, xmm0
mov eax, dword [ebp - 0x20]
mov dword [0x1003b6d8], eax
mov eax, dword [ebp - 0x1c]
push 0x1001d3f4
mov dword [0x1003b62c], eax
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], 0
call edi
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10017c15
call esi
push 0xc
lea ecx, [ebp - 0x20]
mov dword [0x1003afb4], 0x11dcfa20
push ecx
push dword [ebp - 0x14]
push eax
mov eax, 0x11dcfa20
call eax
mov eax, dword [ebp - 0x20]
xorps xmm0, xmm0
mov dword [0x1003b2d0], eax
mov eax, dword [ebp - 0x1c]
push 0x1001ec98
mov dword [0x11dcfa58], eax
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], 0
call edi
mov edi, eax
test edi, edi
je 0x10017c5c
call esi
push 0xc
lea ecx, [ebp - 0x20]
mov dword [0x1003afb4], 0x11dcfa20
push ecx
push edi
push eax
mov eax, 0x11dcfa20
call eax
mov edi, dword [0x1003b2d0]
mov esi, edi
mov ecx, dword [0x11dcfa58]
mov eax, dword [ebp - 0x20]
mov dword [0x1003b158], eax
mov eax, dword [ebp - 0x1c]
mov dword [0x1003afa8], eax
lea eax, [edi + ecx]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x10017cbc
mov edx, edi
sub edx, esi
push 0x1001d3ec
add edx, ecx
mov ecx, esi
push 0x1001d3f0
call fcn.10002100
add esp, 8
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
je 0x10017cbc
test esi, esi
je 0x10017cbc
mov ecx, dword [ebp - 0x14]
add esi, 2
lea eax, [edi + ecx]
cmp esi, eax
jb 0x10017c84
cmp dword [0x1003b3e8], 0
jne 0x10017d07
mov ecx, 0xf8
xor edx, edx
nop dword [eax]
mov al, byte [edx + 0x1001eca0]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x58], al
and ecx, 0x800000ff
jns 0x10017ced
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x32
jl 0x10017cd0
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x26], 0
call fcn.10002db0
mov eax, dword [eax + 7]
mov dword [0x1003b3e8], eax
mov esi, dword [0x1003afa0]
test esi, esi
jne 0x10017d24
mov ecx, str.89_0D_____________83_3D________________74_07
call fcn.10002db0
mov esi, dword [eax + 2]
mov dword [0x1003afa0], esi
cmp dword [0x11dcf760], 0
jne 0x10017d67
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push esi
call edi
test eax, eax
jne 0x10017d5f
mov esi, dword [esi]
push 4
add esi, 0x10
push esi
call edi
test eax, eax
jne 0x10017d5f
mov esi, dword [esi]
push 4
push esi
call edi
test eax, eax
jne 0x10017d5f
mov eax, dword [ebp - 0x14]
test esi, esi
cmovne eax, esi
jmp 0x10017d62
mov eax, dword [ebp - 0x14]
mov dword [0x11dcf760], eax
cmp dword [0x1003afc4], 0
jne 0x10017d7f
mov ecx, str.55_8B_EC_83_______83_______A1_____________33____89__________56_68
call fcn.10002cc0
mov dword [0x1003afc4], eax
cmp dword [0x1003b2d4], 0
jne 0x10017d9a
mov ecx, str.50_E8_____________59_59____8B________________E8
call fcn.10002cc0
add eax, 0x15
mov dword [0x1003b2d4], eax
cmp dword [0x1003b124], 0
jne 0x10017db5
mov ecx, str.8B_______6A_10_68_____________E8_____________8B_______85____75___
call fcn.10002cc0
add eax, 3
mov dword [0x1003b124], eax
cmp dword [0x1003b5f8], 0
jne 0x10017e01
mov ecx, 0x1e
xor edx, edx
mov al, byte [edx + 0x1001d758]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x68], al
and ecx, 0x800000ff
jns 0x10017de2
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x44
jl 0x10017dc5
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x24], 0
call fcn.10002db0
mov ecx, dword [eax + 0x30]
add eax, 0x34
add eax, ecx
mov dword [0x1003b5f8], eax
cmp dword [0x1003b1d0], 0
jne 0x10017e4d
mov ecx, 0x1e
xor edx, edx
mov al, byte [edx + 0x1001d758]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x68], al
and ecx, 0x800000ff
jns 0x10017e2e
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x44
jl 0x10017e11
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x24], 0
call fcn.10002db0
mov ecx, dword [eax + 0x42]
add eax, 0x46
add eax, ecx
mov dword [0x1003b1d0], eax
cmp dword [0x1003b5dc], 0
jne 0x10017e97
mov ecx, 0x1e
xor edx, edx
nop dword [eax]
mov al, byte [edx + 0x1001d758]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x68], al
and ecx, 0x800000ff
jns 0x10017e7d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x44
jl 0x10017e60
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x24], 0
call fcn.10002db0
mov eax, dword [eax + 0x25]
mov dword [0x1003b5dc], eax
cmp dword [0x1003b220], 0
jne 0x10017ede
mov ecx, 0x1e
xor edx, edx
mov al, byte [edx + 0x1001d758]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x68], al
and ecx, 0x800000ff
jns 0x10017ec4
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x44
jl 0x10017ea7
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x24], 0
call fcn.10002db0
mov eax, dword [eax + 0x2b]
mov dword [0x1003b220], eax
cmp dword [0x1003b660], 0
jne 0x10017f59
mov ecx, 0xf1
xor edx, edx
nop
mov al, byte [edx + 0x1001e090]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x68], al
and ecx, 0x800000ff
jns 0x10017f0d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x44
jl 0x10017ef0
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x24], 0
call fcn.10002db0
mov esi, eax
test esi, esi
je 0x10017f4e
mov edx, dword [0x1003b62c]
xor ecx, ecx
test edx, edx
je 0x10017f44
mov edi, dword [0x1003b6d8]
cmp dword [ecx + edi], esi
lea eax, [ecx + edi]
je 0x10017f49
inc ecx
cmp ecx, edx
jb 0x10017f37
or eax, 0xffffffff
jmp 0x10017f51
add eax, 0xffffffff
jne 0x10017f51
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0x30]
mov dword [0x1003b660], eax
cmp dword [0x1003afac], 0
jne 0x10017fa7
mov ecx, 0xfa
xor edx, edx
nop dword [eax]
mov al, byte [edx + 0x1001e0d8]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x64], al
and ecx, 0x800000ff
jns 0x10017f8d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x3e
jl 0x10017f70
lea ecx, [ebp - 0x64]
mov byte [ebp - 0x26], 0
call fcn.10002db0
sub eax, 0x3e
mov dword [0x1003afac], eax
call fcn.100047f0
call fcn.10004be0
call fcn.10005a20
mov esi, dword [0x1003b1d0]
mov al, byte [esi]
cmp al, 0x6a
je 0x10017fff
cmp al, 0x55
je 0x10017fff
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b4cc
call edi
mov eax, dword [esi]
mov dword [0x1003b4cc], eax
mov al, byte [esi + 4]
sub esi, 0x1003b4d1
mov byte [0x1003b4d0], al
mov byte [0x1003b4d1], 0xe9
mov dword [0x1003b4d2], esi
jmp 0x10018043
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b4cc
call edi
mov eax, dword [esi]
mov dword [0x1003b4cc], eax
mov ax, word [esi + 4]
mov word [0x1003b4d0], ax
mov al, byte [esi + 6]
sub esi, 0x1003b4d3
add esi, 2
mov byte [0x1003b4d2], al
mov byte [0x1003b4d3], 0xe9
mov dword [0x1003b4d4], esi
mov esi, dword [0x1003b5f8]
mov al, byte [esi]
cmp al, 0x6a
je 0x10018086
cmp al, 0x55
je 0x10018086
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b58c
call edi
mov eax, dword [esi]
mov dword [0x1003b58c], eax
mov al, byte [esi + 4]
sub esi, 0x1003b591
mov byte [0x1003b590], al
mov byte [0x1003b591], 0xe9
mov dword [0x1003b592], esi
jmp 0x100180c4
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b58c
call edi
mov eax, dword [esi]
mov dword [0x1003b58c], eax
mov ax, word [esi + 4]
mov word [0x1003b590], ax
mov al, byte [esi + 6]
sub esi, 0x1003b593
add esi, 2
mov byte [0x1003b592], al
mov byte [0x1003b593], 0xe9
mov dword [0x1003b594], esi
mov esi, dword [0x1003b164]
mov al, byte [esi]
cmp al, 0x6a
je 0x10018107
cmp al, 0x55
je 0x10018107
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b48c
call edi
mov eax, dword [esi]
mov dword [0x1003b48c], eax
mov al, byte [esi + 4]
sub esi, 0x1003b491
mov byte [0x1003b490], al
mov byte [0x1003b491], 0xe9
mov dword [0x1003b492], esi
jmp 0x10018145
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b48c
call edi
mov eax, dword [esi]
mov dword [0x1003b48c], eax
mov ax, word [esi + 4]
mov word [0x1003b490], ax
mov al, byte [esi + 6]
sub esi, 0x1003b493
add esi, 2
mov byte [0x1003b492], al
mov byte [0x1003b493], 0xe9
mov dword [0x1003b494], esi
mov esi, dword [0x1003b154]
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xb
push 0x1003b44c
call edi
mov eax, dword [esi]
mov dword [0x1003b44c], eax
movzx eax, word [esi + 4]
sub esi, 0x1003b452
mov word [0x1003b450], ax
inc esi
lea eax, [ebp - 0x14]
mov dword [0x1003b453], esi
mov esi, dword [0x1003b128]
push eax
push 0x40
push 0xb
push 0x1003b40c
mov byte [0x1003b452], 0xe9
call edi
mov eax, dword [esi]
mov dword [0x1003b40c], eax
movzx eax, word [esi + 4]
sub esi, 0x1003b412
mov word [0x1003b410], ax
inc esi
lea eax, [ebp - 0x14]
mov dword [0x1003b413], esi
mov esi, dword [0x11dcf74c]
push eax
push 0x40
push 0x23
push 0x1003b52c
mov byte [0x1003b412], 0xe9
add esi, 6
call edi
movups xmm0, xmmword [esi]
movups xmmword [0x1003b52c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x1003b53c], xmm0
mov eax, dword [esi + 0x18]
mov dword [0x1003b544], eax
movzx eax, word [esi + 0x1c]
sub esi, 0x1003b54a
mov word [0x1003b548], ax
add esi, 0x19
lea eax, [ebp - 0x14]
mov dword [0x1003b54b], esi
mov esi, dword [0x1003b134]
push eax
push 0x40
push 0xd
push 0x1003b42c
mov byte [0x1003b54a], 0xe9
call edi
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub esi, 0x1003b434
mov dword [0x1003b42c], eax
add esi, 3
lea eax, [ebp - 0x14]
mov dword [0x1003b435], esi
mov esi, dword [0x1003b128]
push eax
push 0x40
push 0xb
push 0x1003b46c
mov dword [0x1003b430], ecx
mov byte [0x1003b434], 0xe9
call edi
mov eax, dword [esi]
mov dword [0x1003b46c], eax
movzx eax, word [esi + 4]
mov esi, dword [0x1003b6e4]
mov word [0x1003b470], ax
mov byte [0x1003b472], 0xc3
mov al, byte [esi]
cmp al, 0x6a
je 0x100182bb
cmp al, 0x55
je 0x100182bb
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b50c
call edi
mov eax, dword [esi]
mov dword [0x1003b50c], eax
mov al, byte [esi + 4]
sub esi, 0x1003b511
mov byte [0x1003b510], al
mov byte [0x1003b511], 0xe9
mov dword [0x1003b512], esi
jmp 0x100182f9
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b50c
call edi
mov eax, dword [esi]
mov dword [0x1003b50c], eax
mov ax, word [esi + 4]
mov word [0x1003b510], ax
mov al, byte [esi + 6]
sub esi, 0x1003b513
add esi, 2
mov byte [0x1003b512], al
mov byte [0x1003b513], 0xe9
mov dword [0x1003b514], esi
mov esi, dword [0x1003b258]
mov al, byte [esi]
cmp al, 0x6a
je 0x1001833c
cmp al, 0x55
je 0x1001833c
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b4ec
call edi
mov eax, dword [esi]
mov dword [0x1003b4ec], eax
mov al, byte [esi + 4]
sub esi, 0x1003b4f1
mov byte [0x1003b4f0], al
mov byte [0x1003b4f1], 0xe9
mov dword [0x1003b4f2], esi
jmp 0x1001837a
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b4ec
call edi
mov eax, dword [esi]
mov dword [0x1003b4ec], eax
mov ax, word [esi + 4]
mov word [0x1003b4f0], ax
mov al, byte [esi + 6]
sub esi, 0x1003b4f3
add esi, 2
mov byte [0x1003b4f2], al
mov byte [0x1003b4f3], 0xe9
mov dword [0x1003b4f4], esi
mov esi, dword [0x1003afac]
mov al, byte [esi]
cmp al, 0x6a
je 0x100183bd
cmp al, 0x55
je 0x100183bd
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b3ec
call edi
mov eax, dword [esi]
mov dword [0x1003b3ec], eax
mov al, byte [esi + 4]
sub esi, 0x1003b3f1
mov byte [0x1003b3f0], al
mov byte [0x1003b3f1], 0xe9
mov dword [0x1003b3f2], esi
jmp 0x100183fb
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b3ec
call edi
mov eax, dword [esi]
mov dword [0x1003b3ec], eax
mov ax, word [esi + 4]
mov word [0x1003b3f0], ax
mov al, byte [esi + 6]
sub esi, 0x1003b3f3
add esi, 2
mov byte [0x1003b3f2], al
mov byte [0x1003b3f3], 0xe9
mov dword [0x1003b3f4], esi
mov esi, dword [0x1003b11c]
mov al, byte [esi]
cmp al, 0x6a
je 0x1001843e
cmp al, 0x55
je 0x1001843e
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b4ac
call edi
mov eax, dword [esi]
mov dword [0x1003b4ac], eax
mov al, byte [esi + 4]
sub esi, 0x1003b4b1
mov byte [0x1003b4b0], al
mov byte [0x1003b4b1], 0xe9
mov dword [0x1003b4b2], esi
jmp 0x1001847c
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b4ac
call edi
mov eax, dword [esi]
mov dword [0x1003b4ac], eax
mov ax, word [esi + 4]
mov word [0x1003b4b0], ax
mov al, byte [esi + 6]
sub esi, 0x1003b4b3
add esi, 2
mov byte [0x1003b4b2], al
mov byte [0x1003b4b3], 0xe9
mov dword [0x1003b4b4], esi
mov esi, dword [0x1003afa4]
mov al, byte [esi]
cmp al, 0x6a
je 0x100184bf
cmp al, 0x55
je 0x100184bf
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xa
push 0x1003b54c
call edi
mov eax, dword [esi]
mov dword [0x1003b54c], eax
mov al, byte [esi + 4]
sub esi, 0x1003b551
mov byte [0x1003b550], al
mov byte [0x1003b551], 0xe9
mov dword [0x1003b552], esi
jmp 0x100184fd
lea eax, [ebp - 0x14]
push eax
push 0x40
push 0xc
push 0x1003b54c
call edi
mov eax, dword [esi]
mov dword [0x1003b54c], eax
mov ax, word [esi + 4]
mov word [0x1003b550], ax
mov al, byte [esi + 6]
sub esi, 0x1003b553
add esi, 2
mov byte [0x1003b552], al
mov byte [0x1003b553], 0xe9
mov dword [0x1003b554], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10019955
mov esp, ebp
pop ebp
ret