Function at 0x10017220
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008d05d
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x100a4040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm1, xmm1
mov dword [ebp - 0x1c], 0
mov ecx, str.r_aspectratio
mov dword [ebp - 0x38], 0xbf800000
mov dword [ebp - 0x34], 0x3f800000
mov dword [ebp - 0x2c], 0x42700000
mov dword [ebp - 0x3c], 0x42b40000
mov dword [ebp - 0x30], 0x44160000
call fcn.10076240
mov eax, dword [0x100c0408]
mov ecx, str.mat_postprocess_enable
mov esi, dword [ebp - 0x1c]
movss xmm1, dword [0x1009a1b4]
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c027c]
mov ecx, str.cl_csm_enabled
movss xmm1, dword [0x1009a1b4]
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c042c]
xorps xmm1, xmm1
mov ecx, str.mat_fullbright
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c0498]
xorps xmm1, xmm1
mov ecx, str.mat_drawgray
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c04bc]
xorps xmm1, xmm1
mov ecx, str.mat_showlowresimage
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c04e0]
mov ecx, str.viewmodel_offset_x
movss xmm1, dword [0x1009a1b4]
mov dword [eax], esi
call fcn.10076240
mov eax, dword [0x100c02e8]
mov ecx, str.viewmodel_offset_y
mov edi, dword [ebp - 0x34]
movss xmm1, dword [0x1009a1b4]
mov dword [eax], edi
call fcn.10076240
mov eax, dword [0x100c030c]
mov ecx, str.viewmodel_offset_z
movss xmm1, dword [0x1009a38c]
mov dword [eax], edi
call fcn.10076240
mov eax, dword [0x100c0330]
mov ecx, dword [ebp - 0x38]
movss xmm1, dword [0x1009a2b0]
mov dword [eax], ecx
mov eax, dword [0x100c0354]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], esi
mov eax, dword [0x100c0378]
mov dword [eax], esi
mov eax, dword [0x100c039c]
mov dword [eax], esi
mov eax, dword [0x100c02a0]
mov dword [eax], ecx
mov ecx, str.viewmodel_fov
call fcn.10076240
mov eax, dword [0x100c02c4]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
mov ecx, str.cl_viewmodel_shift_left_amt
mov eax, dword [0x100c03e4]
mov dword [eax], esi
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_viewmodel_shift_left_amt
call fcn.10076240
mov ecx, str.cl_viewmodel_shift_right_amt
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_viewmodel_shift_right_amt
call fcn.10076240
mov ecx, str.cl_bob_lower_amt
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_bob_lower_amt
call fcn.10076240
mov ecx, str.cl_bobamt_lat
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_bobamt_lat
call fcn.10076240
mov ecx, str.cl_bobamt_vert
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_bobamt_vert
call fcn.10076240
mov ecx, str.cl_wpn_sway_scale
call fcn.10076110
movaps xmm1, xmm0
mov ecx, str.cl_wpn_sway_scale
call fcn.10076240
mov ecx, dword [0x100bea1c]
push str.cl_ragdoll_gravity
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
lea ecx, [eax + 0x18]
mov eax, dword [ecx]
push ecx
mov dword [esp], 0x44160000
call dword [eax + 8]
mov eax, dword [0x100c0450]
mov ecx, dword [ebp - 0x30]
movss xmm1, dword [0x1009a1b4]
mov dword [eax], ecx
mov ecx, str.cl_phys_timescale
call fcn.10076240
mov eax, dword [0x100c0474]
mov dword [eax], edi
mov eax, dword [0x100c0744]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp byte [eax], 0
je 0x100174a4
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 0x40
push 2
push dword [0x100beae8]
call edi
mov ecx, dword [0x100beae8]
push 0
mov word [ebp - 0x1c], 0xc63b
mov ax, word [ebp - 0x1c]
mov word [ecx], ax
push dword [ebp - 0x14]
push 2
push dword [0x100beae8]
call edi
mov eax, dword [0x100c081c]
cmp byte [eax], 0
je 0x100175fb
movaps xmm0, xmmword [0x1009a610]
xor ecx, ecx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x40], 0xe0b6d
movaps xmm0, xmmword [0x1009a600]
movups xmmword [ebp - 0x50], xmm0
mov al, byte [ebp - 0x60]
xor byte [ebp + ecx - 0x5f], al
inc ecx
cmp ecx, 0x22
jb 0x100174d1
sub esp, 0x18
mov byte [ebp - 0x3d], 0
mov edx, esp
mov dword [ebp - 0x30], esp
xorps xmm0, xmm0
lea ecx, [ebp - 0x5f]
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10017504
sub ecx, esi
lea eax, [ebp - 0x5f]
push ecx
push eax
mov ecx, edx
call fcn.1000bcd0
mov dword [ebp - 4], 0
mov cl, 5
mov al, 0xe
mov byte [ebp - 0x28], 0x6b
mov dh, al
mov byte [ebp - 0x15], 0x45
xor al, byte [ebp - 0x28]
mov ch, cl
xor cl, byte [ebp - 0x28]
mov dl, 0xc
mov byte [ebp - 0x27], al
mov ah, 2
mov al, byte [ebp - 0x15]
xorps xmm0, xmm0
mov byte [ebp - 0x26], cl
mov cl, byte [ebp - 0x28]
xor al, cl
mov byte [ebp - 0x16], 0xf
mov byte [ebp - 0x21], al
xor dl, cl
mov al, byte [ebp - 0x16]
xor dh, cl
xor al, cl
mov byte [ebp - 0x17], 7
mov byte [ebp - 0x20], al
xor ah, cl
mov al, byte [ebp - 0x17]
xor ch, cl
xor al, cl
mov byte [ebp - 0x19], 7
mov byte [ebp - 0x1f], al
mov al, byte [ebp - 0x19]
xor al, cl
mov byte [ebp - 0x25], dl
sub esp, 0x18
mov byte [ebp - 0x22], dh
mov edx, esp
mov byte [ebp - 0x23], ch
lea ecx, [ebp - 0x27]
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x24], ah
lea esi, [ecx + 1]
mov byte [ebp - 0x1e], al
movups xmmword [edx], xmm0
mov byte [ebp - 0x1d], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100175b0
sub ecx, esi
lea eax, [ebp - 0x27]
push ecx
push eax
mov ecx, edx
call fcn.1000bcd0
mov dword [ebp - 4], 0xffffffff
call fcn.1007a170
add esp, 0x30
mov dword [ebp - 0x14], 0
lea esi, [eax + 1]
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push esi
call edi
lea eax, [ebp - 0x14]
mov dword [esi], 0xf
push eax
push dword [ebp - 0x14]
push 4
push esi
call edi
mov eax, dword [0x100c078c]
cmp byte [eax], 0
je 0x1001760c
xor cl, cl
call fcn.10016df0
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.1008a073
mov esp, ebp
pop ebp
ret