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

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xd8
cmp dword [rsp + 0x120], 0x10
jne 0x140014204
mov dword [rsp + 0xa0], 2
jmp 0x14001420f
mov dword [rsp + 0xa0], 1
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0x110]
imul eax, dword [rsp + 0x108]
imul eax, dword [rsp + 0x78]
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x9c], 1
mov rax, qword [rsp + 0xc8]
mov eax, dword [rax + 8]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x108]
imul eax, dword [rsp + 0x78]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x78]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x90], eax
xor r9d, r9d
mov r8d, dword [rsp + 0xb0]
mov edx, dword [rsp + 0x118]
mov ecx, dword [rsp + 0x110]
call fcn.140006610
mov rcx, qword [rsp + 0xf0]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0x18], 0
jne 0x1400142da
lea rcx, [0x14009f1c0]
call fcn.140006350
jmp 0x140014d92
mov r9d, 7
mov r8d, dword [rsp + 0x120]
mov edx, dword [rsp + 0x110]
mov ecx, dword [rsp + 0x40]
call fcn.1400064a0
test eax, eax
jne 0x14001430d
lea rcx, [0x14009f1d0]
call fcn.140006350
jmp 0x140014d92
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x110]
imul eax, dword [rsp + 0x120]
add eax, 7
shr eax, 3
mov dword [rsp + 0x48], eax
mov r8d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x118]
mov ecx, dword [rsp + 0x48]
call fcn.140006440
test eax, eax
jne 0x140014355
lea rcx, [0x14009f1e0]
call fcn.140006350
jmp 0x140014d92
mov eax, dword [rsp + 0x48]
inc eax
imul eax, dword [rsp + 0x118]
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xb4]
cmp dword [rsp + 0x100], eax
jae 0x14001438b
lea rcx, str.not_enough_pixels
call fcn.140006350
jmp 0x140014d92
xor r8d, r8d
mov edx, 2
mov ecx, dword [rsp + 0x48]
call fcn.1400065c0
mov qword [rsp + 0xa8], rax
cmp qword [rsp + 0xa8], 0
jne 0x1400143c0
lea rcx, [0x14009f208]
call fcn.140006350
jmp 0x140014d92
cmp dword [rsp + 0x120], 8
jge 0x1400143dd
mov dword [rsp + 0x3c], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x4c], 0
jmp 0x1400143f1
mov eax, dword [rsp + 0x4c]
inc eax
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x118]
cmp dword [rsp + 0x4c], eax
jae 0x140014d70
mov eax, dword [rsp + 0x4c]
and eax, 1
imul eax, dword [rsp + 0x48]
mov eax, eax
mov rcx, qword [rsp + 0xa8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x4c]
not eax
and eax, 1
imul eax, dword [rsp + 0x48]
mov eax, eax
mov rcx, qword [rsp + 0xa8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0xb8]
imul eax, dword [rsp + 0x4c]
mov eax, eax
mov rcx, qword [rsp + 0xf0]
add rax, qword [rcx + 0x18]
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x90]
imul eax, dword [rsp + 0x3c]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xf8]
movzx eax, byte [rax]
mov dword [rsp + 0xbc], eax
mov rax, qword [rsp + 0xf8]
inc rax
mov qword [rsp + 0xf8], rax
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 4
jle 0x1400144ca
lea rcx, str.invalid_filter
call fcn.140006350
mov dword [rsp + 0x9c], eax
jmp 0x140014d70
cmp dword [rsp + 0x4c], 0
jne 0x1400144e5
movsxd rax, dword [rsp + 0x60]
lea rcx, [0x1403f22f8]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 5
ja case.default.0x140014517
movsxd rax, dword [rsp + 0x94]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x14d9c]
add rax, rcx
jmp rax
movsxd rax, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xf8]
mov rcx, rax
rep movsb byte [rdi], byte [rsi]
jmp case.default.0x140014517
movsxd rax, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xf8]
mov rcx, rax
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014560
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x1400145a9
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x24]
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x140014556
jmp case.default.0x140014517
mov dword [rsp + 0x24], 0
jmp 0x1400145c2
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x140014604
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x80]
movzx ecx, byte [rdx + rcx]
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x1400145b8
jmp case.default.0x140014517
mov dword [rsp + 0x24], 0
jmp 0x14001461d
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x140014661
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x80]
movzx ecx, byte [rdx + rcx]
sar ecx, 1
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x140014613
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014675
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x1400146d3
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x80]
movzx ecx, byte [rdx + rcx]
mov edx, dword [rsp + 0x3c]
mov edi, dword [rsp + 0x24]
sub edi, edx
mov edx, edi
movsxd rdx, edx
mov rdi, qword [rsp + 0x30]
movzx edx, byte [rdi + rdx]
add ecx, edx
sar ecx, 1
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x14001466b
jmp case.default.0x140014517
mov dword [rsp + 0x24], 0
jmp 0x1400146ec
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x14001472e
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x80]
movzx ecx, byte [rdx + rcx]
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x1400146e2
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014742
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x1400147d8
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0xc0], eax
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x24]
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
mov rdx, qword [rsp + 0x80]
movzx ecx, byte [rdx + rcx]
movsxd rdx, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x80]
movzx edx, byte [rdi + rdx]
mov edi, dword [rsp + 0x3c]
mov esi, dword [rsp + 0x24]
sub esi, edi
mov edi, esi
movsxd rdi, edi
mov rsi, qword [rsp + 0x30]
movzx edi, byte [rsi + rdi]
mov r8d, ecx
mov ecx, edi
call fcn.140013ff0
mov ecx, dword [rsp + 0xc0]
add ecx, eax
mov eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x140014738
jmp case.default.0x140014517
movsxd rax, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xf8]
mov rcx, rax
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014805
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge case.default.0x140014517
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xf8]
movzx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x24]
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
sar ecx, 1
add eax, ecx
and eax, 0xff
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov byte [rdx + rcx], al
jmp 0x1400147fb
movsxd rax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xf8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xf8], rax
cmp dword [rsp + 0x120], 8
jge 0x140014aac
cmp dword [rsp + 0x128], 0
jne 0x14001489f
movsxd rax, dword [rsp + 0x120]
lea rcx, [0x14009ff30]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x98], eax
jmp 0x1400148aa
mov dword [rsp + 0x98], 1
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x38], al
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x20], 0
mov eax, dword [rsp + 0x110]
imul eax, dword [rsp + 0x40]
mov dword [rsp + 0x7c], eax
cmp dword [rsp + 0x120], 4
jne 0x140014972
mov dword [rsp + 0x28], 0
jmp 0x140014904
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x14001496d
mov eax, dword [rsp + 0x28]
and eax, 1
test eax, eax
jne 0x14001493b
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 4
imul eax, ecx
mov rcx, qword [rsp + 0x70]
mov byte [rcx], al
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
movzx eax, byte [rsp + 0x20]
shl al, 4
mov byte [rsp + 0x20], al
jmp 0x1400148fa
jmp 0x140014a77
cmp dword [rsp + 0x120], 2
jne 0x1400149fb
mov dword [rsp + 0x28], 0
jmp 0x140014990
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x1400149f9
mov eax, dword [rsp + 0x28]
and eax, 3
test eax, eax
jne 0x1400149c7
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax]
mov byte [rsp + 0x45], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x45]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 6
imul eax, ecx
mov rcx, qword [rsp + 0x70]
mov byte [rcx], al
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
movzx eax, byte [rsp + 0x20]
shl al, 2
mov byte [rsp + 0x20], al
jmp 0x140014986
jmp 0x140014a77
mov dword [rsp + 0x28], 0
jmp 0x140014a0f
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x140014a77
mov eax, dword [rsp + 0x28]
and eax, 7
test eax, eax
jne 0x140014a46
mov rax, qword [rsp + 0x68]
movzx eax, byte [rax]
mov byte [rsp + 0x46], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x46]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 7
imul eax, ecx
mov rcx, qword [rsp + 0x70]
mov byte [rcx], al
mov rax, qword [rsp + 0x70]
inc rax
mov qword [rsp + 0x70], rax
movzx eax, byte [rsp + 0x20]
shl al, 1
mov byte [rsp + 0x20], al
jmp 0x140014a05
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x40], eax
je 0x140014aa7
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x110]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x88]
call fcn.1400140b0
nop
jmp 0x140014d6b
cmp dword [rsp + 0x120], 8
jne 0x140014b09
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x40], eax
jne 0x140014ae4
mov eax, dword [rsp + 0x110]
imul eax, dword [rsp + 0x40]
mov eax, eax
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x30]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
jmp 0x140014b04
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x110]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
call fcn.1400140b0
nop
jmp 0x140014d6b
cmp dword [rsp + 0x120], 0x10
jne 0x140014d6b
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x110]
imul eax, dword [rsp + 0x40]
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x40], eax
jne 0x140014bb9
mov dword [rsp + 0x28], 0
jmp 0x140014b74
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x58]
add rax, 2
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xc4]
cmp dword [rsp + 0x28], eax
jae 0x140014bb4
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
shl eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
or eax, ecx
mov rcx, qword [rsp + 0x58]
mov word [rcx], ax
jmp 0x140014b4e
jmp 0x140014d6b
cmp dword [rsp + 0x40], 1
jne 0x140014c5d
mov dword [rsp + 0x28], 0
jmp 0x140014bf4
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x58]
add rax, 4
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x110]
cmp dword [rsp + 0x28], eax
jae 0x140014c58
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
shl eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
or eax, ecx
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x58]
mov word [rdx + rcx], ax
mov eax, 2
imul rax, rax, 1
mov ecx, 0xffff
mov rdx, qword [rsp + 0x58]
mov word [rdx + rax], cx
jmp 0x140014bce
jmp 0x140014d6b
mov dword [rsp + 0x28], 0
jmp 0x140014c8d
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x58]
add rax, 8
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x30]
add rax, 6
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x110]
cmp dword [rsp + 0x28], eax
jae 0x140014d6b
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
shl eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
or eax, ecx
mov ecx, 2
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x58]
mov word [rdx + rcx], ax
mov eax, 1
imul rax, rax, 2
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
shl eax, 8
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
or eax, ecx
mov ecx, 2
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x58]
mov word [rdx + rcx], ax
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
shl eax, 8
mov ecx, 1
imul rcx, rcx, 5
mov rdx, qword [rsp + 0x30]
movzx ecx, byte [rdx + rcx]
or eax, ecx
mov ecx, 2
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x58]
mov word [rdx + rcx], ax
mov eax, 2
imul rax, rax, 3
mov ecx, 0xffff
mov rdx, qword [rsp + 0x58]
mov word [rdx + rax], cx
jmp 0x140014c67
jmp 0x1400143e7
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
cmp dword [rsp + 0x9c], 0
jne 0x140014d8d
xor eax, eax
jmp 0x140014d92
mov eax, 1
add rsp, 0xd8
pop rdi
pop rsi
ret