Function at 0x4876f0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
movups xmmword [rsp + 0xe0], xmm6
mov rbx, qword [rsp + 0x168]
mov eax, dword [rbx + 0x24]
mov r14d, dword [rbx + 4]
mov ebp, dword [rbx]
mov dword [0x0058c010], eax
mov r13, rcx
mov r12, rdx
mov rsi, r8
mov rdi, r9
test r14d, r14d
je 0x4877d0
test ebp, ebp
je 0x4877d0
mov edx, ebp
cmp r12, rdx
jb 0x4877d0
cmp r14d, ebp
ja 0x4877d0
mov edx, dword [rsp + 0x160]
test edx, edx
je 0x487ab0
cmp r12, 0xff
jbe 0x487818
mov rdx, qword [0x0058f5f0]
mov dword [rsp + 0x20], r14d
mov r8, rdi
lea rax, [rsp + 0x80]
mov r9d, dword [rsp + 0x160]
mov rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x28], rdx
mov rdx, rsi
call sym.COVER_ctx_init
mov r15, rax
cmp rax, 0xffffffffffffff88
jbe 0x487860
movups xmm6, xmmword [rsp + 0xe0]
mov rax, r15
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, 0xffffffffffffffd6
test eax, eax
jle 0x4877b0
mov ecx, 2
mov rbx, qword [dbg.__acrt_iob_func]
call rbx
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Cover_parameters_incorrect_n
mov r9, rax
call sym.fwrite
mov ecx, 2
call rbx
mov rcx, rax
call sym.fflush
jmp 0x4877b0
mov r15, 0xffffffffffffffba
test eax, eax
jle 0x4877b0
mov rbx, qword [dbg.__acrt_iob_func]
mov ecx, 2
call rbx
mov r8d, 0x100
lea rdx, [0x0058f480]
mov rcx, rax
call sym.fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sym.fflush
jmp 0x4877b0
mov r9, qword [rsp + 0xb8]
mov r15d, dword [0x0058c010]
test r9, r9
js 0x487b18
pxor xmm6, xmm6
cvtsi2sd xmm6, r9
test r12, r12
js 0x487af0
pxor xmm0, xmm0
cvtsi2sd xmm0, r12
divsd xmm6, xmm0
mov qword [rsp + 0x48], r9
comisd xmm6, xmmword [0x0058f5f8]
jae 0x4878ee
test r15d, r15d
jle 0x4878ee
mov r15, qword [dbg.__acrt_iob_func]
mov ecx, 2
call r15
mov r9, qword [rsp + 0x48]
mov r8d, r12d
lea rdx, str.WARNING:_The_maximum_dictionary_size__u_is_too_large_compared_to_the_source_size__u__size_source__size_dictionary____f__but_it_should_be___10__This_may_lead_to_a_subpar_dictionary__We_recommend_training_on_sources_at_least_10x__and_preferably_100x_the_size_of_the_dictionary___n
mov rcx, rax
movsd qword [rsp + 0x20], xmm6
call sym.fprintf
mov ecx, 2
call r15
mov rcx, rax
call sym.fflush
mov r15d, dword [0x0058c010]
lea ecx, [rbp + 1]
mov eax, 1
sub ecx, r14d
bsr ecx, ecx
add ecx, 2
shl eax, cl
mov dword [rsp + 0x68], ecx
lea r8, [rax*8]
lea edx, [rax - 1]
mov dword [rsp + 0x6c], eax
mov rcx, r8
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x70], edx
call sym.malloc
mov r8, qword [rsp + 0x48]
test rax, rax
mov qword [rsp + 0x60], rax
mov rcx, rax
je 0x487b39
mov edx, 0xffffffff
call sym.memset
cmp r15d, 1
jle 0x487984
mov r15, qword [dbg.__acrt_iob_func]
mov ecx, 2
call r15
mov r8d, 0x14
mov edx, 1
lea rcx, [0x0058f4d4]
mov r9, rax
call sym.fwrite
mov ecx, 2
call r15
mov rcx, rax
call sym.fflush
mov dword [rsp + 0x30], r14d
mov rcx, qword [rsp + 0x40]
mov r9, r13
lea r8, [rsp + 0x60]
mov dword [rsp + 0x28], ebp
mov rdx, qword [rsp + 0xc0]
mov qword [rsp + 0x20], r12
call sym.COVER_buildDictionary.isra.0
mov rdx, qword [rbx + 0x20]
mov r9, r12
mov rcx, r13
sub r9, rax
lea r8, [r13 + rax]
mov qword [rsp + 0x50], rdx
mov edx, dword [rbx + 0x28]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x58], edx
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x38], rdx
mov edx, dword [rsp + 0x160]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x30], edx
mov rdx, r12
call sym.ZDICT_finalizeDictionary
mov r15, rax
cmp rax, 0xffffffffffffff88
ja 0x487a32
cmp dword [0x0058c010], 1
jle 0x487a32
mov rbx, qword [dbg.__acrt_iob_func]
mov ecx, 2
call rbx
mov r8d, r15d
lea rdx, [0x0058f4f0]
mov rcx, rax
call sym.fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sym.fflush
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x487a50
call sym.free
mov qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x487a6e
call sym.free
mov qword [rsp + 0xc0], 0
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x487a80
call sym.free
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x487a92
call sym.free
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x4877b0
call sym.free
jmp 0x4877b0
mov r15, 0xffffffffffffffb8
test eax, eax
jle 0x4877b0
mov ecx, 2
mov rbx, qword [dbg.__acrt_iob_func]
call rbx
mov r8d, 0x28
mov edx, 1
lea rcx, str.Cover_must_have_at_least_one_input_file_n
mov r9, rax
jmp 0x4877fe
mov rax, r12
mov rdx, r12
pxor xmm0, xmm0
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
jmp 0x487893
mov rax, r9
mov rdx, r9
pxor xmm6, xmm6
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm6, rax
addsd xmm6, xmm6
jmp 0x487881
mov qword [rsp + 0x68], 0
test r15d, r15d
jle 0x487b7e
mov rbx, qword [dbg.__acrt_iob_func]
mov ecx, 2
call rbx
mov r8d, 0x2b
mov edx, 1
lea rcx, str.Failed_to_allocate_dmer_map:_out_of_memory_n
mov r9, rax
call sym.fwrite
mov ecx, 2
call rbx
mov rcx, rax
call sym.fflush
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x487b9c
call sym.free
mov qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x487bae
call sym.free
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x487bc0
call sym.free
mov rcx, qword [rsp + 0x88]
mov r15, 0xffffffffffffffc0
test rcx, rcx
jne 0x487aa0
jmp 0x4877b0