Function at 0x14025c350
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 [0x1403644c8]
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 0x14025c3b0
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 + reloc.WS2_32.dll_htonl]
cmp byte [rsi + 0x30], r15b
jne 0x14025c457
cmp qword [rsi + 0x20], r15
je 0x14025c63f
mov r14d, dword [rbp - 0x80]
test r14d, r14d
je 0x14025c63f
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 0x14025c6d6
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14025c6d6
add edi, eax
cmp edi, r14d
jae 0x14025c63f
jmp 0x14025c410
cmp byte [rsi + 0x31], 0
je 0x14025c623
mov rax, qword [r14 + 0x28]
cmp qword [r14 + 0x30], rax
jbe 0x14025c623
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 0x14025c50a
mov rcx, rdx
jmp 0x14025c511
mov rcx, qword [r11 + r10]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14025c52a
cmp dword [rax + 0x10], r8d
je 0x14025c521
mov rax, qword [rax]
jmp 0x14025c500
cmp rax, rdx
jne 0x14025c5ad
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, [0x14027d490]
mov r8, r15
mov rdx, rdi
lea rcx, [rsi + 0x48]
call fcn.14024b240
mov rdx, rax
mov rax, qword [rsi + 0x50]
movabs rcx, 0xaaaaaaaaaaaaaa9
sub rcx, rax
cmp rcx, 1
jb 0x14025c6c9
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.14024bca0
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 0x14025c62c
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 0x14025c68b
mov rdx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14025c685
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14025c685
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140082ab0
nop
mov rcx, rbx
call sub.MSVCP140.dll__Mtx_unlock
test eax, eax
je 0x14025c69f
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.1400e39a0
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.14025e580
nop
mov r8, rax
lea rdx, str.wincolor_sink:_write_to_file__failed._GetLastError__:
lea rcx, [rsp + 0x50]
call fcn.1400d6c60
mov rdx, rax
lea rcx, [rbp + 0x90]
call fcn.140251c20
lea rdx, [0x14035afc0]
lea rcx, [rbp + 0x90]
call sub.VCRUNTIME140.dll__CxxThrowException
int3