Function at 0x140127980
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.1401b81b8
mov r10, qword [rsp + 0xd0]
mov qword [r10 + 0x18], rax
test rax, rax
jne 0x1401279fa
lea rax, str.outofmem
mov qword [0x1402ba2f0], rax
xor eax, eax
jmp 0x14012883b
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 0x140127b36
cmp dword [rbx + 4], r15d
jne 0x140127b36
cmp esi, eax
jne 0x140127b3e
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 0x1401283f2
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 0x140128448
cmp r11d, 8
jge 0x140127aec
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 0x140127b00
movzx r14d, byte [r14 + r8 + 0x29e5c4]
test r9, r9
jle 0x140127c2c
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.0x140127b34
movsxd rax, r14d
mov eax, dword [r8 + rax*4 + 0x128850]
add rax, r8
jmp rax
cmp esi, eax
jae 0x140127a42
lea rax, str.not_enough_pixels
mov qword [0x1402ba2f0], rax
xor eax, eax
jmp 0x14012883b
inc rbx
sub rbp, 1
jne 0x140127b20
jmp 0x140127c16
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140127c16
jmp case.0x140127b34.0
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140127c16
jmp case.0x140127b34.1
movzx eax, byte [rbx + r13]
add al, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140127c16
jmp case.0x140127b34.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 0x140127c16
jmp case.0x140127b34.3
movzx edx, byte [rbx + r13]
xor r8d, r8d
xor ecx, ecx
call fcn.14012bd00
add al, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
jne case.0x140127b34.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 0x140127c83
cmp r13d, ebx
je 0x140127c3b
mov byte [rsi + rdx], 0xff
mov rax, r15
mov rcx, rsi
jmp 0x140127c8a
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
je 0x140127c16
jmp case.0x140127b34.5
movzx eax, byte [rbx]
mov byte [r12 + rbx], al
lea rbx, [rbx + 1]
sub rbp, 1
jne case.0x140127b34.6
jmp 0x140127c16
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 0x1401280fa
cmp r13d, ebx
je 0x1401280fa
cmp r14d, 6
ja case.default.0x140127cd5
lea r9, [0x140000000]
movsxd rax, r14d
mov edx, dword [r9 + rax*4 + 0x12886c]
add rdx, r9
jmp rdx
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov r10d, eax
test rsi, rsi
jle 0x140127d11
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 0x140127d00
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r10, 1
jne 0x140127ce6
jmp case.default.0x140127cd5
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov r11d, eax
test rsi, rsi
jle 0x140127d65
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 0x140127d50
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x140127d35
jmp case.default.0x140127cd5
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov ebp, eax
nop dword [rax + rax]
mov rbx, r12
test r13d, r13d
jle 0x140127e64
cmp r13d, 0x40
jb 0x140127e64
lea eax, [r13 - 1]
movsxd rdx, eax
lea rax, [rdx + rdi]
lea r8, [rdx + rcx]
cmp rcx, rax
ja 0x140127dc3
cmp r8, rdi
jae 0x140127e64
lea rax, [rdx + r11]
cmp rcx, rax
ja 0x140127dd5
cmp r8, r11
jae 0x140127e64
mov edx, r13d
and edx, 0x8000003f
jge 0x140127de7
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 0x140127e00
cmp rbx, rsi
jge 0x140127e95
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 0x140127e80
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
add r11, r15
sub rbp, 1
jne 0x140127d90
jmp 0x14012838a
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov ebp, eax
nop
test rsi, rsi
jle 0x140127f01
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 0x140127ee0
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
add r11, r15
sub rbp, 1
jne 0x140127ec0
jmp 0x14012838a
lea r9d, [rbp - 1]
cmp r9d, 1
jb case.default.0x140127cd5
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 0x140128009
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 0x140127fc5
cmp ebp, eax
jle 0x140127fcf
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 0x140127f80
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 0x140127f50
jmp 0x14012838a
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov r11d, eax
test rsi, rsi
jle 0x140128089
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 0x140128070
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x140128052
jmp case.default.0x140127cd5
lea eax, [rbp - 1]
cmp eax, 1
jb case.default.0x140127cd5
mov r11d, eax
nop dword [rax]
test rsi, rsi
jle 0x1401280e5
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 0x1401280d0
mov byte [rsi + rcx], 0xff
add rdi, rsi
add rcx, r15
sub r11, 1
jne 0x1401280b0
jmp case.default.0x140127cd5
mov ebp, dword [rsp + 0x28]
dec ebp
imul ebp, r13d
mov dword [rsp + 0x28], ebp
cmp r14d, 6
ja case.default.0x14012812a
lea r8, [0x140000000]
movsxd rax, r14d
movsxd rbx, ebp
mov edx, dword [r8 + rax*4 + 0x128888]
add rdx, r8
jmp rdx
mov r8, rbx
mov rdx, rdi
call fcn.1401b00b0
jmp case.default.0x14012812a
test ebp, ebp
jle case.default.0x14012812a
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 0x140128160
jmp case.default.0x14012812a
mov r8, r12
test ebp, ebp
jle 0x140128245
cmp ebp, 0x40
jb 0x140128245
lea eax, [rbp - 1]
movsxd rdx, eax
lea rax, [rdx + rdi]
lea r9, [rdx + rcx]
cmp rcx, rax
ja 0x1401281a9
cmp r9, rdi
jae 0x140128245
lea rax, [rdx + r11]
cmp rcx, rax
ja 0x1401281bb
cmp r9, r11
jae 0x140128245
mov edx, ebp
and edx, 0x8000003f
jge 0x1401281cc
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 0x1401281e2
cmp r8, rbx
jge case.default.0x14012812a
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 0x140128260
jmp case.default.0x14012812a
test ebp, ebp
jle case.default.0x14012812a
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 0x1401282a0
jmp case.default.0x14012812a
test ebp, ebp
jle case.default.0x14012812a
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.14012bd00
add al, byte [rbp + r13]
mov byte [rsi + rbp], al
lea rbp, [rbp + 1]
sub rbx, 1
jne 0x1401282f0
mov rsi, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x28]
jmp case.default.0x14012812a
test ebp, ebp
jle case.default.0x14012812a
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 0x140128340
jmp case.default.0x14012812a
test ebp, ebp
jle case.default.0x14012812a
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 0x140128370
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 0x140127a90
mov edx, dword [rsp + 0x40]
lea r9, [0x140000000]
mov r15d, dword [rsp + 0xf8]
mov r14d, r14d
cmp r11d, 8
jge 0x14012882e
test r15d, r15d
je 0x14012882e
mov r12d, dword [rsp + 0x108]
movsxd rax, r11d
movsxd rbp, ebp
mov r15d, r8d
lea rsi, [rax + 0x29e820]
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 0x14012845d
movzx r10d, byte [rsi]
jmp 0x140128460
lea rax, str.invalid_filter
mov qword [0x1402ba2f0], rax
xor eax, eax
jmp 0x140128833
mov r10b, 1
cmp r11d, 4
jne 0x1401284d6
mov ebx, edx
cmp edx, 2
jl 0x1401284b5
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 0x140128480
test ebx, ebx
jle 0x140128780
movzx eax, byte [r9]
shr al, 4
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
jmp 0x140128780
cmp r11d, 2
jne 0x1401285b7
mov ebx, edx
cmp edx, 4
jl 0x140128565
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 0x140128500
test ebx, ebx
jle 0x140128580
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 0x14012859f
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 0x140128780
movzx ecx, byte [r9]
shr cl, 2
and cl, 3
jmp 0x140128773
cmp r11d, 1
jne 0x140128780
mov r11d, edx
cmp edx, 8
jl 0x1401286a8
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 0x1401285e0
test r11d, r11d
jle 0x1401286c4
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 0x1401286e4
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 0x140128704
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 0x140128724
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 0x140128744
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 0x140128764
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 0x140128780
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 0x140128809
mov rdx, qword [r10 + 0x18]
lea rcx, [rbp - 1]
add rdx, rdi
cmp r13d, 1
jne 0x1401287c4
test rcx, rcx
js 0x140128809
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 0x1401287b0
jmp 0x140128809
test rcx, rcx
js 0x140128809
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 0x1401287e0
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 0x140128422
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