Function at 0x1401e2490
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0xe0], xmm6
mov qword [rbp + 0xd8], 0xfffffffffffffffe
mov rsi, rcx
mov rax, qword [rbp + 0x160]
movups xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqu xmmword [rbp + 8], xmm1
movups xmmword [rbp - 8], xmm0
mov rcx, qword [r8 + 0x10]
mov qword [rbp - 0x40], rcx
movups xmm0, xmmword [r8]
movaps xmmword [rbp - 0x50], xmm0
mov rcx, qword [r9 + 0x10]
mov qword [rbp - 0x28], rcx
movups xmm0, xmmword [r9]
movups xmmword [rbp - 0x38], xmm0
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp - 0x20], xmm0
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x10], rax
mov rbx, qword [rbp - 0x10]
mov eax, dword [rbp + 0x10]
cmp rbx, rax
jbe 0x1401e26af
mov qword [rbp + 0x80], rbx
mov dword [rbp + 0x40], eax
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x50], rbx
lea rax, [fcn.140250b80]
mov qword [rbp + 0x58], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x60], rax
lea rax, [0x140250930]
mov qword [rbp + 0x68], rax
lea rax, str.FAT_has__entries__but_sector__points_to_X
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 3
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x50]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 2
lea rdi, [rbp + 0x20]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.1402410b0
mov qword [rbp + 0x80], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x88], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401e260d
mov rcx, qword [rbp + 0x20]
mov r8d, 1
call fcn.1401047e0
movdqu xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
mov rdi, rax
mov qword [rsi], rdi
mov byte [rsi + 0x64], 2
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x1401e2659
mov rcx, qword [rbp - 0x50]
shl rdx, 2
mov r8d, 4
call fcn.1401047e0
mov rdx, qword [rbp - 0x30]
test rdx, rdx
je 0x1401e2675
mov rcx, qword [rbp - 0x38]
shl rdx, 2
mov r8d, 4
call fcn.1401047e0
mov rdx, qword [rbp - 0x18]
test rdx, rdx
je 0x1401e2691
mov rcx, qword [rbp - 0x20]
shl rdx, 2
mov r8d, 4
call fcn.1401047e0
mov rax, rsi
movaps xmm6, xmmword [rbp + 0xe0]
add rsp, 0x178
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp - 0x40]
mov r14, qword [rbp - 0x20]
test rax, rax
je 0x1401e26f5
mov rcx, qword [rbp - 0x50]
shl rax, 2
xor edx, edx
nop word cs:[rax + rax]
mov r8d, dword [rcx + rdx]
mov dword [rbp + 0x40], r8d
cmp rbx, r8
jbe 0x1401e2a55
cmp dword [r14 + r8*4], 0xfffffffc
jne 0x1401e2b6e
add rdx, 4
cmp rax, rdx
jne 0x1401e26d0
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x1401e2735
mov rcx, qword [rbp - 0x38]
shl rax, 2
xor edx, edx
nop dword [rax + rax]
mov r8d, dword [rcx + rdx]
mov dword [rbp + 0x40], r8d
cmp rbx, r8
jbe 0x1401e2c71
cmp dword [r14 + r8*4], 0xfffffffd
jne 0x1401e2d8a
add rdx, 4
cmp rax, rdx
jne 0x1401e2710
movups xmm0, xmmword [0x14063d1a0]
movaps xmmword [rbp + 0x30], xmm0
movdqu xmm0, xmmword [0x14063d190]
movdqa xmmword [rbp + 0x20], xmm0
lea r15, [r14 + rbx*4]
xor r12d, r12d
mov eax, 0xfffffffb
movabs r13, 0x100000001b3
pcmpeqd xmm6, xmm6
cmp r14, r15
je 0x1401e2888
mov edx, dword [r14]
mov dword [rbp + 0x1c], edx
mov qword [rbp - 0x58], r12
cmp rdx, rax
jae 0x1401e2860
cmp rbx, rdx
jbe 0x1401e2e8d
cmp qword [rbp + 0x38], 0
je 0x1401e286a
mov eax, edx
shr eax, 0x10
mov ecx, edx
shr ecx, 0x18
movzx r8d, dl
movabs r9, 0xcbf29ce484222325
xor r8, r9
imul r8, r13
movzx edi, dh
xor rdi, r8
imul rdi, r13
movzx eax, al
xor rax, rdi
imul rax, r13
xor rax, rcx
imul rax, r13
mov rcx, qword [rbp + 0x20]
mov r8, qword [rbp + 0x28]
mov r9, rax
shr r9, 0x39
movd xmm0, r9d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor r9d, r9d
and rax, r8
movdqu xmm1, xmmword [rcx + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
nop dword [rax + rax]
test r10w, r10w
je 0x1401e283f
lea r11d, [r10 - 1]
and r11d, r10d
tzcnt r10d, r10d
add r10, rax
and r10, r8
shl r10, 2
mov rdi, rcx
sub rdi, r10
mov r10d, r11d
cmp edx, dword [rdi - 4]
jne 0x1401e2810
jmp 0x1401e28fa
pcmpeqb xmm1, xmm6
pmovmskb r10d, xmm1
test r10d, r10d
jne 0x1401e286a
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x1401e27f6
cmp edx, 0xfffffffb
jne 0x1401e2878
jmp 0x1401e2fcf
lea rcx, [rbp + 0x20]
call fcn.1401e1e00
mov eax, 0xfffffffb
add r14, 4
inc r12
cmp r14, r15
jne 0x1401e2770
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401e28b8
lea rax, [rdx*4 + 0x13]
and rax, 0xfffffffffffffff0
add rdx, rax
add rdx, 0x11
je 0x1401e28b8
mov rcx, qword [rbp + 0x20]
sub rcx, rax
mov r8d, 0x10
call fcn.1401047e0
mov rax, qword [rbp + 0x10]
mov qword [rsi + 0x60], rax
movaps xmm0, xmmword [rbp]
movups xmmword [rsi + 0x50], xmm0
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [rsi + 0x40], xmm0
movdqa xmm0, xmmword [rbp - 0x50]
movdqa xmm1, xmmword [rbp - 0x40]
movdqa xmm2, xmmword [rbp - 0x30]
movaps xmm3, xmmword [rbp - 0x20]
movups xmmword [rsi + 0x30], xmm3
movdqu xmmword [rsi + 0x20], xmm2
movdqu xmmword [rsi + 0x10], xmm1
movdqu xmmword [rsi], xmm0
jmp 0x1401e2691
lea rax, [rbp + 0x1c]
mov qword [rbp + 0x80], rax
lea rax, [0x140250930]
mov qword [rbp + 0x88], rax
lea rax, str.sector__pointed_to_twice
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rdi, [rbp + 0x80]
mov qword [rbp + 0xb0], rdi
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
movdqu xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0x80], xmm0
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x40], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x48], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x40]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x88]
test rdx, rdx
je 0x1401e29ef
mov rcx, qword [rbp + 0x80]
mov r8d, 1
call fcn.1401047e0
movdqu xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
mov rdi, rax
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401e2636
lea rax, [rdx*4 + 0x13]
and rax, 0xfffffffffffffff0
add rdx, rax
add rdx, 0x11
je 0x1401e2636
mov rcx, qword [rbp + 0x20]
sub rcx, rax
mov r8d, 0x10
call fcn.1401047e0
jmp 0x1401e2636
mov qword [rbp + 0x80], rbx
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x50], rbx
lea rax, [fcn.140250b80]
mov qword [rbp + 0x58], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x60], rax
lea rax, [0x140250930]
mov qword [rbp + 0x68], rax
lea rax, str.FAT_has__entries__but_sector__points_to_X
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 3
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x50]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 2
lea rdi, [rbp + 0x20]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.1402410b0
mov qword [rbp + 0x80], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x88], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401e2b45
mov rcx, qword [rbp + 0x20]
mov r8d, 1
call fcn.1401047e0
movups xmm0, xmmword [rbp + 0x50]
movaps xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2633
lea rax, [rbp + 0x40]
mov qword [rbp + 0x20], rax
lea rax, [0x140250930]
mov qword [rbp + 0x28], rax
lea rax, str.DIFAT_sector
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x20]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 1
lea rdi, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.1402410b0
mov qword [rbp + 0x80], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x88], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x80]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x20]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x58]
test rdx, rdx
je 0x1401e2c48
mov rcx, qword [rbp + 0x50]
mov r8d, 1
call fcn.1401047e0
movups xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2633
mov qword [rbp + 0x80], rbx
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x50], rbx
lea rax, [fcn.140250b80]
mov qword [rbp + 0x58], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x60], rax
lea rax, [0x140250930]
mov qword [rbp + 0x68], rax
lea rax, str.FAT_has__entries__but_sector__points_to_X
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 3
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x50]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 2
lea rdi, [rbp + 0x20]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.1402410b0
mov qword [rbp + 0x80], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x88], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401e2d61
mov rcx, qword [rbp + 0x20]
mov r8d, 1
call fcn.1401047e0
movups xmm0, xmmword [rbp + 0x50]
movaps xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2633
lea rax, [rbp + 0x40]
mov qword [rbp + 0x20], rax
lea rax, [0x140250930]
mov qword [rbp + 0x28], rax
lea rax, str.FAT_sector__is_not_marked_as_such_in_the_FAT
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x20]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 1
lea rdi, [rbp + 0x50]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.1402410b0
mov qword [rbp + 0x80], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x88], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
lea rax, [rbp + 0x80]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x20]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x58]
test rdx, rdx
je 0x1401e2e64
mov rcx, qword [rbp + 0x50]
mov r8d, 1
call fcn.1401047e0
movups xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2633
mov qword [rbp + 0x40], rbx
lea rbx, [rbp + 0x40]
mov qword [rbp + 0xa0], rbx
lea rax, [fcn.140250b80]
mov qword [rbp + 0xa8], rax
lea rcx, [rbp - 0x58]
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rax
lea rax, [rbp + 0x1c]
mov qword [rbp + 0xc0], rax
lea rax, [0x140250930]
mov qword [rbp + 0xc8], rax
lea rax, str.FAT_has__entries__but_sector__points_to_X
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], 3
mov qword [rbp + 0x70], 0
lea rax, [rbp + 0xa0]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], 3
lea rcx, [rbp + 0x80]
lea rdi, [rbp + 0x50]
mov rdx, rdi
call fcn.1402410b0
movdqu xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x50], xmm0
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x40], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x48], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x80]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x58]
test rdx, rdx
je 0x1401e2f9e
mov rcx, qword [rbp + 0x50]
mov r8d, 1
call fcn.1401047e0
movdqu xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2a15
lea rax, [rbp + 0x1c]
mov qword [rbp + 0x40], rax
lea rax, [0x14024fe30]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0xa0], 2
mov qword [rbp + 0xb0], 0
mov qword [rbp + 0xb8], 8
mov qword [rbp + 0xc0], 0
movabs rax, 0x800000020
mov qword [rbp + 0xc8], rax
mov byte [rbp + 0xd0], 3
lea rax, str.0x_is_not_a_valid_FAT_entry
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], 2
lea rax, [rbp + 0xa0]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], 1
lea rbx, [rbp + 0x40]
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], 1
lea rcx, [rbp + 0x80]
lea rdi, [rbp + 0x50]
mov rdx, rdi
call fcn.1402410b0
movdqu xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x50], xmm0
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x40], rdi
lea rax, [0x14004dcf0]
mov qword [rbp + 0x48], rax
lea rax, str.Malformed_FAT___
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 2
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 1
lea rcx, [rbp + 0x80]
lea rdx, [rbp + 0xa0]
call fcn.1402410b0
mov rdx, qword [rbp + 0x58]
test rdx, rdx
je 0x1401e30f7
mov rcx, qword [rbp + 0x50]
mov r8d, 1
call fcn.1401047e0
movdqu xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0xa0], xmm0
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa0]
mov cl, 0x15
call fcn.1401e1aa0
jmp 0x1401e2a15