Function at 0x140014750
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x520]
sub rsp, 0x620
mov rax, qword [0x140092028]
xor rax, rsp
mov qword [rbp + 0x510], rax
mov rax, qword [rdx]
xor edi, edi
mov qword [rsp + 0x40], rdx
mov r14, rdx
mov dword [rsp + 0x30], ecx
mov esi, ecx
mov qword [rsp + 0x48], rdi
mov ebx, edi
mov dword [rsp + 0x38], edi
mov r13d, edi
mov dword [rsp + 0x34], edi
mov qword [0x140092a78], rax
test rax, rax
je 0x1400147b0
cmp byte [rax], bl
jne 0x1400147be
lea rax, str.jpegtran
mov qword [0x140092a78], rax
lea rcx, [rbp + 0x3b0]
call fcn.1400198d0
mov edx, 0x3e
mov qword [rbp + 0x150], rax
mov r8d, 0x258
lea rcx, [rbp + 0x150]
call fcn.14001a070
lea rcx, [rbp + 0x460]
call fcn.1400198d0
mov edx, 0x3e
mov qword [rsp + 0x50], rax
mov r8d, 0x1f8
lea rcx, [rsp + 0x50]
call fcn.140019a20
xor r9d, r9d
mov byte [rsp + 0x20], bl
mov r8, r14
lea rcx, [rsp + 0x50]
mov edx, esi
call fcn.140014e90
movsxd r12, eax
mov eax, dword [rbp + 0x4dc]
mov dword [rbp + 0x42c], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 0x58]
mov rax, qword [rbp + 0x158]
mov dword [rax + 0x58], ecx
lea eax, [rsi - 1]
cmp r12d, eax
jge 0x140014873
mov ecx, 2
call fcn.140034bb4
mov r8, qword [0x140092a78]
lea rdx, str._s:_only_one_input_file_n
mov rcx, rax
call fcn.140014700
call fcn.140015900
int3
cmp r12d, esi
jge 0x1400148bf
mov rcx, qword [r14 + r12*8]
lea rsi, [r14 + r12*8]
lea rdx, [0x14004ef14]
call fcn.140034e0c
mov r14, rax
test rax, rax
jne 0x1400148c7
lea ecx, [rax + 2]
call fcn.140034bb4
mov r9, qword [rsi]
lea rdx, str._s:_cant_open__s_for_reading_n
mov r8, qword [0x140092a78]
mov rcx, rax
call fcn.140014700
lea ecx, [r14 + 1]
call fcn.140034a88
int3
call fcn.140015c70
mov r14, rax
mov rcx, qword [0x140092a80]
mov qword [rsp + 0x670], r15
test rcx, rcx
je 0x140014a1d
lea rdx, [0x14004ef14]
call fcn.140034e0c
mov rsi, rax
test rax, rax
jne 0x140014921
lea ecx, [rax + 2]
call fcn.140034bb4
mov r9, qword [0x140092a80]
lea rdx, str._s:_cant_open__s_n
mov r8, qword [0x140092a78]
mov rcx, rax
call fcn.140014700
lea ecx, [rsi + 1]
call fcn.140034a88
int3
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 2]
call fcn.140035348
test eax, eax
js 0x140014a4f
mov rcx, rsi
call fcn.140035844
movsxd r15, eax
mov dword [rsp + 0x34], r15d
cmp r15d, 1
jl 0x140014a4f
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.140035348
test eax, eax
js 0x140014a4f
mov rcx, r15
call fcn.14003479c
mov r13, rax
test rax, rax
jne 0x1400149a6
lea ecx, [rax + 2]
call fcn.140034bb4
mov r8, qword [0x140092a78]
lea rdx, str._s:_cant_allocate_memory_for_ICC_profile_n
mov rcx, rax
call fcn.140014700
mov rcx, rsi
call fcn.140034cc0
lea ecx, [r13 + 1]
call fcn.140034a88
int3
mov r9, rsi
mov r8d, 1
mov rdx, r15
mov rcx, r13
call fcn.140035078
cmp rax, 1
jae 0x140014a02
mov ecx, 2
call fcn.140034bb4
mov r9, qword [0x140092a80]
lea rdx, str._s:_cant_read_ICC_profile_from__s_n
mov r8, qword [0x140092a78]
mov rcx, rax
call fcn.140014700
mov rcx, r13
call fcn.140034788
mov rcx, rsi
call fcn.140034cc0
mov ecx, 1
call fcn.140034a88
int3
mov rcx, rsi
call fcn.140034cc0
cmp dword [0x140092a90], 2
jne 0x140014a1d
mov dword [0x140092a90], 3
mov edx, 0xe9918625
lea rcx, [rsp + 0x50]
call fcn.14001d6e0
test al, al
je 0x140014a81
mov edx, 0xe9918625
lea rcx, [rsp + 0x50]
call fcn.14001d630
cmp eax, 0x5d083aad
jne 0x140014a81
mov byte [0x140092a70], 1
jmp 0x140014a8d
mov ecx, 2
call fcn.140034bb4
mov r9, qword [0x140092a80]
lea rdx, str._s:_cant_determine_size_of__s_n
mov r8, qword [0x140092a78]
mov rcx, rax
call fcn.140014700
mov ecx, 1
call fcn.140034a88
int3
cmp byte [0x140092a70], bl
je 0x140014b88
mov r15, r12
movsxd r12, dword [rsp + 0x30]
nop word [rax + rax]
lea edx, [rbx + 0x1000]
mov rcx, rdi
call fcn.1400347a4
mov rdi, rax
test rax, rax
je 0x140014b5d
mov ecx, ebx
mov r9, r14
add rcx, rax
mov edx, 1
mov r8d, 0x1000
call fcn.140035078
mov rsi, rax
cmp rax, 0x1000
jae 0x140014ae9
mov rcx, r14
call fcn.140034d24
test eax, eax
jne 0x140014b0b
add ebx, esi
cmp rsi, 0x1000
je 0x140014aa0
mov r8d, ebx
lea rcx, [rbp + 0x150]
mov rdx, rdi
call fcn.14001a9c0
jmp 0x140014b97
mov ecx, 2
call fcn.140034bb4
mov r8, qword [0x140092a78]
mov rcx, rax
cmp r15, r12
jge 0x140014b3b
mov r9, qword [rsp + 0x40]
lea rdx, str._s:_cant_read_from__s_n
mov r9, qword [r9 + r15*8]
call fcn.140014700
jmp 0x140014b47
lea rdx, str._s:_cant_read_from_stdin_n
call fcn.140014700
add ebx, esi
lea rcx, [rbp + 0x150]
mov r8d, ebx
mov rdx, rdi
call fcn.14001a9c0
jmp 0x140014b97
mov ecx, 2
call fcn.140034bb4
mov r8, qword [0x140092a78]
lea rdx, str._s:_memory_allocation_failure_n
mov rcx, rax
call fcn.140014700
mov ecx, 1
call fcn.140034a88
int3
mov rdx, r14
lea rcx, [rbp + 0x150]
call fcn.14001aa90
mov edx, dword [0x140092a90]
lea rcx, [rbp + 0x150]
call fcn.140018a30
mov dl, 1
lea rcx, [rbp + 0x150]
call fcn.14001a2b0
lea rdx, [0x140092aa0]
lea rcx, [rbp + 0x150]
call fcn.1400192d0
test al, al
jne 0x140014bf9
mov ecx, 2
call fcn.140034bb4
mov r8, qword [0x140092a78]
lea rdx, str._s:_transformation_is_not_perfect_n
mov rcx, rax
call fcn.140014700
mov ecx, 1
call fcn.140034a88
int3
lea rcx, [rbp + 0x150]
call fcn.14001cc50
lea rdx, [rsp + 0x50]
mov r12, rax
lea rcx, [rbp + 0x150]
call fcn.14001d120
lea r9, [0x140092aa0]
mov r8, r12
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x150]
call fcn.140018b20
xor ecx, ecx
mov r15, rax
call fcn.140034bb4
cmp r14, rax
je 0x140014c4b
mov rcx, r14
call fcn.140034cc0
mov rcx, qword [0x140092a88]
test rcx, rcx
je 0x140014c99
lea rdx, [0x14004f044]
call fcn.140034e0c
mov rsi, rax
test rax, rax
jne 0x140014ca1
lea ecx, [rax + 2]
call fcn.140034bb4
mov r9, qword [0x140092a88]
lea rdx, str._s:_cant_open__s_for_writing_n
mov r8, qword [0x140092a78]
mov rcx, rax
call fcn.140014700
lea ecx, [rsi + 1]
call fcn.140034a88
int3
call fcn.140015cb0
mov rsi, rax
mov r8, qword [rsp + 0x40]
lea rcx, [rsp + 0x50]
mov edx, dword [rsp + 0x30]
xor r9d, r9d
mov byte [rsp + 0x20], 1
call fcn.140014e90
mov edx, 0xe9918625
movsxd r14, eax
lea rcx, [rsp + 0x50]
call fcn.14001d6e0
test al, al
je 0x140014cfe
mov edx, 0xe9918625
lea rcx, [rsp + 0x50]
call fcn.14001d630
cmp eax, 0x5d083aad
jne 0x140014cfe
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.14001a570
jmp 0x140014d0b
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.14001a7b0
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.14001d3e0
mov r8d, dword [0x140092a90]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x150]
call fcn.140018970
test r13, r13
je 0x140014d47
mov r8d, dword [rsp + 0x34]
lea rcx, [rsp + 0x50]
mov rdx, r13
call fcn.14001cab0
lea r9, [0x140092aa0]
mov r8, r12
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x150]
call fcn.140018d50
lea rcx, [rsp + 0x50]
call fcn.140019b90
mov edx, 0xe9918625
lea rcx, [rsp + 0x50]
call fcn.14001d6e0
test al, al
je 0x140014e15
mov edx, 0xe9918625
lea rcx, [rsp + 0x50]
call fcn.14001d630
cmp eax, 0x5d083aad
jne 0x140014e15
cmp byte [0x140092a71], 0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
je 0x140014db4
cmp ebx, eax
jae 0x140014db4
mov eax, ebx
mov rcx, rdi
mov r9, rsi
mov r8d, eax
mov edx, 1
mov ebx, eax
call fcn.140035a9c
cmp rax, rbx
jae 0x140014e15
mov rcx, rsi
call fcn.140034d24
test eax, eax
je 0x140014e15
mov ecx, 2
call fcn.140034bb4
mov rcx, rax
mov r8, qword [0x140092a78]
cmp r14d, dword [rsp + 0x30]
jge 0x140014e09
mov rax, qword [rsp + 0x40]
lea rdx, str._s:_cant_write_to__s_n
mov r9, qword [rax + r14*8]
call fcn.140014700
jmp 0x140014e15
lea rdx, str._s:_cant_write_to_stdout_n
call fcn.140014700
lea rcx, [rsp + 0x50]
call fcn.140019b80
lea rcx, [rbp + 0x150]
call fcn.14001a1e0
lea rcx, [rbp + 0x150]
call fcn.140019b80
mov ecx, 1
call fcn.140034bb4
cmp rsi, rax
je 0x140014e4e
mov rcx, rsi
call fcn.140034cc0
mov rcx, rdi
call fcn.140034788
mov rcx, qword [rsp + 0x48]
call fcn.140034788
mov rcx, r13
call fcn.140034788
mov ecx, dword [rbp + 0x430]
add ecx, dword [rbp + 0x4e0]
neg ecx
sbb ecx, ecx
and ecx, 2
call fcn.140034a88
int3