Function at 0x14012d680
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x200]
sub rsp, 0x300
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
mov r9, qword [rcx]
mov r14, rcx
mov rdi, r8
mov rbx, rdx
mov r12d, 1
mov r13d, 2
lea rcx, [rsp + 0x30]
mov r8d, r12d
mov edx, r13d
call fcn.1401c1e14
test rax, rax
jne 0x14012d6e2
mov eax, 4
jmp 0x14012df08
mov rax, qword [rsp + 0x30]
mov ecx, 0x4d4d
cmp ax, cx
je 0x14012d704
mov ecx, 0x4949
cmp ax, cx
je 0x14012d704
movzx eax, r13w
jmp 0x14012df08
mov r9, qword [r14]
lea rcx, [rsp + 0x32]
mov r8, r12
mov rdx, r13
call fcn.1401c1e14
test rax, rax
je 0x14012d6d8
movzx eax, word [rsp + 0x32]
mov ecx, 0x2a00
cmp ax, cx
je 0x14012d731
cmp ax, 0x2a
jne 0x14012d6fb
mov r9, qword [r14]
mov esi, 4
lea rcx, [rsp + 0x34]
mov edx, esi
mov r8, r12
call fcn.1401c1e14
test rax, rax
je 0x14012d6fb
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x140
call fcn.1401c0040
movzx ecx, word [rsp + 0x30]
lea rdx, [rsp + 0x40]
call fcn.140131320
test ax, ax
je 0x14012d6fb
lea rcx, [rbp + 0x80]
mov qword [rsp + 0x350], r15
call fcn.140060c40
mov ecx, dword [rsp + 0x34]
xor r15d, r15d
movss xmm0, dword [0x140235894]
movss xmm1, dword [0x140235898]
mov dword [rbp + 0xa0], 0x10001
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x48], 0x10001
movss dword [rbp - 0x28], xmm0
movss xmm0, dword [0x140235890]
movss dword [rbp - 0x24], xmm1
movss dword [rbp - 0x20], xmm0
mov dword [rsp + 0x5c], r15d
mov qword [rbp - 0x1c], r15
mov qword [rbp - 0x30], 0x10001
mov dword [rbp - 0x60], 0x10001
mov word [rbp + 0x84], r15w
mov word [rbp - 0x54], r13w
mov qword [rbp - 0x5c], 0x10001
mov qword [rbp - 0x10], r15
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x4c], 0x10000
mov dword [rbp - 0x48], r12d
mov dword [rbp - 0x4c], 0xffffffff
mov word [rbp - 4], r15w
mov dword [rbp - 8], 0xffffffff
mov qword [rsp + 0x70], r15
mov word [rbp - 0x34], r15w
mov dword [rbp - 0x44], 0xffffffff
mov qword [rbp + 0x50], r15
mov qword [rbp + 0xac], r15
call qword [rbp - 0x68]
lea r8, [rsp + 0x40]
mov edx, eax
lea rax, [rbp + 0x80]
mov r9, rbx
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.14012fc30
test al, al
je 0x14012dee0
movzx ecx, word [rbp - 0x60]
mov r8d, 0x80b2
mov r9d, 0x8005
cmp cx, 8
ja 0x14012d889
movzx eax, cx
mov edx, 0x1be
bt edx, eax
jb 0x14012d8c1
cmp cx, r9w
je 0x14012d8c1
mov eax, 0x788c
add eax, ecx
cmp ax, r12w
jbe 0x14012d8c1
cmp cx, r8w
je 0x14012d8c1
mov eax, 0x8029
cmp cx, ax
je 0x14012d8c1
cmp cx, 6
je 0x14012d8c7
cmp dword [rbp + 0x70], r15d
je 0x14012d8de
movzx eax, r13w
jmp 0x14012df00
cmp cx, 6
jne 0x14012d93c
mov edx, dword [rbp - 8]
cmp edx, 0xffffffff
jne 0x14012d911
cmp dword [rbp + 0x70], r15d
je 0x14012d8de
movzx eax, r13w
jmp 0x14012df00
movups xmm0, xmmword [str.TIFF_:_Bad_data_compression_algorithm__]
mov eax, 9
movups xmmword [rbx + 0x74], xmm0
movups xmm1, xmmword [0x1402357c8]
movups xmmword [rbx + 0x84], xmm1
movsd xmm0, qword [0x1402357d8]
movsd qword [rbx + 0x94], xmm0
jmp 0x14012df00
cmp cx, 6
jne 0x14012d93c
mov rcx, qword [r14]
xor r8d, r8d
call fcn.1401c1f88
lea r8, str.TIFF__jpeg_
xor r9d, r9d
mov rdx, rbx
mov rcx, r14
call fcn.140077140
jmp 0x14012df00
movzx ecx, word [rbp - 0x5c]
cmp cx, 8
ja 0x14012d950
mov edx, 0x16f
bt edx, ecx
jb 0x14012d991
mov eax, 0x7fb4
add cx, ax
cmp cx, r12w
jbe 0x14012d991
movups xmm0, xmmword [str.TIFF_:_Bad_photometric_interpretation__]
mov eax, 9
movups xmmword [rbx + 0x74], xmm0
movups xmm1, xmmword [0x140235800]
movups xmmword [rbx + 0x84], xmm1
movsd xmm0, qword [0x140235810]
movsd qword [rbx + 0x94], xmm0
jmp 0x14012df00
call fcn.1400653f0
test al, al
jne 0x14012d9ed
cmp word [rbp - 0x60], 5
jne 0x14012d9ed
movups xmm0, xmmword [str.TIFF_:_Bad_compression__LZW___]
movups xmmword [rbx + 0x74], xmm0
movsd xmm1, qword [0x140235828]
movsd qword [rbx + 0x84], xmm1
mov eax, dword [0x140235830]
mov dword [rbx + 0x8c], eax
movzx eax, word [0x140235834]
mov word [rbx + 0x90], ax
movzx eax, byte [0x140235836]
mov byte [rbx + 0x92], al
mov eax, 9
jmp 0x14012df00
mov edx, dword [rbp - 0x18]
test edx, edx
je 0x14012da38
mov rcx, qword [r14]
xor r8d, r8d
call fcn.1401c1f88
movsxd r12, dword [rbp - 0x1c]
mov rcx, r12
call fcn.1401bee78
mov qword [rbp - 0x10], rax
test rax, rax
jne 0x14012da1e
mov eax, 1
jmp 0x14012df00
mov r9, qword [r14]
mov r8d, 1
mov rdx, r12
mov rcx, rax
call fcn.1401c1e14
mov r12d, 1
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14012df50
mov edx, dword [rbp - 0x2c]
test edx, edx
je 0x14012da5c
mov r9, qword [rbp - 0x68]
lea r8, [rbp - 0x28]
mov rcx, r14
call fcn.14012d5d0
movzx r10d, word [rbp - 0x5c]
mov edx, 3
mov ecx, r10d
lea eax, [rdx + 3]
lea r8d, [rdx + 4]
lea r11d, [rdx + 5]
sub ecx, 5
je 0x14012dac8
dec ecx
je 0x14012dabf
sub ecx, r13d
je 0x14012daac
sub ecx, 0x8044
je 0x14012daa2
dec ecx
je 0x14012da98
mov word [rbp + 0xca], r15w
jmp 0x14012dad9
mov word [rbp + 0xca], r8w
jmp 0x14012dad9
mov word [rbp + 0xca], r11w
jmp 0x14012dad9
or dword [rbp + 0x80], 0x80000
mov word [rbp + 0xca], ax
jmp 0x14012dad9
mov word [rbp + 0xca], si
jmp 0x14012dad9
or dword [rbp + 0x80], 0x8000
mov word [rbp + 0xca], dx
cmp word [rbp - 0x32], r15w
lea rax, str.GeoTIFF
lea rcx, str.TIFF
lea rdx, [rbp + 0x16e]
cmovne rcx, rax
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x14012db00
mov r9d, dword [rsp + 0x74]
cmp dword [rsp + 0x70], r15d
je 0x14012db50
test r9d, r9d
je 0x14012db50
lea rcx, [rbp + 0x16e]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], r15b
lea rcx, [rcx + 1]
jne 0x14012db30
movsd xmm0, qword [str.__Tiled_]
movzx eax, byte [0x140235848]
movsd qword [rcx], xmm0
mov byte [rcx + 8], al
movzx edx, word [rbp - 0x60]
mov eax, 0x8005
mov ecx, edx
cmp edx, eax
jg 0x14012dc58
cmp edx, eax
je 0x14012dc4b
sub ecx, r13d
cmp ecx, 6
ja case.default.0x14012db88
lea r8, [0x140000000]
movsxd rax, ecx
mov ecx, dword [r8 + rax*4 + 0x12df2c]
add rcx, r8
jmp rcx
mov word [rbp + 0xc8], r13w
jmp case.default.0x14012db88
mov eax, 6
mov word [rbp + 0xc8], ax
mov r13d, 0x80b2
mov ecx, dword [rsp + 0x40]
mov eax, 0x804c
cmp r10w, ax
jne 0x14012dceb
mov dword [rbp + 0xa0], 0x80001
mov dword [rbp + 0xa8], ecx
jmp 0x14012dd09
test byte [rbp - 0x58], 1
mov r13d, 0x80b2
je 0x14012dbe4
mov word [rbp + 0xc8], r11w
jmp 0x14012dba6
mov eax, 7
mov word [rbp + 0xc8], ax
jmp 0x14012dba6
mov eax, 9
jmp 0x14012db99
movsd xmm0, qword [str.Jpeg_Old_Style]
mov eax, 0xff
mov word [rbp + 0xc8], ax
mov eax, dword [0x140235858]
movsd qword [rbp + 0xce], xmm0
mov dword [rbp + 0xd6], eax
movzx eax, word [0x14023585c]
mov word [rbp + 0xda], ax
movzx eax, byte [0x14023585e]
mov byte [rbp + 0xdc], al
jmp case.default.0x14012db88
mov eax, 3
jmp 0x14012db99
mov word [rbp + 0xc8], r12w
jmp case.default.0x14012db88
mov r13d, 0x80b2
sub ecx, r13d
je 0x14012dcdf
sub ecx, 0x6c2
je 0x14012dca1
dec ecx
jne 0x14012dba6
movsd xmm0, qword [str.SGILog24]
mov eax, 0xff
mov word [rbp + 0xc8], ax
movzx eax, byte [0x140235868]
movsd qword [rbp + 0xce], xmm0
mov byte [rbp + 0xd6], al
jmp 0x14012dba6
mov eax, 0xff
mov word [rbp + 0xc8], ax
mov eax, dword [str.SGILog]
mov dword [rbp + 0xce], eax
movzx eax, word [0x140235870]
mov word [rbp + 0xd2], ax
movzx eax, byte [0x140235872]
mov byte [rbp + 0xd4], al
jmp 0x14012dba6
mov r13d, 0x80b2
mov word [rbp + 0xc8], si
jmp 0x14012dba6
mov eax, 0x804d
cmp r10w, ax
jne 0x14012dd09
lea eax, [rcx + rcx*2]
mov dword [rbp + 0xa0], 0x180001
mov dword [rbp + 0xa8], eax
mov r8d, dword [rsp + 0x44]
mov dword [rbp + 0x98], ecx
mov dword [rbp + 0x9c], r8d
test r9d, r9d
je 0x14012dd29
mov dword [rbp + 0x88], r9d
jmp 0x14012dd54
cmp r10w, 6
je 0x14012dd4b
cmp dx, 5
je 0x14012dd4b
cmp dx, r11w
je 0x14012dd4b
cmp dx, r13w
je 0x14012dd4b
mov dword [rbp + 0x88], r12d
jmp 0x14012dd54
mov eax, dword [rbp - 0x50]
mov dword [rbp + 0x88], eax
test rdi, rdi
je 0x14012dd8c
lea rcx, [rbp + 0x16e]
sub rcx, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdi]
lea rdi, [rdi + 1]
mov byte [rcx + rdi - 1], al
test al, al
jne 0x14012dd70
mov r8d, dword [rbp + 0x9c]
mov ecx, dword [rbp + 0x98]
cmp word [rsp + 0x48], 0x10
jl 0x14012ddfe
cmp r10w, 2
ja 0x14012ddfe
cmp dx, r11w
ja 0x14012ddb0
movzx eax, dx
mov r9d, 0x122
bt r9d, eax
jb 0x14012ddc0
cmp dx, r13w
je 0x14012ddc0
mov eax, 0x8005
cmp dx, ax
jne 0x14012ddfe
movzx eax, word [rsp + 0x4a]
mov dword [rbp + 0xb4], ecx
mov dword [rbp + 0xb8], r8d
cmp ax, si
jle 0x14012dddf
mov dword [rbp + 0xc4], esi
jmp 0x14012dde6
cwde
mov dword [rbp + 0xc4], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xc0], 0x10
add eax, eax
mov dword [rbp + 0xbc], eax
lea rdx, [rbp + 0x80]
mov rcx, rbx
call fcn.14005ee10
movzx esi, ax
test ax, ax
jne 0x14012dee0
cmp dword [rbp + 0x80], 4
mov rdx, qword [rbp + 0x90]
mov eax, r15d
sete al
lea r8, [rsp + 0x40]
mov rcx, r14
movzx r9d, ax
mov qword [rsp + 0x20], rbx
call fcn.14012e7e0
movzx esi, ax
cmp ax, 9
jne 0x14012de7e
movups xmm0, xmmword [str.TIFF_:_Bad_LZW_codes__]
movups xmmword [rbx + 0x74], xmm0
mov eax, dword [0x140235888]
mov dword [rbx + 0x84], eax
movzx eax, word [0x14023588c]
mov word [rbx + 0x88], ax
movzx eax, byte [0x14023588e]
mov byte [rbx + 0x8a], al
movzx eax, word [rbp - 0x60]
sub ax, 2
cmp ax, 2
jbe 0x14012dec5
movzx eax, word [rbp - 0x5c]
cmp dword [rsp + 0x5c], r15d
je 0x14012deb9
cmp word [rbp + 0xa2], 8
jg 0x14012deb9
cmp ax, 3
jne 0x14012deb9
mov r9, qword [rsp + 0x68]
mov edx, pe_nt_image_headers64
mov r8d, 0x10
jmp 0x14012ded8
xor r8d, r8d
test ax, ax
sete r15b
jmp 0x14012ded1
xor r8d, r8d
cmp word [rbp - 0x5c], r8w
setne r15b
movzx edx, r15w
xor r9d, r9d
mov rcx, rbx
call fcn.14005cb20
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14012deef
call fcn.1401be23c
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14012defd
call fcn.1401be23c
movzx eax, si
mov r15, qword [rsp + 0x350]
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.1401bd600
add rsp, 0x300
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret