Function at 0x4027b0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0x120], xmm7
movups xmmword [rsp + 0x130], xmm8
movups xmmword [rsp + 0x140], xmm9
movups xmmword [rsp + 0x150], xmm10
movups xmmword [rsp + 0x160], xmm11
mov rbx, qword [0x00782088]
mov qword [0x007820b0], 0
mov qword [0x007820a8], 0
mov qword [rsp + 0x1c8], rdx
mov ebp, ecx
mov rcx, qword [rsp + 0x1c8]
mov r13, r8
mov edx, 0x4301
mov r8d, 0x180
mov dword [rsp + 0xa8], 0xffffffff
mov byte [rsp + 0xa7], 1
call sym.open
mov dword [rsp + 0x60], eax
cmp eax, 0xffffffff
je 0x402e28
lea r12, [rsp + 0xc2]
mov r8d, 7
mov ecx, ebp
mov rdx, r12
call sym.read
cmp eax, 7
jne 0x402e08
movzx edi, byte [rsp + 0xc2]
mov eax, edi
and eax, 0xfe
cmp eax, 0xfe
je 0x402e4f
movzx esi, dil
cmp dil, 0xfd
je 0x4033ae
lea edx, [rsi - 6]
cmp edx, 1
lea edx, [rsi - 3]
setbe cl
cmp edx, 1
setbe dl
or cl, dl
jne 0x4028c0
test eax, eax
jne 0x4033be
mov dword [rsp + 0x54], 0
mov edi, 3
mov edx, 0x8000
mov rcx, r13
call sym.open
mov dword [rsp + 0x98], eax
cmp eax, 0xffffffff
je 0x4033fe
lea rdx, [rsp + 0xd0]
mov rcx, r13
call qword [sym.imp.msvcrt.dll__stat64]
mov esi, dword [rsp + 0x54]
mov dword [rsp + 0x28], edi
mov ecx, ebp
mov rax, qword [rsp + 0xe8]
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0xa7]
mov dword [rsp + 0x30], esi
mov edx, dword [rsp + 0x98]
mov qword [0x007820b8], rax
lea rax, [rsp + 0xa8]
mov r8, rax
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x78], rax
call sym.go_to_readstart_position_and_get_first_lut_int__int__int__unsigned_char__int__int__int_
test eax, eax
js 0x402dbc
test esi, esi
jne 0x4033ee
mov byte [0x00782097], 0
xor r15d, r15d
mov edx, dword [rsp + 0xa8]
cmp edx, 1
jne 0x402976
mov byte [0x00782094], 0
mov ecx, dword [rsp + 0x60]
mov r8d, edi
lea r14, [rsp + 0xac]
call sym.write_header_to_file_int__int__int_
movzx ecx, byte [rsp + 0xa7]
call sym.print_status_info_unsigned_char_
xor edx, edx
mov rcx, r14
call dbg.gettimeofday
pxor xmm0, xmm0
movsd xmm7, qword [0x004b6c50]
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [rsp + 0xac]
movsd xmm6, qword [0x004b6c60]
movsd xmm8, qword [0x004b6c58]
cvtsi2sd xmm1, dword [rsp + 0xb0]
mulsd xmm0, xmm7
addsd xmm0, xmm1
addsd xmm0, xmm8
comisd xmm0, xmm6
jae 0x403288
cvttsd2si rax, xmm0
mov ecx, dword [rsp + 0x54]
mov qword [rsp + 0x48], rax
test ecx, ecx
je 0x4032a7
lea esi, [rdi*4 + 1]
lea eax, [rdi - 1]
add rbx, 1
lea rax, [rax + rax + 2]
mov qword [rsp + 0x68], rax
jmp 0x402a34
cvttsd2si rax, xmm0
cmp rax, qword [rsp + 0x48]
jae 0x402c7b
add rbx, 1
mov r8d, esi
mov rdx, r12
lea r13, [rbx - 1]
mov ecx, ebp
call sym.read
cmp esi, eax
jne 0x402cc8
mov rdx, qword [0x007820b0]
test r15d, r15d
je 0x402a6c
movzx eax, byte [rsp + 0xc2]
cmp eax, 0xfc
jg 0x402fe0
movsxd rax, esi
add rax, rdx
mov edx, dword [rsp + 0x54]
mov qword [0x007820b0], rax
test edx, edx
jne 0x402ed0
test edi, edi
je 0x402aa3
mov r8, qword [rsp + 0x68]
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0xc3]
call sym.memcpy
movzx edx, word [rsp + 0xd4]
movzx ecx, word [rsp + 0xd0]
lea r8, [0x0063e040]
movzx r13d, word [rsp + 0xd2]
lea rax, [rdx + rdx*2]
mov dword [rsp + 0x58], edx
lea rdx, [rax + rax*8 + 0xd8000]
lea rax, [r13 + r13*2]
mov dword [rsp + 0x64], ecx
lea r9, [rax + rax*8 + 0x6c000]
lea rax, [rcx + rcx*2]
add rdx, r8
lea rax, [rax + rax*8]
add r9, r8
add r8, rax
mov eax, dword [rsp + 0xa8]
test eax, eax
jne 0x403050
movsx eax, byte [rsp + 0xc2]
sub eax, edi
cmp byte [0x00782094], 0
je 0x403150
movsxd r11, dword [rsp + 0x64]
lea rcx, [0x0054e040]
movsxd r10, r13d
pxor xmm1, xmm1
movss xmm0, dword [rcx + r11*4]
addss xmm0, dword [rcx + r10*4 + 0x10000]
movsxd r10, dword [rsp + 0x58]
addss xmm0, dword [rcx + r10*4 + 0x20000]
ucomiss xmm1, xmm0
ja 0x403434
sqrtss xmm0, xmm0
mov qword [rsp + 0x20], rdx
cvtss2sd xmm0, xmm0
lea rdx, str._s_t_s_t_s_t_.03f_t_d
lea rcx, [0x007820e0]
mov dword [rsp + 0x30], eax
movsd qword [rsp + 0x28], xmm0
call sym.sprintf_char__char_const__::_
cmp byte [0x00782093], 0
jne 0x403075
lea rcx, [0x007821c0]
lea r13, [0x007821c0]
call sym.strlen
lea r9, [0x007820e0]
lea r8, [0x007821a0]
lea rcx, [r13 + rax]
lea rax, [0x00782160]
mov qword [rsp + 0x20], rax
lea rdx, str._s_s_s_n
call sym.sprintf_char__char_const__::_
mov rcx, r13
call sym.strlen
cmp rax, 0xf7f
ja 0x402fc0
test r15d, r15d
jne 0x402c00
mov rax, qword [0x007820a0]
test rax, rax
je 0x402c00
lea rdx, [rbx + 1]
cmp rdx, rax
je 0x403218
nop dword [rax]
mov rax, qword [0x00782080]
cmp rbx, rax
jb 0x402c15
test rax, rax
jne 0x402ce8
movsxd rax, esi
add rax, qword [0x007820b0]
cmp rax, qword [0x007820c0]
ja 0x402ce8
xor edx, edx
mov rcx, r14
call dbg.gettimeofday
pxor xmm0, xmm0
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [rsp + 0xac]
cvtsi2sd xmm1, dword [rsp + 0xb0]
mulsd xmm0, xmm7
addsd xmm0, xmm1
comisd xmm0, xmm6
jb 0x402a20
subsd xmm0, xmm6
cvttsd2si rax, xmm0
btc rax, 0x3f
cmp rax, qword [rsp + 0x48]
jb 0x402a30
movzx ecx, byte [rsp + 0xa7]
call sym.print_status_info_unsigned_char_
pxor xmm0, xmm0
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [rsp + 0xac]
cvtsi2sd xmm1, dword [rsp + 0xb0]
mulsd xmm0, xmm7
addsd xmm0, xmm1
addsd xmm0, xmm8
comisd xmm0, xmm6
jae 0x403030
cvttsd2si rax, xmm0
mov qword [rsp + 0x48], rax
jmp 0x402a30
mov ecx, 2
mov rbx, r13
call qword [dbg.__acrt_iob_func]
mov r8d, esi
lea rdx, str.Error:_parse_streamfile__:_Failed_to_read_next__d_bytes__aborting._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
cmp byte [0x007821c0], 0
jne 0x40331b
mov eax, dword [rsp + 0x98]
test eax, eax
js 0x402d07
mov ecx, eax
call sym.close
mov ecx, dword [rsp + 0x60]
call sym.close
cmp byte [rsp + 0xa7], 0
je 0x4032b0
pxor xmm6, xmm6
movsd xmm3, qword [0x00782058]
mov ecx, 2
movzx esi, word [0x00782064]
cvtss2sd xmm6, dword [0x00782050]
subsd xmm6, qword [0x004b6c20]
mulsd xmm6, qword [0x004b6c28]
addsd xmm6, qword [0x004b6c30]
movsd qword [rsp + 0x48], xmm3
call qword [dbg.__acrt_iob_func]
movsd xmm3, qword [rsp + 0x48]
mov r8d, esi
lea rdx, str._100.00____mode__u__frequency__10.03lf__temperature__.02f._n
mov rcx, rax
movsd qword [rsp + 0x20], xmm6
movq r9, xmm3
call sym.fprintf__iobuf__char_const__::_
mov esi, dword [0x00782060]
sub rbx, qword [0x00782088]
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r9, qword [rsp + 0x1c8]
mov r8, rbx
lea rdx, str._llu_samples_exported_to__s__skip__u._n
mov dword [rsp + 0x20], esi
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
nop
movups xmm6, xmmword [rsp + 0x110]
movups xmm7, xmmword [rsp + 0x120]
movups xmm8, xmmword [rsp + 0x130]
movups xmm9, xmmword [rsp + 0x140]
movups xmm10, xmmword [rsp + 0x150]
movups xmm11, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea rdx, str.Error:_parse_streamfile__:_could_not_read_first_7_bytes_from_file__aborting_n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x402dbc
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r8, qword [rsp + 0x1c8]
lea rdx, str.Could_not_open_output_csv_file__s._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x402dbc
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0x30], 1
mov edx, 0xffffffff
mov ecx, ebp
lea rax, [rsp + 0xa8]
lea r9, [rsp + 0xa7]
mov dword [rsp + 0x28], 3
mov r8, rax
mov dword [rsp + 0x20], 1
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x78], rax
call sym.go_to_readstart_position_and_get_first_lut_int__int__int__unsigned_char__int__int__int_
test eax, eax
js 0x402dbc
mov dword [rsp + 0x98], 0xffffffff
mov edi, 3
mov r15d, 1
mov byte [0x00782093], 0
mov dword [rsp + 0x54], 1
jmp 0x402963
test edi, edi
je 0x402b8d
movss xmm4, dword [rsp + 0xc3]
movss dword [rsp + 0xb4], xmm4
cmp edi, 1
je 0x4030b0
movss xmm5, dword [rsp + 0xc7]
movss dword [rsp + 0xb8], xmm5
cmp edi, 2
je 0x4030f8
cmp byte [0x00782094], 0
movzx eax, byte [0x00782096]
movups xmm10, xmm5
movups xmm9, xmm4
movss xmm11, dword [rsp + 0xcb]
movss dword [rsp + 0xbc], xmm11
je 0x403178
movups xmm1, xmm5
movups xmm0, xmm4
mulss xmm1, xmm5
mulss xmm0, xmm4
addss xmm0, xmm1
movups xmm1, xmm11
mulss xmm1, xmm11
addss xmm0, xmm1
test al, al
jne 0x40333f
pxor xmm4, xmm4
ucomiss xmm4, xmm0
ja 0x403420
sqrtss xmm0, xmm0
pxor xmm3, xmm3
pxor xmm2, xmm2
cvtss2sd xmm0, xmm0
cvtss2sd xmm11, xmm11
cvtss2sd xmm3, xmm10
cvtss2sd xmm2, xmm9
movsd qword [rsp + 0x28], xmm0
movq r9, xmm3
movsd qword [rsp + 0x20], xmm11
movq r8, xmm2
lea rdx, str._.03f_t_.03f_t_.03f_t_.03f
lea rcx, [0x007820e0]
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
mov ecx, dword [rsp + 0x60]
mov r8d, eax
mov rdx, r13
call sym.write
mov byte [0x007821c0], 0
jmp 0x402bdf
xor r8d, r8d
mov ecx, ebp
call sym.lseek
cmp eax, 0xffffffff
je 0x403250
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x20], edi
mov r9d, 1
mov ecx, ebp
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x28], eax
call sym.read_lut_int__int__unsigned_char__int__int__int_
test eax, eax
js 0x4033f6
movzx ecx, byte [rsp + 0xa7]
call sym.print_status_info_unsigned_char_
jmp 0x402c00
subsd xmm0, xmm6
cvttsd2si rax, xmm0
btc rax, 0x3f
mov qword [rsp + 0x48], rax
jmp 0x402a30
mov qword [rsp + 0x20], rdx
lea rcx, [0x007820e0]
lea rdx, str._s_t_s_t_s
call sym.sprintf_char__char_const__::_
cmp byte [0x00782093], 0
je 0x402b8d
lea rcx, [0x007820e0]
call sym.strlen
lea rcx, [0x007820e0]
mov r9d, r13d
mov r8d, dword [rsp + 0x64]
add rcx, rax
mov eax, dword [rsp + 0x58]
lea rdx, str._t_d_t_d_t_d
mov dword [rsp + 0x20], eax
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
pxor xmm2, xmm2
cmp byte [0x00782096], 0
cvtss2sd xmm2, dword [rsp + 0xb4]
je 0x4031f8
movzx r9d, byte [rsp + 0xc2]
movq r8, xmm2
lea rdx, str._.03f_t_d
lea rcx, [0x007820e0]
and r9d, 1
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
pxor xmm3, xmm3
pxor xmm2, xmm2
cmp byte [0x00782096], 0
cvtss2sd xmm3, dword [rsp + 0xb8]
cvtss2sd xmm2, dword [rsp + 0xb4]
je 0x4031d0
movzx eax, byte [rsp + 0xc2]
movq r9, xmm3
movq r8, xmm2
lea rdx, str._.03f_t_.03f_t_d
lea rcx, [0x007820e0]
and eax, 1
mov dword [rsp + 0x20], eax
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
mov qword [rsp + 0x20], rdx
lea rcx, [0x007820e0]
lea rdx, str._s_t_s_t_s_t_d
mov dword [rsp + 0x28], eax
call sym.sprintf_char__char_const__::_
jmp 0x402b80
pxor xmm3, xmm3
pxor xmm2, xmm2
cvtss2sd xmm11, xmm11
cvtss2sd xmm3, xmm5
cvtss2sd xmm2, xmm4
test al, al
je 0x4032f2
movzx eax, byte [rsp + 0xc2]
movq r9, xmm3
movsd qword [rsp + 0x20], xmm11
movq r8, xmm2
lea rdx, str._.03f_t_.03f_t_.03f_t_d
lea rcx, [0x007820e0]
and eax, 1
mov dword [rsp + 0x28], eax
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
movq r9, xmm3
movq r8, xmm2
lea rdx, str._.03f_t_.03f
lea rcx, [0x007820e0]
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
movq r8, xmm2
lea rdx, str._.03f
lea rcx, [0x007820e0]
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
mov eax, dword [rsp + 0x54]
mov r8, qword [rsp + 0x70]
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov rdx, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x98]
mov dword [rsp + 0x28], eax
call sym.read_lut_int__int__unsigned_char__int__int__int_
test eax, eax
jns 0x40301e
jmp 0x402ce8
mov r9, qword [0x007820b0]
mov ecx, 2
mov qword [rsp + 0x58], r9
call qword [dbg.__acrt_iob_func]
mov r9, qword [rsp + 0x58]
mov r8d, esi
lea rdx, str.Error:_parse_streamfile__:_could_not_set_read_position__d_bytes_back_to__llu_n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x402ff3
subsd xmm0, xmm6
mov ecx, dword [rsp + 0x54]
cvttsd2si rax, xmm0
btc rax, 0x3f
mov qword [rsp + 0x48], rax
test ecx, ecx
jne 0x402a01
lea esi, [rdi + rdi + 1]
jmp 0x402a08
movsd xmm3, qword [0x00782058]
movzx esi, word [0x00782064]
mov ecx, 2
movsd qword [rsp + 0x48], xmm3
call qword [dbg.__acrt_iob_func]
movsd xmm3, qword [rsp + 0x48]
mov r8d, esi
lea rdx, str._100.00____mode__u__frequency__10.03lf._n
mov rcx, rax
movq r9, xmm3
call sym.fprintf__iobuf__char_const__::_
jmp 0x402d85
movsd qword [rsp + 0x20], xmm11
movq r9, xmm3
movq r8, xmm2
lea rdx, str._.03f_t_.03f_t_.03f
lea rcx, [0x007820e0]
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
lea rcx, [0x007821c0]
call sym.strlen
mov ecx, dword [rsp + 0x60]
lea rdx, [0x007821c0]
mov r8d, eax
call sym.write
jmp 0x402cf5
movzx eax, byte [rsp + 0xc2]
pxor xmm4, xmm4
mov r13d, eax
and r13d, 1
ucomiss xmm4, xmm0
ja 0x40342a
sqrtss xmm0, xmm0
mov dword [rsp + 0x30], r13d
pxor xmm3, xmm3
pxor xmm2, xmm2
cvtss2sd xmm0, xmm0
cvtss2sd xmm3, xmm10
cvtss2sd xmm2, xmm9
cvtss2sd xmm11, xmm11
movsd qword [rsp + 0x28], xmm0
movsd qword [rsp + 0x20], xmm11
movq r9, xmm3
movq r8, xmm2
lea rdx, str._.03f_t_.03f_t_.03f_t_.03f_t_d
lea rcx, [0x007820e0]
call sym.sprintf_char__char_const__::_
jmp 0x402b8d
mov dword [rsp + 0xa8], 1
jmp 0x402e5a
test dil, 0xe
jne 0x40347c
mov eax, edi
sar dil, 4
mov dword [rsp + 0x54], 1
shr al, 6
and edi, 3
xor eax, 1
and eax, 1
mov dword [rsp + 0xa8], eax
jmp 0x4028cd
xor r15d, r15d
jmp 0x402eb9
mov rbx, r13
jmp 0x402ce8
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r8, r13
lea rdx, str.Could_not_open_lookup_table_binary_stream_file__s._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x402dbc
call dbg.sqrtf
jmp 0x402f76
call dbg.sqrtf
jmp 0x40335f
mov dword [rsp + 0x9c], eax
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x80], rdx
call dbg.sqrtf
mov eax, dword [rsp + 0x9c]
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
jmp 0x402b5a
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r8d, esi
lea rdx, str.Unknown_device_and_file_type__first_number:__d._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x402dbc