Function at 0x140216af0
Capabilities:
Read file on windows

Disassembly:
push rdi
push r13
push r14
sub rsp, 0x30
mov rdi, rcx
mov rcx, rdx
mov r14, rdx
xor r13d, r13d
call qword [sym.imp.MSVCR120.dll_fgetc]
cmp eax, 0xff
jne 0x140216deb
mov rcx, r14
call qword [sym.imp.MSVCR120.dll_fgetc]
cmp eax, 0xd8
jne 0x140216deb
cmp dword [rdi + 0x250], 0x14
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r15
jge 0x140216cfb
xor ebx, ebx
mov rcx, r14
call qword [sym.imp.MSVCR120.dll_fgetc]
mov esi, eax
cmp eax, 0xff
jne 0x140216b9a
cmp ebx, 6
jge 0x140216d29
inc ebx
cmp ebx, 7
jl 0x140216b53
movups xmm0, xmmword [str.too_many_padding_unsigned_chars_]
movups xmmword [rdi + 8], xmm0
movups xmm1, xmmword [0x14036b6b8]
movups xmmword [rdi + 0x18], xmm1
movzx eax, byte [0x14036b6c8]
mov byte [rdi + 0x28], al
jmp 0x140216d36
movsxd rax, dword [rdi + 0x250]
mov rcx, r14
add rax, rax
mov dword [rdi + rax*8 + reloc.mfc120u.dll_Ordinal_280], esi
call qword [sym.imp.MSVCR120.dll_fgetc]
mov rcx, r14
mov ebx, eax
call qword [sym.imp.MSVCR120.dll_fgetc]
mov ebp, ebx
shl ebp, 8
mov r12d, eax
or ebp, eax
cmp ebp, 2
jl 0x140216dbb
movsxd rcx, dword [rdi + 0x250]
add rcx, rcx
mov dword [rdi + rcx*8 + 0x11c], ebp
movsxd rcx, ebp
call qword [sym.imp.MSVCR120.dll_malloc]
mov r15, rax
test rax, rax
je 0x140216d93
movsxd rcx, dword [rdi + 0x250]
mov r9, r14
mov edx, 1
add rcx, 0x11
add rcx, rcx
mov qword [rdi + rcx*8], rax
mov byte [rax], bl
lea ebx, [rbp - 2]
lea rcx, [rax + 2]
movsxd r8, ebx
mov byte [rax + 1], r12b
call qword [sym.imp.MSVCR120.dll_fread]
cmp eax, ebx
jne 0x140216d68
inc dword [rdi + 0x250]
mov edx, dword [rdi + 0x250]
lea eax, [rsi - 0xc0]
cmp eax, 0x3e
ja case.0x140216c68.196
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0x216e14]
mov ecx, dword [r8 + rax*4 + 0x216df8]
add rcx, r8
jmp rcx
test r13d, r13d
je 0x140216ca4
lea eax, [rdx - 1]
movsxd rcx, eax
mov dword [rdi + 0x250], eax
add rcx, 0x11
add rcx, rcx
mov rcx, qword [rdi + rcx*8]
call qword [sym.imp.MSVCR120.dll_free]
movsxd rax, dword [rdi + 0x250]
add rax, 0x11
add rax, rax
mov qword [rdi + rax*8], 0
jmp case.0x140216c68.196
mov r8d, ebp
mov rdx, r15
mov rcx, rdi
call fcn.140217a10
mov r13d, 1
jmp case.0x140216c68.196
mov eax, dword [r15 + 2]
cmp eax, dword [0x1403383ac]
jne case.0x140216c68.224
lea rdx, [r15 + 2]
mov r8d, ebp
mov rcx, rdi
call fcn.140217af0
mov rcx, qword [rdi]
mov byte [rcx + 0x4bc], al
jmp case.0x140216c68.196
mov r8d, esi
mov rdx, r15
mov rcx, rdi
call sym.NitroFree.exe_protected:_void___cdecl_CxImageJPG::CxExifInfo::process_SOFn_unsigned_char_const____ptr64__int____ptr64
cmp dword [rdi + 0x250], 0x14
jl 0x140216b51
movups xmm0, xmmword [str.Too_many_sections_in_jpg_file]
movups xmmword [rdi + 8], xmm0
movsd xmm1, qword [0x1403382b8]
movsd qword [rdi + 0x18], xmm1
mov eax, dword [0x1403382c0]
mov dword [rdi + 0x20], eax
movzx eax, word [0x1403382c4]
mov word [rdi + 0x24], ax
jmp 0x140216d36
lea rcx, str.too_many_padding_unsigned_chars_n
call qword [sym.imp.MSVCR120.dll_printf]
xor al, al
mov r12, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x20]
add rsp, 0x30
pop r14
pop r13
pop rdi
ret
mov al, 1
jmp 0x140216d38
lea rcx, str.No_image_in_jpeg__n
jmp 0x140216d30
movups xmm0, xmmword [str.Premature_end_of_file_]
movups xmmword [rdi + 8], xmm0
mov eax, dword [0x140338338]
mov dword [rdi + 0x18], eax
movzx eax, word [0x14033833c]
mov word [rdi + 0x1c], ax
movzx eax, byte [0x14033833e]
mov byte [rdi + 0x1e], al
jmp 0x140216d36
movups xmm0, xmmword [str.Could_not_allocate_memory]
movups xmmword [rdi + 8], xmm0
movsd xmm1, qword [0x140338318]
movsd qword [rdi + 0x18], xmm1
movzx eax, word [0x140338320]
mov word [rdi + 0x20], ax
jmp 0x140216d36
movsd xmm0, qword [str.invalid_marker]
movsd qword [rdi + 8], xmm0
mov eax, dword [0x140338300]
mov dword [rdi + 0x10], eax
movzx eax, word [0x140338304]
mov word [rdi + 0x14], ax
movzx eax, byte [0x140338306]
mov byte [rdi + 0x16], al
jmp 0x140216d36
xor al, al
add rsp, 0x30
pop r14
pop r13
pop rdi
ret