Function at 0x14009e940
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x160]
sub rsp, 0x260
mov rsi, rdx
mov rdi, rcx
mov r12, qword [rdx + 0x68]
mov r15, qword [rdx + 8]
sub r15, qword [rdx]
sar r15, 2
add r15, 0xfffffffffffffffd
test r15b, 1
je 0x14009e9be
mov r9, rdx
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
call fcn.1400e7010
mov rbx, rax
lea rdx, str.OpPhi_does_not_have_an_equal_number_of_incoming_values_and_basic_blocks.
mov rcx, rax
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee67
mov edx, dword [rdx + 0x40]
call fcn.1400e3260
mov rcx, rdi
test al, al
je 0x14009ea05
mov r9, rsi
mov r8d, 0xfffffff2
lea rdx, [rbp - 0x10]
call fcn.1400e7010
mov rbx, rax
lea rdx, str.OpPhi_must_not_have_void_result_type
mov rcx, rax
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee67
mov edx, dword [rsi + 0x40]
call fcn.1400e3020
test al, al
je 0x14009ea75
mov rcx, rdi
call fcn.1400e6df0
test eax, eax
jne 0x14009ea75
cmp byte [rdi + 0x410], al
jne 0x14009ea75
cmp byte [rdi + 0x411], al
jne 0x14009ea75
mov r9, rsi
lea r8d, [rax - 0xe]
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rbx, rax
lea rdx, str.Using_pointers_with_OpPhi_requires_capability
mov rcx, rax
call fcn.14002dd70
lea rdx, str.VariablePointers_or_VariablePointersStorageBuffer
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee67
mov edx, dword [rsi + 0x40]
mov rcx, rdi
call fcn.1400e1ef0
movzx r14d, word [rax + 0x3a]
mov rax, qword [rdi + 8]
cmp byte [rax + 0x2b], 0
jne 0x14009eafd
cmp r14d, 0x1b
je 0x14009eaaf
mov edx, 1
mov rcx, rdi
call fcn.14007aa70
test al, al
je 0x14009eafd
lea eax, [r14 - 0x19]
cmp eax, 1
ja 0x14009eafd
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rbx, rax
lea rdx, str.Result_type_cannot_be_Op
mov rcx, rax
call fcn.14002dd70
mov ecx, r14d
call fcn.14006e140
mov rdx, rax
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee67
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
xor r13d, r13d
mov r8d, r13d
mov qword [rsp + 0x30], r13
mov r14, qword [r12 + 0x20]
mov rbx, qword [r12 + 0x18]
mov rdx, qword [rsp + 0x28]
cmp rbx, r14
je 0x14009eb78
nop word [rax + rax]
mov rax, qword [rbx]
mov ecx, dword [rax]
mov dword [rbp + 0x198], ecx
cmp rdx, r8
je 0x14009eb52
mov dword [rdx], ecx
mov rdx, qword [rsp + 0x28]
add rdx, 4
mov qword [rsp + 0x28], rdx
jmp 0x14009eb68
lea r8, [rbp + 0x198]
lea rcx, [rsp + 0x20]
call fcn.14003c1e0
mov rdx, qword [rsp + 0x28]
add rbx, 8
cmp rbx, r14
je 0x14009eb78
mov r8, qword [rsp + 0x30]
jmp 0x14009eb30
mov r8, rdx
mov rcx, qword [rsp + 0x20]
sub r8, rcx
sar r8, 2
xor r9d, r9d
call fcn.140098050
mov rbx, qword [rsp + 0x28]
mov rdx, rbx
mov r11, qword [rsp + 0x20]
cmp r11, rbx
je 0x14009ec17
mov rcx, r11
lea r8, [r11 + 4]
cmp r8, rbx
je 0x14009ec17
mov r10d, dword [r11]
mov r9d, dword [r8]
lea rax, [r8 + 4]
cmp r10d, r9d
je 0x14009ebcc
mov rcx, r8
mov r8, rax
mov r10d, r9d
cmp rax, rbx
jne 0x14009ebb0
jmp 0x14009ec17
cmp rax, rbx
je 0x14009ebf3
mov r8d, dword [rax]
cmp dword [rcx], r8d
je 0x14009ebe0
add rcx, 4
mov dword [rcx], r8d
add rax, 4
cmp rax, rdx
jne 0x14009ebd1
mov rbx, qword [rsp + 0x28]
mov r11, qword [rsp + 0x20]
lea r14, [rcx + 4]
cmp r14, rdx
je 0x14009ec17
sub rbx, rdx
mov r8, rbx
mov rcx, r14
call fcn.1400ee610
add rbx, r14
mov qword [rsp + 0x28], rbx
mov r11, qword [rsp + 0x20]
shr r15, 1
sub rbx, r11
sar rbx, 2
cmp r15, rbx
je 0x14009eca0
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rbx, rax
lea rdx, str.OpPhis_number_of_incoming_blocks__
mov rcx, rax
call fcn.14002dd70
mov rdx, r15
mov rcx, rbx
call fcn.14005a820
lea rdx, str.__does_not_match_blocks_predecessor_count__
mov rcx, rbx
call fcn.14002dd70
mov rdx, qword [r12 + 0x20]
sub rdx, qword [r12 + 0x18]
sar rdx, 3
mov rcx, rbx
call fcn.14005a820
lea rdx, [0x14016e1e8]
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee27
lea rcx, [rbp - 0x60]
call fcn.140023a60
nop
mov r15d, 3
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
sub rax, rcx
sar rax, 2
cmp rax, r15
jbe 0x14009ee1a
movabs r14, 0x100000001b3
mov ebx, dword [rcx + r15*4]
mov dword [rbp + 0x198], ebx
mov edx, ebx
mov rcx, rdi
test r15b, 1
je 0x14009ed06
call fcn.1400e2520
mov r14d, eax
cmp dword [rsi + 0x40], eax
jne 0x14009ee8a
movabs r14, 0x100000001b3
jmp 0x14009ee00
call fcn.1400e2270
cmp eax, 0xf8
jne 0x14009f271
mov r8, qword [rsp + 0x20]
mov r9, qword [rsp + 0x28]
mov rax, r9
sub rax, r8
sar rax, 2
test rax, rax
jle 0x14009ed59
nop
mov rdx, rax
shr rdx, 1
lea rcx, [r8 + rdx*4]
cmp dword [rcx], ebx
jae 0x14009ed51
lea r8, [rcx + 4]
mov rcx, 0xffffffffffffffff
sub rcx, rdx
add rax, rcx
jmp 0x14009ed54
mov rax, rdx
test rax, rax
jg 0x14009ed30
cmp r8, r9
je 0x14009ed67
cmp ebx, dword [r8]
jb 0x14009ed67
mov al, 1
jmp 0x14009ed69
xor al, al
test al, al
je 0x14009f123
movzx edx, bl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
imul rdx, r14
movzx eax, byte [rbp + 0x199]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rbp + 0x19a]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rbp + 0x19b]
xor rdx, rax
imul rdx, r14
mov rcx, qword [rbp - 0x30]
and rcx, rdx
shl rcx, 4
add rcx, qword [rbp - 0x48]
mov rax, qword [rcx + 8]
cmp rax, qword [rbp - 0x58]
je 0x14009ede0
mov rcx, qword [rcx]
cmp ebx, dword [rax + 0x10]
je 0x14009ede3
cmp rax, rcx
je 0x14009ede0
mov rax, qword [rax + 8]
cmp ebx, dword [rax + 0x10]
jne 0x14009edd0
jmp 0x14009ede3
mov rax, r13
test rax, rax
jne 0x14009f05f
lea r8, [rbp + 0x198]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.140064d10
inc r15
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
sub rax, rcx
sar rax, 2
cmp r15, rax
jb 0x14009ecd1
mov ebx, r13d
lea rcx, [rbp - 0x60]
call fcn.140023f80
nop
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14009ee67
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009ee62
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f337
call fcn.1400ec648
mov eax, ebx
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov r15, rax
lea rdx, str.OpPhis_result_type__id_
mov rcx, rax
call fcn.14002dd70
mov r8d, dword [rsi + 0x40]
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009eed1
mov rax, qword [rax]
mov rdx, rax
mov rcx, r15
call fcn.14002e220
lea rdx, str._does_not_match_incoming_value__id_
mov rcx, r15
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009ef0a
mov rax, qword [rax]
mov rdx, rax
mov rcx, r15
call fcn.14002e220
lea rdx, str._type__id_
mov rcx, r15
call fcn.14002dd70
mov r8d, r14d
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009ef43
mov rax, qword [rax]
mov rdx, rax
mov rcx, r15
call fcn.14002e220
lea rdx, [0x140126570]
mov rcx, r15
call fcn.14002dd70
mov ebx, dword [r15 + 0x160]
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x14009efa0
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009ef9b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f33d
call fcn.1400ec648
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], 0xf
mov byte [rsp + 0x78], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x14009efee
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009efe9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f343
call fcn.1400ec648
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x14009f03e
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f039
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f349
call fcn.1400ec648
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee1d
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rsi, rax
lea rdx, str.OpPhi_references_incoming_basic_block__id_
mov rcx, rax
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009f0a5
mov rax, qword [rax]
mov rdx, rax
mov rcx, rsi
call fcn.14002e220
lea rdx, str._multiple_times.
mov rcx, rsi
call fcn.14002dd70
mov ebx, dword [rsi + 0x160]
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x14009f102
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f0fd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f34f
call fcn.1400ec648
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee1d
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rsi, rax
lea rdx, str.OpPhis_incoming_basic_block__id_
mov rcx, rax
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009f169
mov rax, qword [rax]
mov rdx, rax
mov rcx, rsi
call fcn.14002e220
lea rdx, str._is_not_a_predecessor_of__id_
mov rcx, rsi
call fcn.14002dd70
mov r8d, dword [r12]
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009f1a3
mov rax, qword [rax]
mov rdx, rax
mov rcx, rsi
call fcn.14002e220
lea rdx, [0x140126570]
mov rcx, rsi
call fcn.14002dd70
mov ebx, dword [rsi + 0x160]
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x14009f200
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f1fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f355
call fcn.1400ec648
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x14009f250
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f24b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f35b
call fcn.1400ec648
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee1d
mov r9, rsi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e7010
mov rsi, rax
lea rdx, str.OpPhis_incoming_basic_block__id_
mov rcx, rax
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009f2b7
mov rax, qword [rax]
mov rdx, rax
mov rcx, rsi
call fcn.14002e220
lea rdx, str._is_not_an_OpLabel.
mov rcx, rsi
call fcn.14002dd70
mov ebx, dword [rsi + 0x160]
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x14009f310
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f30b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f331
call fcn.1400ec648
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
lea rcx, [rbp - 0x10]
call fcn.1400604a0
jmp 0x14009ee1d
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
int3