Function at 0x140002650
Capabilities:
Check if file exists
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
sub rsp, 0x40
mov rax, qword [0x14004e060]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rcx, rdx
mov rbx, rdx
xor ebp, ebp
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400026cb
lea rbx, str.D:WorkMyASUSAbout_AsusOLEDShifterReleaseAsusOLEDShifterAsusOLEDShifterAsusOLEDShifterExifDecoder.cpp
mov rcx, rbx
lea edx, [rbp + 0x5c]
call fcn.14001275c
test rax, rax
je 0x1400026a1
lea edx, [rbp + 0x5c]
mov rcx, rbx
call fcn.14001275c
lea rbx, [rax + 1]
mov r9d, 2
lea rax, str.File_not_exist.
lea r8, str.GetOrientation
mov qword [rsp + 0x20], rax
mov rcx, rbx
lea edx, [r9 + 0x20]
call fcn.140005160
jmp 0x140002959
lea r8, [0x1400458c0]
mov qword [rsp + 0x60], rdi
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140017d08
mov edi, eax
test eax, eax
je 0x140002742
lea rbx, str.D:WorkMyASUSAbout_AsusOLEDShifterReleaseAsusOLEDShifterAsusOLEDShifterAsusOLEDShifterExifDecoder.cpp
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
test rax, rax
je 0x140002714
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
lea rbx, [rax + 1]
mov r9d, 2
mov dword [rsp + 0x28], edi
lea rax, str.Cant_open_file._errno_t_code___d
mov rcx, rbx
lea r8, str.GetOrientation
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x29]
call fcn.140005160
jmp 0x140002954
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14000294f
xor edx, edx
mov qword [rsp + 0x50], rsi
lea r8d, [rdx + 2]
call fcn.140018208
mov rcx, qword [rsp + 0x30]
call fcn.140017ba4
mov rcx, qword [rsp + 0x30]
mov edi, eax
call fcn.14001838c
mov ecx, edi
call fcn.140010a00
mov r9, qword [rsp + 0x30]
mov r8d, edi
mov edx, 1
mov rcx, rax
mov rsi, rax
call fcn.140018678
cmp rax, rdi
je 0x1400027ee
lea rbx, str.D:WorkMyASUSAbout_AsusOLEDShifterReleaseAsusOLEDShifterAsusOLEDShifterAsusOLEDShifterExifDecoder.cpp
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
test rax, rax
je 0x1400027c4
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
lea rbx, [rax + 1]
mov r9d, 2
lea rax, str.Cant_read_file.
lea r8, str.GetOrientation
mov qword [rsp + 0x20], rax
mov rcx, rbx
lea edx, [r9 + 0x37]
call fcn.140005160
jmp 0x14000293d
cmp byte [rsi], 0xff
jne 0x1400028e5
cmp byte [rsi + 1], 0xd8
jne 0x1400028e5
cmp edi, 2
jbe 0x14000281f
lea edx, [rdi - 1]
cmp byte [rdx + rsi], 0xd9
jne 0x140002818
lea eax, [rdi - 2]
cmp byte [rax + rsi], 0xff
je 0x14000281f
mov edi, edx
cmp edx, 2
ja 0x140002806
cmp byte [rsi + 2], 0xff
jne 0x1400028de
cmp byte [rsi + 3], 0xe1
jne 0x1400028de
lea rdx, [rsi + 6]
lea r8d, [rdi - 6]
test rdx, rdx
je 0x14000287a
cmp r8d, 6
jb 0x14000287a
cmp byte [rdx], 0x45
jne 0x14000287a
cmp byte [rdx + 1], 0x78
jne 0x14000287a
cmp byte [rdx + 2], 0x69
jne 0x14000287a
cmp byte [rdx + 3], 0x66
jne 0x14000287a
cmp byte [rdx + 4], bpl
jne 0x14000287a
cmp byte [rdx + 5], bpl
jne 0x14000287a
add r8d, 0xfffffffa
add rdx, 6
call fcn.140002980
mov edi, eax
jmp 0x14000287f
mov edi, 0xfa2
lea eax, [rdi - 1]
cmp eax, 7
ja 0x1400028ea
lea rbx, str.D:WorkMyASUSAbout_AsusOLEDShifterReleaseAsusOLEDShifterAsusOLEDShifterAsusOLEDShifterExifDecoder.cpp
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
test rax, rax
je 0x1400028b1
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
lea rbx, [rax + 1]
mov r9d, 1
mov dword [rsp + 0x28], edi
lea rax, str.orientation___d.
mov rcx, rbx
lea r8, str.GetOrientation
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x44]
call fcn.140005160
mov ebp, edi
jmp 0x14000293d
mov edi, 0xfa2
jmp 0x1400028ea
mov edi, 0xfa1
lea rbx, str.D:WorkMyASUSAbout_AsusOLEDShifterReleaseAsusOLEDShifterAsusOLEDShifterAsusOLEDShifterExifDecoder.cpp
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
test rax, rax
je 0x140002914
mov edx, 0x5c
mov rcx, rbx
call fcn.14001275c
lea rbx, [rax + 1]
mov r9d, 2
mov dword [rsp + 0x28], edi
lea rax, str.Parsing_EXIF_error_code___d.
mov rcx, rbx
lea r8, str.GetOrientation
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x48]
call fcn.140005160
mov rcx, rsi
call fcn.140010990
mov rcx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x50]
call fcn.140017e88
mov rdi, qword [rsp + 0x60]
mov eax, ebp
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140010720
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop rbp
ret