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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x90
mov rbx, qword [rcx]
mov r14d, r9d
mov ebp, dword [rsp + 0xf0]
mov esi, r8d
mov r15d, dword [rsp + 0xf8]
mov rdi, rdx
imul r14d, ebp
movsxd r13, dword [rbx + 8]
mov dword [rsp + 0x20], r13d
mov ecx, r14d
mov dword [rsp + 0x24], r14d
imul ecx, r15d
call fcn.14028fd08
mov r10, qword [rsp + 0xd0]
mov qword [r10 + 0x18], rax
test rax, rax
jne 0x140160c3a
lea rax, str.outofmem
mov qword [0x1403da220], rax
xor eax, eax
jmp 0x140161a7b
mov r11d, dword [rsp + 0x100]
mov edx, r13d
imul edx, ebp
mov r8d, edx
mov dword [rsp + 0x40], edx
imul r8d, r11d
add r8d, 7
shr r8d, 3
mov dword [rsp + 0x3c], r8d
lea eax, [r8 + 1]
imul eax, r15d
cmp dword [rbx], ebp
jne 0x140160d76
cmp dword [rbx + 4], r15d
jne 0x140160d76
cmp esi, eax
jne 0x140160d7e
mov qword [rsp + 0xd8], r12
lea r9, [0x140000000]
xor r12d, r12d
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], r12
mov ecx, r12d
mov dword [rsp + 0x38], ecx
mov rsi, r13
test r15d, r15d
je 0x140161632
movsxd rbx, dword [rsp + 0xe8]
mov r9d, r14d
mov r15, rbx
mov qword [rsp + 0x88], r9
nop word [rax + rax]
mov edx, ecx
mov qword [rsp + 0x30], rsi
imul edx, r14d
movzx r14d, byte [rdi]
inc rdi
mov dword [rsp + 0x28], ebp
add rdx, qword [r10 + 0x18]
mov r10, rdx
mov qword [rsp + 0x48], rdx
sub r10, r9
mov r9, rsi
mov qword [rsp + 0x50], r10
cmp r14d, 4
ja 0x140161688
cmp r11d, 8
jge 0x140160d2c
mov eax, dword [rsp + 0x24]
mov r9d, 1
sub eax, r8d
mov qword [rsp + 0x30], r9
add rdx, rax
mov dword [rsp + 0x28], r8d
mov qword [rsp + 0x48], rdx
lea r8, [0x140000000]
test ecx, ecx
jne 0x140160d40
movzx r14d, byte [r14 + r8 + 0x3b8914]
test r9, r9
jle 0x140160e6c
mov r13, r10
mov r12, rdx
sub r13, rdi
mov rbx, rdi
sub r12, rdi
mov rbp, r9
nop dword [rax + rax]
cmp r14d, 6
ja case.default.0x140160d74
movsxd rax, r14d
mov eax, dword [r8 + rax*4 + 0x161a90]
add rax, r8
jmp rax
cmp esi, eax
jae 0x140160c82
lea rax, str.not_enough_pixels
mov qword [0x1403da220], rax
xor eax, eax
jmp 0x140161a7b
inc rbx
sub rbp, 1
jne 0x140160d60
jmp 0x140160e56
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140160e56
jmp case.0x140160d74.0
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140160e56
jmp case.0x140160d74.1
movzx eax, byte [rbx + r13]
add al, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140160e56
jmp case.0x140160d74.2
movzx eax, byte [rbx + r13]
lea rbx, [rbx + 1]
shr al, 1
add al, byte [rbx - 1]
mov byte [r12 + rbx - 1], al
sub rbp, 1
je 0x140160e56
jmp case.0x140160d74.3
movzx edx, byte [rbx + r13]
xor r8d, r8d
xor ecx, ecx
call fcn.140164f40
add al, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
jne case.0x140160d74.4
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x100]
mov ebx, dword [rsp + 0xe8]
xor r12d, r12d
mov ebp, dword [rsp + 0xf0]
mov r13d, dword [rsp + 0x20]
cmp r11d, 8
jne 0x140160ec3
cmp r13d, ebx
je 0x140160e7b
mov byte [rsi + rdx], 0xff
mov rax, r15
mov rcx, rsi
jmp 0x140160eca
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140160e56
jmp case.0x140160d74.5
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
jne case.0x140160d74.6
jmp 0x140160e56
mov eax, 1
mov ecx, eax
add rdi, rcx
lea r11, [rax + r10]
cmp dword [rsp + 0x100], 8
lea rcx, [rax + rdx]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], r11
jl 0x14016133a
cmp r13d, ebx
je 0x14016133a
cmp r14d, 6
ja case.default.0x140160f15
lea r9, [0x140000000]
movsxd rax, r14d
mov edx, dword [r9 + rax*4 + 0x161aac]
add rdx, r9
jmp rdx
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov r10d, eax
test rsi, rsi
jle 0x140160f51
mov r9, rdi
mov rdx, rcx
sub r9, rcx
mov r8, rsi
nop word [rax + rax]
movzx eax, byte [r9 + rdx]
mov byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x140160f40
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r10, 1
jne 0x140160f26
jmp case.default.0x140160f15
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov r11d, eax
test rsi, rsi
jle 0x140160fa5
mov r9, rcx
mov r10, rcx
sub r9, r15
mov rdx, rdi
sub r9, rdi
mov r8, rsi
sub r10, rdi
nop
movzx eax, byte [r9 + rdx]
add al, byte [rdx]
mov byte [rdx + r10], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x140160f90
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x140160f75
jmp case.default.0x140160f15
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov ebp, eax
nop dword [rax + rax]
mov rbx, r12
test r13d, r13d
jle 0x1401610a4
cmp r13d, 0x40
jb 0x1401610a4
lea eax, [r13 - 1]
movsxd rdx, eax
lea rax, [rdx + rdi]
lea r8, [rdx + rcx]
cmp rcx, rax
ja 0x140161003
cmp r8, rdi
jae 0x1401610a4
lea rax, [rdx + r11]
cmp rcx, rax
ja 0x140161015
cmp r8, r11
jae 0x1401610a4
mov edx, r13d
and edx, 0x8000003f
jge 0x140161027
dec edx
or edx, 0xffffffc0
inc edx
mov eax, r13d
mov r8, r11
sub eax, edx
mov rdx, rdi
sub rdx, rcx
movsxd r9, eax
sub r8, rcx
lea rax, [rcx + 0x10]
nop
movdqu xmm0, xmmword [rax + rdx - 0x10]
add rbx, 0x40
movdqu xmm1, xmmword [rax + r8 - 0x10]
movdqu xmm2, xmmword [rax + r8]
lea rax, [rax + 0x40]
paddb xmm1, xmm0
movdqu xmm0, xmmword [rax + rdx - 0x40]
movdqu xmmword [rax - 0x50], xmm1
paddb xmm2, xmm0
movdqu xmm0, xmmword [rdx + rax - 0x30]
movdqu xmm1, xmmword [rax + r8 - 0x30]
movdqu xmmword [rax - 0x40], xmm2
paddb xmm1, xmm0
movdqu xmm0, xmmword [rdx + rax - 0x20]
movdqu xmm2, xmmword [rax + r8 - 0x20]
movdqu xmmword [rax - 0x30], xmm1
paddb xmm2, xmm0
movdqu xmmword [rax - 0x20], xmm2
cmp rbx, r9
jl 0x140161040
cmp rbx, rsi
jge 0x1401610d5
mov r9, r11
lea rdx, [rbx + rdi]
mov r10, rcx
sub r9, rdi
sub r10, rdi
mov r8, rsi
sub r8, rbx
nop
movzx eax, byte [r9 + rdx]
add al, byte [rdx]
mov byte [r10 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1401610c0
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
add r11, r15
sub rbp, 1
jne 0x140160fd0
jmp 0x1401615ca
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov ebp, eax
nop
test rsi, rsi
jle 0x140161141
mov r9, rcx
mov rbx, rdi
sub r9, r15
sub rbx, r11
sub r9, r11
mov r14, rcx
sub r14, r11
mov r8, r11
mov r10, rsi
movzx edx, byte [r9 + r8]
movzx eax, byte [r8]
lea r8, [r8 + 1]
add edx, eax
shr edx, 1
add dl, byte [rbx + r8 - 1]
mov byte [r14 + r8 - 1], dl
sub r10, 1
jne 0x140161120
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
add r11, r15
sub rbp, 1
jne 0x140161100
jmp 0x1401615ca
lea r9d, [rbp - 1]
cmp r9d, 1
jb case.default.0x140160f15
mov rax, r15
mov r8d, r9d
sub rax, rcx
mov qword [rsp + 0x50], r8
lea rdx, [rsi + rcx]
mov qword [rsp + 0x28], rax
lea rbx, [r15 + rsi]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x80], rbx
nop
test rsi, rsi
jle 0x140161249
mov r10, rdx
mov r12, rsi
mov rdx, r11
sub r10, rbx
sub rdx, rcx
lea rcx, [rax + r11]
add rax, rdi
mov r11, rdx
mov rsi, rax
nop word [rax + rax]
movzx ebx, byte [r10]
movzx r14d, byte [r10 + r11]
mov r8d, ebx
movzx r13d, byte [rcx + r10]
sub r8d, r14d
lea r9d, [r8 + r13]
mov eax, r9d
sub r9d, r14d
sub eax, ebx
cdq
mov ebp, eax
mov eax, r8d
xor ebp, edx
sub ebp, edx
cdq
mov r8d, eax
mov eax, r9d
xor r8d, edx
sub r8d, edx
cdq
xor eax, edx
sub eax, edx
cmp ebp, r8d
jg 0x140161205
cmp ebp, eax
jle 0x14016120f
cmp r8d, eax
mov ebx, r14d
cmovle ebx, r13d
movzx eax, byte [rsi + r10]
add al, bl
mov byte [r15 + r10], al
inc r10
sub r12, 1
jne 0x1401611c0
mov rcx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
add rcx, r15
mov byte [rdx], 0xff
add rdx, r15
mov qword [rsp + 0x48], rcx
sub rax, r15
mov qword [rsp + 0x30], rdx
add r11, r15
mov qword [rsp + 0x28], rax
add rdi, rsi
mov qword [rsp + 0x58], r11
sub r8, 1
mov qword [rsp + 0x50], r8
jne 0x140161190
jmp 0x1401615ca
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov r11d, eax
test rsi, rsi
jle 0x1401612c9
mov r9, rcx
mov r10, rcx
sub r9, r15
mov rdx, rdi
sub r9, rdi
mov r8, rsi
sub r10, rdi
nop dword [rax]
movzx eax, byte [r9 + rdx]
lea rdx, [rdx + 1]
shr al, 1
add al, byte [rdx - 1]
mov byte [r10 + rdx - 1], al
sub r8, 1
jne 0x1401612b0
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x140161292
jmp case.default.0x140160f15
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140160f15
mov r11d, eax
nop dword [rax]
test rsi, rsi
jle 0x140161325
mov r9, rcx
mov r10, rcx
sub r9, r15
mov rdx, rdi
sub r9, rdi
mov r8, rsi
sub r10, rdi
nop word [rax + rax]
movzx eax, byte [r9 + rdx]
add al, byte [rdx]
mov byte [r10 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x140161310
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x1401612f0
jmp case.default.0x140160f15
mov ebp, dword [rsp + 0x28]
dec ebp
imul ebp, r13d
mov dword [rsp + 0x28], ebp
cmp r14d, 6
ja case.default.0x14016136a
lea r8, [0x140000000]
movsxd rax, r14d
movsxd rbx, ebp
mov edx, dword [r8 + rax*4 + 0x161ac8]
add rdx, r8
jmp rdx
mov r8, rbx
mov rdx, rdi
call fcn.140289020
jmp case.default.0x14016136a
test ebp, ebp
jle case.default.0x14016136a
mov r8, rcx
mov rdx, rdi
sub r8, r9
sub r8, rdi
sub rcx, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
add al, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x1401613a0
jmp case.default.0x14016136a
mov r8, r12
test ebp, ebp
jle 0x140161485
cmp ebp, 0x40
jb 0x140161485
lea eax, [rbp - 1]
movsxd rdx, eax
lea rax, [rdx + rdi]
lea r9, [rdx + rcx]
cmp rcx, rax
ja 0x1401613e9
cmp r9, rdi
jae 0x140161485
lea rax, [rdx + r11]
cmp rcx, rax
ja 0x1401613fb
cmp r9, r11
jae 0x140161485
mov edx, ebp
and edx, 0x8000003f
jge 0x14016140c
dec edx
or edx, 0xffffffc0
inc edx
mov eax, ebp
mov r9, rcx
sub eax, edx
mov rdx, r11
sub rdx, rdi
movsxd r10, eax
sub r9, rdi
mov rax, rdi
movdqu xmm0, xmmword [rax]
add r8, 0x40
movdqu xmm1, xmmword [rdx + rax]
movdqu xmm2, xmmword [rdx + rax + 0x10]
lea rax, [rax + 0x40]
paddb xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmmword [rax + r9 - 0x40], xmm1
paddb xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rdx + rax - 0x20]
movdqu xmmword [r9 + rax - 0x30], xmm2
paddb xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rdx + rax - 0x10]
movdqu xmmword [r9 + rax - 0x20], xmm1
paddb xmm2, xmm0
movdqu xmmword [r9 + rax - 0x10], xmm2
cmp r8, r10
jl 0x140161422
cmp r8, rbx
jge case.default.0x14016136a
sub r11, rdi
lea rdx, [r8 + rdi]
sub rcx, rdi
sub rbx, r8
nop dword [rax + rax]
movzx eax, byte [r11 + rdx]
add al, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x1401614a0
jmp case.default.0x14016136a
test ebp, ebp
jle case.default.0x14016136a
mov r8, rcx
sub r8, r9
mov r9, rdi
sub r9, r11
sub r8, r11
sub rcx, r11
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r8 + r11]
movzx eax, byte [r11]
lea r11, [r11 + 1]
add edx, eax
shr edx, 1
add dl, byte [r9 + r11 - 1]
mov byte [rcx + r11 - 1], dl
sub rbx, 1
jne 0x1401614e0
jmp case.default.0x14016136a
test ebp, ebp
jle case.default.0x14016136a
mov rsi, qword [rsp + 0x30]
mov rbp, rcx
mov r14, r11
sub rbp, r9
sub r14, rcx
mov rax, r9
sub rax, rcx
lea r12, [r11 + rax]
lea r13, [rdi + rax]
nop dword [rax]
movzx r8d, byte [r14 + rbp]
movzx edx, byte [r12 + rbp]
movzx ecx, byte [rbp]
call fcn.140164f40
add al, byte [rbp + r13]
mov byte [rsi + rbp], al
lea rbp, [rbp + 1]
sub rbx, 1
jne 0x140161530
mov rsi, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x28]
jmp case.default.0x14016136a
test ebp, ebp
jle case.default.0x14016136a
mov r8, rcx
mov rdx, rdi
sub r8, r9
sub r8, rdi
sub rcx, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
lea rdx, [rdx + 1]
shr al, 1
add al, byte [rdx - 1]
mov byte [rcx + rdx - 1], al
sub rbx, 1
jne 0x140161580
jmp case.default.0x14016136a
test ebp, ebp
jle case.default.0x14016136a
mov r8, rcx
mov rdx, rdi
sub r8, r9
sub r8, rdi
sub rcx, rdi
nop dword [rax]
movzx eax, byte [r8 + rdx]
add al, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x1401615b0
movsxd rax, ebp
add rdi, rax
mov ebx, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0x38]
mov r12d, 0
mov r13d, dword [rsp + 0x20]
inc ecx
mov r8d, dword [rsp + 0x3c]
mov ebp, dword [rsp + 0xf0]
mov r11d, dword [rsp + 0x100]
mov r9, qword [rsp + 0x88]
mov r14d, dword [rsp + 0x24]
mov r10, qword [rsp + 0xd0]
mov dword [rsp + 0x38], ecx
cmp ecx, dword [rsp + 0xf8]
jb 0x140160cd0
mov edx, dword [rsp + 0x40]
lea r9, [0x140000000]
mov r15d, dword [rsp + 0xf8]
mov r14d, r14d
cmp r11d, 8
jge 0x140161a6e
test r15d, r15d
je 0x140161a6e
mov r12d, dword [rsp + 0x108]
movsxd rax, r11d
movsxd rbp, ebp
mov r15d, r8d
lea rsi, [rax + 0x3b8b70]
add rsi, r9
xor eax, eax
imul eax, dword [rsp + 0x24]
mov edi, eax
mov rax, qword [r10 + 0x18]
mov r9d, edi
sub r9, r15
add r9, rax
add r9, r14
lea r8, [rdi + rax]
test r12d, r12d
jne 0x14016169d
movzx r10d, byte [rsi]
jmp 0x1401616a0
lea rax, str.invalid_filter
mov qword [0x1403da220], rax
xor eax, eax
jmp 0x140161a73
mov r10b, 1
cmp r11d, 4
jne 0x140161716
mov ebx, edx
cmp edx, 2
jl 0x1401616f5
mov r11d, ebx
shr r11, 1
mov eax, r11d
neg eax
lea ebx, [rbx + rax*2]
nop dword [rax + rax]
movzx eax, byte [r9]
shr al, 4
movzx edx, al
movzx ecx, r10b
imul edx, ecx
movzx ecx, r10b
mov byte [r8], dl
movzx eax, byte [r9]
inc r9
and al, 0xf
movzx edx, al
imul edx, ecx
mov byte [r8 + 1], dl
add r8, 2
sub r11, 1
jne 0x1401616c0
test ebx, ebx
jle 0x1401619c0
movzx eax, byte [r9]
shr al, 4
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
jmp 0x1401619c0
cmp r11d, 2
jne 0x1401617f7
mov ebx, edx
cmp edx, 4
jl 0x1401617a5
mov r11d, ebx
shr r11, 2
mov eax, r11d
neg eax
lea ebx, [rbx + rax*4]
nop word [rax + rax]
movzx eax, byte [r9]
shr al, 6
movzx edx, al
movzx ecx, r10b
imul edx, ecx
movzx eax, r10b
mov byte [r8], dl
movzx ecx, byte [r9]
shr cl, 4
and cl, 3
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 1], cl
movzx ecx, byte [r9]
shr cl, 2
and cl, 3
movzx ecx, cl
imul ecx, eax
mov byte [r8 + 2], cl
movzx eax, byte [r9]
inc r9
and al, 3
movzx ecx, r10b
movzx edx, al
imul edx, ecx
mov byte [r8 + 3], dl
add r8, 4
sub r11, 1
jne 0x140161740
test ebx, ebx
jle 0x1401617c0
movzx eax, byte [r9]
shr al, 6
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
inc r8
cmp ebx, 1
jle 0x1401617df
movzx ecx, byte [r9]
shr cl, 4
and cl, 3
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp ebx, 2
jle 0x1401619c0
movzx ecx, byte [r9]
shr cl, 2
and cl, 3
jmp 0x1401619b3
cmp r11d, 1
jne 0x1401619c0
mov r11d, edx
cmp edx, 8
jl 0x1401618e8
mov ebx, r11d
shr rbx, 3
mov eax, ebx
neg eax
lea r11d, [r11 + rax*8]
nop dword [rax]
movzx eax, byte [r9]
shr al, 7
movzx edx, al
movzx ecx, r10b
imul edx, ecx
movzx eax, r10b
mov byte [r8], dl
movzx ecx, byte [r9]
shr cl, 6
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 1], cl
movzx ecx, byte [r9]
shr cl, 5
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 2], cl
movzx ecx, byte [r9]
shr cl, 4
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 3], cl
movzx ecx, byte [r9]
shr cl, 3
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 4], cl
movzx ecx, byte [r9]
shr cl, 2
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, r10b
mov byte [r8 + 5], cl
movzx ecx, byte [r9]
shr cl, 1
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [r8 + 6], cl
movzx eax, byte [r9]
inc r9
and al, 1
movzx ecx, r10b
movzx edx, al
imul edx, ecx
mov byte [r8 + 7], dl
add r8, 8
sub rbx, 1
jne 0x140161820
test r11d, r11d
jle 0x140161904
movzx eax, byte [r9]
shr al, 7
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
inc r8
cmp r11d, 1
jle 0x140161924
movzx ecx, byte [r9]
shr cl, 6
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp r11d, 2
jle 0x140161944
movzx ecx, byte [r9]
shr cl, 5
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp r11d, 3
jle 0x140161964
movzx ecx, byte [r9]
shr cl, 4
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp r11d, 4
jle 0x140161984
movzx ecx, byte [r9]
shr cl, 3
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp r11d, 5
jle 0x1401619a4
movzx ecx, byte [r9]
shr cl, 2
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
inc r8
cmp r11d, 6
jle 0x1401619c0
movzx ecx, byte [r9]
shr cl, 1
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
mov r10, qword [rsp + 0xd0]
cmp r13d, dword [rsp + 0xe8]
je 0x140161a49
mov rdx, qword [r10 + 0x18]
lea rcx, [rbp - 1]
add rdx, rdi
cmp r13d, 1
jne 0x140161a04
test rcx, rcx
js 0x140161a49
nop dword [rax + rax]
mov byte [rdx + rcx*2 + 1], 0xff
movzx eax, byte [rcx + rdx]
mov byte [rdx + rcx*2], al
sub rcx, 1
jns 0x1401619f0
jmp 0x140161a49
test rcx, rcx
js 0x140161a49
lea r8, [rcx*2 + 1]
add r8, rdx
lea rdx, [rdx + rcx*4]
add r8, rcx
add rdx, 2
nop
sub rcx, 1
mov byte [rdx + 1], 0xff
movzx eax, byte [r8 + 1]
lea r8, [r8 - 3]
mov byte [rdx], al
lea rdx, [rdx - 4]
movzx eax, byte [r8 + 3]
mov byte [rdx + 3], al
movzx eax, byte [r8 + 2]
mov byte [rdx + 2], al
jns 0x140161a20
mov rax, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x100]
inc eax
mov edx, dword [rsp + 0x40]
mov qword [rsp + 0x68], rax
cmp eax, dword [rsp + 0xf8]
jb 0x140161662
mov eax, 1
mov r12, qword [rsp + 0xd8]
add rsp, 0x90
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret