Function at 0x14000c170
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov r13d, dword [rsp + 0x130]
xor r12d, r12d
cmp r13d, 0x10
mov qword [rsp + 0x88], r12
mov r10d, r12d
mov r14d, r9d
sete r10b
mov ebp, r8d
inc r10d
mov rbx, rdx
mov edi, r10d
mov rsi, rcx
imul edi, r9d
mov r9d, dword [rsp + 0x120]
mov dword [rsp + 0x3c], r9d
mov eax, edi
imul eax, r9d
mov dword [rsp + 0x48], eax
mov rax, qword [rcx]
mov eax, dword [rax + 8]
mov r15d, eax
imul r15d, r10d
mov r10d, dword [rsp + 0x128]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x100], r15d
test r9d, r9d
js 0x14000c268
test r10d, r10d
js 0x14000c268
je 0x14000c21a
mov eax, 0x7fffffff
mov ecx, r12d
cdq
idiv r10d
cmp r9d, eax
setle cl
test ecx, ecx
je 0x14000c268
mov r8d, r9d
imul r8d, r10d
test r8d, r8d
js 0x14000c268
test edi, edi
js 0x14000c268
je 0x14000c241
mov eax, 0x7fffffff
mov ecx, r12d
cdq
idiv edi
cmp r8d, eax
setle cl
test ecx, ecx
je 0x14000c268
mov eax, edi
imul eax, r9d
imul eax, r10d
movsxd rcx, eax
call fcn.140036d58
mov r9d, dword [rsp + 0x120]
mov r11, rax
mov r10d, dword [rsp + 0x128]
jmp 0x14000c26b
mov r11, r12
mov qword [rsp + 0x50], r11
mov qword [rsi + 0x18], r11
test r11, r11
jne 0x14000c291
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rax, str.outofmem
jmp 0x14000d24d
movsxd rsi, dword [rsp + 0x28]
test esi, esi
js 0x14000d23a
test r9d, r9d
js 0x14000d23a
je 0x14000c2c2
mov eax, 0x7fffffff
mov ecx, r12d
cdq
idiv r9d
cmp esi, eax
setle cl
test ecx, ecx
je 0x14000d23a
mov edx, esi
imul edx, r9d
mov dword [rsp + 0x38], edx
test edx, edx
js 0x14000d23a
test r13d, r13d
js 0x14000d23a
je 0x14000c2fc
mov eax, 0x7fffffff
mov ecx, r12d
cdq
idiv r13d
mov edx, dword [rsp + 0x38]
cmp edx, eax
setle cl
test ecx, ecx
je 0x14000d23a
mov eax, edx
imul eax, r13d
cmp eax, 0x7ffffff8
jg 0x14000d23a
lea r8d, [rax + 7]
shr r8d, 3
mov dword [rsp + 0x44], r8d
lea eax, [r8 + 1]
imul eax, r10d
cmp ebp, eax
jae 0x14000c33e
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rax, str.not_enough_pixels
jmp 0x14000d24d
lea rbp, [0x140000000]
mov ecx, r12d
mov dword [rsp + 0x40], ecx
test r10d, r10d
je 0x14000cd96
mov rbp, rsi
mov qword [rsp + 0xb8], rsi
movsxd rsi, r15d
movsxd r14, edi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0xb0], r14
nop dword [rax]
nop word [rax + rax]
mov r10d, dword [rsp + 0x48]
mov edx, ecx
imul edx, r10d
add rdx, r11
movzx r11d, byte [rbx]
inc rbx
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x20], rdx
cmp r11d, 4
ja 0x14000ce01
cmp r13d, 8
jge 0x14000c3f0
cmp r8d, r9d
ja 0x14000cd6b
mov edi, dword [rsp + 0x118]
mov r15d, 1
mov eax, edi
mov dword [rsp + 0x100], r15d
imul eax, r9d
mov esi, r15d
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x3c], r8d
sub eax, r8d
add rdx, rax
mov qword [rsp + 0x20], rdx
jmp 0x14000c3f7
mov edi, dword [rsp + 0x118]
mov rax, r10
lea r8, [0x140000000]
mov r10, rdx
sub r10, rax
mov qword [rsp + 0x30], r10
test ecx, ecx
jne 0x14000c419
movzx r11d, byte [r11 + r8 + 0x74304]
test rsi, rsi
jle 0x14000c53b
mov r9, rdx
sub r10, rbx
sub r9, rbx
mov rcx, rbx
mov rdx, rsi
cmp r11d, 6
ja case.default.0x14000c445
movsxd rax, r11d
mov eax, dword [r8 + rax*4 + 0xd274]
add rax, r8
jmp rax
inc rcx
sub rdx, 1
je 0x14000c531
lea r8, [0x140000000]
jmp 0x14000c431
movzx eax, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.0
movzx eax, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.1
movzx eax, byte [r10 + rcx]
add al, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.2
movzx eax, byte [r10 + rcx]
lea rcx, [rcx + 1]
shr al, 1
add al, byte [rcx - 1]
mov byte [r9 + rcx - 1], al
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.3
movzx eax, byte [r10 + rcx]
lea rcx, [rcx + 1]
test eax, eax
cmove eax, r12d
add al, byte [rcx - 1]
mov byte [r9 + rcx - 1], al
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.4
movzx eax, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
je 0x14000c531
jmp case.0x14000c445.5
movzx eax, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne case.0x14000c445.6
mov r10, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x20]
cmp r13d, 8
jne 0x14000c553
cmp dword [rsp + 0x28], edi
je 0x14000c54b
mov byte [rdx + rbp], 0xff
movsxd rax, edi
mov rdx, rbp
jmp 0x14000c577
cmp r13d, 0x10
jne 0x14000c570
cmp dword [rsp + 0x28], edi
je 0x14000c565
mov word [rsi + rdx], 0xffff
mov rax, r14
movsxd rdx, r15d
mov rcx, r14
jmp 0x14000c57a
mov eax, 1
mov edx, eax
mov rcx, rax
add r10, rcx
add rbx, rdx
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov qword [rsp + 0x78], r10
cmp dword [rsp + 0x130], 8
mov qword [rsp + 0x60], rcx
jl 0x14000caa3
mov eax, dword [rsp + 0x28]
cmp eax, dword [rsp + 0x118]
je 0x14000caa3
cmp r11d, 6
ja case.default.0x14000c5d0
movsxd rax, r11d
lea r11, [0x140000000]
mov edx, dword [r11 + rax*4 + 0xd290]
add rdx, r11
jmp rdx
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd r11, dword [rsp + 0x100]
mov r10d, eax
nop
test rsi, rsi
jle 0x14000c612
mov r9, rbx
mov rdx, rcx
sub r9, rcx
mov r8, rsi
movzx eax, byte [r9 + rdx]
mov byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x14000c601
mov byte [rsi + rcx], 0xff
add rbx, r11
add rcx, r14
sub r10, 1
jne 0x14000c5f0
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd rdi, dword [rsp + 0x100]
mov r11d, eax
test rsi, rsi
jle 0x14000c675
mov r9, rcx
mov r10, rcx
sub r9, r14
mov rdx, rbx
sub r9, rbx
mov r8, rsi
sub r10, rbx
nop
movzx eax, byte [r9 + rdx]
add al, byte [rdx]
mov byte [rdx + r10], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x14000c660
mov byte [rsi + rcx], 0xff
add rbx, rdi
add rcx, r14
sub r11, 1
jne 0x14000c644
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd r11, dword [rsp + 0x100]
mov r15, r11
mov ebp, eax
nop dword [rax]
xor eax, eax
mov r8d, eax
test r11d, r11d
jle 0x14000c759
cmp r11d, 0x20
jb 0x14000c759
lea eax, [r11 - 1]
movsxd rdx, eax
lea rax, [rdx + rbx]
lea r9, [rdx + rcx]
cmp rcx, rax
ja 0x14000c6e1
cmp r9, rbx
jae 0x14000c759
lea rax, [rdx + r10]
cmp rcx, rax
ja 0x14000c6ef
cmp r9, r10
jae 0x14000c759
mov edx, r11d
and edx, 0x8000001f
jge 0x14000c701
dec edx
or edx, 0xffffffe0
inc edx
mov eax, r11d
mov r9, rbx
sub eax, edx
mov rdx, r10
sub rdx, rcx
movsxd r11, eax
sub r9, rcx
lea rax, [rcx + 0x10]
nop dword [rax]
movdqu xmm0, xmmword [rdx + rax - 0x10]
add r8, 0x20
movdqu xmm1, xmmword [r9 + rax - 0x10]
lea rax, [rax + 0x20]
paddb xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm2, xmmword [rdx + rax - 0x20]
movdqu xmm0, xmmword [rax + r9 - 0x20]
paddb xmm2, xmm0
movdqu xmmword [rax - 0x20], xmm2
cmp r8, r11
jl 0x14000c720
cmp r8, rsi
jge 0x14000c794
mov r11, r10
lea rdx, [r8 + rbx]
mov rdi, rcx
sub r11, rbx
sub rdi, rbx
mov r9, rsi
sub r9, r8
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + r11]
add al, byte [rdx]
mov byte [rdx + rdi], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x14000c780
mov r11d, dword [rsp + 0x100]
add rbx, r15
mov byte [rsi + rcx], 0xff
add r10, r14
add rcx, r14
sub rbp, 1
jne 0x14000c6b0
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd r12, dword [rsp + 0x100]
mov ebp, eax
test rsi, rsi
jle 0x14000c821
mov r9, rcx
mov rdi, rbx
sub r9, r14
sub rdi, r10
sub r9, r10
mov r15, rcx
sub r15, r10
mov r8, r10
mov r11, rsi
nop dword [rax]
nop dword [rax + rax]
movzx edx, byte [r9 + r8]
movzx eax, byte [r8]
lea r8, [r8 + 1]
add edx, eax
shr edx, 1
add dl, byte [rdi + r8 - 1]
mov byte [r15 + r8 - 1], dl
sub r11, 1
jne 0x14000c800
mov byte [rsi + rcx], 0xff
add rbx, r12
add rcx, r14
add r10, r14
sub rbp, 1
jne 0x14000c7d4
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
lea r8d, [rax - 1]
cmp r8d, 1
jb 0x14000ca6c
movsxd rax, dword [rsp + 0x100]
lea rdi, [r14 + rsi]
mov qword [rsp + 0x20], rax
mov rdx, r14
mov r11, qword [rsp + 0x20]
sub rdx, rcx
mov rax, r14
mov qword [rsp + 0x70], rdx
neg rax
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x30], rax
neg rdi
mov r9, qword [rsp + 0x30]
lea rax, [rsi + rcx]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xa0], rdi
nop dword [rax + rax]
test rsi, rsi
jle 0x14000c968
lea r11, [rdi + rax]
mov r15, rsi
mov rax, r10
sub rax, rcx
lea rcx, [rdx + r10]
mov qword [rsp + 0x98], rax
lea rax, [rdx + rbx]
mov r10, qword [rsp + 0x98]
mov rsi, rax
movzx edi, byte [r11]
movzx r12d, byte [r11 + r10]
mov r8d, edi
movzx r13d, byte [rcx + r11]
sub r8d, r12d
lea r9d, [r8 + r13]
mov eax, r9d
sub r9d, r12d
sub eax, edi
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 0x14000c916
cmp ebp, eax
jle 0x14000c920
cmp r8d, eax
mov edi, r12d
cmovle edi, r13d
movzx eax, byte [rsi + r11]
add al, dil
mov byte [r14 + r11], al
inc r11
sub r15, 1
jne 0x14000c8d1
mov rcx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x80]
mov r9, qword [rsp + 0x30]
mov r11, qword [rsp + 0x20]
mov rdi, qword [rsp + 0xa0]
add rcx, r14
mov byte [rax], 0xff
add rax, r14
mov qword [rsp + 0x60], rcx
add rdx, r9
mov qword [rsp + 0x68], rax
add r10, r14
mov qword [rsp + 0x70], rdx
add rbx, r11
mov qword [rsp + 0x78], r10
sub r8, 1
mov qword [rsp + 0x80], r8
jne 0x14000c8a0
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd rdi, dword [rsp + 0x100]
mov r11d, eax
test rsi, rsi
jle 0x14000c9f9
mov r9, rcx
mov r10, rcx
sub r9, r14
mov rdx, rbx
sub r9, rbx
mov r8, rsi
sub r10, rbx
nop dword [rax]
movzx eax, byte [rdx + r9]
lea rdx, [rdx + 1]
shr al, 1
add al, byte [rdx - 1]
mov byte [rdx + r10 - 1], al
sub r8, 1
jne 0x14000c9e0
mov byte [rsi + rcx], 0xff
add rbx, rdi
add rcx, r14
sub r11, 1
jne 0x14000c9c2
jmp case.default.0x14000c5d0
mov eax, dword [rsp + 0x120]
dec eax
cmp eax, 1
jb case.default.0x14000c5d0
movsxd rdi, dword [rsp + 0x100]
mov r11d, eax
test rsi, rsi
jle 0x14000ca55
mov r9, rcx
mov r10, rcx
sub r9, r14
mov rdx, rbx
sub r9, rbx
mov r8, rsi
sub r10, rbx
nop
movzx eax, byte [rdx + r9]
add al, byte [rdx]
mov byte [rdx + r10], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x14000ca40
mov byte [rsi + rcx], 0xff
add rbx, rdi
add rcx, r14
sub r11, 1
jne 0x14000ca24
mov eax, dword [rsp + 0x120]
mov r13d, dword [rsp + 0x130]
cmp r13d, 0x10
jne 0x14000cd2a
test eax, eax
je 0x14000cd2a
mov rcx, qword [rsp + 0xa8]
nop
mov byte [rsi + rcx + 1], 0xff
add rcx, r14
sub rax, 1
jne 0x14000ca90
jmp 0x14000cd2a
mov edi, dword [rsp + 0x3c]
dec edi
imul edi, dword [rsp + 0x100]
mov dword [rsp + 0x20], edi
cmp r11d, 6
ja case.default.0x14000cad7
lea r8, [0x140000000]
movsxd rax, r11d
movsxd r9, edi
mov edx, dword [r8 + rax*4 + 0xd2ac]
add rdx, r8
jmp rdx
mov r8, r9
mov rdx, rbx
call fcn.14002cd50
jmp case.default.0x14000cad7
test edi, edi
jle case.default.0x14000cad7
sub rcx, rbx
mov rdx, rbx
mov r8, rcx
sub r8, rsi
nop dword [rax]
movzx eax, byte [r8 + rdx]
add al, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x14000cb00
jmp case.default.0x14000cad7
xor eax, eax
mov r8d, eax
test edi, edi
jle 0x14000cbb7
cmp edi, 0x20
jb 0x14000cbb7
lea eax, [rdi - 1]
movsxd rdx, eax
lea rax, [rdx + rbx]
lea r11, [rdx + rcx]
cmp rcx, rax
ja 0x14000cb47
cmp r11, rbx
jae 0x14000cbb7
lea rax, [rdx + r10]
cmp rcx, rax
ja 0x14000cb55
cmp r11, r10
jae 0x14000cbb7
mov edx, edi
and edx, 0x8000001f
jge 0x14000cb66
dec edx
or edx, 0xffffffe0
inc edx
mov eax, edi
mov r11, rcx
sub eax, edx
mov rdx, r10
sub rdx, rbx
movsxd rdi, eax
sub r11, rbx
mov rax, rbx
nop dword [rax]
movdqu xmm0, xmmword [rax]
add r8, 0x20
movdqu xmm1, xmmword [rdx + rax]
lea rax, [rax + 0x20]
paddb xmm1, xmm0
movdqu xmmword [r11 + rax - 0x20], xmm1
movdqu xmm2, xmmword [rdx + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
paddb xmm2, xmm0
movdqu xmmword [r11 + rax - 0x10], xmm2
cmp r8, rdi
jl 0x14000cb80
cmp r8, r9
jge case.default.0x14000cad7
sub r10, rbx
lea rdx, [rbx + r8]
sub rcx, rbx
sub r9, r8
nop dword [rax]
movzx eax, byte [rdx + r10]
add al, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x14000cbd0
jmp case.default.0x14000cad7
test edi, edi
jle case.default.0x14000cad7
sub rcx, r10
mov r11, rbx
mov r8, rcx
sub r8, rsi
sub r11, r10
movzx eax, byte [r10]
movzx edx, byte [r8 + r10]
lea r10, [r10 + 1]
add edx, eax
movzx eax, byte [r11 + r10 - 1]
shr edx, 1
add al, dl
mov byte [rcx + r10 - 1], al
sub r9, 1
jne 0x14000cc00
jmp case.default.0x14000cad7
test edi, edi
jle case.default.0x14000cad7
sub r10, rcx
mov r11, rcx
mov r13, rbx
sub r11, rsi
sub r13, rcx
add r13, rsi
lea r14, [rsi + r10]
nop word [rax + rax]
movzx edi, byte [r11]
movzx r15d, byte [r10 + r11]
mov ecx, edi
movzx r12d, byte [r14 + r11]
sub ecx, r15d
lea r8d, [r12 + rcx]
mov eax, r8d
sub r8d, r15d
sub eax, edi
cdq
mov ebp, eax
mov eax, ecx
xor ebp, edx
sub ebp, edx
cdq
mov ecx, eax
mov eax, r8d
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ebp, ecx
jg 0x14000cc8f
cmp ebp, eax
jle 0x14000cc98
cmp ecx, eax
mov edi, r15d
cmovle edi, r12d
movzx eax, byte [r11 + r13]
add al, dil
mov byte [rsi + r11], al
inc r11
sub r9, 1
jne 0x14000cc50
mov r14, qword [rsp + 0xb0]
jmp case.default.0x14000cad7
test edi, edi
jle case.default.0x14000cad7
sub rcx, rbx
mov rdx, rbx
mov r8, rcx
sub r8, rsi
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 r9, 1
jne 0x14000ccd0
jmp case.default.0x14000cad7
test edi, edi
jle case.default.0x14000cad7
sub rcx, rbx
mov r8, rbx
mov r10, rcx
sub r10, rsi
nop word [rax + rax]
movzx eax, byte [r10 + r8]
movzx edx, byte [r8]
lea r8, [r8 + 1]
add dl, al
mov byte [rcx + r8 - 1], dl
sub r9, 1
jne 0x14000cd00
movsxd rax, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x130]
add rbx, rax
mov ecx, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x128]
inc ecx
mov r9d, dword [rsp + 0x120]
mov r8d, dword [rsp + 0x44]
mov r11, qword [rsp + 0x50]
mov dword [rsp + 0x40], ecx
cmp ecx, r10d
jae 0x14000cd83
mov r15d, dword [rsp + 0x100]
xor r12d, r12d
mov rbp, qword [rsp + 0xb8]
jmp 0x14000c380
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rax, str.invalid_width
jmp 0x14000d24d
mov r14d, dword [rsp + 0x118]
lea rbp, [0x140000000]
mov edx, dword [rsp + 0x38]
cmp r13d, 8
jge 0x14000d1f4
test r10d, r10d
je 0x14000d233
mov r15d, dword [rsp + 0x118]
lea r14, [rbp + 0x74390]
movsxd rax, r13d
mov r13d, dword [rsp + 0x138]
add r14, rax
imul r15d, r9d
xor eax, eax
movsxd rbp, r9d
mov r12d, r8d
mov esi, r10d
nop word [rax + rax]
mov eax, eax
mov r9, r15
sub r9, r12
add r11, rax
add r9, rax
mov r8, r11
add r9, qword [rsp + 0x50]
test r13d, r13d
jne 0x14000ce19
movzx r10d, byte [r14]
jmp 0x14000ce1c
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rax, str.invalid_filter
jmp 0x14000d24d
mov r10b, 1
mov eax, dword [rsp + 0x130]
cmp eax, 4
jne 0x14000ce96
mov edi, edx
cmp edx, 2
jl 0x14000ce75
mov ebx, edi
shr rbx, 1
mov eax, ebx
neg eax
lea edi, [rdi + 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 rbx, 1
jne 0x14000ce40
test edi, edi
jle 0x14000d139
movzx eax, byte [r9]
shr al, 4
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
jmp 0x14000d139
cmp eax, 2
jne 0x14000cf77
mov edi, edx
cmp edx, 4
jl 0x14000cf25
mov ebx, edi
shr rbx, 2
mov eax, ebx
neg eax
lea edi, [rdi + rax*4]
nop dword [rax]
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 rbx, 1
jne 0x14000cec0
test edi, edi
jle 0x14000cf40
movzx eax, byte [r9]
shr al, 6
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
inc r8
cmp edi, 1
jle 0x14000cf5f
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 edi, 2
jle 0x14000d139
movzx ecx, byte [r9]
shr cl, 2
and cl, 3
jmp 0x14000d12c
cmp eax, 1
jne 0x14000d139
mov ebx, edx
cmp edx, 8
jl 0x14000d068
mov edi, ebx
shr rdi, 3
mov eax, edi
neg eax
lea ebx, [rbx + rax*8]
nop dword [rax + 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 rdi, 1
jne 0x14000cfa0
test ebx, ebx
jle 0x14000d083
movzx eax, byte [r9]
shr al, 7
movzx edx, al
movzx ecx, r10b
imul edx, ecx
mov byte [r8], dl
inc r8
cmp ebx, 1
jle 0x14000d0a2
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 ebx, 2
jle 0x14000d0c1
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 ebx, 3
jle 0x14000d0e0
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 ebx, 4
jle 0x14000d0ff
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 ebx, 5
jle 0x14000d11e
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 ebx, 6
jle 0x14000d139
movzx ecx, byte [r9]
shr cl, 1
and cl, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
mov byte [r8], cl
mov eax, dword [rsp + 0x28]
cmp eax, dword [rsp + 0x118]
je 0x14000d1c6
cmp eax, 1
jne 0x14000d177
lea rcx, [rbp - 1]
test rcx, rcx
js 0x14000d1c6
nop dword [rax + rax]
mov byte [r11 + rcx*2 + 1], 0xff
movzx eax, byte [rcx + r11]
mov byte [r11 + rcx*2], al
sub rcx, 1
jns 0x14000d160
jmp 0x14000d1c6
lea r8, [rbp - 1]
test r8, r8
js 0x14000d1c6
lea rdx, [r8*2 + 1]
add rdx, r11
lea rcx, [r8*4 + 2]
add rdx, r8
add rcx, r11
nop dword [rax]
sub r8, 1
mov byte [rcx + 1], 0xff
movzx eax, byte [rdx + 1]
lea rdx, [rdx - 3]
mov byte [rcx], al
lea rcx, [rcx - 4]
movzx eax, byte [rdx + 3]
mov byte [rcx + 3], al
movzx eax, byte [rdx + 2]
mov byte [rcx + 2], al
jns 0x14000d1a0
mov rax, qword [rsp + 0x88]
add eax, dword [rsp + 0x48]
mov r11, qword [rsp + 0x50]
mov edx, dword [rsp + 0x38]
mov qword [rsp + 0x88], rax
sub rsi, 1
jne 0x14000cde0
mov eax, 1
jmp 0x14000d258
cmp r13d, 0x10
jne 0x14000d233
imul r14d, r9d
mov r8, r11
imul r14d, r10d
test r14d, r14d
je 0x14000d233
mov r9d, r14d
nop dword [rax]
movzx edx, byte [r11]
lea r11, [r11 + 2]
movzx ecx, byte [r8 + 1]
lea r8, [r8 + 2]
shl dx, 8
or dx, cx
mov word [r8 - 2], dx
sub r9, 1
jne 0x14000d210
mov eax, 1
jmp 0x14000d258
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rax, str.too_large
mov edx, 0x20
mov qword [rdx + rcx], rax
xor eax, eax
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret