Function at 0x140223170
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 [0x140302028]
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 0x1402231d0
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 0x140223277
cmp qword [rsi + 0x20], r15
je 0x14022345f
mov r14d, dword [rbp - 0x80]
test r14d, r14d
je 0x14022345f
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 0x1402234f6
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x1402234f6
add edi, eax
cmp edi, r14d
jae 0x14022345f
jmp 0x140223230
cmp byte [rsi + 0x31], 0
je 0x140223443
mov rax, qword [r14 + 0x28]
cmp qword [r14 + 0x30], rax
jbe 0x140223443
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 0x14022332a
mov rcx, rdx
jmp 0x140223331
mov rcx, qword [r11 + r10]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14022334a
cmp dword [rax + 0x10], r8d
je 0x140223341
mov rax, qword [rax]
jmp 0x140223320
cmp rax, rdx
jne 0x1402233cd
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, [0x140242de0]
mov r8, r15
mov rdx, rdi
lea rcx, [rsi + 0x48]
call fcn.140211de0
mov rdx, rax
mov rax, qword [rsi + 0x50]
movabs rcx, 0xaaaaaaaaaaaaaa9
sub rcx, rax
cmp rcx, 1
jb 0x1402234e9
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.140212840
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 0x14022344c
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 0x1402234ab
mov rdx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402234a5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1402234a5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14009f0ec
nop
mov rcx, rbx
call sub.MSVCP140.dll__Mtx_unlock
test eax, eax
je 0x1402234bf
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.14009f440
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.140225530
nop
mov r8, rax
lea rdx, str.wincolor_sink:_write_to_file__failed._GetLastError__:
lea rcx, [rsp + 0x50]
call fcn.1400babe0
mov rdx, rax
lea rcx, [rbp + 0x90]
call fcn.1402187c0
lea rdx, [0x1402fb6b0]
lea rcx, [rbp + 0x90]
call sub.VCRUNTIME140.dll__CxxThrowException
int3