Function at 0x180013d08
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x18015ebc0]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r15, r8
mov edi, edx
mov rsi, rcx
mov rax, qword [rcx + 0x38]
mov rbx, qword [rax + 0x50]
mov qword [rsp + 0x40], rbx
mov r13, qword [r8 + 0x18]
mov qword [rbp - 0x20], r13
mov byte [rsp + 0x48], 0
mov rdx, rbx
mov rcx, r13
call fcn.1800d378c
movabs r12, 0xcbf29ce484222325
movabs r9, 0x100000001b3
test al, al
jne 0x180013e04
mov rdx, r12
xor ecx, ecx
movzx eax, byte [rsp + rcx + 0x40]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, 8
jb 0x180013d80
mov rcx, qword [r15 + 0x1b0]
and rcx, rdx
add rcx, rcx
mov r8, qword [r15 + 0x198]
mov rax, qword [r8 + rcx*8 + 8]
mov rdx, qword [r15 + 0x188]
cmp rax, rdx
jne 0x180013dbe
xor eax, eax
jmp 0x180013de1
mov r9, qword [r8 + rcx*8]
jmp 0x180013dcd
cmp rax, r9
je 0x180013dd5
mov rax, qword [rax + 8]
cmp rbx, qword [rax + 0x10]
jne 0x180013dc4
jmp 0x180013dd7
xor eax, eax
movabs r9, 0x100000001b3
test rax, rax
cmove rax, rdx
cmp rax, rdx
jne 0x180013df8
mov r8d, 0x5d
jmp 0x180014e7b
mov rax, qword [rax + 0x18]
mov rbx, qword [rax]
mov byte [rsp + 0x48], 1
mov qword [rsp + 0x40], rbx
mov r8, qword [r15 + 0x1c8]
mov rdx, r12
xor ecx, ecx
movzx eax, byte [rsp + rcx + 0x40]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, 8
jb 0x180013e15
mov rcx, qword [r15 + 0x1f0]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r15 + 0x1d8]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, r8
je 0x180013e5f
mov r9, qword [rdx + rcx*8]
jmp 0x180013e57
cmp rax, r9
je 0x180013e5f
mov rax, qword [rax + 8]
cmp rbx, qword [rax + 0x10]
jne 0x180013e4e
jmp 0x180013e61
xor eax, eax
test rax, rax
cmove rax, r8
cmp rax, r8
je 0x180014e86
mov qword [rsp + 0x58], rbx
lea rcx, [r15 + 0x1c0]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x68]
call fcn.18002975c
mov rcx, qword [rax]
mov r14d, 0x18
mov rax, qword [rcx + r14]
mov qword [rsp + 0x40], rax
mov rdx, rbx
mov rcx, r13
call fcn.1800d37c8
mov r13, rax
cmp edi, 0x69
ja 0x180014a7c
je 0x1800149d6
cmp edi, 0x5b
ja 0x180014451
je 0x180014443
mov eax, edi
sub eax, 4
je 0x180014046
sub eax, 1
je 0x180014dbf
sub eax, 0x52
je 0x180013ef1
sub eax, 1
je 0x180013ef1
cmp eax, 1
jne 0x180014e64
mov edx, dword [rsi + 0x1c]
and edx, 0x1fffffff
lea rcx, [rdx + rdx*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov r10, qword [rax + 0x18]
mov r14d, 2
mov eax, r14d
sub rax, rdx
lea rax, [rax + rax*2]
mov r8, qword [rsi + rax*8]
lea r12d, [r14 + 1]
mov eax, r12d
sub rax, rdx
lea rax, [rax + rax*2]
mov rcx, qword [rsi + rax*8]
mov rax, rcx
neg rax
sbb rdx, rdx
and rdx, rcx
mov rax, r8
neg rax
sbb r9, r9
and r9, r8
mov rax, r10
neg rax
sbb r8, r8
and r8, r10
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov rdx, r13
mov rcx, rsi
call fcn.180012fd4
mov rdi, rax
test rax, rax
je 0x180014e64
movzx edx, byte [rax + 0x58]
or rbx, 0xffffffffffffffff
sub edx, r14d
je 0x180013ff1
sub edx, 1
je 0x180013ff1
sub edx, 1
je 0x180013ff1
sub edx, 1
je 0x180013ff1
sub edx, 1
je 0x180013ff1
cmp edx, 1
je 0x180013ff1
mov rcx, rax
call fcn.1800e75d4
mov qword [rbp - 0x80], rax
mov rcx, rbx
inc rcx
cmp byte [rax + rcx], 0
jne 0x180013fb6
mov qword [rbp - 0x78], rcx
lea rax, [rbp - 0x80]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x20], xmm0
lea r9, [rbp - 0x20]
mov r8d, 0x26
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
mov rax, qword [rdi + 0x10]
cmp dword [rax], r12d
jne 0x180014e64
mov rax, qword [r15 + 0x18]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx + 0x10]
mov qword [rbp - 0x80], rax
inc rbx
cmp byte [rax + rbx], 0
jne 0x180014011
mov qword [rbp - 0x78], rbx
lea rax, [rbp - 0x80]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x20], xmm0
lea r9, [rbp - 0x20]
mov r8d, 0x1f
jmp 0x180014e59
mov eax, dword [rsi + 0x1c]
and eax, 0x1fffffff
lea rax, [rax + rax*2]
shl rax, 3
mov rcx, rsi
sub rcx, rax
mov rax, qword [rcx + 0x48]
neg rax
sbb rdx, rdx
and rdx, qword [rcx + 0x48]
mov rax, qword [rcx + 0x30]
neg rax
sbb r9, r9
and r9, qword [rcx + 0x30]
mov rax, qword [rcx + 0x18]
neg rax
sbb r8, r8
and r8, qword [rcx + 0x18]
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov rdx, r13
mov rcx, rsi
call fcn.180012fd4
mov eax, dword [rsi + 0x1c]
and eax, 0x1fffffff
lea rcx, [rax + rax*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov rdi, qword [rax + 0x60]
test rdi, rdi
jne 0x18001410d
xor al, al
cmp dword [r13 + 0xc0], 1
jbe 0x180014430
cmp byte [r14], 0xb
jne 0x180014e64
test rdi, rdi
je 0x180014e64
mov r14d, dword [rdi + 0x28]
lea rcx, [rdi + 0x28]
call fcn.18000dbe8
mov ecx, r14d
sub ecx, eax
mov edx, 0x40
cmp ecx, edx
ja 0x180014124
cmp r14d, edx
ja 0x18001411b
mov rbx, qword [rdi + 0x30]
jmp 0x180014128
lea r14, [rdi + 0x18]
cmp byte [r14], 5
je 0x1800140c4
mov al, 1
jmp 0x1800140c6
mov rax, qword [rdi + 0x30]
mov rbx, qword [rax]
jmp 0x180014128
or rbx, 0xffffffffffffffff
mov qword [rsp + 0x50], rbx
lea ecx, [r14 - 1]
cmp r14d, edx
ja 0x18001413f
mov r9, qword [rdi + 0x30]
mov r8, r9
jmp 0x18001414d
mov r8, qword [rdi + 0x30]
mov eax, ecx
shr rax, 6
mov r9, qword [r8 + rax*8]
and ecx, 0x3f
movzx eax, cl
bt r9, rax
jae 0x180014176
cmp r14d, edx
ja 0x18001416b
sub edx, r14d
mov ecx, edx
shl r8, cl
sar r8, cl
jmp 0x18001416e
mov r8, qword [r8]
mov ebx, r8d
mov qword [rsp + 0x50], rbx
xor edi, edi
mov eax, dword [r13 + 0xc0]
lea r12d, [rdi + 3]
lea r14d, [rdi + 2]
cmp eax, r14d
jne 0x18001419c
mov ecx, dword [r13 + 0x90]
call fcn.180013c78
mov edi, eax
jmp 0x180014208
cmp eax, 4
jne 0x1800141aa
mov edi, dword [r13 + 0x94]
jmp 0x180014208
cmp eax, r12d
jne 0x1800141b8
mov edi, dword [r13 + 0xa4]
jmp 0x180014208
lea rax, str.LoadInput
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], 9
lea rax, str.VS_HS_DS_GS_PS
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 0xe
lea rax, [rbp - 0x40]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r14
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
mov r8d, 0xc7
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
test ebx, ebx
js 0x180014214
cmp ebx, edi
jl 0x180014e64
mov edx, edi
lea rcx, [rbp - 0x20]
call fcn.18000d6c8
mov rbx, rax
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.18000d6c8
nop
mov r8d, 1
lea rdx, [0x180135bf8]
mov rcx, rax
call fcn.180027720
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x50], xmm1
and qword [rax + 0x10], 0
mov edi, 0xf
mov qword [rax + 0x18], rdi
mov byte [rax], 0
mov r8, rbx
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x40]
call fcn.1800286c4
nop
mov ebx, 0x1000
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1800142b1
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, rbx
jb 0x1800142ab
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ebf
call fcn.18010ca08
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1800142e8
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, rbx
jb 0x1800142e3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ec5
call fcn.18010ca08
and qword [rbp - 0x70], 0
mov qword [rbp - 0x68], rdi
mov byte [rbp - 0x80], 0
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x18001432c
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, rbx
jb 0x180014327
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ecb
call fcn.18010ca08
and qword [rbp - 0x10], 0
mov qword [rbp - 8], rdi
mov byte [rbp - 0x20], 0
lea rax, str.VertexID
mov qword [rbp], rax
mov qword [rbp + 8], 8
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
cmovae rax, qword [rbp - 0x40]
mov qword [rbp + 0x10], rax
mov rax, qword [rbp - 0x30]
mov qword [rbp + 0x18], rax
mov edx, dword [rsp + 0x50]
lea rcx, [rbp - 0x60]
call fcn.18000d6c8
nop
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180014381
mov rcx, qword [rax]
mov qword [rbp + 0x20], rcx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x28], rax
lea rax, [rbp]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r12
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
mov r8d, 0x44
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1800143f0
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, rbx
jb 0x1800143ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ed1
call fcn.18010ca08
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x180014e64
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, rbx
jb 0x180014426
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ed7
call fcn.18010ca08
jmp 0x180014e64
test al, al
je 0x180014e64
mov r8d, 0xc8
jmp 0x180014e7b
mov rdi, qword [rsp + 0x40]
mov byte [rdi + 0x48], 1
jmp 0x180014e69
sub edi, 0x5c
je 0x1800149c8
sub edi, 5
je 0x1800145b9
sub edi, 1
je 0x1800145b9
sub edi, 1
je 0x1800145b9
cmp edi, 4
jne 0x180014e64
mov rax, qword [rsi + 0x38]
mov rdx, qword [rax + 0x50]
mov qword [rsp + 0x50], rdx
xor ecx, ecx
movabs r8, 0x100000001b3
movzx eax, byte [rsp + rcx + 0x50]
xor r12, rax
imul r12, r8
inc rcx
cmp rcx, 8
jb 0x180014497
mov rcx, qword [r15 + 0x70]
and rcx, r12
add rcx, rcx
mov r8, qword [r15 + 0x58]
mov rax, qword [r8 + rcx*8 + 8]
cmp rax, qword [r15 + 0x48]
je 0x1800144dc
mov r9, qword [r8 + rcx*8]
jmp 0x1800144d4
cmp rax, r9
je 0x1800144dc
mov rax, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
jne 0x1800144cb
jmp 0x1800144de
xor eax, eax
mov r14d, 2
test rax, rax
je 0x180014539
lea rax, str.LoadOutputControlPoint
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 0x16
lea rax, str.PatchConstant_function
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x16
lea rax, [rbp - 0x60]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r14
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
mov r8d, 0xc7
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
mov edx, dword [rsi + 0x1c]
and edx, 0x1fffffff
lea rcx, [rdx + rdx*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov r11, qword [rax + 0x18]
sub r14, rdx
mov r12d, 3
sub r12, rdx
lea rdx, [r13 + 0x30]
lea rax, [r14 + r14*2]
mov r8, qword [rsi + rax*8]
lea rax, [r12 + r12*2]
mov rcx, qword [rsi + rax*8]
mov rax, rcx
neg rax
sbb r10, r10
and r10, rcx
mov rax, r8
neg rax
sbb r9, r9
and r9, r8
mov rax, r11
neg rax
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
sbb r8, r8
mov qword [rsp + 0x20], r10
and r8, r11
mov rcx, rsi
call fcn.180012fd4
jmp 0x180014e64
mov r14d, 2
cmp dword [rax + 0xc0], r14d
jne 0x1800149a8
xor r12d, r12d
xor ecx, ecx
add r13, 0x9c
cmp dword [r13], 0
je 0x1800145e9
mov eax, 1
shl eax, cl
or r12d, eax
inc rcx
add r13, 4
cmp rcx, 4
jb 0x1800145d8
mov dword [rsp + 0x50], r12d
mov eax, dword [rsi + 0x1c]
and eax, 0x1fffffff
lea rax, [rax + rax*2]
shl rax, 3
mov rcx, rsi
sub rcx, rax
mov rax, qword [rcx + 0x18]
neg rax
sbb rdi, rdi
and rdi, qword [rcx + 0x18]
cmp byte [rdi + 0x18], 0xb
jne 0x18001497b
test rdi, rdi
je 0x18001497b
mov r13d, dword [rdi + 0x28]
lea rcx, [rdi + 0x28]
call fcn.18000dbe8
mov ecx, r13d
sub ecx, eax
mov edx, 0x40
cmp ecx, edx
ja 0x180014661
cmp r13d, edx
ja 0x180014658
mov r14, qword [rdi + 0x30]
jmp 0x180014665
mov rax, qword [rdi + 0x30]
mov r14, qword [rax]
jmp 0x180014665
or r14, 0xffffffffffffffff
lea r8d, [r13 - 1]
cmp r13d, edx
ja 0x180014674
mov rcx, qword [rdi + 0x30]
jmp 0x180014683
mov ecx, r8d
shr rcx, 6
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + rcx*8]
and r8d, 0x3f
movzx eax, r8b
bt rcx, rax
jb 0x1800148be
cmp r14d, 4
jge 0x1800148be
mov ecx, r14d
mov eax, 1
shl eax, cl
test r12d, eax
jne 0x180014e64
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x30], rax
lea edi, [rax + 0xf]
mov qword [rbp - 0x28], rdi
mov byte [rbp - 0x40], al
mov r12d, eax
mov ebx, 0x1000
mov r13d, dword [rsp + 0x50]
bt r13d, r12d
jae 0x1800147b7
mov edx, r12d
lea rcx, [rbp - 0x80]
call fcn.18000d7c8
nop
mov r8d, 1
lea rdx, [0x180131390]
mov rcx, rax
call fcn.180027720
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x50], xmm1
and qword [rax + 0x10], 0
mov qword [rax + 0x18], rdi
mov byte [rax], 0
lea rdx, [rbp - 0x60]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
cmovae rdx, rcx
movq r8, xmm1
lea rcx, [rbp - 0x40]
call fcn.180027720
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x180014780
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, rbx
jb 0x18001477a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ee3
call fcn.18010ca08
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1800147b7
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, rbx
jb 0x1800147b2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014ead
call fcn.18010ca08
inc r12d
cmp r12d, 4
jb 0x1800146d3
lea rax, str.StreamID
mov qword [rbp], rax
mov qword [rbp + 8], 8
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
cmovae rax, qword [rbp - 0x40]
mov qword [rbp + 0x10], rax
mov rax, qword [rbp - 0x30]
mov qword [rbp + 0x18], rax
mov edx, r14d
lea rcx, [rbp - 0x60]
call fcn.18000d6c8
nop
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x18001480b
mov rcx, qword [rax]
mov qword [rbp + 0x20], rcx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x28], rax
lea rax, [rbp]
mov qword [rbp - 0x80], rax
mov r12d, 3
mov qword [rbp - 0x78], r12
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
lea r8d, [r12 + 0x41]
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x18001487f
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, rbx
jb 0x180014879
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014edd
call fcn.18010ca08
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x180014e64
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, rbx
jb 0x180014426
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014eb3
jmp 0x180014426
lea rax, str.StreamID
mov qword [rbp], rax
mov qword [rbp + 8], 8
lea rax, [0x180135c9c]
mov qword [rbp + 0x10], rax
mov r12d, 3
mov qword [rbp + 0x18], r12
mov edx, r14d
lea rcx, [rbp - 0x60]
call fcn.18000d6c8
nop
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180014900
mov rcx, qword [rax]
mov qword [rbp + 0x20], rcx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x28], rax
lea rax, [rbp]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r12
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
mov r8d, 0x44
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x180014e64
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
mov ebx, 0x1000
cmp rdx, rbx
jb 0x180014426
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014eb9
jmp 0x180014426
lea rax, str.StreamID
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 8
lea rax, str.Emit_CutStream
mov qword [rbp - 0x48], 0xe
mov r8d, 0x42
jmp 0x180014e3c
lea rax, str.Emit_CutStream
mov qword [rbp - 0x60], rax
lea rax, str.Geometry_shader
mov edi, 0xf
mov qword [rbp - 0x48], rdi
jmp 0x180014e2e
mov rdi, qword [rsp + 0x40]
mov byte [rdi + 0x49], 1
jmp 0x180014e69
mov eax, dword [rsi + 0x1c]
and eax, 0x1fffffff
lea rcx, [rax + rax*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov rcx, qword [rax + 0x18]
mov rax, rcx
neg rax
sbb rbx, rbx
and rbx, rcx
cmp byte [rbx + 0x18], 0xb
je 0x180014a28
lea rax, [0x180135b78]
mov qword [rbp - 0x60], rax
mov r12d, 3
mov qword [rbp - 0x58], r12
lea rax, str.DomainLocation
lea r14d, [r12 - 1]
jmp 0x180014995
mov edi, dword [rbx + 0x28]
lea rcx, [rbx + 0x28]
call fcn.18000dbe8
mov ecx, edi
sub ecx, eax
mov edx, 0x40
cmp ecx, edx
ja 0x180014a54
cmp edi, edx
ja 0x180014a4b
mov rbx, qword [rbx + 0x30]
jmp 0x180014a58
mov rax, qword [rbx + 0x30]
mov rbx, qword [rax]
jmp 0x180014a58
or rbx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x40]
cmp ebx, dword [rdi + 0x4c]
jb 0x180014e69
mov r8d, 0xa7
mov rdx, rsi
mov rcx, r15
call fcn.180012618
jmp 0x180014e69
mov eax, 0xa9
cmp edi, eax
ja 0x180014d6a
je 0x180014d48
sub edi, 0x6a
je 0x180014c19
sub edi, 1
je 0x180014bd5
sub edi, 0x1e
je 0x180014afd
sub edi, 1
je 0x180014aef
cmp edi, 0x1e
jne 0x180014e64
cmp dword [r13 + 0xc0], 0xd
je 0x180014e64
lea rax, str.SetMeshOutputCounts
mov qword [rbp - 0x58], 0x13
mov qword [rbp - 0x60], rax
lea rax, str.Mesh_shader
mov qword [rbp - 0x48], 0xb
mov r14d, 2
jmp 0x180014e36
mov rdi, qword [rsp + 0x40]
mov byte [rdi + 0x4a], 1
jmp 0x180014e69
mov edx, dword [rsi + 0x1c]
and edx, 0x1fffffff
lea rcx, [rdx + rdx*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov r10, qword [rax + 0x18]
mov r14d, 2
sub r14, rdx
lea rax, [r14 + r14*2]
mov r8, qword [rsi + rax*8]
mov r12d, 3
sub r12, rdx
lea rax, [r12 + r12*2]
mov rcx, qword [rsi + rax*8]
mov rax, rcx
neg rax
sbb rdx, rdx
and rdx, rcx
mov rax, r8
neg rax
sbb r9, r9
and r9, r8
mov rax, r10
neg rax
sbb r8, r8
and r8, r10
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov rdx, r13
mov rcx, rsi
call fcn.180012fd4
test rax, rax
je 0x180014e64
cmp byte [rax + 0x58], 1
je 0x180014e64
mov rcx, rax
call fcn.1800e75d4
mov qword [rbp - 0x80], rax
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x180014ba0
mov qword [rbp - 0x78], rbx
lea rax, [rbp - 0x80]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x20], xmm0
lea r9, [rbp - 0x20]
mov r8d, 0x16
jmp 0x180014e59
mov r12d, 3
cmp dword [r13 + 0xc0], r12d
jne 0x180014bf2
mov rax, qword [rsi + 0x38]
cmp rbx, qword [rax + 0x50]
je 0x180014e64
lea rax, str.OutputControlPointID
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 0x14
lea rax, str.hull_function
mov qword [rbp - 0x48], 0xd
jmp 0x180014ae4
mov rax, qword [rsi + 0x38]
mov rcx, qword [rax + 0x50]
mov qword [rsp + 0x50], rcx
cmp byte [rsp + 0x48], 0
jne 0x180014c54
lea rax, str.StorePatchConstant
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 0x12
lea rax, str.PatchConstant_function
mov qword [rbp - 0x48], 0x16
jmp 0x180014ae4
lea rcx, [r15 + 0x180]
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
call fcn.180029be0
mov rcx, qword [rax]
mov r13, qword [rcx + r14]
mov rax, qword [rcx + r14 + 8]
mov qword [rbp - 0x80], rax
cmp r13, rax
je 0x180014e64
mov r14d, 2
lea r12d, [r14 + 1]
mov rbx, qword [r13]
mov qword [rsp + 0x60], rbx
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x40]
lea rcx, [r15 + 0x1c0]
call fcn.18002975c
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov rdx, rbx
mov rcx, qword [rbp - 0x20]
call fcn.1800d37c8
mov r9d, dword [rsi + 0x1c]
and r9d, 0x1fffffff
lea rdx, [r9 + r9*2]
shl rdx, 3
mov rcx, rsi
sub rcx, rdx
mov r11, qword [rcx + 0x18]
lea rdx, [rax + 0x60]
mov rax, r14
sub rax, r9
lea rax, [rax + rax*2]
mov r8, qword [rsi + rax*8]
mov rax, r12
sub rax, r9
lea rax, [rax + rax*2]
mov rcx, qword [rsi + rax*8]
mov rax, rcx
neg rax
sbb r10, r10
and r10, rcx
mov rax, r8
neg rax
sbb r9, r9
and r9, r8
mov rax, r11
neg rax
sbb r8, r8
and r8, r11
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r10
mov rcx, rsi
call fcn.180012fd4
add r13, 8
cmp r13, qword [rbp - 0x80]
jne 0x180014c8c
jmp 0x180014e64
cmp dword [r13 + 0xc0], 0xd
je 0x180014e64
lea rax, str.EmitIndices
mov qword [rbp - 0x58], 0xb
jmp 0x180014ad1
mov eax, edi
sub eax, 0xaa
je 0x180014e04
sub eax, 1
je 0x180014dbf
sub eax, 1
je 0x180014dbf
cmp eax, 1
jne 0x180014e64
cmp dword [r13 + 0xc0], 0xe
je 0x180014e64
lea rax, str.DispatchMesh
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 0xc
lea rax, str.Amplification_shader
mov qword [rbp - 0x48], 0x14
jmp 0x180014ae4
mov edx, dword [rsi + 0x1c]
and edx, 0x1fffffff
lea rcx, [rdx + rdx*2]
shl rcx, 3
mov rax, rsi
sub rax, rcx
mov r11, qword [rax + 0x18]
mov ebx, 0x30
lea eax, [rbx + 0x30]
cmp edi, 0xac
cmove ebx, eax
add rbx, r13
lea r14d, [rax - 0x5e]
sub r14, rdx
lea r12d, [rax - 0x5d]
sub r12, rdx
mov rdx, rbx
jmp 0x180014564
cmp dword [r13 + 0xc0], 0xd
je 0x180014e64
lea rax, str.GetMeshPayload
mov qword [rbp - 0x60], rax
lea rax, str.Mesh_shader
mov qword [rbp - 0x48], 0xb
mov r14d, 2
mov qword [rbp - 0x58], 0xe
mov r8d, 0xc7
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x60]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], r14
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rbp - 0x80]
mov rdx, rsi
mov rcx, r15
call fcn.1800126bc
mov rdi, qword [rsp + 0x40]
cmp byte [rdi + 0x48], 0
je 0x180014e86
cmp byte [rdi + 0x49], 0
je 0x180014e86
mov r8d, 0xcc
mov rdx, rsi
mov rcx, r15
call fcn.180012618
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.18010c4d0
mov rbx, qword [rsp + 0x198]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800fd71c
nop
call fcn.1800fd71c
int3
call fcn.1800fd71c
nop
call fcn.1800fd71c
nop
call fcn.1800fd71c
nop
call fcn.1800fd71c
int3
call fcn.1800fd71c
nop
call fcn.1800fd71c
nop
call fcn.1800fd71c
nop
call fcn.1800fd71c
int3