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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x240], rbx
mov rax, qword [0x140239158]
xor rax, rsp
mov qword [rbp + 0xe8], rax
mov r14, rdx
mov rsi, rcx
mov rbx, qword [rcx + 0x28]
mov qword [rsp + 0x48], rbx
mov rcx, rbx
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
je 0x1400a3be0
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
nop
xor r15d, r15d
mov qword [rbp - 0x80], r15
lea rax, vtable.fmt::v6::basic_memory_buffer_char__250__class_std::allocator_char__.0
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], 0xfa
mov rcx, qword [rsi + 0x38]
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
mov rdx, r14
call qword [rax + 8]
cmp byte [rsi + 0x30], r15b
jne 0x1400a3c87
cmp qword [rsi + 0x20], r15
je 0x1400a3e6f
mov r14d, dword [rbp - 0x80]
test r14d, r14d
je 0x1400a3e6f
mov edi, r15d
nop word [rax + rax]
mov dword [rsp + 0x38], r15d
mov edx, edi
add rdx, qword [rsp + 0x78]
mov r8d, r14d
sub r8d, edi
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x38]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400a3f06
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x1400a3f06
add edi, eax
cmp edi, r14d
jae 0x1400a3e6f
jmp 0x1400a3c40
cmp byte [rsi + 0x31], 0
je 0x1400a3e53
mov rax, qword [r14 + 0x28]
cmp qword [r14 + 0x30], rax
jbe 0x1400a3e53
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov r8d, eax
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
lea rdi, [r14 + 0x10]
mov r8d, dword [rdi]
mov eax, r8d
shr eax, 8
movzx edx, al
movzx eax, r8b
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r9, 0x100000001b3
imul rax, r9
xor rdx, rax
imul rdx, r9
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, r9
mov rcx, qword [rsi + 0x70]
and rcx, rdx
shl rcx, 4
mov r10, qword [rsi + 0x58]
mov r9, qword [r10 + rcx]
mov rax, r9
lea r11, [rcx + 8]
mov rdx, qword [rsi + 0x48]
nop dword [rax + rax]
cmp r9, rdx
jne 0x1400a3d3a
mov rcx, rdx
jmp 0x1400a3d41
mov rcx, qword [r11 + r10]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x1400a3d5a
cmp dword [rax + 0x10], r8d
je 0x1400a3d51
mov rax, qword [rax]
jmp 0x1400a3d30
cmp rax, rdx
jne 0x1400a3ddd
mov qword [rsp + 0x38], rdi
mov rdi, qword [rdx]
mov r15, qword [rdi + 8]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [0x1401a4a2f]
mov r8, r15
mov rdx, rdi
lea rcx, [rsi + 0x48]
call fcn.14007cdb0
mov rdx, rax
mov rax, qword [rsi + 0x50]
movabs rcx, 0xaaaaaaaaaaaaaa9
sub rcx, rax
cmp rcx, 1
jb 0x1400a3ef9
inc rax
mov qword [rsi + 0x50], rax
mov qword [rdi + 8], rdx
mov qword [r15], rdx
mov r9, qword [rsi + 0x48]
mov r9, qword [r9]
lea r8, [r9 + 0x10]
lea rdx, [rsp + 0x50]
lea rcx, [rsi + 0x40]
call fcn.14007d930
mov rax, qword [rsp + 0x50]
xor r15d, r15d
movzx edi, word [rax + 0x14]
lea rdx, [rsp + 0x50]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movzx edx, word [rsp + 0x58]
mov eax, 0xfff0
and dx, ax
or dx, di
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov r8, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x28]
sub r8d, ecx
mov rdx, qword [rsp + 0x78]
add rdx, rcx
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
movzx edx, word [rsp + 0x58]
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov rcx, qword [r14 + 0x30]
mov r8d, dword [rbp - 0x80]
sub r8d, ecx
mov rdx, qword [rsp + 0x78]
add rdx, rcx
jmp 0x1400a3e5c
mov r8d, dword [rbp - 0x80]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov rcx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_WriteConsoleA]
nop
lea rax, vtable.fmt::v6::basic_memory_buffer_char__250__class_std::allocator_char__.0
mov qword [rsp + 0x70], rax
lea rax, [rbp - 0x70]
mov rcx, qword [rsp + 0x78]
cmp rcx, rax
je 0x1400a3ebb
mov rdx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400a3eb5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400a3eb5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400aa758
nop
mov rcx, rbx
call sub.MSVCP140.dll__Mtx_unlock
test eax, eax
je 0x1400a3ecf
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
nop
mov rcx, qword [rbp + 0xe8]
xor rcx, rsp
call fcn.1400aab20
mov rbx, qword [rsp + 0x240]
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.list_T__too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp + 0xc8]
call fcn.1400a7b70
nop
mov r8, rax
lea rdx, str.wincolor_sink:_write_to_file__failed._GetLastError__:
lea rcx, [rsp + 0x50]
call fcn.140078cc0
mov rdx, rax
lea rcx, [rbp + 0x90]
call fcn.140096a80
lea rdx, [0x140233f38]
lea rcx, [rbp + 0x90]
call sub.VCRUNTIME140.dll__CxxThrowException
int3