Function at 0x180121160
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov r13, rcx
xor r15d, r15d
mov dword [rsp + 0x68], r15d
lea edx, [r15 + 2]
mov cl, 1
call fcn.180198b30
lea rcx, str.Stereo_Hook_Options
call fcn.18019a230
test al, al
je 0x180121c20
mov rcx, qword [r13 + 0x11f8]
mov rax, qword [rcx]
lea rdx, str.Asynchronous_Code_Scanning
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], 0x1a
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
call qword [rax + 8]
mov rcx, qword [r13 + 0x11e8]
mov rax, qword [rcx]
lea rdx, str.Recreate_Textures_on_Reset
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], 0x1a
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
call qword [rax + 8]
mov rcx, qword [r13 + 0x11f0]
mov rax, qword [rcx]
lea rdx, str.Frame_Delay_Compensation
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], 0x18
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
call qword [rax + 8]
mov rcx, qword [r13 + 0x960]
test rcx, rcx
je 0x180121258
mov rax, qword [rcx]
call qword [rax + 0x60]
lea rsi, [r13 + 0xa28]
mov qword [rbp + 0x40], rsi
mov qword [rsp + 0x40], rsi
mov rcx, rsi
call fcn.180283150
test eax, eax
jne 0x180121c4f
mov eax, dword [rsi + 0x4c]
cmp eax, 0x7fffffff
je 0x180121c5a
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x40], rax
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
mov rdi, qword [r13 + 0x970]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1801213fe
mov qword [rsp + 0x70], 4
lea rax, [rbp + 0x20]
mov qword [rsp + 0x78], rax
movaps xmm6, xmmword [rsp + 0x70]
mov r14, qword [rbp - 0x48]
lea rcx, str.:x
mov rax, qword [rbx + 0x10]
mov qword [rbp + 0x30], rax
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp + 0x20], xmm0
movdqa xmmword [rbp + 0x10], xmm6
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], 4
lea r8, [rbp + 0x10]
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x38]
call fcn.180268f40
or r15d, 1
mov dword [rsp + 0x68], r15d
mov rdx, qword [rsp + 0x58]
cmp rdx, qword [rsp + 0x60]
je 0x180121359
xorps xmm0, xmm0
movups xmmword [rdx], xmm0
xor eax, eax
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rax
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x28]
movups xmmword [rdx + 0x10], xmm1
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], al
add qword [rsp + 0x58], 0x20
jmp 0x180121367
lea r8, [rbp - 0x38]
lea rcx, [rsp + 0x50]
call fcn.180057970
and r15d, 0xfffffffe
mov dword [rsp + 0x68], r15d
mov rdx, qword [rbp - 0x20]
cmp rdx, 0xf
jbe 0x1801213ab
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801213a6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180121c6a
call fcn.180286270
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
cmp r14, qword [rbp - 0x70]
je 0x1801213d6
mov rax, qword [rbx + 0x10]
mov qword [r14], rax
add r14, 8
mov qword [rbp - 0x48], r14
jmp 0x1801213f2
lea r8, [rbx + 0x10]
mov rdx, r14
lea rcx, [rbp - 0x50]
call fcn.180056e10
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x70], rax
mov r14, qword [rbp - 0x48]
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1801212d1
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
xor ecx, ecx
mov qword [rsp + 0x70], rcx
mov qword [rbp - 0x58], rcx
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
cmp rbx, rdi
je 0x18012147a
mov rdx, qword [rbp - 0x60]
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180121431
mov rax, qword [rbx]
mov qword [rbp + 0xc8], rax
cmp rdx, rcx
je 0x18012144a
mov qword [rdx], rax
add rdx, 8
mov qword [rbp - 0x60], rdx
jmp 0x180121462
lea r8, [rbp + 0xc8]
lea rcx, [rbp - 0x68]
call fcn.180041c20
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
add rbx, 0x20
cmp rbx, rdi
jne 0x180121424
mov qword [rsp + 0x70], rcx
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r14, qword [rbp - 0x50]
mov qword [rbp + 0x30], r14
cmp rbx, rdi
je 0x180121b04
movsxd rdx, dword [r13 + 0xa7c]
shl rdx, 5
add rdx, rbx
cmp qword [rdx + 0x18], 0xf
jbe 0x1801214a3
mov rdx, qword [rdx]
xor r8d, r8d
lea rcx, str.GetRenderTargetTexture_Retaddrs
call fcn.180190550
test al, al
je 0x180121b04
xor r15d, r15d
mov rax, qword [rsp + 0x58]
sub rax, qword [rsp + 0x50]
sar rax, 5
test rax, rax
je 0x180121aff
lea rcx, [r13 + 0x9d8]
mov qword [rbp - 0x80], rcx
lea rcx, [r13 + 0x9c0]
mov qword [rbp - 0x78], rcx
lea r12, [r13 + 0x9b0]
xor edi, edi
mov qword [rbp + 0x20], rdi
xor ebx, ebx
mov qword [rbp + 0x10], rbx
movss xmm6, dword [0x18031f264]
xorps xmm7, xmm7
mov rsi, r14
nop dword [rax + rax]
mov ecx, r15d
call fcn.18017e0f0
mov rbx, qword [rsi + rbx]
mov qword [rsp + 0x38], rbx
cmp dword [r13 + 0xa7c], r15d
sete r14b
mov rdx, qword [rsp + 0x50]
add rdx, rdi
cmp qword [rdx + 0x18], 0xf
jbe 0x18012153e
mov rdx, qword [rdx]
movss dword [rsp + 0x20], xmm6
mov r9b, 1
xor r8d, r8d
lea rcx, [rbp - 0x18]
call fcn.180170730
call fcn.180175850
movss xmm0, dword [rbp - 0x18]
addss xmm0, dword [rax + 0x4c]
movss dword [rbp - 0x10], xmm0
movss xmm0, dword [rbp - 0x14]
movss dword [rbp - 0xc], xmm0
mov rcx, qword [rsp + 0x50]
add rcx, rdi
cmp qword [rcx + 0x18], 0xf
jbe 0x180121583
mov rcx, qword [rcx]
lea rdi, [r13 + 0x9a8]
lea r9, [rbp - 0x10]
xor r8d, r8d
movzx edx, r14b
call fcn.180198290
test al, al
je 0x1801215ac
mov dword [r13 + 0xa7c], r15d
lea rdi, [r13 + 0x9a8]
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.180181f80
mov qword [rbp - 8], 0
lea rdx, [rbp - 8]
lea rcx, str.Call_Original
call fcn.180190c80
test al, al
je 0x180121720
lea r8, [rsp + 0x38]
lea rdx, [rbp + 0x48]
mov rcx, rdi
call fcn.180061ec0
mov rbx, qword [rsp + 0x38]
movzx ecx, bl
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx edi, byte [rsp + 0x39]
xor rcx, rdi
imul rcx, rdx
movzx r14d, byte [rsp + 0x3a]
xor rcx, r14
imul rcx, rdx
movzx eax, byte [rsp + 0x3b]
mov byte [rbp + 0xd0], al
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsp + 0x3c]
mov byte [rbp + 0xd8], al
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x30], al
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x31], al
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsp + 0x3f]
mov byte [rbp + 0xc8], al
xor rcx, rax
imul rcx, rdx
mov rdx, qword [r13 + 0xa18]
and rdx, rcx
add rdx, rdx
mov r8, qword [r13 + 0xa00]
mov rcx, qword [r8 + rdx*8 + 8]
cmp rcx, qword [r13 + 0x9f0]
je 0x1801216b7
mov rax, qword [r8 + rdx*8]
cmp rbx, qword [rcx + 0x10]
je 0x1801216b9
cmp rcx, rax
je 0x1801216b7
mov rcx, qword [rcx + 8]
cmp rbx, qword [rcx + 0x10]
jne 0x1801216a6
jmp 0x1801216b9
xor ecx, ecx
test rcx, rcx
je 0x18012175e
mov rax, qword [r8 + rdx*8]
cmp qword [r8 + rdx*8 + 8], rcx
jne 0x1801216ef
cmp rax, rcx
jne 0x1801216e4
mov rax, qword [r13 + 0x9f0]
mov qword [r8 + rdx*8], rax
mov qword [r8 + rdx*8 + 8], rax
jmp 0x1801216fb
mov rax, qword [rcx + 8]
mov qword [r8 + rdx*8 + 8], rax
jmp 0x1801216fb
cmp rax, rcx
jne 0x1801216fb
mov rax, qword [rcx]
mov qword [r8 + rdx*8], rax
mov rdx, qword [rcx]
dec qword [r13 + 0x9f8]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.180286270
jmp 0x18012175e
movzx eax, byte [rsp + 0x3f]
mov byte [rbp + 0xc8], al
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x31], al
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x3c]
mov byte [rbp + 0xd8], al
movzx eax, byte [rsp + 0x3b]
mov byte [rbp + 0xd0], al
movzx r14d, byte [rsp + 0x3a]
movzx edi, byte [rsp + 0x39]
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.180181f80
mov qword [rbp], 0
lea rdx, [rbp]
lea rcx, str.Redirect
call fcn.180190c80
test al, al
je 0x18012191c
lea rcx, [r13 + 0x9e8]
lea r8, [rsp + 0x38]
lea rdx, [rbp - 0x38]
call fcn.180061ec0
mov rbx, qword [rsp + 0x38]
movzx edx, bl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx edi, byte [rsp + 0x39]
xor rdx, rdi
imul rdx, rcx
movzx r14d, byte [rsp + 0x3a]
xor rdx, r14
imul rdx, rcx
movzx eax, byte [rsp + 0x3b]
mov byte [rbp + 0xd0], al
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x3c]
mov byte [rbp + 0xd8], al
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x30], al
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x31], al
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0x3f]
mov byte [rbp + 0xc8], al
xor rdx, rax
imul rdx, rcx
lea rax, [r13 + 0x9d8]
mov qword [rbp - 0x80], rax
mov rax, qword [rax]
and rax, rdx
lea rcx, [r13 + 0x9c0]
mov qword [rbp - 0x78], rcx
add rax, rax
mov r8, qword [rcx]
mov rcx, qword [r8 + rax*8 + 8]
cmp rcx, qword [r13 + 0x9b0]
je 0x180121881
mov rax, qword [r8 + rax*8]
cmp rbx, qword [rcx + 0x10]
je 0x180121883
nop word [rax + rax]
cmp rcx, rax
je 0x180121881
mov rcx, qword [rcx + 8]
cmp rbx, qword [rcx + 0x10]
jne 0x180121870
jmp 0x180121883
xor ecx, ecx
lea r12, [r13 + 0x9b0]
test rcx, rcx
je 0x18012191c
lea rax, [r13 + 0x9d8]
mov qword [rbp - 0x80], rax
and rdx, qword [rax]
add rdx, rdx
lea rax, [r13 + 0x9c0]
mov qword [rbp - 0x78], rax
mov r8, qword [rax]
mov rax, qword [r8 + rdx*8]
cmp qword [r8 + rdx*8 + 8], rcx
jne 0x1801218df
cmp rax, rcx
jne 0x1801218d4
mov rax, qword [r13 + 0x9b0]
mov qword [r8 + rdx*8], rax
mov qword [r8 + rdx*8 + 8], rax
jmp 0x1801218f2
mov rax, qword [rcx + 8]
mov qword [r8 + rdx*8 + 8], rax
jmp 0x1801218f2
lea r12, [r13 + 0x9b0]
cmp rax, rcx
jne 0x1801218f9
mov rax, qword [rcx]
mov qword [r8 + rdx*8], rax
lea r12, [r13 + 0x9b0]
mov rdx, qword [rcx]
dec qword [r13 + 0x9b8]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.180286270
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.180181f80
movzx ecx, bl
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, dil
xor rcx, rax
imul rcx, rdx
movzx eax, r14b
xor rcx, rax
imul rcx, rdx
movzx r8d, byte [rbp + 0xd0]
xor rcx, r8
imul rcx, rdx
movzx r9d, byte [rbp + 0xd8]
xor rcx, r9
imul rcx, rdx
movzx r10d, byte [rsp + 0x30]
xor rcx, r10
imul rcx, rdx
movzx r11d, byte [rsp + 0x31]
xor rcx, r11
imul rcx, rdx
movzx eax, byte [rbp + 0xc8]
xor rcx, rax
imul rcx, rdx
mov rax, qword [rbp - 0x80]
mov rdx, qword [rax]
and rdx, rcx
add rdx, rdx
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [r12]
je 0x1801219e1
mov rcx, qword [rcx + rdx*8]
cmp rbx, qword [rax + 0x10]
je 0x1801219e3
nop word [rax + rax]
cmp rax, rcx
je 0x1801219e1
mov rax, qword [rax + 8]
cmp rbx, qword [rax + 0x10]
jne 0x1801219d0
jmp 0x1801219e3
xor eax, eax
test rax, rax
je 0x180121a00
lea rcx, str._Calling_Original_
jmp 0x180121ab8
movzx ecx, bl
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, dil
xor rcx, rax
imul rcx, rdx
movzx eax, r14b
xor rcx, rax
imul rcx, rdx
xor rcx, r8
imul rcx, rdx
xor rcx, r9
imul rcx, rdx
xor rcx, r10
imul rcx, rdx
xor rcx, r11
imul rcx, rdx
movzx eax, byte [rbp + 0xc8]
xor rcx, rax
imul rcx, rdx
mov rdx, qword [r13 + 0xa18]
and rdx, rcx
add rdx, rdx
mov rcx, qword [r13 + 0xa00]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [r13 + 0x9f0]
je 0x180121aa1
mov rcx, qword [rcx + rdx*8]
cmp rbx, qword [rax + 0x10]
je 0x180121aa3
nop word [rax + rax]
cmp rax, rcx
je 0x180121aa1
mov rax, qword [rax + 8]
cmp rbx, qword [rax + 0x10]
jne 0x180121a90
jmp 0x180121aa3
xor eax, eax
lea rcx, str._Redirected_
test rax, rax
lea rax, str._Default_
cmove rcx, rax
call fcn.180199bb0
call fcn.18017db80
inc r15d
mov rbx, qword [rbp + 0x10]
add rbx, 8
mov qword [rbp + 0x10], rbx
mov rdi, qword [rbp + 0x20]
add rdi, 0x20
mov qword [rbp + 0x20], rdi
mov rcx, qword [rsp + 0x58]
sub rcx, qword [rsp + 0x50]
sar rcx, 5
movsxd rax, r15d
cmp rax, rcx
jb 0x180121510
mov rsi, qword [rbp + 0x40]
mov r14, qword [rbp + 0x30]
call fcn.1801933f0
call fcn.18019ad50
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x180121b61
mov rdx, qword [rsp + 0x70]
sub rdx, rcx
sar rdx, 3
lea rdx, [rdx*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180121b4c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180121c70
call fcn.180286270
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], 0
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x180121bc7
lea r8, [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
call fcn.180018100
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x180121bb0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180121c76
call fcn.180286270
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
test r14, r14
je 0x180121c18
mov rax, qword [rbp - 0x70]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x180121c00
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180121c49
mov rcx, r14
call fcn.180286270
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], 0
mov rcx, rsi
call fcn.180283194
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp fcn.180198810
call fcn.18028ddc0
nop
mov ecx, 5
call fcn.1802835e0
int3
dec eax
mov dword [rsi + 0x4c], eax
mov ecx, 6
call fcn.1802835e0
nop
call fcn.18028ddc0
int3
call fcn.18028ddc0
nop
call fcn.18028ddc0
int3