Function at 0x491af0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
movups xmmword [rsp + 0x30], xmm6
movsd xmm6, qword [rsp + 0xb8]
mov rbx, rcx
mov r13, rdx
mov rcx, r8
mov edx, r9d
mov rdi, r8
mov esi, r9d
call fcn.00487510
movsd xmm0, qword [0x00590338]
mov r8, rax
comisd xmm0, xmm6
ja 0x491dc8
mov r14, rax
mov r12d, esi
mov r15d, esi
mov r11, rax
cmp dword [rsp + 0xb0], 8
mov ebp, 8
cmovae ebp, dword [rsp + 0xb0]
mov r9d, dword [0x0058c020]
mov ebp, ebp
cmp rbp, r8
ja 0x491e18
mov eax, 0xfffffffe
cmp r8, rax
ja 0x491e18
cmp r15d, 4
jbe 0x491e70
test r12d, r12d
je 0x491f98
mov qword [rsp + 0x28], r11
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
mov qword [rbx + 0x38], 0
mov qword [rbx + 0x40], 0
mov qword [rbx + 0x48], 0
cmp r9d, 1
jg 0x491f00
mov eax, r12d
sub r14, rbp
movd xmm1, esi
mov qword [rbx], r13
mov qword [rbx + 0x28], rax
lea rax, [r14 + 1]
movd xmm0, r15d
lea ecx, [rsi + 1]
mov qword [rbx + 0x30], rax
mov eax, dword [rsp + 0xb0]
movdqu xmm2, xmm1
mov edx, 8
mov qword [rbx + 0x10], rdi
punpcklqdq xmm2, xmm0
mov dword [rbx + 0x40], eax
mov eax, dword [rsp + 0xc0]
movups xmmword [rbx + 0x18], xmm2
mov dword [rbx + 0x44], eax
mov rax, qword [rsp + 0xc8]
mov dword [rsp + 0x20], r9d
mov qword [rbx + 0x48], rax
call fcn.0058aff0
mov r9d, dword [rsp + 0x20]
test rax, rax
mov qword [rbx + 8], rax
je 0x491ffb
mov qword [rax], 0
test esi, esi
je 0x491ca0
mov rdx, qword [rdi]
mov qword [rax + 8], rdx
cmp esi, 1
jbe 0x491ca0
mov ecx, 1
mov eax, 2
nop
mov r8, qword [rbx + 8]
mov r10d, ecx
mov r11d, eax
add eax, 1
add ecx, 1
mov rdx, qword [r8 + r10*8]
add rdx, qword [rdi + r10*8]
mov qword [r8 + r11*8], rdx
cmp esi, eax
jae 0x491c80
mov eax, 1
mov edx, 4
mov dword [rsp + 0x20], r9d
movzx ecx, byte [rsp + 0xc0]
shl rax, cl
mov rcx, rax
call fcn.0058aff0
mov r9d, dword [rsp + 0x20]
test rax, rax
mov qword [rbx + 0x38], rax
je 0x491fc8
cmp r9d, 1
jg 0x491eb8
mov edi, dword [rbx + 0x40]
mov r13, qword [rbx + 0x20]
mov esi, 8
mov edx, dword [rbx + 0x44]
mov r11d, dword [rbx + 0x4c]
cmp edi, 8
cmovae rsi, rdi
xor r9d, r9d
test r13, r13
je 0x491d7b
mov ecx, 0x40
add r11, 1
movabs r12, 0xcf1bbcdcb7a56463
movabs rbp, 0xcf1bbcdcbf9b0000
sub ecx, edx
nop
mov r8, qword [rbx + 8]
lea r10, [r9*8]
mov rdx, qword [r8 + r9*8]
mov r10, qword [r8 + r10 + 8]
add r9, 1
lea r8, [rdx + rsi]
cmp r8, r10
ja 0x491d76
cmp edi, 6
je 0x491da0
nop word [rax + rax]
mov r8, qword [rbx]
mov r14, qword [r8 + rdx]
add rdx, r11
imul r14, r12
mov r8, r14
shr r8, cl
add dword [rax + r8*4], 1
lea r8, [rsi + rdx]
cmp r8, r10
jbe 0x491d50
mov r13, qword [rbx + 0x20]
cmp r9, r13
jb 0x491d20
xor r12d, r12d
movups xmm6, xmmword [rsp + 0x30]
mov rax, r12
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rbx]
mov r15, qword [r8 + rdx]
add rdx, r11
imul r15, rbp
mov r8, r15
shr r8, cl
add dword [rax + r8*4], 1
lea r8, [rdx + 8]
cmp r10, r8
jae 0x491da0
jmp 0x491d72
mov qword [rsp + 0x20], rax
pxor xmm0, xmm0
mov eax, esi
mov r12d, esi
cvtsi2sd xmm0, rax
mov rcx, rdi
mulsd xmm0, xmm6
cvttsd2si rbp, xmm0
mov edx, ebp
sub r12d, ebp
mov r15d, ebp
mov ebp, ebp
call fcn.00487510
lea rcx, [rdi + rbp*8]
mov edx, r12d
mov r14, rax
call fcn.00487510
mov r8, qword [rsp + 0x20]
mov r11, rax
jmp 0x491b46
mov qword [rsp + 0x20], r8
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x491d7e
mov rbx, qword [fcn.0058b090]
mov ecx, 2
call rbx
mov r8, qword [rsp + 0x20]
mov r9d, 0xfff
lea rdx, str.Total_samples_size_is_too_large___u_MB___maximum_size_is__u_MB_n
mov rcx, rax
shr r8, 0x14
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x491d7e
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x491d7e
mov ecx, 2
mov rbx, qword [fcn.0058b090]
call rbx
mov r8d, r15d
lea rdx, str.Total_number_of_training_samples_is__u_and_is_invalid_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 2
call rbx
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x491d7e
mov rsi, qword [fcn.0058b090]
mov ecx, 2
call rsi
mov r8d, 0x16
mov edx, 1
lea rcx, str.Computing_frequencies_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rsi
mov rcx, rax
call sub.msvcrt.dll_fflush
mov rax, qword [rbx + 0x38]
jmp 0x491cde
mov rax, qword [fcn.0058b090]
mov ecx, 2
mov qword [rsp + 0x20], rax
call rax
mov r9d, r14d
mov r8d, r15d
lea rdx, str.Training_on__u_samples_of_total_size__u_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov ecx, 2
mov rax, qword [rsp + 0x20]
call rax
mov rcx, rax
call sub.msvcrt.dll_fflush
mov r9d, dword [0x0058c020]
cmp r9d, 1
jle 0x491bec
mov ecx, 2
mov rax, qword [rsp + 0x20]
call rax
mov r11, qword [rsp + 0x28]
mov r8d, r12d
lea rdx, str.Testing_on__u_samples_of_total_size__u_n
mov rcx, rax
mov r9d, r11d
call sub.msvcrt.dll_fprintf
mov ecx, 2
mov rax, qword [rsp + 0x20]
call rax
mov rcx, rax
call sub.msvcrt.dll_fflush
mov r9d, dword [0x0058c020]
jmp 0x491bec
mov r12, 0xffffffffffffffb8
test r9d, r9d
jle 0x491d7e
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._n
mov rcx, rax
jmp 0x491e9b
test r9d, r9d
jg 0x492039
mov rcx, qword [rbx + 0x38]
mov r12, 0xffffffffffffffc0
call fcn.0058af90
mov qword [rbx + 0x38], 0
mov rcx, qword [rbx + 8]
call fcn.0058af90
mov qword [rbx + 8], 0
jmp 0x491d7e
test r9d, r9d
jle 0x491fcd
mov ecx, 2
mov rsi, qword [fcn.0058b090]
call rsi
mov r8d, 0x24
mov edx, 1
lea rcx, str.Failed_to_allocate_scratch_buffers__n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rsi
mov rcx, rax
call sub.msvcrt.dll_fflush
jmp 0x491fcd
mov ecx, 2
mov rsi, qword [fcn.0058b090]
call rsi
mov r8d, 0x24
mov edx, 1
lea rcx, str.Failed_to_allocate_frequency_table__n
mov r9, rax
jmp 0x492023