Function at 0x180122f80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov r12b, dl
mov r13, rcx
mov r10d, 1
mov r9d, r10d
mov rbx, qword [rcx + 0x1b0]
mov qword [rax - 0x70], rbx
xor edi, edi
cmp dword [rbx + 0x54], edi
je 0x1801239f9
lea r14, [rcx + 0x30]
mov qword [rax - 0x58], r14
movzx r8d, word [r14 + 0x28]
lea rsi, str.OJPEGSetupDecode
cmp r8d, dword [rbx + 0x160]
je 0x180122ff4
lea rdx, str._u_BitsPerSample_not_allowed_for_JPEG
mov rcx, rsi
call fcn.1801200f8
mov r9d, edi
lea r10d, [rdi + 1]
test r12b, r12b
je 0x180123017
mov rax, qword [rbx + 0x468]
mov qword [rbx + 0x5a8], rax
mov rax, qword [rbx + 0x470]
mov qword [rbx + 0x5b0], rax
jmp 0x180123033
mov rax, qword [rbx + 0x5a8]
mov qword [rbx + 0x468], rax
mov rax, qword [rbx + 0x5b0]
mov qword [rbx + 0x470], rax
mov qword [rbx + 0x5b8], rdi
mov qword [rbx + 0x5c0], rdi
movzx r8d, word [r14 + 0x2e]
mov ecx, r8d
sub ecx, 1
je 0x18012313e
sub ecx, 1
je 0x18012312a
sub ecx, 3
je 0x18012311a
sub ecx, 1
je 0x180123084
lea rdx, str.PhotometricInterpretation__u_not_allowed_for_JPEG
mov rcx, rsi
call fcn.1801200f8
mov r9d, edi
mov edi, dword [rsp + 0x24]
jmp 0x180123146
movzx eax, word [r14 + 0x6c]
mov cl, al
mov edx, 2
lea r15d, [rdx + 2]
cmp ax, r10w
je 0x1801230a5
cmp ax, dx
je 0x1801230a5
cmp ax, r15w
jne 0x1801230bc
mov al, cl
cmp word [r14 + 0x6e], r10w
je 0x1801230d6
cmp word [r14 + 0x6e], dx
je 0x1801230d6
cmp word [r14 + 0x6e], r15w
je 0x1801230d6
lea rdx, str.invalid_YCbCr_subsampling_factor_s_
mov rcx, rsi
call fcn.1801200f8
mov r9d, edi
mov r10d, 1
jmp 0x1801230f8
cmp byte [rbx + 0x542], r10b
jne 0x1801239f9
test r12b, r12b
je 0x1801230f8
mov byte [rbx + 0x540], al
mov al, byte [r14 + 0x6e]
mov byte [rbx + 0x541], al
mov edi, 3
mov dword [rsp + 0x24], edi
xor eax, eax
cmp byte [rbx + 0x542], r10b
setne al
lea r10d, [rdi - 1]
add eax, r10d
mov dword [rsp + 0x34], eax
jmp 0x180123152
mov r15d, 4
mov edi, r15d
mov dword [rsp + 0x24], r15d
jmp 0x18012314c
mov r10d, 2
mov edi, r10d
mov dword [rsp + 0x24], r10d
lea r15d, [r10 + 2]
jmp 0x180123152
mov edi, r10d
mov dword [rsp + 0x24], r10d
mov r15d, 4
mov r10d, 2
test r9d, r9d
je 0x1801239f9
mov eax, 6
cmp ax, word [r14 + 0x2e]
je 0x180123177
test r12b, r12b
je 0x180123173
mov byte [rbx + 0x542], 0
mov dword [rsp + 0x34], edi
lea rax, [rbx + 0x460]
mov qword [rbx + 0x58], rax
lea rax, [0x180124d60]
mov qword [rbx + 0x480], rax
lea rax, [0x1800776c0]
mov qword [rbx + 0x488], rax
lea rax, [0x180124da0]
mov qword [rbx + 0x490], rax
mov eax, dword [rbx + 0x520]
xor r12d, r12d
test eax, eax
jne 0x1801231c4
test byte [r13 + 0x38], 8
lea r9d, [rax + 1]
jne 0x1801231c7
mov r9d, r12d
mov r8d, dword [r14 + 0x10]
mov dword [rsp + 0x30], r8d
test dword [r13 + 0x10], 0x400
je 0x180123231
test eax, eax
je 0x1801231f2
lea rdx, str.Tiled_Wang_image_not_supported
mov rcx, rsi
call fcn.1801200f8
jmp 0x1801239f9
test r9d, r9d
jne 0x18012323a
test r8b, 7
je 0x180123231
mov al, byte [rbx + 0x540]
test al, al
je 0x180123229
movzx ecx, al
xor edx, edx
mov eax, r8d
div ecx
test edx, edx
je 0x180123231
sub ecx, edx
lea eax, [rcx + r8]
cmp eax, r8d
jb 0x180123229
mov r8d, eax
mov dword [rsp + 0x30], eax
jmp 0x180123231
mov r8d, r12d
mov dword [rsp + 0x30], r12d
test r9d, r9d
je 0x180123515
mov rdx, qword [rbx + 0x468]
mov qword [rbx + 0x518], rdx
mov r9, qword [r13 + 0x200]
cmp r9, rdx
ja 0x18012333a
mov rcx, qword [rbx + 0x470]
add rcx, rdx
or rdi, 0xffffffffffffffff
mov r8, rdi
cmp rcx, rdx
cmovae r8, rcx
mov qword [rsp + 0x50], r8
jb 0x18012333a
mov ecx, dword [r13 + 0x208]
add rcx, r9
mov rax, rdi
cmp rcx, r9
cmovae rax, rcx
mov qword [rsp + 0x58], rax
jb 0x18012333a
cmp r8, rax
ja 0x18012333a
add rdx, r10
jmp 0x1801232f4
cmp byte [rdx], 0xff
jne 0x1801232fd
mov al, byte [rdx + 1]
mov cl, al
cmp al, 0xc0
jb 0x1801232fd
cmp al, 0xc7
jbe 0x1801232d6
cmp al, 0xc8
jbe 0x1801232fd
cmp al, 0xcf
jbe 0x1801232d6
cmp al, 0xdb
je 0x1801232d6
cmp al, 0xdd
je 0x1801232d6
cmp al, 0xde
jbe 0x1801232fd
cmp al, 0xef
jbe 0x1801232d6
cmp al, 0xfe
jne 0x1801232fd
lea rax, [rdx + 3]
cmp rax, r8
jae 0x18012332b
movzx ecx, byte [rdx + 2]
shl rcx, 8
movzx eax, byte [rax]
or rcx, rax
add rdx, 2
add rdx, rcx
lea rax, [rdx + 1]
cmp rax, r8
jb 0x1801232a8
mov rcx, qword [rbx + 0x518]
mov rax, rdx
sub rax, rcx
cmp rax, r10
jle 0x1801233b5
cmp rdx, r8
jbe 0x180123346
mov qword [rbx + 0x518], r12
lea rdx, str.too_much_jpegtable_data
jmp 0x1801231e5
lea rdx, str.bad_jpeg_table_data
mov rcx, rsi
call fcn.1801200f8
mov qword [rbx + 0x518], r12
jmp 0x1801239f9
sub edx, ecx
lea eax, [rdx + 2]
mov dword [rbx + 0x524], eax
mov r14, qword [rbx + 0x518]
movsxd rcx, eax
call qword [sym.imp.msvcrt.dll_malloc]
mov rcx, rax
mov qword [rbx + 0x518], rax
test rax, rax
jne 0x18012337c
lea rdx, str.No_space_for_JPEGTables
jmp 0x1801231e5
mov eax, dword [rbx + 0x524]
mov r12d, 2
sub eax, r12d
movsxd r8, eax
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov eax, dword [rbx + 0x524]
add rax, qword [rbx + 0x518]
mov word [rax - 2], 0xd9ff
or dword [r13 + 0x38], 0x40
or dword [r13 + 0x10], 8
jmp 0x1801233c2
mov qword [rbx + 0x518], r12
mov r12d, 2
xor r14d, r14d
mov dword [rsp + 0x38], r14d
lea rcx, [rbx + 0x360]
mov rdx, rsp
call sub.msvcrt.dll__setjmp
mov rbx, qword [rsp + 0x28]
lea r13d, [r14 + 1]
test eax, eax
jne 0x1801233f3
mov edx, r13d
mov rcx, rbx
call fcn.18003c2f0
mov edi, eax
mov dword [rsp + 0x38], edi
cmp edi, r13d
jne 0x1801239f9
mov eax, dword [rsp + 0x30]
cmp dword [rbx + 0x60], eax
jne 0x180123502
mov rdx, qword [rsp + 0x40]
mov eax, dword [rdx + 0x14]
cmp dword [rbx + 0x64], eax
jne 0x180123502
movzx eax, word [rdx + 0x34]
cmp dword [rbx + 0x68], eax
je 0x180123433
lea rdx, str.Improper_JPEG_component_count
jmp 0x1801231e5
cmp dword [rbx + 0x68], r15d
jbe 0x180123445
lea rdx, str.Too_many_JPEG_components
jmp 0x1801231e5
movzx eax, word [rdx + 0x28]
cmp dword [rbx + 0x160], eax
je 0x18012345d
lea rdx, str.Improper_JPEG_data_precision
jmp 0x1801231e5
mov r8d, r14d
movzx r9d, byte [rbx + 0x540]
shl r9d, 3
movzx eax, byte [rbx + 0x541]
or r9d, eax
mov edi, 0xfffffffc
mov eax, r8d
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x168]
mov r10d, dword [rcx + rax + 8]
mov r11d, dword [rcx + rax + 0xc]
mov eax, r10d
shl eax, 3
or eax, r11d
cmp eax, r9d
je 0x1801234e1
test r8d, r8d
jne 0x1801234f6
lea eax, [r10 - 1]
test edi, eax
jne 0x1801234f6
cmp r10d, 3
je 0x1801234f6
lea eax, [r11 - 1]
test edi, eax
jne 0x1801234f6
cmp r11d, 3
je 0x1801234f6
movzx eax, r10b
mov byte [rbx + 0x540], al
mov word [rdx + 0x6c], ax
movzx eax, r11b
mov byte [rbx + 0x541], al
mov word [rdx + 0x6e], ax
mov r8d, r14d
inc r8d
cmp r8d, dword [rbx + 0x68]
jae 0x180123940
mov r9d, 9
jmp 0x18012347b
lea rdx, str.Improper_JPEG_subsampling_factors
jmp 0x1801231e5
lea rdx, str.Improper_JPEG_strip_tile_size
jmp 0x1801231e5
mov rax, qword [rbx + 0x2c0]
mov r13d, 1
mov dword [rax + 4], r13d
mov rax, qword [rbx + 0x2c0]
mov dword [rax + 8], r13d
mov ecx, r12d
cmp dword [rbx + 0x520], r12d
sete cl
mov rax, qword [rbx + 0x2c0]
mov dword [rax], ecx
mov dword [rbx + 0x54], 0xc9
mov dword [rbx + 0x280], 0x3f
mov dword [rbx + 0x60], r8d
mov eax, dword [r14 + 0x14]
mov dword [rbx + 0x64], eax
movzx eax, word [r14 + 0x34]
mov dword [rbx + 0x68], eax
mov ecx, eax
lea eax, [r13 + 0x67]
mul rcx
mov qword [rsp + 0x60], rdx
mov rsi, rax
test rdx, rdx
jne 0x1801239f9
mov qword [rsp + 0x68], rax
mov r8, rax
mov edx, r13d
mov rcx, rbx
call fcn.18003ffd4
mov qword [rbx + 0x168], rax
test rax, rax
je 0x1801239f9
movsxd r8, esi
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov r8d, r12d
mov edx, r8d
imul rcx, rdx, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 4], r8d
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0x30], r13d
add rcx, qword [rbx + 0x168]
mov qword [rbx + rdx*8 + 0x1f0], rcx
add r8d, r13d
mov dword [rsp + 0x20], r8d
mov ecx, dword [rbx + 0x68]
cmp r8d, ecx
jb 0x1801235b8
test edi, edi
je 0x1801237cd
sub edi, 1
je 0x1801237a2
sub edi, 1
je 0x18012373e
sub edi, 1
je 0x18012369a
cmp edi, 1
jne 0x180123804
cmp ecx, r15d
jb 0x1801239f9
mov rax, qword [rbx + 0x168]
mov dword [rax], 0x43
mov rax, qword [rbx + 0x168]
mov dword [rax + 0x68], 0x4d
mov rax, qword [rbx + 0x168]
mov dword [rax + 0xd0], 0x59
mov rax, qword [rbx + 0x168]
mov dword [rax + 0x138], 0x4b
mov edx, r12d
mov eax, edx
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 8], r13d
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0xc], r13d
add edx, r13d
mov dword [rsp + 0x20], edx
cmp edx, dword [rbx + 0x68]
jb 0x18012366b
jmp 0x180123804
cmp ecx, r13d
jb 0x1801239f9
mov r9d, r12d
mov r8d, r9d
imul rdx, r8, 0x68
lea ecx, [r9 + 1]
mov rax, qword [rbx + 0x168]
mov dword [rdx + rax], ecx
mov rax, qword [rbx + 0x168]
mov dword [rdx + rax + 8], r13d
mov rax, qword [rbx + 0x168]
mov dword [rdx + rax + 0xc], r13d
mov edx, r12d
test r9d, r9d
setne dl
imul rcx, r8, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0x10], edx
imul rcx, r8, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0x14], edx
imul rcx, r8, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0x18], edx
inc r9d
mov dword [rsp + 0x20], r9d
cmp r9d, dword [rbx + 0x68]
jb 0x1801236a6
movzx ecx, byte [rbx + 0x540]
mov rax, qword [rbx + 0x168]
mov dword [rax + 8], ecx
movzx ecx, byte [rbx + 0x541]
mov rax, qword [rbx + 0x168]
mov dword [rax + 0xc], ecx
jmp 0x180123804
cmp ecx, 3
jb 0x1801239f9
mov rax, qword [rbx + 0x168]
mov dword [rax], 0x52
mov rax, qword [rbx + 0x168]
mov dword [rax + 0x68], 0x47
mov rax, qword [rbx + 0x168]
mov dword [rax + 0xd0], 0x42
mov edx, r12d
mov eax, edx
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 8], r13d
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0xc], r13d
add edx, r13d
mov dword [rsp + 0x20], edx
cmp edx, dword [rbx + 0x68]
jb 0x180123776
jmp 0x180123804
cmp ecx, r13d
jb 0x1801239f9
mov rax, qword [rbx + 0x168]
mov dword [rax], r13d
mov rax, qword [rbx + 0x168]
mov dword [rax + 8], r13d
mov rax, qword [rbx + 0x168]
mov dword [rax + 0xc], r13d
jmp 0x180123804
mov edx, r12d
mov eax, edx
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax], edx
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 0xc], r13d
mov rax, qword [rbx + 0x168]
mov dword [rcx + rax + 8], r13d
add edx, r13d
mov dword [rsp + 0x20], edx
cmp edx, dword [rbx + 0x68]
jb 0x1801237d0
cmp word [r14 + 0x42], r13w
jne 0x180123810
mov eax, dword [rbx + 0x68]
jmp 0x180123813
mov eax, r13d
mov dword [rbx + 0x1e8], eax
lea rcx, [rbx + 0x360]
mov rdx, rsp
call sub.msvcrt.dll__setjmp
mov rbx, qword [rsp + 0x28]
test eax, eax
je 0x180123839
or rdi, 0xffffffffffffffff
mov ecx, edi
jmp 0x180123854
mov edx, r12d
cmp dword [rbx + 0x520], r12d
sete dl
mov rcx, rbx
call fcn.18003c2f0
mov ecx, eax
or rdi, 0xffffffffffffffff
mov dword [rsp + 0x20], ecx
mov rax, qword [rbx + 0x2c0]
mov dword [rax], 3
cmp dword [rbx + 0x520], r12d
je 0x180123929
test ecx, ecx
jne 0x1801239f9
mov r9, qword [rsp + 0x40]
mov edx, dword [r9 + 0x54]
dec edx
mov dword [rsp + 0x20], edx
mov rax, qword [r9 + 0x58]
mov ecx, dword [rax]
mov r10, qword [rsp + 0xa0]
add rcx, qword [r10 + 0x200]
mov qword [rbx + 0x468], rcx
mov r8, qword [r9 + 0x58]
mov rax, qword [r9 + 0x60]
mov ecx, dword [rax + rdx*4]
add ecx, dword [r8 + rdx*4]
sub ecx, dword [r8]
mov edx, ecx
mov qword [rbx + 0x470], rdx
mov rax, qword [r9 + 0x58]
mov ecx, dword [rax]
lea eax, [rcx + rdx]
or edx, 0xffffffff
cmp eax, ecx
cmovae edx, eax
mov dword [rsp + 0x48], edx
jb 0x180123916
cmp edx, dword [r10 + 0x208]
ja 0x180123916
lea rcx, [rbx + 0x360]
mov rdx, rsp
call sub.msvcrt.dll__setjmp
mov rbx, qword [rsp + 0x28]
test eax, eax
je 0x1801238fc
mov ecx, edi
jmp 0x180123909
mov edx, r13d
mov rcx, rbx
call fcn.18003c2f0
mov ecx, eax
mov dword [rsp + 0x20], ecx
jmp 0x180123929
mov qword [rbx + 0x468], r12
mov qword [rbx + 0x470], r12
jmp 0x1801239f9
cmp ecx, r13d
jne 0x1801239f9
mov rdx, qword [rsp + 0x40]
mov r12d, 2
xor r14d, r14d
mov eax, dword [rsp + 0x24]
mov dword [rbx + 0x6c], eax
mov eax, dword [rsp + 0x34]
mov dword [rbx + 0x74], eax
and qword [rbx + 0xa4], 0
cmp word [rdx + 0x42], r12w
je 0x1801239f9
mov dword [rbx + 0x98], r14d
mov dword [rbx + 0x88], r14d
mov dword [rsp + 0x3c], r14d
lea rcx, [rbx + 0x360]
mov rdx, rsp
call sub.msvcrt.dll__setjmp
mov rbx, qword [rsp + 0x28]
test eax, eax
je 0x180123991
mov eax, r14d
jmp 0x180123999
mov rcx, rbx
call fcn.18003df28
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x1801239f9
lea rdx, [0x180122ab0]
mov rcx, qword [rsp + 0xa0]
mov qword [rcx + 0x160], rdx
mov qword [rcx + 0x150], rdx
mov qword [rcx + 0x140], rdx
mov rcx, qword [rbx + 0x468]
mov qword [rbx + 0x5b8], rcx
mov rcx, qword [rbx + 0x470]
mov qword [rbx + 0x5c0], rcx
mov dword [rbx + 0x5c8], r13d
mov eax, r13d
jmp 0x1801239fb
xor eax, eax
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret