Function at 0x1400379f0
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
sub rsp, 0xd8
cmp dword [rsp + 0x110], 0x10
jne 0x140037a22
mov dword [rsp + 0x88], 2
jmp 0x140037a2d
mov dword [rsp + 0x88], 1
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x100]
imul eax, dword [rsp + 0xf8]
imul eax, dword [rsp + 0x70]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x98], 1
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 8]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xf8]
imul eax, dword [rsp + 0x70]
mov dword [rsp + 0xa8], eax
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x70]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 8]
cmp dword [rsp + 0xf8], eax
je 0x140037af3
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 8]
inc eax
cmp dword [rsp + 0xf8], eax
je 0x140037af3
mov r8d, 0x1266
lea rdx, [0x140095670]
lea rcx, str.out_n__s__img_n__out_n__s__img_n1
call fcn.140047fbc
xor eax, eax
xor r9d, r9d
mov r8d, dword [rsp + 0xa8]
mov edx, dword [rsp + 0x108]
mov ecx, dword [rsp + 0x100]
call fcn.14002ad50
mov rcx, qword [rsp + 0xe0]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0xe0]
cmp qword [rax + 0x18], 0
jne 0x140037b3d
lea rcx, [0x140095728]
call fcn.14002aa70
jmp 0x140038647
mov r9d, 7
mov r8d, dword [rsp + 0x110]
mov edx, dword [rsp + 0x100]
mov ecx, dword [rsp + 0x40]
call fcn.14002abe0
test eax, eax
jne 0x140037b70
lea rcx, [0x140095738]
call fcn.14002aa70
jmp 0x140038647
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x100]
imul eax, dword [rsp + 0x110]
add eax, 7
shr eax, 3
mov dword [rsp + 0x44], eax
mov r8d, dword [rsp + 0x44]
mov edx, dword [rsp + 0x108]
mov ecx, dword [rsp + 0x44]
call fcn.14002ab80
test eax, eax
jne 0x140037bb8
lea rcx, [0x140095748]
call fcn.14002aa70
jmp 0x140038647
mov eax, dword [rsp + 0x44]
inc eax
imul eax, dword [rsp + 0x108]
mov dword [rsp + 0xac], eax
mov eax, dword [rsp + 0xac]
cmp dword [rsp + 0xf0], eax
jae 0x140037bee
lea rcx, str.not_enough_pixels
call fcn.14002aa70
jmp 0x140038647
xor r8d, r8d
mov edx, 2
mov ecx, dword [rsp + 0x44]
call fcn.14002ad00
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0xa0], 0
jne 0x140037c23
lea rcx, [0x140095770]
call fcn.14002aa70
jmp 0x140038647
cmp dword [rsp + 0x110], 8
jge 0x140037c40
mov dword [rsp + 0x3c], 1
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x48], 0
jmp 0x140037c54
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x48], eax
jae 0x140038627
mov eax, dword [rsp + 0x48]
and eax, 1
imul eax, dword [rsp + 0x44]
mov eax, eax
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x48]
not eax
and eax, 1
imul eax, dword [rsp + 0x44]
mov eax, eax
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0xb0]
imul eax, dword [rsp + 0x48]
mov eax, eax
mov rcx, qword [rsp + 0xe0]
add rax, qword [rcx + 0x18]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x8c]
imul eax, dword [rsp + 0x3c]
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0xe8]
movzx eax, byte [rax]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0xe8]
inc rax
mov qword [rsp + 0xe8], rax
cmp dword [rsp + 0x58], 4
jle 0x140037d1c
lea rcx, str.invalid_filter
call fcn.14002aa70
mov dword [rsp + 0x98], eax
jmp 0x140038627
cmp dword [rsp + 0x48], 0
jne 0x140037d37
movsxd rax, dword [rsp + 0x58]
lea rcx, [0x1400955dc]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x90], eax
cmp dword [rsp + 0x90], 5
ja case.default.0x140037d69
movsxd rax, dword [rsp + 0x90]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x38650]
add rax, rcx
jmp rax
movsxd rax, dword [rsp + 0x4c]
mov r8, rax
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x30]
call fcn.14005da50
jmp case.default.0x140037d69
movsxd rax, dword [rsp + 0x3c]
mov r8, rax
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x30]
call fcn.14005da50
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140037db8
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x24], eax
jge 0x140037e01
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
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 0x140037dae
jmp case.default.0x140037d69
mov dword [rsp + 0x24], 0
jmp 0x140037e1a
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x24], eax
jge 0x140037e59
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x78]
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 0x140037e10
jmp case.default.0x140037d69
mov dword [rsp + 0x24], 0
jmp 0x140037e72
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x140037eb3
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x78]
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 0x140037e68
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140037ec7
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x24], eax
jge 0x140037f26
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x78]
movzx ecx, byte [rdx + rcx]
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x24]
sub r8d, edx
mov edx, r8d
movsxd rdx, edx
mov r8, qword [rsp + 0x30]
movzx edx, byte [r8 + 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 0x140037ebd
jmp case.default.0x140037d69
mov dword [rsp + 0x24], 0
jmp 0x140037f3f
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x24], eax
jge 0x140037f7e
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
movzx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x78]
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 0x140037f35
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140037f92
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x24], eax
jge 0x140038035
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0xb8], eax
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x24]
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
mov rdx, qword [rsp + 0x78]
movzx ecx, byte [rdx + rcx]
movsxd rdx, dword [rsp + 0x24]
mov r8, qword [rsp + 0x78]
movzx edx, byte [r8 + rdx]
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x24]
sub r9d, r8d
mov r8d, r9d
movsxd r8, r8d
mov r9, qword [rsp + 0x30]
movzx r8d, byte [r9 + r8]
mov dword [rsp + 0xb4], r8d
mov r8d, ecx
mov ecx, dword [rsp + 0xb4]
call fcn.1400377c0
mov ecx, dword [rsp + 0xb8]
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 0x140037f88
jmp case.default.0x140037d69
movsxd rax, dword [rsp + 0x3c]
mov r8, rax
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x30]
call fcn.14005da50
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x24], eax
jmp 0x140038065
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x24], eax
jge case.default.0x140037d69
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe8]
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 0x14003805b
movsxd rax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xe8], rax
cmp dword [rsp + 0x110], 8
jge 0x140038314
cmp dword [rsp + 0x118], 0
jne 0x1400380ff
movsxd rax, dword [rsp + 0x110]
lea rcx, [0x1400605b8]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x94], eax
jmp 0x14003810a
mov dword [rsp + 0x94], 1
movzx eax, byte [rsp + 0x94]
mov byte [rsp + 0x38], al
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x20], 0
mov eax, dword [rsp + 0x100]
imul eax, dword [rsp + 0x40]
mov dword [rsp + 0x74], eax
cmp dword [rsp + 0x110], 4
jne 0x1400381c5
mov dword [rsp + 0x28], 0
jmp 0x140038160
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x74]
cmp dword [rsp + 0x28], eax
jae 0x1400381c0
mov eax, dword [rsp + 0x28]
and eax, 1
test eax, eax
jne 0x14003818e
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov byte [rsp + 0x20], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 4
imul eax, ecx
mov rcx, qword [rsp + 0x68]
mov byte [rcx], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x20]
shl al, 4
mov byte [rsp + 0x20], al
jmp 0x140038156
jmp 0x1400382e0
cmp dword [rsp + 0x110], 2
jne 0x140038248
mov dword [rsp + 0x28], 0
jmp 0x1400381e3
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x74]
cmp dword [rsp + 0x28], eax
jae 0x140038243
mov eax, dword [rsp + 0x28]
and eax, 3
test eax, eax
jne 0x140038211
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov byte [rsp + 0x20], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 6
imul eax, ecx
mov rcx, qword [rsp + 0x68]
mov byte [rcx], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x20]
shl al, 2
mov byte [rsp + 0x20], al
jmp 0x1400381d9
jmp 0x1400382e0
cmp dword [rsp + 0x110], 1
je 0x14003826d
mov r8d, 0x12ca
lea rdx, [0x140095790]
lea rcx, str.depth__1
call fcn.140047fbc
xor eax, eax
mov dword [rsp + 0x28], 0
jmp 0x140038281
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x74]
cmp dword [rsp + 0x28], eax
jae 0x1400382e0
mov eax, dword [rsp + 0x28]
and eax, 7
test eax, eax
jne 0x1400382af
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov byte [rsp + 0x20], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x20]
sar ecx, 7
imul eax, ecx
mov rcx, qword [rsp + 0x68]
mov byte [rcx], al
mov rax, qword [rsp + 0x68]
inc rax
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x20]
shl al, 1
mov byte [rsp + 0x20], al
jmp 0x140038277
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0x40], eax
je 0x14003830f
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x100]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x80]
call fcn.140037890
jmp 0x140038622
cmp dword [rsp + 0x110], 8
jne 0x140038374
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0x40], eax
jne 0x140038350
mov eax, dword [rsp + 0x100]
imul eax, dword [rsp + 0x40]
mov eax, eax
mov r8d, eax
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x80]
call fcn.14005da50
jmp 0x14003836f
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x100]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x80]
call fcn.140037890
jmp 0x140038622
cmp dword [rsp + 0x110], 0x10
jne 0x140038622
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x100]
imul eax, dword [rsp + 0x40]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0x40], eax
jne 0x140038424
mov dword [rsp + 0x28], 0
jmp 0x1400383df
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0x28], eax
jae 0x14003841f
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 + 0x50]
mov word [rcx], ax
jmp 0x1400383b9
jmp 0x140038622
mov eax, dword [rsp + 0x40]
inc eax
cmp eax, dword [rsp + 0xf8]
je 0x14003844e
mov r8d, 0x12e3
lea rdx, [0x140095810]
lea rcx, str.img_n1__out_n
call fcn.140047fbc
xor eax, eax
cmp dword [rsp + 0x40], 1
jne 0x1400384f2
mov dword [rsp + 0x28], 0
jmp 0x140038489
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
add rax, 4
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x100]
cmp dword [rsp + 0x28], eax
jae 0x1400384ed
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 + 0x50]
mov word [rdx + rcx], ax
mov eax, 2
imul rax, rax, 1
mov ecx, 0xffff
mov rdx, qword [rsp + 0x50]
mov word [rdx + rax], cx
jmp 0x140038463
jmp 0x140038622
cmp dword [rsp + 0x40], 3
je 0x140038514
mov r8d, 0x12ea
lea rdx, [0x1400958a0]
lea rcx, str.img_n__3
call fcn.140047fbc
xor eax, eax
mov dword [rsp + 0x28], 0
jmp 0x140038544
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
add rax, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x30]
add rax, 6
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x100]
cmp dword [rsp + 0x28], eax
jae 0x140038622
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 + 0x50]
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 + 0x50]
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 + 0x50]
mov word [rdx + rcx], ax
mov eax, 2
imul rax, rax, 3
mov ecx, 0xffff
mov rdx, qword [rsp + 0x50]
mov word [rdx + rax], cx
jmp 0x14003851e
jmp 0x140037c4a
mov rcx, qword [rsp + 0xa0]
call fcn.140044870
cmp dword [rsp + 0x98], 0
jne 0x140038642
xor eax, eax
jmp 0x140038647
mov eax, 1
add rsp, 0xd8
ret