Function at 0x1400538fc
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r12, rcx
mov rdx, qword [rcx + 0x200]
test rdx, rdx
je 0x1400561f6
test byte [r12 + 0x150], 0x40
je 0x14005622f
mov eax, dword [r12 + 0x154]
bt eax, 0xc
jae 0x140053bd7
cmp byte [r12 + 0x230], 3
movzx r15d, word [r12 + 0x24a]
jne 0x1400539e9
mov r8, qword [r12 + 0x2e0]
mov r13, qword [r12 + 0x240]
lea r10, [rdx + 1]
mov r9d, dword [r12 + 0x228]
movzx eax, byte [r12 + 0x231]
cmp eax, 7
ja 0x140053a0b
cmp eax, 4
je 0x140053a28
cmp eax, 2
je 0x140053a6f
cmp eax, 1
jne 0x140053ab2
test r9d, r9d
je 0x140053ab2
mov ebx, r9d
neg ebx
and ebx, 7
lea ecx, [r9 - 1]
shr ecx, 3
add rcx, r10
xor ebp, ebp
mov rax, r9
movzx edi, byte [rcx]
bt edi, ebx
setb byte [rdx + rax]
xor edi, edi
cmp ebx, 7
lea ebx, [rbx + 1]
sete dil
cmove ebx, ebp
sub rcx, rdi
dec rax
test eax, eax
jne 0x1400539c1
jmp 0x140053ab2
lea rcx, [r12 + 0x228]
test r15w, r15w
je 0x140053a18
and eax, 0x2000000
je 0x140053a18
lea r8, [r12 + 0x2e8]
inc rdx
jmp 0x140053a1e
cmp al, 8
je 0x140053acc
jmp 0x140053bd7
inc rdx
xor r8d, r8d
call fcn.1400562c0
jmp 0x140053bd7
test r9d, r9d
je 0x140053ab2
lea ecx, [r9*4]
and ecx, 4
lea ebp, [r9 - 1]
shr ebp, 1
add rbp, r10
xor edi, edi
mov rbx, r9
movzx eax, byte [rbp]
shr eax, cl
and al, 0xf
mov byte [rdx + rbx], al
xor eax, eax
cmp ecx, 4
lea ecx, [rcx + 4]
sete al
cmove ecx, edi
sub rbp, rax
dec rbx
test ebx, ebx
jne 0x140053a4a
jmp 0x140053ab2
test r9d, r9d
je 0x140053ab2
lea ecx, [r9 + r9]
add ecx, 6
not ecx
and ecx, 6
lea ebp, [r9 - 1]
shr ebp, 2
add rbp, r10
xor edi, edi
mov rsi, r9
movzx eax, byte [rbp]
shr eax, cl
and al, 3
mov byte [rdx + rsi], al
xor eax, eax
cmp ecx, 6
lea ecx, [rcx + 2]
sete al
cmove ecx, edi
sub rbp, rax
dec rsi
test esi, esi
jne 0x140053a8f
mov al, 8
mov byte [r12 + 0x231], al
mov byte [r12 + 0x233], al
mov dword [r12 + 0x22c], r9d
mov rcx, r10
test r8, r8
je 0x140053b52
mov r10b, 4
mov r11b, 6
mov r14b, 0x20
test r9d, r9d
je 0x140053bac
lea ebp, [r9*4]
mov eax, ebp
lea rdi, [rcx + rax]
dec rdi
add rdx, r9
neg r9d
xor ecx, ecx
movzx esi, byte [rdx + rcx]
mov al, 0xff
cmp r15w, si
jbe 0x140053b12
movzx eax, si
mov al, byte [r8 + rax]
mov byte [rdi + rcx*4], al
movzx eax, byte [rdx + rcx]
lea rax, [rax + rax*2]
mov al, byte [r13 + rax + 2]
mov byte [rdi + rcx*4 - 1], al
movzx eax, byte [rdx + rcx]
lea rax, [rax + rax*2]
mov al, byte [r13 + rax + 1]
mov byte [rdi + rcx*4 - 2], al
movzx eax, byte [rdx + rcx]
lea rax, [rax + rax*2]
mov al, byte [r13 + rax]
mov byte [rdi + rcx*4 - 3], al
dec rcx
cmp r9d, ecx
jne 0x140053aff
jmp 0x140053bae
mov r10b, 3
mov r11b, 2
mov r14b, 0x18
test r9d, r9d
je 0x140053bac
lea ebp, [r9 + r9*2]
mov eax, ebp
add rax, rcx
dec rax
movzx ecx, byte [rdx + r9]
lea rcx, [rcx + rcx*2]
mov cl, byte [r13 + rcx + 2]
mov byte [rax], cl
movzx ecx, byte [rdx + r9]
lea rcx, [rcx + rcx*2]
mov cl, byte [r13 + rcx + 1]
mov byte [rax - 1], cl
movzx ecx, byte [rdx + r9]
lea rcx, [rcx + rcx*2]
mov cl, byte [r13 + rcx]
mov byte [rax - 2], cl
dec r9
add rax, 0xfffffffffffffffd
test r9d, r9d
jne 0x140053b6c
jmp 0x140053bae
xor ebp, ebp
mov byte [r12 + 0x231], 8
mov byte [r12 + 0x233], r14b
mov dword [r12 + 0x22c], ebp
mov byte [r12 + 0x230], r11b
mov byte [r12 + 0x232], r10b
mov r8d, 0x400000
and r8d, dword [r12 + 0x150]
je 0x140053c06
or r8d, 0x80
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005a960
mov ecx, dword [r12 + 0x154]
test ecx, 0x600000
je 0x140054257
mov al, byte [r12 + 0x230]
test al, 2
je 0x140054257
mov r9, qword [r12 + 0x200]
inc r9
mov r15d, dword [r12 + 0x228]
movzx r14d, word [r12 + 0x40a]
movzx r11d, word [r12 + 0x40c]
movzx r13d, word [r12 + 0x40e]
xor r8d, r8d
cmp al, 2
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r11
jne 0x140053ef1
cmp byte [r12 + 0x231], 8
jne 0x140053d16
cmp qword [r12 + 0x2a8], 0
je 0x140053e30
cmp qword [r12 + 0x2b0], 0
je 0x140053e30
test r15, r15
je 0x140053ef1
xor eax, eax
xor r8d, r8d
mov rbx, r9
mov rsi, qword [r12 + 0x2b0]
movzx ecx, byte [rbx]
mov cl, byte [rsi + rcx]
movzx edx, byte [rbx + 1]
movzx edx, byte [rsi + rdx]
movzx ebp, byte [rbx + 2]
mov r10b, byte [rsi + rbp]
cmp cl, dl
jne 0x140053cd2
cmp cl, r10b
je 0x140053d01
movzx ecx, cl
imul rcx, r14
movzx ebp, r10b
imul rbp, r13
mov rsi, qword [r12 + 0x2a8]
imul rdx, r11
add rdx, rcx
add rdx, rbp
shr rdx, 0xf
mov bpl, byte [rsi + rdx]
mov r8d, 1
mov byte [r9 + rax], bpl
inc rax
add rbx, 3
cmp r15d, eax
jne 0x140053cab
jmp 0x140053ef1
cmp qword [r12 + 0x2c8], 0
je 0x140053e83
cmp qword [r12 + 0x2c0], 0
je 0x140053e83
test r15, r15
je 0x140053ef1
xor ebp, ebp
xor r8d, r8d
mov rax, r9
movzx edx, word [rax]
movzx r10d, word [rax + 4]
rol dx, 8
movzx r11d, dx
movzx r13d, byte [rax + 2]
mov ecx, r13d
shl ecx, 8
movzx ebx, byte [rax + 3]
or ecx, ebx
rol r10w, 8
cmp ecx, r11d
jne 0x140053d7a
cmp dx, r10w
je 0x140053e08
movzx r10d, r10w
mov r8, qword [r12 + 0x2c8]
mov rsi, r11
mov edi, 0xff
and rsi, rdi
mov cl, byte [r12 + 0x290]
shr rsi, cl
mov rsi, qword [r8 + rsi*8]
shr r11d, 8
movzx r11d, word [rsi + r11*2]
shr rbx, cl
mov rbx, qword [r8 + rbx*8]
movzx ebx, word [rbx + r13*2]
mov rdx, r10
and rdx, rdi
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
shr r10d, 8
movzx esi, word [rdx + r10*2]
imul r11d, r14d
imul ebx, dword [rsp + 0x30]
add ebx, r11d
imul esi, dword [rsp + 0x38]
add esi, ebx
mov edx, esi
shr edx, 0xf
mov edi, 0xff
and edx, edi
mov rbx, qword [r12 + 0x2c0]
shr rdx, cl
mov rcx, qword [rbx + rdx*8]
shr esi, 0x17
and esi, edi
movzx edx, word [rcx + rsi*2]
mov r8d, 1
rol dx, 8
mov word [r9 + rbp*2], dx
inc rbp
add rax, 6
cmp r15d, ebp
mov r13, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
jne 0x140053d45
jmp 0x140053ef1
test r15, r15
je 0x140053ef1
xor eax, eax
xor r8d, r8d
mov rsi, r9
mov dl, byte [rsi]
mov bl, byte [rsi + 2]
movzx ecx, byte [rsi + 1]
cmp dl, cl
jne 0x140053e52
cmp dl, bl
je 0x140053e71
movzx ebp, dl
movzx edx, bl
imul ebp, r14d
imul ecx, r11d
add ecx, ebp
imul edx, r13d
add edx, ecx
shr edx, 0xf
mov r8d, 1
mov byte [r9 + rax], dl
inc rax
add rsi, 3
cmp r15d, eax
jne 0x140053e41
jmp 0x140053ef1
test r15, r15
je 0x140053ef1
xor eax, eax
mov r10d, 1
xor r8d, r8d
mov rdx, r9
movzx ecx, word [rdx]
movzx ebx, word [rdx + 2]
rol cx, 8
movzx edi, cx
rol bx, 8
movzx ebx, bx
movzx esi, word [rdx + 4]
rol si, 8
movzx esi, si
mov ecx, edi
xor ecx, ebx
mov ebp, edi
xor ebp, esi
or ebp, ecx
cmovne r8d, r10d
imul edi, r14d
imul ebx, r11d
add ebx, edi
imul esi, r13d
add esi, ebx
mov ecx, esi
shr ecx, 0xf
shr esi, 0x17
mov byte [r9 + rax*2], sil
mov byte [r9 + rax*2 + 1], cl
inc rax
add rdx, 6
cmp r15d, eax
jne 0x140053e96
cmp byte [r12 + 0x230], 6
jne 0x1400541aa
cmp byte [r12 + 0x231], 8
jne 0x140053fb9
cmp qword [r12 + 0x2a8], 0
je 0x1400540d3
cmp qword [r12 + 0x2b0], 0
je 0x1400540d3
test r15, r15
je 0x1400541aa
xor eax, eax
mov r10d, 1
mov rcx, r11
mov r11d, r14d
mov r14d, ecx
mov r13d, r13d
mov rdx, qword [r12 + 0x2a8]
mov rcx, qword [r12 + 0x2b0]
movzx esi, byte [r9 + rax*4]
movzx esi, byte [rcx + rsi]
movzx edi, byte [r9 + rax*4 + 1]
movzx edi, byte [rcx + rdi]
movzx ebp, byte [r9 + rax*4 + 2]
movzx ecx, byte [rcx + rbp]
mov ebp, esi
xor ebp, edi
mov ebx, ecx
xor ebx, esi
or ebx, ebp
cmovne r8d, r10d
imul rsi, r11
imul rdi, r14
add rdi, rsi
imul rcx, r13
add rcx, rdi
shr rcx, 0xf
mov cl, byte [rdx + rcx]
mov byte [r9 + rax*2], cl
mov cl, byte [r9 + rax*4 + 3]
mov byte [r9 + rax*2 + 1], cl
inc rax
cmp r15d, eax
jne 0x140053f4a
jmp 0x1400541aa
cmp qword [r12 + 0x2c8], 0
je 0x14005412d
cmp qword [r12 + 0x2c0], 0
je 0x14005412d
test r15, r15
je 0x1400541aa
xor ebp, ebp
mov r10d, 0xff
mov r11d, 0xff
movzx eax, word [r9 + rbp*8]
movzx edx, word [r9 + rbp*8 + 4]
rol ax, 8
movzx edi, ax
movzx r13d, byte [r9 + rbp*8 + 2]
mov ecx, r13d
shl ecx, 8
movzx esi, byte [r9 + rbp*8 + 3]
or ecx, esi
rol dx, 8
cmp ecx, edi
jne 0x140054025
cmp ax, dx
je 0x1400540a5
movzx edx, dx
mov r8, qword [r12 + 0x2c8]
mov rbx, rdi
and rbx, r10
mov cl, byte [r12 + 0x290]
shr rbx, cl
mov rbx, qword [r8 + rbx*8]
shr edi, 8
movzx ebx, word [rbx + rdi*2]
shr rsi, cl
mov rdi, qword [r8 + rsi*8]
movzx edi, word [rdi + r13*2]
mov rax, rdx
and rax, r10
shr rax, cl
mov rax, qword [r8 + rax*8]
shr edx, 8
movzx eax, word [rax + rdx*2]
imul ebx, r14d
imul edi, dword [rsp + 0x30]
add edi, ebx
imul eax, dword [rsp + 0x38]
add eax, edi
mov edx, eax
shr edx, 0xf
and edx, r11d
mov rbx, qword [r12 + 0x2c0]
shr rdx, cl
mov rcx, qword [rbx + rdx*8]
shr eax, 0x17
and eax, r11d
movzx eax, word [rcx + rax*2]
mov r8d, 1
rol ax, 8
mov word [r9 + rbp*4], ax
mov al, byte [r9 + rbp*8 + 6]
mov byte [r9 + rbp*4 + 2], al
mov al, byte [r9 + rbp*8 + 7]
mov byte [r9 + rbp*4 + 3], al
inc rbp
cmp r15d, ebp
jne 0x140053fee
jmp 0x1400541aa
test r15, r15
je 0x1400541aa
xor eax, eax
mov edx, 1
movzx edi, byte [r9 + rax*4]
movzx ebp, byte [r9 + rax*4 + 1]
movzx ebx, byte [r9 + rax*4 + 2]
mov esi, edi
xor esi, ebp
mov ecx, edi
xor ecx, ebx
or ecx, esi
cmovne r8d, edx
imul edi, r14d
imul ebp, r11d
add ebp, edi
imul ebx, r13d
add ebx, ebp
shr ebx, 0xf
mov byte [r9 + rax*2], bl
mov cl, byte [r9 + rax*4 + 3]
mov byte [r9 + rax*2 + 1], cl
inc rax
cmp r15d, eax
jne 0x1400540e3
jmp 0x1400541aa
test r15, r15
je 0x1400541aa
xor eax, eax
mov ebp, 1
movzx ecx, word [r9 + rax*8]
rol cx, 8
movzx edx, word [r9 + rax*8 + 2]
movzx esi, cx
rol dx, 8
movzx edx, dx
movzx ebx, word [r9 + rax*8 + 4]
rol bx, 8
movzx ebx, bx
mov ecx, esi
xor ecx, edx
mov edi, esi
xor edi, ebx
or edi, ecx
cmovne r8d, ebp
imul esi, r14d
imul edx, r11d
add edx, esi
imul ebx, r13d
add ebx, edx
mov ecx, ebx
shr ecx, 0xf
shr ebx, 0x17
mov byte [r9 + rax*4], bl
mov byte [r9 + rax*4 + 1], cl
mov cl, byte [r9 + rax*8 + 6]
mov byte [r9 + rax*4 + 2], cl
mov cl, byte [r9 + rax*8 + 7]
mov byte [r9 + rax*4 + 3], cl
inc rax
cmp r15d, eax
jne 0x140054139
mov al, byte [r12 + 0x231]
mov cl, byte [r12 + 0x232]
add cl, 0xfe
mul cl
mov byte [r12 + 0x232], cl
and byte [r12 + 0x230], 0xfd
mov byte [r12 + 0x233], al
movzx eax, al
cmp al, 8
jb 0x1400541e8
shr eax, 3
imul eax, r15d
jmp 0x1400541f2
imul eax, r15d
add eax, 7
shr eax, 3
mov dword [r12 + 0x22c], eax
test r8d, r8d
je 0x14005424f
mov byte [r12 + 0x408], 1
mov ecx, dword [r12 + 0x154]
mov eax, ecx
and eax, 0x600000
cmp eax, 0x400000
jne 0x140054235
lea rdx, str.png_do_rgb_to_gray_found_nongray_pixel
mov rcx, r12
call fcn.140050006
mov ecx, dword [r12 + 0x154]
mov eax, ecx
and eax, 0x600000
cmp eax, 0x200000
jne 0x140054257
lea rdx, str.png_do_rgb_to_gray_found_nongray_pixel
jmp 0x14005623f
mov ecx, dword [r12 + 0x154]
bt ecx, 0xe
jae 0x140054288
test byte [r12 + 0x14d], 8
jne 0x140054288
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005669f
mov ecx, dword [r12 + 0x154]
bt ecx, 0xa
jae 0x140054308
cmp byte [r12 + 0x231], 0x10
jne 0x140054308
movzx eax, byte [r12 + 0x232]
mov edx, dword [r12 + 0x228]
imul edx, eax
test edx, edx
je 0x1400542ea
mov rax, qword [r12 + 0x200]
mov ecx, edx
xor edx, edx
mov bl, byte [rax + rdx*2 + 1]
mov byte [rax + rdx + 1], bl
inc rdx
cmp ecx, edx
jne 0x1400542bd
movzx eax, byte [r12 + 0x232]
mov edx, eax
imul edx, dword [r12 + 0x228]
mov ecx, dword [r12 + 0x154]
jmp 0x1400542ec
xor edx, edx
mov byte [r12 + 0x231], 8
shl al, 3
mov byte [r12 + 0x233], al
mov dword [r12 + 0x22c], edx
test cl, 0x80
je 0x1400552f7
cmp word [r12 + 0x24a], 0
jne 0x14005432c
test byte [r12 + 0x256], 4
je 0x1400552f7
mov r8d, dword [r12 + 0x228]
movzx edx, byte [r12 + 0x230]
cmp rdx, 6
ja case.0x1400543be.3
mov ecx, dword [r12 + 0x290]
mov r10, qword [r12 + 0x2c8]
mov r11, qword [r12 + 0x2c0]
mov r9, qword [r12 + 0x2b8]
mov r15, qword [r12 + 0x2b0]
mov r14, qword [r12 + 0x2a8]
mov r13, qword [r12 + 0x2a0]
mov rax, qword [r12 + 0x200]
lea rsi, [rax + 1]
lea rdi, [0x140056248]
movsxd rdx, dword [rdi + rdx*4]
add rdx, rdi
jmp rdx
movzx ebp, byte [r12 + 0x231]
lea edx, [rbp - 1]
cmp edx, 7
ja case.default.0x1400543be
lea rax, [0x140056264]
movsxd rcx, dword [rax + rdx*4]
add rcx, rax
jmp rcx
test r8d, r8d
je case.0x1400543be.3
mov edx, 7
mov ebp, r8d
mov eax, 7
movzx ebx, byte [rsi]
xor ecx, ecx
bt ebx, eax
setb cl
movzx edi, word [r12 + 0x2f0]
cmp ecx, edi
jne 0x140054411
mov cl, 7
sub cl, al
mov edi, 0x7f7f
shr edi, cl
and dil, bl
mov byte [rsi], dil
movzx ebx, word [r12 + 0x270]
mov ecx, eax
shl ebx, cl
or bl, dil
mov byte [rsi], bl
sub eax, 1
cmovb eax, edx
adc rsi, 0
dec ebp
jne 0x1400543d6
jmp case.0x1400543be.3
cmp byte [r12 + 0x231], 8
jne 0x1400546db
test r13, r13
je 0x140054ece
test r8d, r8d
je case.0x1400543be.3
add rax, 3
mov ecx, r8d
movzx ebp, byte [rax - 2]
movzx edx, byte [rax - 1]
cmp word [r12 + 0x2ea], bp
jne 0x140054498
cmp word [r12 + 0x2ec], dx
jne 0x140054498
movzx ebx, byte [rax]
cmp word [r12 + 0x2ee], bx
jne 0x140054498
mov dl, byte [r12 + 0x26a]
mov byte [rax - 2], dl
mov dl, byte [r12 + 0x26c]
mov byte [rax - 1], dl
mov dl, byte [r12 + 0x26e]
jmp 0x1400544b6
movzx ebp, bp
mov bl, byte [r13 + rbp]
mov byte [rax - 2], bl
movzx edx, dx
mov dl, byte [r13 + rdx]
mov byte [rax - 1], dl
movzx edx, byte [rax]
mov dl, byte [r13 + rdx]
mov byte [rax], dl
add rax, 3
dec ecx
jne 0x14005444c
jmp case.0x1400543be.3
cmp byte [r12 + 0x231], 8
jne 0x1400547e1
test r13, r13
je 0x140054b40
test r15, r15
je 0x140054b40
test r14, r14
je 0x140054b40
test r8d, r8d
je case.0x1400543be.3
xor eax, eax
movzx ecx, byte [rsi + rax*2 + 1]
test ecx, ecx
je 0x140054516
cmp ecx, 0xff
jne 0x140054520
movzx ecx, byte [rsi + rax*2]
mov cl, byte [r13 + rcx]
jmp 0x14005455a
mov cl, byte [r12 + 0x270]
jmp 0x14005455a
movzx edx, cx
movzx ebp, byte [rsi + rax*2]
movzx ebp, byte [r15 + rbp]
imul ebp, edx
not cl
movzx ecx, cl
imul cx, word [r12 + 0x27a]
add ecx, ebp
add ecx, 0x80
movzx ecx, cx
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
movzx ecx, dl
mov cl, byte [r14 + rcx]
mov byte [rsi + rax], cl
inc rax
cmp r8d, eax
jne 0x1400544fa
jmp case.0x1400543be.3
cmp byte [r12 + 0x231], 8
jne 0x1400548bf
test r13, r13
je 0x140054ba9
test r15, r15
je 0x140054ba9
test r14, r14
je 0x140054ba9
test r8d, r8d
je case.0x1400543be.3
xor ecx, ecx
mov r9d, 0x80
mov r10d, 0xff
xor ebp, ebp
movzx esi, byte [rax + rbp*4 + 4]
test esi, esi
je 0x1400545e9
cmp esi, 0xff
jne 0x14005460e
movzx edx, byte [rax + rbp*4 + 1]
mov dl, byte [r13 + rdx]
mov byte [rax + rcx + 1], dl
movzx edx, byte [rax + rbp*4 + 2]
mov dl, byte [r13 + rdx]
mov byte [rax + rcx + 2], dl
movzx edx, byte [rax + rbp*4 + 3]
mov dl, byte [r13 + rdx]
jmp 0x1400546c2
mov dl, byte [r12 + 0x26a]
mov byte [rax + rcx + 1], dl
mov dl, byte [r12 + 0x26c]
mov byte [rax + rcx + 2], dl
mov dl, byte [r12 + 0x26e]
jmp 0x1400546c2
movzx edx, byte [rax + rbp*4 + 1]
movzx edx, byte [r15 + rdx]
imul edx, esi
movzx edi, word [r12 + 0x274]
mov ebx, esi
not bl
movzx ebx, bl
imul edi, ebx
add edi, edx
lea edx, [rdi + r9]
shr edx, 8
and edx, r10d
add edx, edi
add edx, 0x80
shr edx, 8
and edx, r10d
mov dl, byte [r14 + rdx]
mov byte [rax + rcx + 1], dl
movzx edx, byte [rax + rbp*4 + 2]
movzx edx, byte [r15 + rdx]
imul edx, esi
movzx edi, word [r12 + 0x276]
imul edi, ebx
add edi, edx
lea edx, [rdi + r9]
shr edx, 8
and edx, r10d
add edx, edi
add edx, 0x80
shr edx, 8
and edx, r10d
mov dl, byte [r14 + rdx]
mov byte [rax + rcx + 2], dl
movzx edx, byte [rax + rbp*4 + 3]
movzx edx, byte [r15 + rdx]
imul edx, esi
movzx edi, word [r12 + 0x278]
imul edi, ebx
add edi, edx
lea edx, [rdi + r9]
shr edx, 8
and edx, r10d
add edx, edi
add edx, 0x80
shr edx, 8
and edx, r10d
mov dl, byte [r14 + rdx]
mov byte [rax + rcx + 3], dl
inc rbp
add rcx, 3
cmp r8d, ebp
jne 0x1400545ad
jmp case.0x1400543be.3
test r9, r9
je 0x140054f37
test r8d, r8d
je case.0x1400543be.3
add rax, 6
mov edx, r8d
movzx r15d, byte [rax - 5]
mov esi, r15d
shl esi, 8
movzx ebp, byte [rax - 4]
or esi, ebp
movzx r10d, byte [rax - 1]
movzx ebx, byte [rax]
movzx edi, word [r12 + 0x2ea]
movzx r14d, byte [rax - 2]
movzx r11d, byte [rax - 3]
cmp esi, edi
jne 0x140054791
mov esi, r11d
shl esi, 8
or esi, r14d
movzx edi, word [r12 + 0x2ec]
cmp esi, edi
jne 0x140054791
mov esi, r10d
shl esi, 8
or esi, ebx
movzx edi, word [r12 + 0x2ee]
cmp esi, edi
jne 0x140054791
mov bl, byte [r12 + 0x26b]
mov byte [rax - 5], bl
mov bl, byte [r12 + 0x26a]
mov byte [rax - 4], bl
mov bl, byte [r12 + 0x26d]
mov byte [rax - 3], bl
mov bl, byte [r12 + 0x26c]
mov byte [rax - 2], bl
mov bl, byte [r12 + 0x26f]
mov byte [rax - 1], bl
movzx ebx, word [r12 + 0x26e]
jmp 0x1400547ce
shr rbp, cl
mov rsi, qword [r9 + rbp*8]
movzx esi, word [rsi + r15*2]
rol si, 8
mov word [rax - 5], si
mov esi, r14d
shr rsi, cl
mov rsi, qword [r9 + rsi*8]
mov ebp, r11d
movzx ebp, word [rsi + rbp*2]
rol bp, 8
shr rbx, cl
mov word [rax - 3], bp
mov rbp, qword [r9 + rbx*8]
movzx ebx, word [rbp + r10*2]
mov byte [rax - 1], bh
mov byte [rax], bl
add rax, 6
dec edx
jne 0x1400546f4
jmp case.0x1400543be.3
test r10, r10
je 0x140054cba
test r11, r11
je 0x140054cba
test r9, r9
je 0x140054cba
test r8d, r8d
je case.0x1400543be.3
xor edx, edx
movzx esi, word [rax + rdx*4 + 3]
rol si, 8
test si, si
je 0x140054837
movzx esi, si
cmp esi, 0xffff
jne 0x14005484e
movzx esi, byte [rax + rdx*4 + 2]
shr rsi, cl
mov rsi, qword [r9 + rsi*8]
movzx edi, byte [rax + rdx*4 + 1]
movzx ebx, word [rsi + rdi*2]
jmp 0x1400548a6
mov bl, byte [r12 + 0x271]
mov byte [rax + rdx*2 + 1], bl
movzx ebx, word [r12 + 0x270]
jmp 0x1400548aa
movzx edi, byte [rax + rdx*4 + 2]
shr rdi, cl
mov rdi, qword [r10 + rdi*8]
movzx ebx, byte [rax + rdx*4 + 1]
movzx edi, word [rdi + rbx*2]
imul edi, esi
movzx ebx, word [r12 + 0x27a]
xor esi, 0xffff
imul esi, ebx
lea ebx, [rdi + rsi]
add ebx, 0x8000
add edi, esi
shr ebx, 0x10
lea esi, [rbx + rdi]
add esi, 0x8000
mov edi, esi
shr edi, 0x10
movzx edi, dil
shr rdi, cl
mov rdi, qword [r11 + rdi*8]
shr esi, 0x18
movzx ebx, word [rdi + rsi*2]
mov byte [rax + rdx*2 + 1], bh
mov byte [rax + rdx*2 + 2], bl
inc rdx
cmp r8d, edx
jne 0x140054807
jmp case.0x1400543be.3
test r10, r10
je 0x140054d5e
test r11, r11
je 0x140054d5e
test r9, r9
je 0x140054d5e
test r8d, r8d
je case.0x1400543be.3
add rax, 6
xor edx, edx
mov r14d, 0x8000
mov r15d, 0xff
xor ebp, ebp
movzx esi, word [rax + rbp*8 + 1]
rol si, 8
test si, si
je 0x140054969
movzx esi, si
cmp esi, 0xffff
jne 0x1400549b3
movzx esi, byte [rax + rbp*8 - 4]
shr rsi, cl
mov rsi, qword [r9 + rsi*8]
movzx edi, byte [rax + rbp*8 - 5]
movzx esi, word [rsi + rdi*2]
rol si, 8
mov word [rax + rdx - 5], si
movzx esi, byte [rax + rbp*8 - 2]
shr rsi, cl
mov rsi, qword [r9 + rsi*8]
movzx edi, byte [rax + rbp*8 - 3]
movzx esi, word [rsi + rdi*2]
rol si, 8
mov word [rax + rdx - 3], si
movzx esi, byte [rax + rbp*8]
shr rsi, cl
mov rsi, qword [r9 + rsi*8]
movzx edi, byte [rax + rbp*8 - 1]
movzx ebx, word [rsi + rdi*2]
jmp 0x140054ab2
mov bl, byte [r12 + 0x26b]
mov byte [rax + rdx - 5], bl
mov bl, byte [r12 + 0x26a]
mov byte [rax + rdx - 4], bl
mov bl, byte [r12 + 0x26d]
mov byte [rax + rdx - 3], bl
mov bl, byte [r12 + 0x26c]
mov byte [rax + rdx - 2], bl
mov bl, byte [r12 + 0x26f]
mov byte [rax + rdx - 1], bl
movzx ebx, word [r12 + 0x26e]
jmp 0x140054ab6
movzx edi, byte [rax + rbp*8 - 4]
shr rdi, cl
mov rdi, qword [r10 + rdi*8]
movzx ebx, byte [rax + rbp*8 - 5]
movzx edi, word [rdi + rbx*2]
imul edi, esi
movzx ebx, word [r12 + 0x274]
mov r13d, esi
xor r13d, 0xffff
imul ebx, r13d
add ebx, edi
lea edi, [rbx + r14]
shr edi, 0x10
add edi, ebx
add edi, 0x8000
mov ebx, edi
shr ebx, 0x10
and ebx, r15d
shr rbx, cl
mov rbx, qword [r11 + rbx*8]
shr edi, 0x18
movzx edi, word [rbx + rdi*2]
rol di, 8
mov word [rax + rdx - 5], di
movzx edi, byte [rax + rbp*8 - 2]
shr rdi, cl
mov rdi, qword [r10 + rdi*8]
movzx ebx, byte [rax + rbp*8 - 3]
movzx edi, word [rdi + rbx*2]
imul edi, esi
movzx ebx, word [r12 + 0x276]
imul ebx, r13d
add ebx, edi
lea edi, [rbx + r14]
shr edi, 0x10
add edi, ebx
add edi, 0x8000
mov ebx, edi
shr ebx, 0x10
and ebx, r15d
shr rbx, cl
mov rbx, qword [r11 + rbx*8]
shr edi, 0x18
movzx edi, word [rbx + rdi*2]
rol di, 8
mov word [rax + rdx - 3], di
movzx edi, byte [rax + rbp*8]
shr rdi, cl
mov rdi, qword [r10 + rdi*8]
movzx ebx, byte [rax + rbp*8 - 1]
movzx edi, word [rdi + rbx*2]
imul edi, esi
movzx esi, word [r12 + 0x278]
imul esi, r13d
add esi, edi
lea edi, [rsi + r14]
shr edi, 0x10
add esi, edi
add esi, 0x8000
mov edi, esi
shr edi, 0x10
and edi, r15d
shr rdi, cl
mov rdi, qword [r11 + rdi*8]
shr esi, 0x18
movzx ebx, word [rdi + rsi*2]
mov byte [rax + rdx - 1], bh
mov byte [rax + rdx], bl
inc rbp
add rdx, 6
cmp r8d, ebp
jne 0x1400548f7
jmp case.0x1400543be.3
cmp ebp, 0x10
jne case.0x1400543be.3
test r9, r9
je 0x14005524e
test r8d, r8d
je case.0x1400543be.3
xor edx, edx
movzx ebp, byte [rax + rdx*2 + 1]
mov edi, ebp
shl edi, 8
movzx ebx, byte [rax + rdx*2 + 2]
or edi, ebx
movzx esi, word [r12 + 0x2f0]
cmp edi, esi
jne 0x140054b20
mov bl, byte [r12 + 0x271]
mov byte [rax + rdx*2 + 1], bl
movzx ebx, word [r12 + 0x270]
jmp 0x140054b2f
shr rbx, cl
mov rbx, qword [r9 + rbx*8]
movzx ebx, word [rbx + rbp*2]
mov byte [rax + rdx*2 + 1], bh
mov byte [rax + rdx*2 + 2], bl
inc rdx
cmp r8d, edx
jne 0x140054aeb
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
xor eax, eax
movzx ecx, byte [rsi + rax*2 + 1]
test ecx, ecx
je 0x140054b61
cmp ecx, 0xff
jne 0x140054b6b
mov cl, byte [rsi + rax*2]
jmp 0x140054b99
mov cl, byte [r12 + 0x270]
jmp 0x140054b99
movzx edx, cx
movzx ebp, byte [rsi + rax*2]
imul ebp, edx
not cl
movzx ecx, cl
imul cx, word [r12 + 0x27a]
add ecx, ebp
add ecx, 0x80
movzx edx, cx
mov ecx, edx
shr ecx, 8
add ecx, edx
shr ecx, 8
mov byte [rsi + rax], cl
inc rax
cmp r8d, eax
jne 0x140054b4b
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
xor ecx, ecx
mov r9d, 0x80
mov r10d, 0xff
xor esi, esi
movzx ebx, byte [rax + rsi*4 + 4]
test ebx, ebx
je 0x140054bec
cmp ebx, 0xff
jne 0x140054c11
mov bl, byte [rax + rsi*4 + 1]
mov byte [rax + rcx + 1], bl
mov bl, byte [rax + rsi*4 + 2]
mov byte [rax + rcx + 2], bl
mov bl, byte [rax + rsi*4 + 3]
jmp 0x140054ca1
mov bl, byte [r12 + 0x26a]
mov byte [rax + rcx + 1], bl
mov bl, byte [r12 + 0x26c]
mov byte [rax + rcx + 2], bl
mov bl, byte [r12 + 0x26e]
jmp 0x140054ca1
movzx edi, byte [rax + rsi*4 + 1]
imul edi, ebx
movzx ebp, word [r12 + 0x26a]
mov edx, ebx
not dl
movzx r11d, dl
imul ebp, r11d
add ebp, edi
lea edi, [r9 + rbp]
shr edi, 8
and edi, r10d
lea edx, [rdi + rbp]
add edx, 0x80
mov byte [rax + rcx + 1], dh
movzx edx, byte [rax + rsi*4 + 2]
imul edx, ebx
movzx edi, word [r12 + 0x26c]
imul edi, r11d
add edi, edx
lea edx, [rdi + r9]
shr edx, 8
and edx, r10d
add edx, edi
add edx, 0x80
mov byte [rax + rcx + 2], dh
movzx edx, byte [rax + rsi*4 + 3]
imul edx, ebx
movzx edi, word [r12 + 0x26e]
imul edi, r11d
add edi, edx
lea edx, [rdi + r9]
shr edx, 8
and edx, r10d
lea ebx, [rdx + rdi]
add ebx, 0x80
shr ebx, 8
mov byte [rax + rcx + 3], bl
inc rsi
add rcx, 3
cmp r8d, esi
jne 0x140054bc2
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
xor ecx, ecx
movzx edx, word [rax + rcx*4 + 3]
rol dx, 8
test dx, dx
je 0x140054cea
movzx edx, dx
cmp edx, 0xffff
jne 0x140054d04
movzx edx, word [rax + rcx*4 + 1]
mov word [rax + rcx*2 + 1], dx
jmp 0x140054d4d
mov dl, byte [r12 + 0x271]
mov byte [rax + rcx*2 + 1], dl
mov dl, byte [r12 + 0x270]
mov byte [rax + rcx*2 + 2], dl
jmp 0x140054d4d
movzx ebp, word [rax + rcx*4 + 1]
rol bp, 8
movzx ebp, bp
imul ebp, edx
movzx ebx, word [r12 + 0x27a]
xor edx, 0xffff
imul edx, ebx
mov ebx, edx
add ebx, ebp
add edx, ebp
add edx, 0x8000
shr edx, 0x10
add edx, ebx
add edx, 0x8000
mov ebp, edx
shr ebp, 0x10
shr edx, 0x18
mov byte [rax + rcx*2 + 1], dl
mov byte [rax + rcx*2 + 2], bpl
inc rcx
cmp r8d, ecx
jne 0x140054cc5
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
add rax, 6
xor ecx, ecx
mov r9d, 0x8000
xor ebp, ebp
movzx edx, word [rax + rbp*8 + 1]
rol dx, 8
test dx, dx
je 0x140054dac
movzx ebx, dx
cmp ebx, 0xffff
jne 0x140054df8
lea rdx, [rax + rbp*8]
add rdx, 0xfffffffffffffffb
lea rbx, [rax + rcx - 5]
movzx edi, word [rdx + 4]
mov word [rbx + 4], di
mov edx, dword [rdx]
mov dword [rbx], edx
jmp 0x140054eb9
mov dl, byte [r12 + 0x26b]
mov byte [rax + rcx - 5], dl
mov dl, byte [r12 + 0x26a]
mov byte [rax + rcx - 4], dl
mov dl, byte [r12 + 0x26d]
mov byte [rax + rcx - 3], dl
mov dl, byte [r12 + 0x26c]
mov byte [rax + rcx - 2], dl
mov dl, byte [r12 + 0x26f]
mov byte [rax + rcx - 1], dl
mov dl, byte [r12 + 0x26e]
mov byte [rax + rcx], dl
jmp 0x140054eb9
movzx esi, word [rax + rbp*8 - 5]
bswap esi
shr esi, 0x10
movzx edx, word [rax + rbp*8 - 3]
movzx edi, word [rax + rbp*8 - 1]
rol dx, 8
rol di, 8
movzx r11d, dx
movzx r10d, di
imul esi, ebx
movzx edx, word [r12 + 0x26a]
mov edi, ebx
xor edi, 0xffff
imul edx, edi
add edx, esi
lea esi, [rdx + r9]
shr esi, 0x10
add edx, esi
add edx, 0x8000
mov esi, edx
shr esi, 0x10
shr edx, 0x18
mov byte [rax + rcx - 5], dl
mov byte [rax + rcx - 4], sil
imul r11d, ebx
movzx edx, word [r12 + 0x26c]
imul edx, edi
add edx, r11d
lea esi, [rdx + r9]
shr esi, 0x10
add edx, esi
add edx, 0x8000
mov esi, edx
shr esi, 0x10
shr edx, 0x18
mov byte [rax + rcx - 3], dl
mov byte [rax + rcx - 2], sil
imul r10d, ebx
movzx edx, word [r12 + 0x26e]
imul edx, edi
add edx, r10d
lea ebx, [rdx + r9]
shr ebx, 0x10
add edx, ebx
add edx, 0x8000
mov ebx, edx
shr ebx, 0x10
shr edx, 0x18
mov byte [rax + rcx - 1], dl
mov byte [rax + rcx], bl
inc rbp
add rcx, 6
cmp r8d, ebp
jne 0x140054d75
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
add rax, 3
mov ecx, r8d
movzx edx, byte [rax - 2]
cmp word [r12 + 0x2ea], dx
jne 0x140054f2a
movzx edx, byte [rax - 1]
cmp word [r12 + 0x2ec], dx
jne 0x140054f2a
movzx edx, byte [rax]
cmp word [r12 + 0x2ee], dx
jne 0x140054f2a
mov dl, byte [r12 + 0x26a]
mov byte [rax - 2], dl
mov dl, byte [r12 + 0x26c]
mov byte [rax - 1], dl
mov dl, byte [r12 + 0x26e]
mov byte [rax], dl
add rax, 3
dec ecx
jne 0x140054ede
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
add rax, 6
mov ecx, r8d
movzx edx, word [rax - 5]
rol dx, 8
movzx edx, dx
movzx ebp, word [r12 + 0x2ea]
cmp edx, ebp
jne 0x140054fd0
movzx edx, word [rax - 3]
rol dx, 8
movzx edx, dx
movzx ebp, word [r12 + 0x2ec]
cmp edx, ebp
jne 0x140054fd0
movzx edx, word [rax - 1]
rol dx, 8
movzx edx, dx
movzx ebp, word [r12 + 0x2ee]
cmp edx, ebp
jne 0x140054fd0
mov dl, byte [r12 + 0x26b]
mov byte [rax - 5], dl
mov dl, byte [r12 + 0x26a]
mov byte [rax - 4], dl
mov dl, byte [r12 + 0x26d]
mov byte [rax - 3], dl
mov dl, byte [r12 + 0x26c]
mov byte [rax - 2], dl
mov dl, byte [r12 + 0x26f]
mov byte [rax - 1], dl
mov dl, byte [r12 + 0x26e]
mov byte [rax], dl
add rax, 6
dec ecx
jne 0x140054f47
jmp case.0x1400543be.3
test r13, r13
je 0x140055150
test r8d, r8d
je case.0x1400543be.3
mov r9d, 6
mov ebx, r8d
mov eax, 6
movzx edi, byte [rsi]
mov rdx, rdi
mov ecx, eax
shr rdx, cl
and edx, 3
movzx ecx, word [r12 + 0x2f0]
cmp edx, ecx
jne 0x140055037
mov cl, 6
sub cl, al
mov edx, 0x3f3f
shr edx, cl
and dl, dil
mov byte [rsi], dl
movzx ebp, word [r12 + 0x270]
jmp 0x140055052
imul rcx, rdx, 0x55
movzx ebp, byte [r13 + rcx]
shr ebp, 6
mov cl, 6
sub cl, al
mov edx, 0x3f3f
shr edx, cl
and dl, dil
mov ecx, eax
shl ebp, cl
or bpl, dl
mov byte [rsi], bpl
xor ecx, ecx
test eax, eax
lea eax, [rax - 2]
cmove eax, r9d
sete cl
add rsi, rcx
dec ebx
jne 0x140055001
jmp case.0x1400543be.3
test r13, r13
je 0x1400551bb
test r8d, r8d
je case.0x1400543be.3
mov r9d, 4
mov ebx, r8d
mov eax, 4
movzx edi, byte [rsi]
mov rdx, rdi
mov ecx, eax
shr rdx, cl
and edx, 0xf
movzx ecx, word [r12 + 0x2f0]
cmp edx, ecx
jne 0x1400550cc
mov cl, 4
sub cl, al
mov edx, 0xf0f
shr edx, cl
and dl, dil
mov byte [rsi], dl
movzx ebp, word [r12 + 0x270]
jmp 0x1400550e7
imul rcx, rdx, 0x11
movzx ebp, byte [r13 + rcx]
shr ebp, 4
mov cl, 4
sub cl, al
mov edx, 0xf0f
shr edx, cl
and dl, dil
mov ecx, eax
shl ebp, cl
or bpl, dl
mov byte [rsi], bpl
xor ecx, ecx
test eax, eax
lea eax, [rax - 4]
cmove eax, r9d
sete cl
add rsi, rcx
dec ebx
jne 0x140055096
jmp case.0x1400543be.3
test r13, r13
je 0x140055223
test r8d, r8d
je case.0x1400543be.3
xor eax, eax
movzx ecx, byte [rsi + rax]
cmp word [r12 + 0x2f0], cx
jne 0x140055138
mov cl, byte [r12 + 0x270]
jmp 0x140055140
movzx ecx, cx
mov cl, byte [r13 + rcx]
mov byte [rsi + rax], cl
inc rax
cmp r8d, eax
jne 0x14005511f
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
mov edx, 6
mov ebp, r8d
mov eax, 6
movzx edi, byte [rsi]
mov ebx, edi
mov ecx, eax
shr ebx, cl
and ebx, 3
movzx ecx, word [r12 + 0x2f0]
cmp ebx, ecx
jne 0x1400551a2
mov cl, 6
sub cl, al
mov ebx, 0x3f3f
shr ebx, cl
and bl, dil
mov byte [rsi], bl
movzx edi, word [r12 + 0x270]
mov ecx, eax
shl edi, cl
or dil, bl
mov byte [rsi], dil
xor ecx, ecx
test eax, eax
lea eax, [rax - 2]
cmove eax, edx
sete cl
add rsi, rcx
dec ebp
jne 0x140055166
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
mov edx, 4
mov ebp, r8d
mov eax, 4
movzx edi, byte [rsi]
mov ebx, edi
mov ecx, eax
shr ebx, cl
and ebx, 0xf
movzx ecx, word [r12 + 0x2f0]
cmp ebx, ecx
jne 0x14005520d
mov cl, 4
sub cl, al
mov ebx, 0xf0f
shr ebx, cl
and bl, dil
mov byte [rsi], bl
movzx edi, word [r12 + 0x270]
mov ecx, eax
shl edi, cl
or dil, bl
mov byte [rsi], dil
xor ecx, ecx
test eax, eax
lea eax, [rax - 4]
cmove eax, edx
sete cl
add rsi, rcx
dec ebp
jne 0x1400551d1
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
xor eax, eax
movzx ecx, byte [rsi + rax]
cmp word [r12 + 0x2f0], cx
jne 0x140055244
mov cl, byte [r12 + 0x270]
mov byte [rsi + rax], cl
inc rax
cmp r8d, eax
jne 0x14005522a
jmp case.0x1400543be.3
test r8d, r8d
je case.0x1400543be.3
xor ecx, ecx
movzx edx, word [rax + rcx*2 + 1]
rol dx, 8
movzx edx, dx
movzx ebp, word [r12 + 0x2f0]
cmp edx, ebp
jne 0x140055286
mov dl, byte [r12 + 0x271]
mov byte [rax + rcx*2 + 1], dl
mov dl, byte [r12 + 0x270]
mov byte [rax + rcx*2 + 2], dl
inc rcx
cmp r8d, ecx
jne 0x140055255
mov al, byte [r12 + 0x230]
test al, 4
je 0x1400552ef
and al, 0xfb
mov byte [r12 + 0x230], al
mov al, byte [r12 + 0x231]
mov cl, byte [r12 + 0x232]
dec cl
mul cl
mov byte [r12 + 0x232], cl
mov byte [r12 + 0x233], al
movzx eax, al
cmp al, 8
jb 0x1400552d8
shr eax, 3
imul eax, r8d
jmp 0x1400552e7
imul r8d, eax
add r8d, 7
shr r8d, 3
mov eax, r8d
mov dword [r12 + 0x22c], eax
mov ecx, dword [r12 + 0x154]
bt ecx, 0xd
jae 0x1400556d4
test cl, 0x80
jne 0x14005548e
mov al, byte [r12 + 0x256]
cmp al, 3
je 0x1400556d4
mov ecx, dword [r12 + 0x290]
mov r8, qword [r12 + 0x2b8]
mov r10, qword [r12 + 0x2a0]
mov rsi, qword [r12 + 0x200]
mov r9d, dword [r12 + 0x228]
mov bl, byte [r12 + 0x231]
test r10, r10
je 0x140055354
cmp bl, 9
jb 0x140055366
test r8, r8
je case.0x14005538c.1
cmp bl, 0x10
jne case.0x14005538c.1
movzx edx, byte [r12 + 0x230]
cmp rdx, 6
ja case.0x14005538c.1
lea rax, [rsi + 1]
lea rbp, [0x140056284]
movsxd rdx, dword [rbp + rdx*4]
add rdx, rbp
jmp rdx
cmp bl, 2
jne 0x14005543a
test r9d, r9d
je case.0x14005538c.1
xor r14d, r14d
mov r15, rax
movzx edx, byte [r15]
mov edi, edx
and edi, 0xffffffc0
mov ebx, edx
and ebx, 0x30
mov ebp, edx
and ebp, 0xc
mov r11d, edx
and r11d, 3
shr rdx, 6
lea r13, [rdx + rdi]
shr rdi, 2
or rdi, r13
lea rdx, [rdi + rdx*4]
mov dl, byte [r10 + rdx]
and dl, 0xc0
lea r13, [rbx + rbx*4]
mov rdi, rbx
shr rdi, 2
or rdi, r13
shr rbx, 4
or rbx, rdi
mov bl, byte [r10 + rbx]
shr bl, 2
and bl, 0x30
or bl, dl
imul rdx, rbp, 0x15
shr rbp, 2
or rbp, rdx
mov dl, byte [r10 + rbp]
shr dl, 4
and dl, 0xc
or dl, bl
imul rbp, r11, 0x55
mov bl, byte [r10 + rbp]
shr bl, 6
or bl, dl
mov byte [r15], bl
inc r15
add r14d, 4
cmp r14d, r9d
jb 0x1400553a6
mov bl, byte [r12 + 0x231]
cmp bl, 4
je 0x140055674
movzx edx, bl
cmp edx, 8
je 0x1400556b2
cmp edx, 0x10
jne case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
xor eax, eax
movzx edx, byte [rsi + rax*2 + 2]
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
movzx ebp, byte [rsi + rax*2 + 1]
movzx edx, word [rdx + rbp*2]
rol dx, 8
mov word [rsi + rax*2 + 1], dx
inc rax
cmp r9d, eax
jne 0x140055463
jmp case.0x14005538c.1
cmp word [r12 + 0x24a], 0
jne 0x1400556d4
mov al, byte [r12 + 0x256]
test al, 4
je 0x140055312
jmp 0x1400556d4
cmp bl, 8
jne 0x140055564
test r9d, r9d
je case.0x14005538c.1
movzx ecx, byte [rax]
mov cl, byte [r10 + rcx]
mov byte [rax], cl
movzx ecx, byte [rax + 1]
mov cl, byte [r10 + rcx]
mov byte [rax + 1], cl
movzx ecx, byte [rax + 2]
mov cl, byte [r10 + rcx]
mov byte [rax + 2], cl
add rax, 3
dec r9d
jne 0x1400554c5
jmp case.0x14005538c.1
cmp bl, 8
jne 0x1400555cf
test r9d, r9d
je case.0x14005538c.1
xor ecx, ecx
movzx edx, byte [rax + rcx*2]
mov dl, byte [r10 + rdx]
mov byte [rax + rcx*2], dl
inc rcx
cmp r9d, ecx
jne 0x140055506
jmp case.0x14005538c.1
cmp bl, 8
jne 0x140055605
test r9d, r9d
je case.0x14005538c.1
xor ecx, ecx
movzx edx, byte [rax + rcx*4]
mov dl, byte [r10 + rdx]
mov byte [rax + rcx*4], dl
movzx edx, byte [rax + rcx*4 + 1]
mov dl, byte [r10 + rdx]
mov byte [rax + rcx*4 + 1], dl
movzx edx, byte [rax + rcx*4 + 2]
mov dl, byte [r10 + rdx]
mov byte [rax + rcx*4 + 2], dl
inc rcx
cmp r9d, ecx
jne 0x140055532
jmp case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
add rsi, 6
movzx eax, byte [rsi - 4]
shr rax, cl
mov rax, qword [r8 + rax*8]
movzx edx, byte [rsi - 5]
movzx eax, word [rax + rdx*2]
rol ax, 8
mov word [rsi - 5], ax
movzx eax, byte [rsi - 2]
shr rax, cl
mov rax, qword [r8 + rax*8]
movzx edx, byte [rsi - 3]
movzx eax, word [rax + rdx*2]
rol ax, 8
mov word [rsi - 3], ax
movzx eax, byte [rsi]
shr rax, cl
mov rax, qword [r8 + rax*8]
movzx edx, byte [rsi - 1]
movzx eax, word [rax + rdx*2]
rol ax, 8
mov word [rsi - 1], ax
add rsi, 6
dec r9d
jne 0x140055571
jmp case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
xor eax, eax
movzx edx, byte [rsi + rax*4 + 2]
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
movzx ebp, byte [rsi + rax*4 + 1]
movzx edx, word [rdx + rbp*2]
rol dx, 8
mov word [rsi + rax*4 + 1], dx
inc rax
cmp r9d, eax
jne 0x1400555da
jmp case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
xor eax, eax
movzx edx, byte [rsi + rax*8 + 2]
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
movzx ebp, byte [rsi + rax*8 + 1]
movzx edx, word [rdx + rbp*2]
rol dx, 8
mov word [rsi + rax*8 + 1], dx
movzx edx, byte [rsi + rax*8 + 4]
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
movzx ebp, byte [rsi + rax*8 + 3]
movzx edx, word [rdx + rbp*2]
rol dx, 8
mov word [rsi + rax*8 + 3], dx
movzx edx, byte [rsi + rax*8 + 6]
shr rdx, cl
mov rdx, qword [r8 + rdx*8]
movzx ebp, byte [rsi + rax*8 + 5]
movzx edx, word [rdx + rbp*2]
rol dx, 8
mov word [rsi + rax*8 + 5], dx
inc rax
cmp r9d, eax
jne 0x140055610
jmp case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
xor ecx, ecx
movzx edx, byte [rax]
mov ebp, edx
and ebp, 0xfffffff0
mov ebx, edx
and ebx, 0xf
shr rdx, 4
or rdx, rbp
mov dl, byte [r10 + rdx]
and dl, 0xf0
imul rbp, rbx, 0x11
mov bl, byte [r10 + rbp]
shr bl, 4
or bl, dl
mov byte [rax], bl
inc rax
add ecx, 2
cmp ecx, r9d
jb 0x14005567b
jmp case.0x14005538c.1
test r9d, r9d
je case.0x14005538c.1
xor ecx, ecx
movzx edx, byte [rax + rcx]
mov dl, byte [r10 + rdx]
mov byte [rax + rcx], dl
inc rcx
cmp r9d, ecx
jne 0x1400556b9
mov ecx, dword [r12 + 0x154]
test cl, 0x40
je 0x1400558a2
mov rbp, qword [r12 + 0x398]
mov rdx, qword [r12 + 0x390]
mov rbx, qword [r12 + 0x200]
inc rbx
mov r8d, dword [r12 + 0x228]
mov cl, byte [r12 + 0x230]
test rdx, rdx
je 0x140055773
cmp cl, 2
jne 0x140055773
cmp byte [r12 + 0x231], 8
jne 0x14005588b
test r8, r8
je 0x140055817
xor ebp, ebp
mov rcx, rbx
movzx edi, byte [rcx]
movzx esi, byte [rcx + 1]
movzx eax, byte [rcx + 2]
shl edi, 7
and edi, 0x7c00
and esi, 0xf8
lea rdi, [rdi + rsi*4]
shr rax, 3
or rax, rdi
mov al, byte [rdx + rax]
mov byte [rbx + rbp], al
inc rbp
add rcx, 3
cmp r8d, ebp
jne 0x14005572f
mov cl, byte [r12 + 0x231]
jmp 0x140055819
test rdx, rdx
je 0x1400557d6
cmp cl, 6
jne 0x1400557d6
cmp byte [r12 + 0x231], 8
jne 0x14005588b
test r8, r8
je 0x14005584c
xor ecx, ecx
movzx eax, byte [rbx + rcx*4]
movzx ebp, byte [rbx + rcx*4 + 1]
movzx edi, byte [rbx + rcx*4 + 2]
shl eax, 7
and eax, 0x7c00
and ebp, 0xf8
lea rax, [rax + rbp*4]
shr rdi, 3
or rdi, rax
mov al, byte [rdx + rdi]
mov byte [rbx + rcx], al
inc rcx
cmp r8d, ecx
jne 0x140055797
mov cl, byte [r12 + 0x231]
jmp 0x14005584e
test rbp, rbp
je 0x14005588b
cmp cl, 3
jne 0x14005588b
cmp byte [r12 + 0x231], 8
jne 0x14005588b
test r8d, r8d
je 0x14005588b
xor ecx, ecx
movzx eax, byte [rbx + rcx]
mov al, byte [rbp + rax]
mov byte [rbx + rcx], al
inc rcx
cmp r8d, ecx
jne 0x140055802
jmp 0x14005588b
mov cl, 8
mov byte [r12 + 0x230], 3
mov byte [r12 + 0x232], 1
mov byte [r12 + 0x233], cl
movzx ecx, cl
cmp cl, 8
jae 0x140055870
imul r8d, ecx
add r8d, 7
shr r8d, 3
mov ecx, r8d
jmp 0x140055883
mov cl, 8
mov byte [r12 + 0x230], 3
mov byte [r12 + 0x232], 1
mov byte [r12 + 0x233], cl
movzx ecx, cl
cmp cl, 8
jb 0x140055879
shr ecx, 3
imul ecx, r8d
jmp 0x140055883
imul ecx, r8d
add ecx, 7
shr ecx, 3
mov dword [r12 + 0x22c], ecx
cmp dword [r12 + 0x22c], 0
je 0x140056238
mov ecx, dword [r12 + 0x154]
test cl, 0x20
je 0x1400558c7
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005a889
mov ecx, dword [r12 + 0x154]
test cl, 8
je 0x140055a95
mov dl, byte [r12 + 0x230]
cmp dl, 3
je 0x140055a95
movzx r9d, byte [r12 + 0x231]
test dl, 2
jne 0x140055908
movzx ecx, byte [r12 + 0x2d8]
mov ebp, r9d
sub ebp, ecx
mov dword [rsp + 0x40], ebp
mov ebx, 1
jmp 0x140055943
movzx ecx, byte [r12 + 0x2d5]
mov ebp, r9d
sub ebp, ecx
mov dword [rsp + 0x40], ebp
movzx ecx, byte [r12 + 0x2d6]
mov ebp, r9d
sub ebp, ecx
mov dword [rsp + 0x44], ebp
movzx ecx, byte [r12 + 0x2d7]
mov ebp, r9d
sub ebp, ecx
mov dword [rsp + 0x48], ebp
mov ebx, 3
test dl, 4
je 0x14005595e
movzx ecx, byte [r12 + 0x2d9]
mov edx, r9d
sub edx, ecx
mov ecx, ebx
inc ebx
mov dword [rsp + rcx*4 + 0x40], edx
mov rbp, qword [r12 + 0x200]
mov r8d, dword [r12 + 0x228]
mov ebx, ebx
xor edx, edx
mov esi, 1
xor edi, edi
xor ecx, ecx
mov eax, dword [rsp + rcx*4 + 0x40]
test eax, eax
cmovle eax, edx
mov dword [rsp + rcx*4 + 0x40], eax
cmovg edi, esi
inc rcx
cmp rbx, rcx
jne 0x14005597b
test di, di
je case.0x1400559bb.2
add r9d, 0xfffffffe
ror r9d, 1
cmp r9d, 7
ja case.0x1400559bb.2
lea rax, [0x1400562a0]
movsxd rcx, dword [rax + r9*4]
add rcx, rax
jmp rcx
mov eax, dword [r12 + 0x22c]
test rax, rax
je case.0x1400559bb.2
xor ecx, ecx
mov dl, byte [rbp + rcx + 1]
shr dl, 1
and dl, 0x55
mov byte [rbp + rcx + 1], dl
inc rcx
cmp eax, ecx
jne 0x1400559d0
jmp case.0x1400559bb.2
mov ecx, dword [rsp + 0x40]
mov eax, 0xf0
shr eax, cl
mov edx, dword [r12 + 0x22c]
mov ebx, 0xf
shr ebx, cl
test rdx, rdx
je case.0x1400559bb.2
and eax, 0xfffffff0
or eax, ebx
xor ebx, ebx
movzx edi, byte [rbp + rbx + 1]
shr edi, cl
and edi, eax
mov byte [rbp + rbx + 1], dil
inc rbx
cmp edx, ebx
jne 0x140055a13
jmp case.0x1400559bb.2
imul r8d, ebx
test r8d, r8d
je case.0x1400559bb.2
mov edi, r8d
xor esi, esi
mov eax, esi
xor edx, edx
div ebx
mov cl, byte [rsp + rdx*4 + 0x40]
movzx eax, byte [rbp + rsi + 1]
shr eax, cl
mov byte [rbp + rsi + 1], al
inc rsi
cmp edi, esi
jne 0x140055a38
jmp case.0x1400559bb.2
imul r8d, ebx
test r8d, r8d
je case.0x1400559bb.2
mov r8d, r8d
xor esi, esi
movzx eax, word [rbp + rsi*2 + 1]
rol ax, 8
movzx edi, ax
mov eax, esi
xor edx, edx
div ebx
mov cl, byte [rsp + rdx*4 + 0x40]
shr edi, cl
rol di, 8
mov word [rbp + rsi*2 + 1], di
inc rsi
cmp r8d, esi
jne 0x140055a64
mov ecx, dword [r12 + 0x154]
test cl, 4
je 0x140055beb
movzx eax, byte [r12 + 0x231]
cmp eax, 7
ja 0x140055beb
mov rdx, qword [r12 + 0x200]
lea rbp, [rdx + 1]
mov r8d, dword [r12 + 0x228]
cmp eax, 4
je 0x140055b23
cmp eax, 2
je 0x140055b6f
cmp eax, 1
jne 0x140055bb6
test r8, r8
je 0x140055bb6
mov edi, r8d
neg edi
and edi, 7
lea eax, [r8 - 1]
shr eax, 3
add rbp, rax
xor eax, eax
mov rcx, r8
movzx ebx, byte [rbp]
bt ebx, edi
setb byte [rdx + rcx]
xor ebx, ebx
cmp edi, 7
lea edi, [rdi + 1]
sete bl
cmove edi, eax
sub rbp, rbx
dec rcx
test ecx, ecx
jne 0x140055afb
jmp 0x140055bb6
test r8, r8
je 0x140055bb6
lea ecx, [r8*4]
and ecx, 4
lea eax, [r8 - 1]
shr eax, 1
add rbp, rax
mov rax, r8
movzx ebx, byte [rbp]
shr ebx, cl
and bl, 0xf
xor edi, edi
xor esi, esi
cmp ecx, 4
setne dil
mov byte [rdx + rax], bl
sete sil
sub rbp, rsi
shl edi, 2
dec rax
mov ecx, edi
test eax, eax
jne 0x140055b43
jmp 0x140055bb6
test r8, r8
je 0x140055bb6
lea ecx, [r8 + r8]
add ecx, 6
not ecx
and ecx, 6
lea eax, [r8 - 1]
shr eax, 2
add rbp, rax
xor eax, eax
mov rbx, r8
movzx edi, byte [rbp]
shr edi, cl
and dil, 3
mov byte [rdx + rbx], dil
xor edi, edi
cmp ecx, 6
lea ecx, [rcx + 2]
sete dil
cmove ecx, eax
sub rbp, rdi
dec rbx
test ebx, ebx
jne 0x140055b8f
mov byte [r12 + 0x231], 8
movzx eax, byte [r12 + 0x232]
lea ecx, [rax*8]
mov byte [r12 + 0x233], cl
imul r8d, eax
mov dword [r12 + 0x22c], r8d
mov ecx, dword [r12 + 0x154]
test cl, 1
je 0x140055c10
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005abc0
mov ecx, dword [r12 + 0x154]
bt ecx, 0x10
jae 0x140055c36
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005a90b
mov ecx, dword [r12 + 0x154]
bt ecx, 0xe
jae 0x140055c67
test byte [r12 + 0x14d], 8
je 0x140055c67
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005669f
mov ecx, dword [r12 + 0x154]
bt ecx, 0xf
jae 0x140055f5b
mov ebx, dword [r12 + 0x150]
movzx ebp, word [r12 + 0x25e]
mov rsi, qword [r12 + 0x200]
lea rax, [rsi + 1]
mov r8d, dword [r12 + 0x228]
mov edx, ebp
shr edx, 8
movzx edi, byte [r12 + 0x230]
cmp edi, 2
je 0x140055d03
test edi, edi
jne 0x140055f5b
movzx edi, byte [r12 + 0x231]
cmp edi, 0x10
je 0x140055d6d
cmp edi, 8
jne 0x140055f5b
test bl, 0x80
jne 0x140055e1b
mov ecx, 1
mov r9b, 0x10
mov r10b, 2
test r8, r8
je 0x140055f38
mov rax, r8
mov dl, byte [rsi + rax]
mov byte [rsi + rax*2], dl
mov byte [rsi + rax*2 - 1], bpl
dec rax
test eax, eax
jne 0x140055cec
jmp 0x140055f38
movzx edi, byte [r12 + 0x231]
cmp edi, 0x10
je 0x140055db0
cmp edi, 8
jne 0x140055f5b
lea rdx, [r8 + r8*2]
test bl, 0x80
jne 0x140055e50
mov ecx, 2
mov r9b, 0x20
mov r10b, 4
test r8, r8
je 0x140055f38
mov rax, r8
mov bl, byte [rsi + rdx]
mov byte [rsi + rax*4], bl
mov bl, byte [rsi + rdx - 1]
mov byte [rsi + rax*4 - 1], bl
mov bl, byte [rsi + rdx - 2]
mov byte [rsi + rax*4 - 2], bl
mov byte [rsi + rax*4 - 3], bpl
dec rax
add rdx, 0xfffffffffffffffd
test eax, eax
jne 0x140055d42
jmp 0x140055f38
test bl, 0x80
jne 0x140055e94
mov ecx, 2
mov r9b, 0x20
mov r10b, 2
test r8, r8
je 0x140055f38
mov rax, r8
mov bl, byte [rsi + rax*2]
mov byte [rsi + rax*4], bl
mov bl, byte [rsi + rax*2 - 1]
mov byte [rsi + rax*4 - 1], bl
mov byte [rsi + rax*4 - 2], dl
mov byte [rsi + rax*4 - 3], bpl
dec rax
test eax, eax
jne 0x140055d8d
jmp 0x140055f38
imul rdi, r8, 6
test bl, 0x80
jne 0x140055ed9
mov ecx, 3
mov r9b, 0x40
mov r10b, 4
test r8, r8
je 0x140055f38
mov rax, r8
mov bl, byte [rsi + rdi]
mov byte [rsi + rax*8], bl
mov bl, byte [rsi + rdi - 1]
mov byte [rsi + rax*8 - 1], bl
mov bl, byte [rsi + rdi - 2]
mov byte [rsi + rax*8 - 2], bl
mov bl, byte [rsi + rdi - 3]
mov byte [rsi + rax*8 - 3], bl
mov bl, byte [rsi + rdi - 4]
mov byte [rsi + rax*8 - 4], bl
mov bl, byte [rsi + rdi - 5]
mov byte [rsi + rax*8 - 5], bl
mov byte [rsi + rax*8 - 6], dl
mov byte [rsi + rax*8 - 7], bpl
dec rax
add rdi, 0xfffffffffffffffa
test eax, eax
jne 0x140055dd4
jmp 0x140055f38
add rax, r8
add rax, r8
cmp r8d, 2
jb 0x140055e40
mov rcx, r8
mov byte [rax - 1], bpl
mov dl, byte [rsi + rcx]
mov byte [rax - 2], dl
add rax, 0xfffffffffffffffe
dec rcx
cmp ecx, 1
jne 0x140055e2a
dec rax
mov ecx, 1
mov r9b, 0x10
jmp 0x140055ed4
add rax, rdx
add rax, r8
cmp r8d, 2
jb 0x140055e84
add rsi, rdx
lea ecx, [r8 - 1]
mov byte [rax - 1], bpl
mov dl, byte [rsi]
mov byte [rax - 2], dl
mov dl, byte [rsi - 1]
mov byte [rax - 3], dl
mov dl, byte [rsi - 2]
mov byte [rax - 4], dl
add rax, 0xfffffffffffffffc
add rsi, 0xfffffffffffffffd
dec ecx
jne 0x140055e63
dec rax
mov ecx, 2
mov r9b, 0x20
jmp 0x140055f32
lea rax, [rax + r8*2]
lea rax, [rax + r8*2]
cmp r8d, 2
jb 0x140055ec5
mov rcx, r8
mov byte [rax - 1], dl
mov byte [rax - 2], bpl
mov bl, byte [rsi + rcx*2]
mov byte [rax - 3], bl
mov bl, byte [rsi + rcx*2 - 1]
mov byte [rax - 4], bl
add rax, 0xfffffffffffffffc
dec rcx
cmp ecx, 1
jne 0x140055ea5
mov byte [rax - 1], dl
add rax, 0xfffffffffffffffe
mov ecx, 2
mov r9b, 0x20
mov r10b, 2
jmp 0x140055f35
add rax, rdi
lea rax, [rax + r8*2]
cmp r8d, 2
jb 0x140055f23
add rsi, rdi
lea ecx, [r8 - 1]
mov byte [rax - 1], dl
mov byte [rax - 2], bpl
mov bl, byte [rsi]
mov byte [rax - 3], bl
mov bl, byte [rsi - 1]
mov byte [rax - 4], bl
mov bl, byte [rsi - 2]
mov byte [rax - 5], bl
mov bl, byte [rsi - 3]
mov byte [rax - 6], bl
mov bl, byte [rsi - 4]
mov byte [rax - 7], bl
mov bl, byte [rsi - 5]
mov byte [rax - 8], bl
add rax, 0xfffffffffffffff8
add rsi, 0xfffffffffffffffa
dec ecx
jne 0x140055eed
mov byte [rax - 1], dl
add rax, 0xfffffffffffffffe
mov ecx, 3
mov r9b, 0x40
mov r10b, 4
mov byte [rax], bpl
shl r8d, cl
mov byte [r12 + 0x232], r10b
mov byte [r12 + 0x233], r9b
mov dword [r12 + 0x22c], r8d
mov ecx, dword [r12 + 0x154]
bt ecx, 0x13
jae 0x14005601c
mov rax, qword [r12 + 0x200]
mov ecx, dword [r12 + 0x228]
movzx edx, byte [r12 + 0x230]
cmp edx, 4
je 0x140055fb6
cmp edx, 6
jne 0x140056014
cmp byte [r12 + 0x231], 8
mov edx, dword [r12 + 0x22c]
jne 0x140055fe0
test ecx, ecx
je 0x140056014
neg ecx
add rax, rdx
xor edx, edx
not byte [rax + rdx*4]
dec rdx
cmp ecx, edx
jne 0x140055faa
jmp 0x140056014
cmp byte [r12 + 0x231], 8
mov edx, dword [r12 + 0x22c]
jne 0x140055ffb
test ecx, ecx
je 0x140056014
neg ecx
add rax, rdx
xor edx, edx
not byte [rax + rdx*2]
dec rdx
cmp ecx, edx
jne 0x140055fd4
jmp 0x140056014
test ecx, ecx
je 0x140056014
neg ecx
add rax, rdx
xor edx, edx
not byte [rax + rdx*8]
not byte [rax + rdx*8 - 1]
dec rdx
cmp ecx, edx
jne 0x140055feb
jmp 0x140056014
test ecx, ecx
je 0x140056014
neg ecx
add rax, rdx
xor edx, edx
not byte [rax + rdx*4]
not byte [rax + rdx*4 - 1]
dec rdx
cmp ecx, edx
jne 0x140056006
mov ecx, dword [r12 + 0x154]
bt ecx, 0x11
jae 0x140056123
mov rax, qword [r12 + 0x200]
mov ebp, dword [r12 + 0x228]
movzx edx, byte [r12 + 0x230]
cmp edx, 4
je 0x14005609b
cmp edx, 6
jne 0x14005611b
cmp byte [r12 + 0x231], 8
mov edx, dword [r12 + 0x22c]
jne 0x1400560c8
test ebp, ebp
je 0x14005611b
add rax, rdx
neg ebp
xor edx, edx
mov r8b, byte [rax + rdx*4]
mov cl, byte [rax + rdx*4 - 1]
mov byte [rax + rdx*4], cl
mov cl, byte [rax + rdx*4 - 3]
mov bl, byte [rax + rdx*4 - 2]
mov byte [rax + rdx*4 - 1], bl
mov byte [rax + rdx*4 - 2], cl
mov byte [rax + rdx*4 - 3], r8b
dec rdx
cmp ebp, edx
jne 0x14005606f
jmp 0x14005611b
cmp byte [r12 + 0x231], 8
mov edx, dword [r12 + 0x22c]
jne 0x140056104
test ebp, ebp
je 0x14005611b
neg ebp
add rax, rdx
xor edx, edx
rol word [rax + rdx*2 - 1], 8
dec rdx
cmp ebp, edx
jne 0x1400560b9
jmp 0x14005611b
test ebp, ebp
je 0x14005611b
neg ebp
add rax, rdx
xor edx, edx
movzx ecx, word [rax + rdx*8 - 1]
movzx ebx, word [rax + rdx*8 - 3]
mov word [rax + rdx*8 - 1], bx
movzx ebx, word [rax + rdx*8 - 7]
movzx edi, word [rax + rdx*8 - 5]
mov word [rax + rdx*8 - 3], di
mov word [rax + rdx*8 - 5], bx
mov word [rax + rdx*8 - 7], cx
dec rdx
cmp ebp, edx
jne 0x1400560d3
jmp 0x14005611b
test ebp, ebp
je 0x14005611b
neg ebp
add rax, rdx
xor edx, edx
rol dword [rax + rdx*4 - 3], 0x10
dec rdx
cmp ebp, edx
jne 0x14005610f
mov ecx, dword [r12 + 0x154]
test cl, 0x10
je 0x140056148
mov rdx, qword [r12 + 0x200]
inc rdx
lea rcx, [r12 + 0x228]
call fcn.14005a8e9
mov ecx, dword [r12 + 0x154]
bt ecx, 0x14
jae 0x1400561e5
mov rax, qword [r12 + 0x130]
test rax, rax
je 0x140056177
mov r8, qword [r12 + 0x200]
inc r8
lea rdx, [r12 + 0x228]
mov rcx, r12
call rax
mov al, byte [r12 + 0x148]
test al, al
je 0x14005618b
mov byte [r12 + 0x231], al
mov cl, byte [r12 + 0x149]
test cl, cl
je 0x1400561a1
mov byte [r12 + 0x232], cl
jmp 0x1400561a9
mov cl, byte [r12 + 0x232]
mov al, byte [r12 + 0x231]
mul cl
mov byte [r12 + 0x233], al
movzx eax, al
mov ecx, dword [r12 + 0x228]
cmp al, 8
jb 0x1400561d2
shr eax, 3
imul eax, ecx
jmp 0x1400561dd
imul ecx, eax
add ecx, 7
shr ecx, 3
mov eax, ecx
mov dword [r12 + 0x22c], eax
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [r12 + 0x254]
mov r9d, dword [r12 + 0x1f0]
mov dword [rsp + 0x20], eax
lea r8, str.NULL_row_buffer_for_row__ld__pass__d
lea rsi, [rsp + 0x40]
mov edx, 0x32
mov rcx, rsi
call fcn.14004f550
mov rcx, r12
mov rdx, rsi
call fcn.14004ff68
lea rdx, str.Uninitialized_row
jmp 0x14005623f
lea rdx, str.png_do_dither_returned_rowbytes0
mov rcx, r12
call fcn.14004ff68
int3