Function at 0x488420
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
movups xmmword [rsp + 0x120], xmm6
mov rdi, qword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x18]
movdqu xmm3, xmmword [rcx + 0x28]
movdqu xmm4, xmmword [rcx + 0x38]
mov r15d, dword [rcx + 0x1c]
mov r14, qword [rcx]
mov ebx, dword [rcx + 0x18]
mov rsi, rcx
mov rcx, rdi
movups xmmword [rsp + 0xf0], xmm2
movups xmmword [rsp + 0x100], xmm3
movups xmmword [rsp + 0x110], xmm4
mov dword [rsp + 0x70], r15d
call sym.malloc
mov r13, rax
mov rax, qword [r14 + 0x38]
lea rcx, [rax*4]
call sym.malloc
lea ecx, [rbx + 1]
mov r8d, 1
sub ecx, r15d
mov r12, rax
bsr ecx, ecx
add ecx, 2
shl r8d, cl
mov dword [rsp + 0xb8], ecx
lea rbp, [r8*8]
lea eax, [r8 - 1]
mov dword [rsp + 0xbc], r8d
mov rcx, rbp
mov dword [rsp + 0xc0], eax
call sym.malloc
mov qword [rsp + 0xb0], rax
mov r15, rax
test rax, rax
je 0x488746
mov r8, rbp
mov edx, 0xffffffff
mov rcx, rax
call sym.memset
test r13, r13
je 0x48884a
test r12, r12
je 0x48884a
mov r8, qword [r14 + 0x38]
mov rdx, qword [r14 + 0x40]
mov rcx, r12
shl r8, 2
call sym.memcpy
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rdi
mov r9, r13
lea r8, [rsp + 0xb0]
mov rdx, r12
mov dword [rsp + 0x30], eax
call sym.COVER_buildDictionary.isra.0
mov r15, qword [r14 + 8]
mov rbp, qword [r14 + 0x18]
mov dword [rsp + 0xf0], ebx
mov rdx, qword [r14 + 0x20]
mov r9, qword [r14 + 0x10]
lea r11, [r13 + rax]
mov r8, qword [r14]
mov ecx, dword [rsp + 0x70]
lea r14, [rsp + 0x80]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x40], rbp
movdqu xmm1, xmmword [rsp + 0x100]
mov qword [rsp + 0x38], rdx
movdqu xmm0, xmmword [rsp + 0x110]
mov dword [rsp + 0x30], edx
mov rdx, r11
mov qword [rsp + 0x28], r9
mov r9, rdi
mov qword [rsp + 0x20], r8
sub r9, rax
mov r8, rdi
mov qword [rsp + 0x58], 0xffffffffffffffff
mov qword [rsp + 0x48], r14
mov dword [rsp + 0xf4], ecx
lea rcx, [rsp + 0xd0]
movdqu xmm5, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0x90], xmm1
movups xmmword [rsp + 0x80], xmm5
movups xmmword [rsp + 0xa0], xmm0
call sym.COVER_selectDict
mov r15, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
test r15, r15
je 0x488613
cmp rdi, 0xffffffffffffff88
jbe 0x488628
mov eax, dword [0x0058c010]
test eax, eax
jg 0x4887f0
nop dword [rax]
mov rcx, r13
call sym.free
mov r13, qword [rsi + 8]
test r13, r13
je 0x4886f8
mov eax, dword [rsp + 0xf8]
sub qword [r13 + 8], 1
movsd xmm6, qword [rsp + 0x100]
mov r14, qword [rsp + 0x110]
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x68], rax
cmp rdi, qword [r13 + 0x50]
jae 0x4886f8
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x488775
cmp rbp, qword [r13 + 0x18]
ja 0x488770
test r15, r15
je 0x4886f8
mov r8, rbp
mov rdx, r15
call sym.memcpy
movd xmm5, dword [rsp + 0x78]
mov rax, qword [rsp + 0x68]
movd xmm0, ebx
movd xmm1, dword [rsp + 0x7c]
mov qword [r13 + 0x18], rbp
mov qword [r13 + 0x38], rax
mov eax, dword [rsp + 0x74]
punpckldq xmm1, xmm5
movd xmm5, dword [rsp + 0x70]
mov qword [r13 + 0x40], r14
mov dword [r13 + 0x48], eax
punpckldq xmm0, xmm5
mov qword [r13 + 0x50], rdi
punpcklqdq xmm0, xmm1
movsd qword [r13 + 0x30], xmm6
movups xmmword [r13 + 0x20], xmm0
mov rcx, rsi
call sym.free
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x488712
call sym.free
mov rcx, r15
call sym.free
test r12, r12
je 0x48882e
movups xmm6, xmmword [rsp + 0x120]
mov rcx, r12
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.free
mov edx, dword [0x0058c010]
mov qword [rsp + 0xb8], 0
test edx, edx
jg 0x4887a8
mov rdi, 0xffffffffffffffff
xor ebp, ebp
xor r15d, r15d
jmp 0x488628
call sym.free
mov rcx, rbp
call sym.malloc
mov qword [r13 + 0x10], rax
mov rcx, rax
test rax, rax
jne 0x48869e
mov qword [r13 + 0x50], 0xffffffffffffffff
mov qword [r13 + 0x18], 0
jmp 0x4886f8
mov rdi, qword [dbg.__acrt_iob_func]
mov ecx, 2
xor ebp, ebp
call rdi
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 rdi
mov rdi, 0xffffffffffffffff
mov rcx, rax
call sym.fflush
jmp 0x488628
mov r14, qword [dbg.__acrt_iob_func]
mov ecx, 2
call r14
mov r8d, 0x1c
mov edx, 1
lea rcx, [0x0058f543]
mov r9, rax
call sym.fwrite
mov ecx, 2
call r14
mov rcx, rax
call sym.fflush
jmp 0x488628
movups xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [0x0058c010], 0
jle 0x48875c
mov rdi, qword [dbg.__acrt_iob_func]
mov ecx, 2
call rdi
mov r8d, 0x2a
mov edx, 1
lea rcx, [0x0058f518]
mov r9, rax
call sym.fwrite
mov ecx, 2
call rdi
mov rcx, rax
call sym.fflush
jmp 0x48875c