Function at 0x4019b0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rsp + 0x80], xmm7
mov ebx, dword [rsp + 0x108]
mov edi, dword [rsp + 0x100]
cmp ebx, 1
sbb rsi, rsi
and rsi, 0xfffffffffffffffa
mov r12, r8
mov r13d, ecx
mov rbp, rdx
add rsi, 0x21
cmp ebx, 1
lea r14, [rsp + 0x50]
mov dword [rsp + 0xf8], r9d
sbb r8d, r8d
xor r10d, r10d
and r8d, 0xfffffffa
mov word [0x00782072], r10w
add r8d, 0x21
mov dword [rsp + 0x3c], r8d
test r9d, r9d
je 0x401ac0
mov r8d, 1
mov rdx, r14
call sym.read
mov r15d, eax
cmp eax, 1
jne 0x402038
movzx eax, byte [rsp + 0x43]
cmp eax, 0xff
je 0x401ff4
mov r8d, 0x13
mov rdx, r14
mov ecx, r13d
call sym.read
mov dword [rsp + 0x3c], eax
cmp eax, 0x13
je 0x402021
mov ecx, 2
mov r14d, 0xffffffff
call qword [dbg.__acrt_iob_func]
lea rdx, str.Error_reading_status_bytes_of_next_LUT._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
nop
movups xmm6, xmmword [rsp + 0x70]
movups xmm7, xmmword [rsp + 0x80]
mov eax, r14d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r14
call sym.read
cmp dword [rsp + 0x3c], eax
jne 0x401a71
mov rax, qword [rsp + 0x50]
mov edx, 0xa
lea rcx, [rsp + 0x58]
mov qword [0x00782048], rax
mov eax, 0xa
movzx ecx, word [rcx]
add rdx, r14
xor r15d, r15d
mov word [0x00782072], cx
movzx ecx, byte [rdx]
test ebx, ebx
je 0x401f70
lea edx, [rax + 1]
mov byte [r12], cl
mov rax, rdx
add rdx, r14
movzx ecx, byte [rdx]
test r15d, r15d
je 0x401f58
movzx ecx, word [rdx]
pxor xmm0, xmm0
lea edx, [rax + 2]
add eax, 6
cvtss2sd xmm0, dword [rsp + rdx + 0x50]
mov edx, eax
mov word [0x00782064], cx
mov edx, dword [rsp + rdx + 0x50]
movsd qword [0x00782058], xmm0
mov dword [0x00782050], edx
lea edx, [rax + 4]
add r14, rdx
movzx edx, byte [r14]
test ebx, ebx
je 0x401bd8
lea ecx, [rax + 5]
add eax, 9
add rsi, qword [0x007820a8]
mov byte [0x00782070], dl
mov ecx, dword [rsp + rcx + 0x50]
mov eax, dword [rsp + rax + 0x50]
mov qword [0x007820a8], rsi
mov dword [0x0078206c], ecx
mov dword [0x00782060], eax
mov edx, dword [rsp + 0xf8]
test edx, edx
jne 0x401faa
lea rax, [rsi + 8]
cmp rax, qword [0x007820b8]
jb 0x401fc1
xor r8d, r8d
mov edx, esi
mov ecx, r13d
call sym.lseek
mov rbx, qword [0x007820a8]
cdqe
cmp rax, rbx
jne 0x402075
call sym.update_status_strings__
xor r14d, r14d
jmp 0x401a92
mov eax, dword [r14]
xor r15d, r15d
lea r12, [rsp + 0x43]
pxor xmm7, xmm7
mov byte [0x00782070], 0xff
mov dword [0x00782060], eax
lea eax, [rdi*4]
mov dword [rsp + 0x2c], eax
lea rax, [0x0054e040]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0xe0], r13d
add qword [0x007820a8], rsi
lea rsi, [0x0057e040]
nop dword [rax]
mov r8d, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0xe0]
mov rdx, r12
call sym.read
cmp eax, 0xffffffff
je 0x401f88
test edi, edi
jle 0x401d80
cmp edi, 3
jle 0x401dc0
mov r8d, dword [rbp]
movss xmm0, dword [rsp + 0x43]
test r8d, r8d
js 0x401e68
cvtss2sd xmm0, xmm0
mov eax, 1
movsd qword [rsi], xmm0
movsxd r8, eax
lea edx, [rax*4]
movsxd rcx, ebx
add eax, 1
shl r8, 0xe
movsxd r9, edx
pxor xmm0, xmm0
add r8, rcx
lea r11, [0x0057e040]
cvtss2sd xmm0, dword [rsp + r9 + 0x43]
movsd qword [r11 + r8*8], xmm0
movsxd r8, eax
lea r9d, [rdx + 4]
pxor xmm0, xmm0
shl r8, 0xe
movsxd r9, r9d
lea r10, [0x0057e040]
add r8, rcx
cvtss2sd xmm0, dword [rsp + r9 + 0x43]
movsd qword [r10 + r8*8], xmm0
lea r8d, [rax + 1]
cmp edi, r8d
jle 0x401d80
movsxd r8, r8d
lea r9d, [rdx + 8]
pxor xmm0, xmm0
shl r8, 0xe
movsxd r9, r9d
add r8, rcx
cvtss2sd xmm0, dword [rsp + r9 + 0x43]
movsd qword [r10 + r8*8], xmm0
lea r8d, [rax + 2]
cmp edi, r8d
jle 0x401d80
movsxd r8, r8d
lea r9d, [rdx + 0xc]
pxor xmm0, xmm0
shl r8, 0xe
movsxd r9, r9d
add r8, rcx
cvtss2sd xmm0, dword [rsp + r9 + 0x43]
movsd qword [r10 + r8*8], xmm0
lea r8d, [rax + 3]
cmp r8d, edi
jge 0x401d80
movsxd r8, r8d
lea r9d, [rdx + 0x10]
pxor xmm0, xmm0
add eax, 4
shl r8, 0xe
movsxd r9, r9d
add r8, rcx
cvtss2sd xmm0, dword [rsp + r9 + 0x43]
movsd qword [r10 + r8*8], xmm0
cmp edi, eax
jle 0x401d80
cdqe
add edx, 0x14
pxor xmm0, xmm0
shl rax, 0xe
movsxd rdx, edx
add rax, rcx
cvtss2sd xmm0, dword [rsp + rdx + 0x43]
movsd qword [r10 + rax*8], xmm0
nop dword [rax]
add ebx, 1
add qword [rsp + 0x20], 4
add r15, 0x1b
add rsi, 8
cmp ebx, 0x4000
jne 0x401c28
mov esi, edi
mov r13d, dword [rsp + 0xe0]
shl esi, 0x10
movsxd rsi, esi
add rsi, qword [0x007820a8]
mov qword [0x007820a8], rsi
jmp 0x401b87
mov r13, qword [rsp + 0x20]
lea rax, [0x0063e040]
mov qword [rsp + 0x30], rsi
xor r14d, r14d
lea rcx, [r15 + rax]
movsxd rax, edi
mov dword [rsp + 0x38], edi
mov rsi, r13
mov rdi, rcx
mov r13, rax
mov ecx, dword [rbp]
movss xmm6, dword [r12 + r14*4]
test ecx, ecx
js 0x401e50
pxor xmm2, xmm2
lea rdx, str._.03f
mov rcx, rdi
cvtss2sd xmm2, xmm6
movq r8, xmm2
call sym.sprintf_char__char_const__::_
cmp byte [0x00782094], 0
je 0x401e22
mulss xmm6, xmm6
movss dword [rsi], xmm6
add r14, 1
add rsi, 0x10000
add rdi, 0x6c000
cmp r14, r13
jne 0x401de8
mov rsi, qword [rsp + 0x30]
mov edi, dword [rsp + 0x38]
jmp 0x401d80
mov eax, ebx
or eax, r14d
jne 0x401df5
xor eax, eax
comiss xmm7, xmm6
seta al
mov dword [rbp], eax
jmp 0x401df5
test ebx, ebx
jne 0x401e7b
pxor xmm1, xmm1
xor eax, eax
comiss xmm1, xmm0
seta al
mov dword [rbp], eax
mov eax, dword [rbp]
cvtss2sd xmm0, xmm0
movsd qword [rsi], xmm0
movss xmm0, dword [rsp + 0x47]
test eax, eax
js 0x401eb0
cvtss2sd xmm0, xmm0
mov eax, 2
movsd qword [rsi + 0x20000], xmm0
jmp 0x401c76
cvtss2sd xmm0, xmm0
movsd qword [rsi + 0x20000], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rsp + 0x4b]
movsd qword [rsi + 0x40000], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rsp + 0x4f]
movsd qword [rsi + 0x60000], xmm0
cmp edi, 4
je 0x401d80
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rsp + 0x53]
movsd qword [rsi + 0x80000], xmm0
cmp edi, 5
je 0x401d80
pxor xmm0, xmm0
cvtss2sd xmm0, dword [rsp + 0x57]
movsd qword [rsi + 0xa0000], xmm0
cmp edi, 6
je 0x401d80
movsxd rcx, ebx
pxor xmm0, xmm0
lea rax, [0x0057e040]
cvtss2sd xmm0, dword [rsp + 0x5b]
movsd qword [rax + rcx*8 + 0xc0000], xmm0
cmp edi, 7
je 0x401d80
mov eax, 7
mov edx, 0x18
jmp 0x401ca8
lea edx, [rax + 1]
add eax, 9
movsd xmm0, qword [rsp + rdx + 0x50]
jmp 0x401b30
mov r9d, dword [rbp]
test r9d, r9d
sete byte [r12]
jmp 0x401b14
mov r14d, eax
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea rdx, str.read_lut:_error_while_read_in_of_new_lutE_table._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x401a92
mov eax, dword [rsp + 0x3c]
shl edi, 0x10
add eax, edi
cdqe
add qword [0x007820b0], rax
jmp 0x401bc6
lea rdx, [rsp + 0x43]
mov r8d, 8
mov ecx, r13d
call sym.read
cmp eax, 8
je 0x40205d
mov qword [0x007820a0], 0
mov rsi, qword [0x007820a8]
jmp 0x401ba7
mov r8d, 0xe
mov rdx, r14
mov ecx, r13d
call sym.read
mov dword [rsp + 0x3c], eax
cmp eax, 0xe
jne 0x401a71
mov esi, 0xe
mov rdx, r14
xor eax, eax
jmp 0x401af9
mov esi, 0x13
mov edx, 2
mov eax, 2
mov rcx, r14
jmp 0x401ae9
mov ecx, 2
mov r14d, 0xffffffff
call qword [dbg.__acrt_iob_func]
lea rdx, str.Error_reading_lut_flag_byte_of_next_LUT._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x401a92
mov rax, qword [rsp + 0x43]
mov rsi, qword [0x007820a8]
mov qword [0x007820a0], rax
jmp 0x401ba7
mov ecx, 2
mov r14d, 0xffffffff
call qword [dbg.__acrt_iob_func]
mov r8, rbx
lea rdx, str.read_lut:_failed_to_set_lutfile_read_pointer_back_to__llu._n
mov rcx, rax
call sym.fprintf__iobuf__char_const__::_
jmp 0x401a92