Function at 0x140013b90
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 0x140013bc4
mov dword [rsp + 0xa0], 2
jmp 0x140013bcf
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.140005fd0
mov rcx, qword [rsp + 0xf0]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0x18], 0
jne 0x140013c9a
lea rcx, [0x14009c1c0]
call fcn.140005d10
jmp 0x140014752
mov r9d, 7
mov r8d, dword [rsp + 0x120]
mov edx, dword [rsp + 0x110]
mov ecx, dword [rsp + 0x40]
call fcn.140005e60
test eax, eax
jne 0x140013ccd
lea rcx, [0x14009c1d0]
call fcn.140005d10
jmp 0x140014752
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.140005e00
test eax, eax
jne 0x140013d15
lea rcx, [0x14009c1e0]
call fcn.140005d10
jmp 0x140014752
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 0x140013d4b
lea rcx, str.not_enough_pixels
call fcn.140005d10
jmp 0x140014752
xor r8d, r8d
mov edx, 2
mov ecx, dword [rsp + 0x48]
call fcn.140005f80
mov qword [rsp + 0xa8], rax
cmp qword [rsp + 0xa8], 0
jne 0x140013d80
lea rcx, [0x14009c208]
call fcn.140005d10
jmp 0x140014752
cmp dword [rsp + 0x120], 8
jge 0x140013d9d
mov dword [rsp + 0x3c], 1
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x4c], 0
jmp 0x140013db1
mov eax, dword [rsp + 0x4c]
inc eax
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x118]
cmp dword [rsp + 0x4c], eax
jae 0x140014730
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 0x140013e8a
lea rcx, str.invalid_filter
call fcn.140005d10
mov dword [rsp + 0x9c], eax
jmp 0x140014730
cmp dword [rsp + 0x4c], 0
jne 0x140013ea5
movsxd rax, dword [rsp + 0x60]
lea rcx, [0x1405e46f8]
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.0x140013ed7
movsxd rax, dword [rsp + 0x94]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1475c]
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.0x140013ed7
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 0x140013f20
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x140013f69
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 0x140013f16
jmp case.default.0x140013ed7
mov dword [rsp + 0x24], 0
jmp 0x140013f82
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x140013fc4
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 0x140013f78
jmp case.default.0x140013ed7
mov dword [rsp + 0x24], 0
jmp 0x140013fdd
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x140014021
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 0x140013fd3
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014035
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x140014093
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 0x14001402b
jmp case.default.0x140013ed7
mov dword [rsp + 0x24], 0
jmp 0x1400140ac
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x1400140ee
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 0x1400140a2
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140014102
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x24], eax
jge 0x140014198
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.1400139b0
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 0x1400140f8
jmp case.default.0x140013ed7
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 0x1400141c5
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.0x140013ed7
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 0x1400141bb
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 0x14001446c
cmp dword [rsp + 0x128], 0
jne 0x14001425f
movsxd rax, dword [rsp + 0x120]
lea rcx, [0x14009d760]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x98], eax
jmp 0x14001426a
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 0x140014332
mov dword [rsp + 0x28], 0
jmp 0x1400142c4
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x14001432d
mov eax, dword [rsp + 0x28]
and eax, 1
test eax, eax
jne 0x1400142fb
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 0x1400142ba
jmp 0x140014437
cmp dword [rsp + 0x120], 2
jne 0x1400143bb
mov dword [rsp + 0x28], 0
jmp 0x140014350
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x1400143b9
mov eax, dword [rsp + 0x28]
and eax, 3
test eax, eax
jne 0x140014387
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 0x140014346
jmp 0x140014437
mov dword [rsp + 0x28], 0
jmp 0x1400143cf
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x28], eax
jae 0x140014437
mov eax, dword [rsp + 0x28]
and eax, 7
test eax, eax
jne 0x140014406
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 0x1400143c5
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x40], eax
je 0x140014467
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x110]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x88]
call fcn.140013a70
nop
jmp 0x14001472b
cmp dword [rsp + 0x120], 8
jne 0x1400144c9
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x40], eax
jne 0x1400144a4
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 0x1400144c4
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x110]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
call fcn.140013a70
nop
jmp 0x14001472b
cmp dword [rsp + 0x120], 0x10
jne 0x14001472b
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 0x140014579
mov dword [rsp + 0x28], 0
jmp 0x140014534
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 0x140014574
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 0x14001450e
jmp 0x14001472b
cmp dword [rsp + 0x40], 1
jne 0x14001461d
mov dword [rsp + 0x28], 0
jmp 0x1400145b4
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 0x140014618
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 0x14001458e
jmp 0x14001472b
mov dword [rsp + 0x28], 0
jmp 0x14001464d
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 0x14001472b
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 0x140014627
jmp 0x140013da7
mov rcx, qword [rsp + 0xa8]
call qword [0x14009b650]
nop
cmp dword [rsp + 0x9c], 0
jne 0x14001474d
xor eax, eax
jmp 0x140014752
mov eax, 1
add rsp, 0xd8
pop rdi
pop rsi
ret