Function at 0x409190
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r15d, dword [0x00519468]
lea rbx, [rsp + 0x70]
mov r13, rdx
mov rdi, rcx
mov rdx, rbx
call fcn.004073c0
test eax, eax
jne 0x40955f
lea rdx, [rbx + 8]
mov rcx, rdi
call fcn.004073c0
test eax, eax
jne 0x40955f
lea rdx, [rbx + 0x10]
mov rcx, rdi
call fcn.00407370
test eax, eax
jne 0x40955f
lea r12, [rsp + 0x58]
mov rcx, rdi
mov rdx, r12
call fcn.00407370
test eax, eax
jne 0x40955f
lea rbp, [rsp + 0x60]
mov r8d, 0xf
mov rcx, rdi
mov rdx, rbp
call fcn.00407470
test eax, eax
jne 0x40955f
lea rsi, [rsp + 0x56]
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.00407470
test eax, eax
jne 0x40955f
mov r14, qword [rsp + 0x78]
pxor xmm6, xmm6
pxor xmm1, xmm1
mov rbx, qword [rsp + 0x70]
mov rax, r14
sub rax, rbx
shr rax, 1
test r15d, r15d
cvtsi2sd xmm6, rax
mov eax, dword [rsp + 0x80]
cvtsi2sd xmm1, rax
divsd xmm6, xmm1
je 0x4094b1
lea rdx, str.seconds
mov r8d, 0xf
mov rcx, rbp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4095c4
movzx edx, byte [rsp + 0x56]
movsx r15d, byte [0x004c3620]
cmp dl, r15b
jne 0x40960e
movsd xmm0, qword [0x00519470]
subsd xmm0, xmm6
andpd xmm0, xmmword [0x004cb0a0]
ucomisd xmm0, qword [0x004cb0b0]
ja 0x409593
mov edx, dword [0x00519468]
test edx, edx
je 0x4093f0
mov rax, qword [0x00519478]
sub edx, 1
shl rdx, 5
lea rdx, [rax + rdx + 0x20]
jmp 0x40930d
add rax, 0x20
cmp rdx, rax
je 0x4093f0
cmp qword [rax], rbx
mov r15, rax
jne 0x409300
cmp qword [rax + 8], r14
jne 0x409300
mov rbp, qword [0x00506000]
mov r9d, dword [r15 + 0x10]
test byte [rbp], 0x40
jne 0x409503
test r9d, r9d
je 0x4093cb
mov r12, qword [0x00505fb0]
lea r14, str._hist_read_rec__0x_lx:__u_n
xor ebx, ebx
jmp 0x409359
add ebx, 1
cmp dword [r15 + 0x10], ebx
jbe 0x4093cb
mov r9, rdi
mov r8d, 1
mov edx, 2
mov rcx, rsi
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x40951f
mov rax, qword [r12]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [rax + 0x50]
mov rcx, qword [r15 + 0x18]
mov edx, ebx
lea rcx, [rcx + rdx*4]
mov r8d, dword [rcx]
add r8d, eax
mov dword [rcx], r8d
test byte [rbp], 0x40
je 0x409350
mov rcx, qword [r15]
add ebx, 1
mov rax, qword [r15 + 8]
mov r9d, dword [r15 + 0x10]
sub rax, rcx
imul rax, rdx
xor edx, edx
div r9
lea edx, [rax + rcx]
mov rcx, r14
call sub.msvcrt.dll_printf
cmp dword [r15 + 0x10], ebx
ja 0x409359
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbp
mov rcx, r12
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], r14
call fcn.004090e0
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x58], rax
jne 0x409659
mov eax, dword [0x00519468]
mov rcx, qword [0x00519478]
lea edx, [rax + 1]
shl rdx, 5
call fcn.004be670
mov edx, dword [0x00519468]
mov qword [0x00519478], rax
shl rdx, 5
add rax, rdx
mov rdx, qword [rsp + 0x70]
mov qword [rax], rdx
mov rdx, qword [rsp + 0x78]
mov r15d, dword [0x00519468]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x80]
mov qword [rax + 0x10], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rax + 0x18], rdx
mov rax, r15
shl r15, 5
add r15, qword [0x00519478]
add eax, 1
mov dword [0x00519468], eax
mov ecx, dword [r15 + 0x10]
shl rcx, 2
call fcn.004be5f0
mov r8d, dword [r15 + 0x10]
xor edx, edx
mov qword [r15 + 0x18], rax
mov rcx, rax
shl r8, 2
call sub.msvcrt.dll_memset
jmp 0x40931b
mov rax, qword [0x00506100]
movsd qword [0x00519470], xmm6
mov edx, dword [rsp + 0x58]
mov dword [rax], edx
mov rax, qword [rsp + 0x60]
mov qword [str.seconds], rax
mov eax, dword [rsp + 0x68]
mov dword [0x004c3638], eax
movzx eax, word [rsp + 0x6c]
mov word [0x004c363c], ax
movzx eax, byte [rsp + 0x6e]
mov byte [0x004c363e], al
movzx eax, byte [rsp + 0x56]
mov byte [0x004c3620], al
jmp 0x4092d7
mov r8d, dword [r15 + 8]
lea rcx, str._hist_read_rec__n_lowpc_0x_lx_n_highpc_0x_lx_ncnt__u_n
mov edx, dword [r15]
call sub.msvcrt.dll_printf
mov r9d, dword [r15 + 0x10]
jmp 0x409330
mov rax, qword [0x005062d0]
mov ecx, 2
mov edi, dword [r15 + 0x10]
mov rsi, qword [rax]
call qword [fcn.004c1900]
mov dword [rsp + 0x28], edi
mov r9, r13
mov dword [rsp + 0x20], ebx
lea rdx, str._s:__s:_unexpected_EOF_after_reading__u_of__u_samples_n
mov rcx, rax
mov r8, rsi
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
mov rax, qword [0x005062d0]
mov ecx, 2
mov rbx, qword [rax]
call qword [fcn.004c1900]
lea rdx, str._s:__s:_unexpected_end_of_file_n
mov r9, r13
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
mov rax, qword [0x005062d0]
mov ecx, 2
mov rbx, qword [rax]
call qword [fcn.004c1900]
lea rdx, str._s:_different_scales_in_histogram_records
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
mov rax, qword [0x005062d0]
mov ecx, 2
lea rdi, str.seconds
mov rbx, qword [rax]
call qword [fcn.004c1900]
mov qword [rsp + 0x30], rbp
lea rdx, str._s:_dimension_unit_changed_between_histogram_records_n_s:_from__s_n_s:_to__s_n
mov rcx, rax
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rbx
mov r9, rbx
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
mov rax, qword [0x005062d0]
mov byte [rsp + 0x4f], dl
mov ecx, 2
mov rbx, qword [rax]
call qword [fcn.004c1900]
movsx edx, byte [rsp + 0x4f]
mov dword [rsp + 0x20], r15d
mov rcx, rax
mov qword [rsp + 0x28], rbx
mov r9, rbx
mov r8, rbx
mov dword [rsp + 0x30], edx
lea rdx, str._s:_dimension_abbreviation_changed_between_histogram_records_n_s:_from__c_n_s:_to__c_n
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
mov rax, qword [0x005062d0]
mov ecx, 2
mov rbx, qword [rax]
call qword [fcn.004c1900]
lea rdx, str._s:_overlapping_histogram_records_n
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov ecx, 1
call fcn.00408200
nop
nop
nop
nop
nop
nop