Function at 0x140039950
Capabilities:
Hash data using fnv
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x18], r8
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
cmp byte [rcx + 0x2d8], 0
mov r15, r9
mov rbx, qword [rbp + 0x77]
mov rsi, r8
movsxd r9, edx
mov rdi, rcx
je 0x140039af2
cmp dword [rcx + 0x2c0], 1
je 0x140039af2
movabs r10, 0x100000001b3
movzx edx, sil
movabs rax, 0xcbf29ce484222325
mov r8, r9
xor rdx, rax
shl r8, 6
imul rdx, r10
add r8, rcx
mov rax, rsi
shr rax, 8
movzx ecx, al
mov rax, rsi
xor rdx, rcx
shr rax, 0x10
imul rdx, r10
movzx ecx, al
lea r12, [r8 + 0x40]
xor rdx, rcx
mov rax, rsi
imul rdx, r10
shr rax, 0x18
movzx ecx, al
mov rax, rsi
xor rdx, rcx
shr rax, 0x20
imul rdx, r10
movzx ecx, al
mov rax, rsi
xor rdx, rcx
shr rax, 0x28
imul rdx, r10
movzx ecx, al
mov rax, rsi
xor rdx, rcx
shr rax, 0x30
imul rdx, r10
movzx ecx, al
mov rax, rsi
xor rdx, rcx
shr rax, 0x38
mov rcx, qword [r8 + 0x70]
imul rdx, r10
xor rdx, rax
imul rdx, r10
and rcx, rdx
mov rdx, qword [r8 + 0x48]
shl rcx, 4
add rcx, qword [r8 + 0x58]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x140039a82
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x140039a72
cmp rax, rcx
je 0x140039a82
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x140039a63
test rax, rax
cmove rax, rdx
cmp rax, rdx
jne 0x140039d42
mov r8d, 0x18
lea rdx, str._0x
lea rcx, [rbp - 0x11]
call fcn.1400319c0
mov r8, rsi
lea rdx, str._016llx
lea rcx, [rbp + 7]
call fcn.1400319c0
mov r9, qword [rdi + 0x18]
lea rcx, [rbp - 0x11]
mov edx, 1
lea r8d, [rdx + 0x27]
call fcn.140124cf8
cmp rax, 0x28
jne 0x140039af2
mov r14d, dword [rbp + 0x7f]
test r14b, 1
je 0x140039b10
cmp rbx, 0x10
jb 0x140039af2
mov r9, qword [rdi + 0x18]
lea edx, [rax - 0x27]
mov r8, rbx
mov rcx, r15
call fcn.140124cf8
cmp rax, rbx
je 0x140039d21
xor al, al
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
test r14b, 2
je 0x140039c7d
mov ecx, ebx
call fcn.140042720
mov r9, qword [rdi + 0x2d0]
mov esi, eax
cmp r9, rsi
jae 0x140039b72
mov rcx, qword [rdi + 0x2c8]
mov edx, esi
call fcn.140124ec8
test rax, rax
je 0x140039b55
mov qword [rdi + 0x2c8], rax
mov r9d, esi
mov qword [rdi + 0x2d0], rsi
jmp 0x140039b72
mov rcx, qword [rdi + 0x2c8]
call fcn.140123d70
xor r9d, r9d
mov qword [rdi + 0x2c8], r9
mov qword [rdi + 0x2d0], r9
mov rcx, qword [rdi + 0x2c8]
test rcx, rcx
je 0x140039af2
mov eax, r14d
mov dword [rbp + 0x57], r9d
and eax, 4
lea rdx, [rbp + 0x57]
add eax, eax
xorps xmm0, xmm0
or eax, 1
mov r9d, ebx
mov r8, r15
mov dword [rsp + 0x20], eax
movups xmmword [rbp - 0x21], xmm0
call fcn.140042240
test eax, eax
jne 0x140039af2
mov esi, dword [rbp + 0x57]
mov dword [rbp - 0x21], esi
test r14b, 8
je 0x140039be0
mov rdx, qword [rdi + 0x2c8]
mov r8d, esi
xor ecx, ecx
call fcn.140042760
mov ecx, eax
mov dword [rbp - 0x19], eax
jmp 0x140039be3
mov ecx, dword [rbp - 0x19]
movzx eax, byte [rbp - 0x21]
mov edx, 1
mov r9, qword [rdi + 0x18]
mov byte [rbp - 0x39], al
mov eax, esi
shr eax, 8
mov byte [rbp - 0x38], al
lea r8d, [rdx + 0xf]
mov eax, esi
mov byte [rbp - 0x2d], bl
shr eax, 0x10
mov byte [rbp - 0x37], al
mov eax, esi
shr eax, 0x18
mov byte [rbp - 0x36], al
movzx eax, byte [rbp - 0x19]
mov byte [rbp - 0x31], al
mov eax, ecx
shr eax, 8
mov byte [rbp - 0x30], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x2f], al
mov eax, ebx
shr eax, 8
mov byte [rbp - 0x2c], al
mov eax, ebx
shr ecx, 0x18
shr eax, 0x10
mov byte [rbp - 0x2e], cl
lea rcx, [rbp - 0x39]
shr ebx, 0x18
mov byte [rbp - 0x2b], al
mov dword [rbp - 0x35], 2
mov byte [rbp - 0x2a], bl
call fcn.140124cf8
cmp rax, 0x10
jne 0x140039af2
mov r9, qword [rdi + 0x18]
lea edx, [rax - 0xf]
mov rcx, qword [rdi + 0x2c8]
mov r8, rsi
call fcn.140124cf8
cmp rax, rsi
jmp 0x140039aec
xor r9d, r9d
test r14b, 8
je 0x140039c96
mov r8, rbx
mov rdx, r15
xor ecx, ecx
call fcn.140042760
mov r9d, eax
mov eax, r9d
mov byte [rbp - 0x31], r9b
shr eax, 8
mov edx, ebx
shr edx, 0x10
mov r8d, ebx
shr r8d, 8
mov ecx, ebx
shr ecx, 0x18
mov byte [rbp - 0x30], al
mov eax, r9d
shr r9d, 0x18
mov byte [rbp - 0x37], dl
mov byte [rbp - 0x2b], dl
mov edx, 1
mov byte [rbp - 0x38], r8b
mov byte [rbp - 0x36], cl
shr eax, 0x10
mov byte [rbp - 0x2e], r9b
mov r9, qword [rdi + 0x18]
mov byte [rbp - 0x2c], r8b
lea r8d, [rdx + 0xf]
mov byte [rbp - 0x2a], cl
lea rcx, [rbp - 0x39]
mov byte [rbp - 0x39], bl
mov dword [rbp - 0x35], 1
mov byte [rbp - 0x2f], al
mov byte [rbp - 0x2d], bl
call fcn.140124cf8
cmp rax, 0x10
jne 0x140039af2
mov r9, qword [rdi + 0x18]
lea edx, [rax - 0xf]
mov r8, rbx
mov rcx, r15
call fcn.140124cf8
cmp rax, rbx
jne 0x140039af2
xorps xmm0, xmm0
lea r9, [rbp - 0x39]
xor eax, eax
lea r8, [rbp + 0x67]
lea rdx, [rbp - 0x21]
mov qword [rbp - 0x29], rax
mov rcx, r12
movups xmmword [rbp - 0x39], xmm0
call fcn.140032bf0
mov al, 1
jmp 0x140039af4