Function at 0x486690
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
movsd xmm1, qword [rsp + 0xa8]
mov rbp, rcx
mov r10, rdx
mov r13, r8
mov esi, r9d
test r9d, r9d
je 0x486b70
lea eax, [r9 - 1]
cmp eax, 2
jbe 0x486db0
mov edx, r9d
mov rax, r8
pxor xmm0, xmm0
shr edx, 1
shl rdx, 4
add rdx, r8
nop
movdqu xmm3, xmmword [rax]
add rax, 0x10
paddq xmm0, xmm3
cmp rax, rdx
jne 0x4866e0
movdqu xmm2, xmm0
mov eax, esi
psrldq xmm2, 8
and eax, 0xfffffffe
paddq xmm0, xmm2
movq rbx, xmm0
test sil, 1
je 0x48672d
mov edx, eax
add rbx, qword [r13 + rdx*8]
lea edx, [rax + 1]
cmp esi, edx
jbe 0x48672d
add eax, 2
add rbx, qword [r13 + rdx*8]
cmp esi, eax
jbe 0x48672d
add rbx, qword [r13 + rax*8]
movsd xmm0, qword [0x0058f5f0]
mov eax, 0xfffffffe
cmp rbx, rax
seta cl
comisd xmm0, xmm1
ja 0x486a38
mov rdi, rbx
mov r12, rbx
mov r15d, esi
mov r11d, esi
cmp dword [rsp + 0xa0], 8
mov r14d, 8
cmovae r14d, dword [rsp + 0xa0]
mov r9d, dword [0x0058c010]
mov r14d, r14d
cmp r14, rdi
ja 0x486b90
test cl, cl
jne 0x486b90
cmp r11d, 4
jbe 0x486c08
test r15d, r15d
je 0x486d80
mov ecx, 0xb
xor eax, eax
mov rdi, rbp
rep stosq qword [rdi], rax
cmp r9d, 1
jg 0x486cd0
mov eax, esi
sub r12, r14
mov qword [rbp], r10
mov qword [rbp + 0x18], rax
mov eax, r11d
add r12, 1
mov qword [rbp + 0x20], rax
mov eax, r15d
mov qword [rbp + 0x38], r12
shl r12, 2
mov qword [rbp + 0x10], r13
mov rcx, r12
mov qword [rbp + 0x28], rax
mov dword [rsp + 0x28], r9d
call sub.msvcrt.dll_malloc
mov rcx, r12
mov qword [rbp + 0x30], rax
mov rbx, rax
call sub.msvcrt.dll_malloc
lea ecx, [rsi + 1]
mov qword [rbp + 0x48], rax
shl rcx, 3
mov rdi, rax
call sub.msvcrt.dll_malloc
test rdi, rdi
mov r9d, dword [rsp + 0x28]
sete cl
test rbx, rbx
mov qword [rbp + 8], rax
sete dl
or cl, dl
jne 0x486ddf
test rax, rax
je 0x486ddf
mov edi, dword [rsp + 0xa0]
mov qword [rbp + 0x40], 0
mov qword [rax], 0
mov dword [rbp + 0x50], edi
test esi, esi
je 0x486891
mov rdx, qword [r13]
mov ecx, 1
mov qword [rax + 8], rdx
mov eax, 2
cmp esi, 1
jbe 0x486891
nop word cs:[rax + rax]
mov r8, qword [rbp + 8]
mov r10d, ecx
mov r11d, eax
add eax, 1
add ecx, 1
mov rdx, qword [r8 + r10*8]
add rdx, qword [r13 + r10*8]
mov qword [r8 + r11*8], rdx
cmp esi, eax
jae 0x486870
cmp r9d, 1
jg 0x486c90
mov r10, qword [rbp + 0x38]
test r10, r10
je 0x4868c6
xor eax, eax
xor edx, edx
nop dword [rax + rax]
mov rcx, qword [rbp + 0x30]
mov dword [rcx + rdx*4], eax
mov r10, qword [rbp + 0x38]
lea edx, [rax + 1]
mov rax, rdx
cmp rdx, r10
jb 0x4868b0
cmp dword [rbp + 0x50], 9
lea rax, [0x00486650]
mov rcx, qword [rbp + 0x30]
mov rdx, r10
lea r9, [0x004865c0]
mov r8d, 4
mov qword [0x005d6030], rbp
cmovae r9, rax
call sub.msvcrt.dll_qsort
cmp dword [0x0058c010], 1
jg 0x486c50
cmp dword [rbp + 0x50], 9
lea rdx, [0x00486570]
lea rax, [0x00486630]
mov r13, qword [rbp + 0x38]
cmovb rax, rdx
mov rdi, qword [rbp + 0x30]
mov r15, rax
test r13, r13
je 0x486bf4
xor r12d, r12d
nop
lea rsi, [rdi + 4]
add r12, 1
mov rbx, rsi
cmp r13, r12
ja 0x486955
jmp 0x486965
add r12, 1
add rbx, 4
cmp r13, r12
jbe 0x486965
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
call r15
test eax, eax
je 0x486948
mov rax, qword [rbp + 0x30]
mov rdx, rdi
mov rcx, qword [rbp + 0x18]
xor r10d, r10d
sub rdx, rax
sar rdx, 2
mov qword [rsp + 0x28], rdx
mov r11d, edx
mov rdx, qword [rbp + 8]
lea r14, [rdx + rcx*8]
mov rcx, qword [rdx]
cmp rbx, rdi
je 0x4869bb
nop word [rax + rax]
mov r8d, dword [rdi]
mov rax, qword [rbp + 0x48]
mov dword [rax + r8*4], r11d
mov r8d, dword [rdi]
mov rdi, rsi
cmp r8, rcx
jb 0x4869d8
add r10d, 1
cmp rbx, rsi
jne 0x4869e8
mov rax, qword [rbp + 0x30]
mov edx, dword [rsp + 0x28]
mov dword [rax + rdx*4], r10d
cmp r13, r12
jbe 0x486bf0
mov rdi, rbx
jmp 0x486930
cmp rbx, rsi
je 0x4869b7
add rsi, 4
jmp 0x486998
mov rax, r14
sub rax, rdx
sar rax, 3
jmp 0x486a0a
mov rcx, rax
shr rcx, 1
lea r9, [rdx + rcx*8]
cmp r8, qword [r9]
ja 0x486a20
mov rax, rcx
test rax, rax
jne 0x4869f8
mov rcx, qword [rdx]
add rdx, 8
jmp 0x4869dd
sub rax, 1
lea rdx, [r9 + 8]
sub rax, rcx
jmp 0x486a0a
xor ecx, ecx
xor ebx, ebx
nop dword [rax]
mov eax, esi
pxor xmm0, xmm0
mov r15d, esi
cvtsi2sd xmm0, rax
mulsd xmm0, xmm1
cvttsd2si rdx, xmm0
mov r11d, edx
sub r15d, edx
test edx, edx
je 0x486db9
lea eax, [rdx - 1]
cmp eax, 2
jbe 0x486dd5
mov r8d, edx
mov rax, r13
pxor xmm0, xmm0
shr r8d, 1
shl r8, 4
add r8, r13
nop dword [rax]
movdqu xmm4, xmmword [rax]
add rax, 0x10
paddq xmm0, xmm4
cmp r8, rax
jne 0x486a80
movdqu xmm1, xmm0
mov eax, edx
psrldq xmm1, 8
and eax, 0xfffffffe
paddq xmm0, xmm1
movq r12, xmm0
test dl, 1
je 0x486acf
mov r8d, eax
add r12, qword [r13 + r8*8]
lea r8d, [rax + 1]
cmp edx, r8d
jbe 0x486acf
add eax, 2
add r12, qword [r13 + r8*8]
cmp edx, eax
jbe 0x486acf
add r12, qword [r13 + rax*8]
mov edx, edx
test r15d, r15d
je 0x486dc1
lea eax, [r15 - 1]
cmp eax, 2
jbe 0x486dcb
mov r8d, r15d
lea rax, [r13 + rdx*8]
pxor xmm0, xmm0
shr r8d, 1
shl r8, 4
add r8, rax
nop dword [rax]
movdqu xmm5, xmmword [rax]
add rax, 0x10
paddq xmm0, xmm5
cmp rax, r8
jne 0x486b00
movdqu xmm1, xmm0
mov r8d, r15d
psrldq xmm1, 8
and r8d, 0xfffffffe
paddq xmm0, xmm1
movq rax, xmm0
test r15b, 1
je 0x486b5d
mov r9d, r8d
add r9, rdx
add rax, qword [r13 + r9*8]
lea r9d, [r8 + 1]
cmp r15d, r9d
jbe 0x486b5d
add r9, rdx
add r8d, 2
add rax, qword [r13 + r9*8]
cmp r15d, r8d
jbe 0x486b5d
add rdx, r8
add rax, qword [r13 + rdx*8]
mov rdi, rbx
mov rbx, rax
jmp 0x486756
movsd xmm0, qword [0x0058f5f0]
comisd xmm0, xmm1
ja 0x486a2d
mov r9d, dword [0x0058c010]
xor edi, edi
nop dword [rax + rax]
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x486bd5
mov rbx, qword [fcn.0058b090]
mov ecx, 2
shr rdi, 0x14
call rbx
mov r8, rdi
mov r9d, 0xfff
lea rdx, [0x0058f160]
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
mov rax, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rbp + 0x30]
mov qword [rbp + 0x40], rdi
xor r12d, r12d
mov qword [rbp + 0x30], 0
jmp 0x486bd5
mov dword [rsp + 0x28], r11d
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x486bd5
mov ecx, 2
mov rbx, qword [fcn.0058b090]
call rbx
mov r11d, dword [rsp + 0x28]
lea rdx, str.Total_number_of_training_samples_is__u_and_is_invalid.
mov rcx, rax
mov r8d, r11d
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x486bd5
mov rbx, qword [fcn.0058b090]
mov ecx, 2
call rbx
mov r8d, 0x16
mov edx, 1
lea rcx, [0x0058f2b3]
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x486902
mov rbx, qword [fcn.0058b090]
mov ecx, 2
call rbx
mov r8d, 0x22
mov edx, 1
lea rcx, str.Constructing_partial_suffix_array_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x48689b
mov qword [rsp + 0x88], r10
mov rdi, qword [fcn.0058b090]
mov ecx, 2
mov dword [rsp + 0x28], r11d
call rdi
mov r11d, dword [rsp + 0x28]
mov r9d, r12d
lea rdx, [0x0058f210]
mov rcx, rax
mov r8d, r11d
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rdi
mov rcx, rax
call sub.msvcrt.dll_fflush
mov r9d, dword [0x0058c010]
mov r11d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
cmp r9d, 1
jle 0x4867b2
mov ecx, 2
call rdi
mov r9d, ebx
mov r8d, r15d
lea rdx, [0x0058f240]
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rdi
mov rcx, rax
call sub.msvcrt.dll_fflush
mov r9d, dword [0x0058c010]
mov r11d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
jmp 0x4867b2
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x486bd5
mov ecx, 2
mov rbx, qword [fcn.0058b090]
call rbx
xor r8d, r8d
lea rdx, str.Total_number_of_testing_samples_is__u_and_is_invalid.
mov rcx, rax
jmp 0x486c39
xor ebx, ebx
xor eax, eax
jmp 0x48670e
xor r12d, r12d
jmp 0x486acf
mov rdi, rbx
xor ebx, ebx
jmp 0x486756
xor eax, eax
xor r8d, r8d
jmp 0x486b30
xor r12d, r12d
xor eax, eax
jmp 0x486aad
test r9d, r9d
jle 0x486e1b
mov rbx, qword [fcn.0058b090]
mov ecx, 2
call rbx
mov r8d, 0x23
mov edx, 1
lea rcx, str.Failed_to_allocate_scratch_buffers_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x486e31
call fcn.0058af90
mov qword [rbp + 0x30], 0
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x486e47
call fcn.0058af90
mov qword [rbp + 0x40], 0
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x486e5d
call fcn.0058af90
mov qword [rbp + 0x48], 0
mov rcx, qword [rbp + 8]
mov r12, 0xffffffffffffffc0
test rcx, rcx
je 0x486bd5
call fcn.0058af90
mov qword [rbp + 8], 0
jmp 0x486bd5