Function at 0x6d3aad10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov edx, dword [rcx + 0x4c0]
mov r8d, dword [rcx + 0x2c4]
mov r12, rcx
test edx, edx
je 0x6d3ab198
test r8d, r8d
jne 0x6d3ab048
mov ecx, edx
call fcn.6d3b2880
or word [r12 + 0x50a], 1
mov dword [r12 + 0x2c4], eax
mov ecx, eax
mov edx, dword [r12 + 0x16c]
and dh, 0xdf
mov dword [r12 + 0x16c], edx
mov eax, edx
and eax, 0x40080
cmp eax, 0x40000
jne 0x6d3aada2
and edx, 0xfd7ffeff
xor ebx, ebx
and dword [r12 + 0x168], 0xffffdfff
mov dword [r12 + 0x16c], edx
mov word [r12 + 0x280], bx
call fcn.6d39b860
mov edx, dword [r12 + 0x16c]
test eax, eax
jne 0x6d3aadcb
movabs rcx, 0xff7fffffffffdfff
and edx, 0xff7fffff
and qword [r12 + 0x168], rcx
test edx, 0x600000
jne 0x6d3ab970
movzx eax, byte [r12 + 0x287]
test dh, 1
je 0x6d3ab1d0
test al, 2
jne 0x6d3aadf9
or dword [r12 + 0x164], 0x800
movzx ecx, word [r12 + 0x280]
cmp al, 3
je 0x6d3ab680
test al, 4
jne 0x6d3aae43
and dword [r12 + 0x168], 0xffffdfff
mov r8d, edx
and r8d, 0xff7fffff
mov dword [r12 + 0x16c], r8d
test cx, cx
jne 0x6d3abd10
and edx, 0xff7ffe7f
mov dword [r12 + 0x16c], edx
mov ebp, edx
and ebp, 0x1100
cmp ebp, 0x1100
je 0x6d3ab988
mov ecx, edx
and ecx, 0x380
cmp ecx, 0x280
je 0x6d3ab8c0
test edx, 0x4000400
je 0x6d3aae8a
mov r13d, edx
and r13d, 0x180
cmp r13d, 0x80
je 0x6d3abf80
mov r10, qword [r12 + 0x29c]
movzx r11d, word [r12 + 0x2a4]
mov qword [r12 + 0x2a6], r10
mov word [r12 + 0x2ae], r11w
test dh, 0x20
jne 0x6d3ab0a8
test edx, 0x600000
jne 0x6d3ab090
test dl, 0x80
jne 0x6d3ac040
test edx, 0x800000
je 0x6d3ab173
mov ecx, dword [r12 + 0x2c4]
call fcn.6d39b860
test eax, eax
jne 0x6d3ab0a8
mov edx, dword [r12 + 0x16c]
test dl, 0x80
je 0x6d3ab173
cmp byte [r12 + 0x287], 3
jne 0x6d3ab184
movzx esi, word [r12 + 0x29e]
movzx edi, word [r12 + 0x2a0]
movzx ebx, word [r12 + 0x2a2]
mov r11, qword [r12 + 0x270]
movzx eax, word [r12 + 0x280]
mov word [rsp + 0x30], si
mov word [rsp + 0x34], di
mov ebp, ebx
test ax, ax
je 0x6d3acb04
sub eax, 1
movzx r14d, byte [rsp + 0x34]
mov rcx, r11
movzx r15d, bl
mov r8, qword [r12 + 0x308]
mov r10d, 0xff
lea r9, [r8 + 1]
lea r13, [rax + r9]
mov qword [rsp + 0x28], r13
movzx r13d, byte [rsp + 0x30]
test al, 1
jne 0x6d3acb18
mov dword [rsp + 0x30], edx
mov rbx, qword [rsp + 0x28]
jmp 0x6d3aafcb
mov byte [rcx], sil
mov byte [rcx + 1], dil
mov byte [rcx + 2], bpl
add rcx, 3
cmp r9, rbx
je 0x6d3acb00
movzx eax, byte [r9]
lea r8, [r9 + 1]
test al, al
jne 0x6d3ac978
mov byte [rcx], sil
mov byte [rcx + 1], dil
mov byte [rcx + 2], bpl
add rcx, 3
lea r9, [r8 + 1]
movzx eax, byte [r8]
test al, al
je 0x6d3aaf90
cmp al, 0xff
je 0x6d3aaf9b
movzx r11d, al
mul byte [rcx]
mov edx, r10d
sub edx, r11d
imul edx, r13d
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov edx, r10d
mov byte [rcx], ah
movzx r11d, byte [r8]
sub edx, r11d
mov eax, r11d
mov r11d, r10d
imul edx, r14d
mul byte [rcx + 1]
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov byte [rcx + 1], ah
movzx r8d, byte [r8]
sub r11d, r8d
mov eax, r8d
mov edx, r11d
mul byte [rcx + 2]
imul edx, r15d
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov byte [rcx + 2], ah
jmp 0x6d3aaf9b
lea rcx, [rsp + 0x4c]
mov r9d, 0x186a0
call fcn.6d3acfc0
test eax, eax
jne 0x6d3abd50
or word [r12 + 0x50a], 1
mov edx, dword [r12 + 0x16c]
mov ecx, dword [r12 + 0x2c4]
or dh, 0x20
mov dword [r12 + 0x16c], edx
jmp 0x6d3aad6f
mov ecx, dword [r12 + 0x4c0]
call fcn.6d39b860
test eax, eax
je 0x6d3abdb0
nop dword [rax]
movzx edx, byte [r12 + 0x288]
mov rcx, r12
call fcn.6d37c0f0
mov edx, dword [r12 + 0x16c]
test dl, 0x80
je 0x6d3ab228
and edx, 0x600000
jne 0x6d3ac4e8
cmp byte [r12 + 0x287], 3
movzx edx, byte [r12 + 0x294]
je 0x6d3ac098
cmp dl, 2
je 0x6d3abd80
cmp dl, 3
je 0x6d3abd20
cmp dl, 1
jne 0x6d3ac6a3
mov ebp, dword [r12 + 0x2c4]
mov r13d, 0x186a0
mov ecx, ebp
call fcn.6d39b860
mov ecx, r13d
mov esi, eax
call fcn.6d39b860
mov ebx, eax
test esi, esi
jne 0x6d3ac578
test ebx, ebx
jne 0x6d3ac550
movzx edx, word [r12 + 0x29e]
cmp dx, word [r12 + 0x2a0]
je 0x6d3ac500
test esi, esi
jne 0x6d3ac5a0
test ebx, ebx
jne 0x6d3ac5f8
mov byte [r12 + 0x294], 1
mov edx, dword [r12 + 0x16c]
mov ebx, edx
and ebx, 0x1008
cmp ebx, 8
je 0x6d3ac000
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r8d, r8d
jne 0x6d3ac018
or word [rcx + 0x50a], 1
mov dword [rcx + 0x4c0], 0x186a0
mov dword [rcx + 0x2c4], 0x186a0
mov ecx, 0x186a0
jmp 0x6d3aad5c
mov esi, edx
and esi, 0x4080
cmp esi, 0x4080
jne 0x6d3aadf9
movzx edi, word [r12 + 0x29e]
cmp di, word [r12 + 0x2a0]
jne 0x6d3aadf9
cmp di, word [r12 + 0x2a2]
jne 0x6d3aadf9
or dword [r12 + 0x164], 0x800
mov word [r12 + 0x2a4], di
jmp 0x6d3aadf9
cmp byte [r12 + 0x287], 3
jne 0x6d3ab184
test dh, 0x10
je 0x6d3abdd8
test edx, 0x600000
je 0x6d3abdd8
nop dword [rax]
mov edi, edx
and edi, 0x1008
cmp edi, 8
jne 0x6d3ab184
movzx r13d, byte [r12 + 0x2f8]
mov r14d, 8
and edx, 0xfffffff7
movzx r8d, word [r12 + 0x278]
mov ecx, r14d
mov dword [r12 + 0x16c], edx
sub ecx, r13d
lea edx, [rcx - 1]
cmp edx, 6
ja 0x6d3ac658
test r8d, r8d
je 0x6d3acd7c
mov r9, qword [r12 + 0x270]
lea r11d, [r8 - 1]
movabs rbx, 0xaaaaaaaaaaaaaaab
lea r13, [r11 + r11*2]
lea r14, [r9 + 3]
mov r10, r9
add r13, r14
mov rdx, r13
sub rdx, r9
sub rdx, 3
imul rdx, rbx
add rdx, 1
and edx, 7
je 0x6d3ab36a
cmp rdx, 1
je 0x6d3ab356
cmp rdx, 2
je 0x6d3ab347
cmp rdx, 3
je 0x6d3ab339
cmp rdx, 4
je 0x6d3ab32b
cmp rdx, 5
je 0x6d3ab31c
cmp rdx, 6
je 0x6d3ab30e
movzx esi, byte [r9]
mov r10, r14
sar esi, cl
mov byte [r9], sil
movzx eax, byte [r10]
add r10, 3
sar eax, cl
mov byte [r10 - 3], al
movzx r15d, byte [r10]
add r10, 3
sar r15d, cl
mov byte [r10 - 3], r15b
movzx edi, byte [r10]
add r10, 3
sar edi, cl
mov byte [r10 - 3], dil
movzx ebp, byte [r10]
add r10, 3
sar ebp, cl
mov byte [r10 - 3], bpl
movzx r11d, byte [r10]
add r10, 3
sar r11d, cl
mov byte [r10 - 3], r11b
movzx r14d, byte [r10]
add r10, 3
sar r14d, cl
mov byte [r10 - 3], r14b
cmp r10, r13
je 0x6d3ab3cc
movzx edx, byte [r10]
movzx ebx, byte [r10 + 3]
add r10, 0x18
movzx esi, byte [r10 - 0x12]
movzx eax, byte [r10 - 0xf]
movzx r15d, byte [r10 - 0xc]
movzx edi, byte [r10 - 9]
sar edx, cl
sar ebx, cl
movzx ebp, byte [r10 - 6]
movzx r11d, byte [r10 - 3]
sar esi, cl
sar eax, cl
sar r15d, cl
sar edi, cl
mov byte [r10 - 0x18], dl
sar ebp, cl
sar r11d, cl
mov byte [r10 - 0x15], bl
mov byte [r10 - 0x12], sil
mov byte [r10 - 0xf], al
mov byte [r10 - 0xc], r15b
mov byte [r10 - 9], dil
mov byte [r10 - 6], bpl
mov byte [r10 - 3], r11b
cmp r10, r13
jne 0x6d3ab36a
movzx r13d, byte [r12 + 0x2f9]
mov r10d, 8
mov ecx, r10d
sub ecx, r13d
lea r14d, [rcx - 1]
cmp r14d, 6
ja 0x6d3ac700
movzx esi, byte [r9 + 1]
lea ebx, [r8 - 1]
mov edi, 1
lea rax, [r9 + 4]
and ebx, 7
sar esi, cl
mov byte [r9 + 1], sil
cmp r8d, 1
jle 0x6d3ab521
test ebx, ebx
je 0x6d3ab4bd
cmp ebx, 1
je 0x6d3ab4a9
cmp ebx, 2
je 0x6d3ab497
cmp ebx, 3
je 0x6d3ab485
cmp ebx, 4
je 0x6d3ab473
cmp ebx, 5
je 0x6d3ab461
cmp ebx, 6
je 0x6d3ab451
movzx r15d, byte [rax]
mov edi, 2
sar r15d, cl
mov byte [rax], r15b
lea rax, [r9 + 7]
movzx ebp, byte [rax]
add edi, 1
add rax, 3
sar ebp, cl
mov byte [rax - 3], bpl
movzx r11d, byte [rax]
add edi, 1
add rax, 3
sar r11d, cl
mov byte [rax - 3], r11b
movzx r13d, byte [rax]
add edi, 1
add rax, 3
sar r13d, cl
mov byte [rax - 3], r13b
movzx r10d, byte [rax]
add edi, 1
add rax, 3
sar r10d, cl
mov byte [rax - 3], r10b
movzx r14d, byte [rax]
add edi, 1
add rax, 3
sar r14d, cl
mov byte [rax - 3], r14b
movzx edx, byte [rax]
add edi, 1
add rax, 3
sar edx, cl
mov byte [rax - 3], dl
cmp r8d, edi
jle 0x6d3ab521
movzx ebx, byte [rax]
movzx esi, byte [rax + 3]
add edi, 8
add rax, 0x18
movzx r15d, byte [rax - 0x12]
movzx ebp, byte [rax - 0xf]
movzx r11d, byte [rax - 0xc]
movzx r13d, byte [rax - 9]
sar ebx, cl
sar esi, cl
movzx r10d, byte [rax - 6]
movzx r14d, byte [rax - 3]
sar r15d, cl
sar ebp, cl
sar r11d, cl
sar r13d, cl
mov byte [rax - 0x18], bl
sar r10d, cl
sar r14d, cl
mov byte [rax - 0x15], sil
mov byte [rax - 0x12], r15b
mov byte [rax - 0xf], bpl
mov byte [rax - 0xc], r11b
mov byte [rax - 9], r13b
mov byte [rax - 6], r10b
mov byte [rax - 3], r14b
cmp r8d, edi
jg 0x6d3ab4bd
movzx r12d, byte [r12 + 0x2fa]
mov ecx, 8
sub ecx, r12d
lea edi, [rcx - 1]
cmp edi, 6
ja 0x6d3ab184
movzx eax, byte [r9 + 2]
lea edx, [r8 - 1]
mov esi, 1
lea r15, [r9 + 5]
and edx, 7
sar eax, cl
mov byte [r9 + 2], al
cmp r8d, 1
jle 0x6d3ab184
test edx, edx
je 0x6d3ab613
cmp edx, 1
je 0x6d3ab5f8
cmp edx, 2
je 0x6d3ab5e6
cmp edx, 3
je 0x6d3ab5d4
cmp edx, 4
je 0x6d3ab5c2
cmp edx, 5
je 0x6d3ab5b1
cmp edx, 6
je 0x6d3ab59f
movzx ebx, byte [r15]
mov esi, 2
sar ebx, cl
mov byte [r15], bl
lea r15, [r9 + 8]
movzx r9d, byte [r15]
add esi, 1
add r15, 3
sar r9d, cl
mov byte [r15 - 3], r9b
movzx ebp, byte [r15]
add esi, 1
add r15, 3
sar ebp, cl
mov byte [r15 - 3], bpl
movzx r11d, byte [r15]
add esi, 1
add r15, 3
sar r11d, cl
mov byte [r15 - 3], r11b
movzx r13d, byte [r15]
add esi, 1
add r15, 3
sar r13d, cl
mov byte [r15 - 3], r13b
movzx r10d, byte [r15]
add esi, 1
add r15, 3
sar r10d, cl
mov byte [r15 - 3], r10b
movzx r14d, byte [r15]
add esi, 1
add r15, 3
sar r14d, cl
mov byte [r15 - 3], r14b
cmp r8d, esi
jle 0x6d3ab184
movzx r12d, byte [r15]
movzx edi, byte [r15 + 3]
add esi, 8
add r15, 0x18
movzx edx, byte [r15 - 0x12]
movzx eax, byte [r15 - 0xf]
movzx ebx, byte [r15 - 0xc]
movzx r9d, byte [r15 - 9]
sar r12d, cl
sar edi, cl
movzx ebp, byte [r15 - 6]
movzx r11d, byte [r15 - 3]
sar edx, cl
sar eax, cl
sar ebx, cl
sar r9d, cl
mov byte [r15 - 0x18], r12b
sar ebp, cl
sar r11d, cl
mov byte [r15 - 0x15], dil
mov byte [r15 - 0x12], dl
mov byte [r15 - 0xf], al
mov byte [r15 - 0xc], bl
mov byte [r15 - 9], r9b
mov byte [r15 - 6], bpl
mov byte [r15 - 3], r11b
cmp r8d, esi
jg 0x6d3ab613
jmp 0x6d3ab184
test cx, cx
je 0x6d3aba18
mov rax, qword [r12 + 0x308]
movzx r15d, cx
xor r9d, r9d
sub r15d, 1
lea rbx, [rax + r15 + 1]
add r15, 1
and r15d, 7
je 0x6d3ab7b0
cmp r15, 1
je 0x6d3ab78a
cmp r15, 2
je 0x6d3ab76d
cmp r15, 3
je 0x6d3ab750
cmp r15, 4
je 0x6d3ab734
cmp r15, 5
je 0x6d3ab717
cmp r15, 6
je 0x6d3ab6fb
movzx esi, byte [rax]
cmp sil, 0xff
je 0x6d3ab6f7
test sil, sil
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx edi, byte [rax]
cmp dil, 0xff
je 0x6d3ab713
test dil, dil
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx r8d, byte [rax]
cmp r8b, 0xff
je 0x6d3ab730
test r8b, r8b
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx ebp, byte [rax]
cmp bpl, 0xff
je 0x6d3ab74c
test bpl, bpl
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx r10d, byte [rax]
cmp r10b, 0xff
je 0x6d3ab769
test r10b, r10b
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx r11d, byte [rax]
cmp r11b, 0xff
je 0x6d3ab786
test r11b, r11b
jne 0x6d3aba32
mov r9d, 1
add rax, 1
movzx r13d, byte [rax]
cmp r13b, 0xff
je 0x6d3ab7a3
test r13b, r13b
jne 0x6d3aba32
mov r9d, 1
add rax, 1
cmp rbx, rax
je 0x6d3ab88c
movzx r14d, byte [rax]
cmp r14b, 0xff
je 0x6d3ab7c9
test r14b, r14b
jne 0x6d3aba32
mov r9d, 1
lea r15, [rax + 1]
movzx eax, byte [rax + 1]
cmp al, 0xff
je 0x6d3ab7e3
test al, al
jne 0x6d3aba32
mov r9d, 1
movzx esi, byte [r15 + 1]
cmp sil, 0xff
je 0x6d3ab7fd
test sil, sil
jne 0x6d3aba32
mov r9d, 1
movzx edi, byte [r15 + 2]
cmp dil, 0xff
je 0x6d3ab817
test dil, dil
jne 0x6d3aba32
mov r9d, 1
movzx r8d, byte [r15 + 3]
cmp r8b, 0xff
je 0x6d3ab831
test r8b, r8b
jne 0x6d3aba32
mov r9d, 1
movzx ebp, byte [r15 + 4]
cmp bpl, 0xff
je 0x6d3ab84b
test bpl, bpl
jne 0x6d3aba32
mov r9d, 1
movzx r10d, byte [r15 + 5]
cmp r10b, 0xff
je 0x6d3ab865
test r10b, r10b
jne 0x6d3aba32
mov r9d, 1
movzx r11d, byte [r15 + 6]
cmp r11b, 0xff
je 0x6d3ab87f
test r11b, r11b
jne 0x6d3aba32
mov r9d, 1
lea rax, [r15 + 7]
cmp rbx, rax
jne 0x6d3ab7b0
and dword [r12 + 0x168], 0xffffdfff
mov ebx, edx
and ebx, 0xff7fffff
mov dword [r12 + 0x16c], ebx
test r9d, r9d
je 0x6d3aba24
mov edx, ebx
jmp 0x6d3aba32
cmp byte [r12 + 0x288], 0x10
je 0x6d3aae6b
movzx ebp, word [r12 + 0x29e]
movzx edi, word [r12 + 0x2a0]
movzx r10d, word [r12 + 0x2a2]
movzx r9d, word [r12 + 0x2a4]
mov eax, ebp
mov r8d, edi
shl eax, 8
mov r11d, r10d
mov ebx, r9d
shl r8d, 8
shl r11d, 8
shl ebx, 8
sub eax, ebp
sub r8d, edi
sub r11d, r10d
sub ebx, r9d
add eax, 0x807f
add r8d, 0x807f
add r11d, 0x807f
add ebx, 0x807f
shr eax, 0x10
mov word [r12 + 0x29e], ax
shr r8d, 0x10
shr r11d, 0x10
mov word [r12 + 0x2a0], r8w
shr ebx, 0x10
mov word [r12 + 0x2a2], r11w
mov word [r12 + 0x2a4], bx
jmp 0x6d3aae6b
mov rcx, r12
call fcn.6d3814a0
mov edx, dword [r12 + 0x16c]
jmp 0x6d3aadd7
test al, 2
jne 0x6d3aae57
movzx r9d, word [r12 + 0x2a4]
movzx r10d, byte [r12 + 0x288]
movzx r11d, word [r12 + 0x318]
mov r14d, r9d
cmp r10b, 2
je 0x6d3acc60
cmp r10b, 4
je 0x6d3acc48
cmp r10b, 1
je 0x6d3acc70
mov word [r12 + 0x2a2], r14w
mov word [r12 + 0x2a0], r14w
mov word [r12 + 0x29e], r14w
test edx, 0x2000000
jne 0x6d3aae57
mov word [r12 + 0x316], r11w
mov word [r12 + 0x314], r11w
mov word [r12 + 0x312], r11w
jmp 0x6d3aae57
and dword [r12 + 0x168], 0xffffdfff
and edx, 0xff7ffe7f
mov dword [r12 + 0x16c], edx
mov r13d, edx
and r13d, 0x1100
cmp r13d, 0x1100
jne 0x6d3aae57
movzx r14d, byte [r12 + 0x29c]
lea r15, [r14 + r14*2]
add r15, qword [r12 + 0x270]
movzx esi, byte [r15]
movzx edi, byte [r15 + 1]
movzx r8d, byte [r15 + 2]
mov word [r12 + 0x29e], si
mov word [r12 + 0x2a0], di
mov word [r12 + 0x2a2], r8w
test edx, 0x80000
je 0x6d3aae57
test edx, 0x2000000
jne 0x6d3aae57
test ecx, ecx
je 0x6d3aae57
lea r10d, [rcx - 1]
mov rbp, qword [r12 + 0x308]
cmp r10d, 0xe
jbe 0x6d3acdb5
mov r11d, ecx
mov rbx, rbp
pcmpeqd xmm0, xmm0
shr r11d, 4
shl r11, 4
lea r9, [r11 + rbp]
sub r11, 0x10
shr r11, 4
add r11, 1
and r11d, 7
je 0x6d3abb83
cmp r11, 1
je 0x6d3abb6e
cmp r11, 2
je 0x6d3abb5e
cmp r11, 3
je 0x6d3abb4e
cmp r11, 4
je 0x6d3abb3e
cmp r11, 5
je 0x6d3abb2e
cmp r11, 6
je 0x6d3abb1e
movdqu xmm1, xmmword [rbp]
lea rbx, [rbp + 0x10]
pxor xmm1, xmm0
movups xmmword [rbp], xmm1
movdqu xmm2, xmmword [rbx]
add rbx, 0x10
pxor xmm2, xmm0
movups xmmword [rbx - 0x10], xmm2
movdqu xmm3, xmmword [rbx]
add rbx, 0x10
pxor xmm3, xmm0
movups xmmword [rbx - 0x10], xmm3
movdqu xmm4, xmmword [rbx]
add rbx, 0x10
pxor xmm4, xmm0
movups xmmword [rbx - 0x10], xmm4
movdqu xmm5, xmmword [rbx]
add rbx, 0x10
pxor xmm5, xmm0
movups xmmword [rbx - 0x10], xmm5
movdqu xmm1, xmmword [rbx]
add rbx, 0x10
pxor xmm1, xmm0
movups xmmword [rbx - 0x10], xmm1
movdqu xmm2, xmmword [rbx]
add rbx, 0x10
pxor xmm2, xmm0
movups xmmword [rbx - 0x10], xmm2
cmp r9, rbx
je 0x6d3abbf3
movdqu xmm3, xmmword [rbx]
movdqu xmm4, xmmword [rbx + 0x10]
sub rbx, 0xffffffffffffff80
movdqu xmm5, xmmword [rbx - 0x60]
movdqu xmm1, xmmword [rbx - 0x50]
pxor xmm3, xmm0
pxor xmm4, xmm0
movdqu xmm2, xmmword [rbx - 0x40]
pxor xmm5, xmm0
movups xmmword [rbx - 0x80], xmm3
movdqu xmm3, xmmword [rbx - 0x30]
pxor xmm1, xmm0
movups xmmword [rbx - 0x70], xmm4
movdqu xmm4, xmmword [rbx - 0x20]
pxor xmm2, xmm0
movups xmmword [rbx - 0x60], xmm5
movdqu xmm5, xmmword [rbx - 0x10]
pxor xmm3, xmm0
pxor xmm4, xmm0
movups xmmword [rbx - 0x50], xmm1
pxor xmm5, xmm0
movups xmmword [rbx - 0x40], xmm2
movups xmmword [rbx - 0x30], xmm3
movups xmmword [rbx - 0x20], xmm4
movups xmmword [rbx - 0x10], xmm5
cmp r9, rbx
jne 0x6d3abb83
mov eax, ecx
and eax, 0xfffffff0
test ecx, 0xffff000f
je 0x6d3abd00
movsxd rdx, eax
lea r13d, [rax + 1]
not byte [rbp + rdx]
cmp ecx, r13d
jle 0x6d3abd00
movsxd r14, r13d
lea r15d, [rax + 2]
not byte [rbp + r14]
cmp ecx, r15d
jle 0x6d3abd00
movsxd rsi, r15d
lea edi, [rax + 3]
not byte [rbp + rsi]
cmp ecx, edi
jle 0x6d3abd00
movsxd r8, edi
lea r10d, [rax + 4]
not byte [rbp + r8]
cmp ecx, r10d
jle 0x6d3abd00
movsxd r11, r10d
lea r9d, [rax + 5]
not byte [rbp + r11]
cmp ecx, r9d
jle 0x6d3abd00
movsxd rbx, r9d
lea edx, [rax + 6]
not byte [rbp + rbx]
cmp ecx, edx
jle 0x6d3abd00
movsxd r13, edx
lea r14d, [rax + 7]
not byte [rbp + r13]
cmp ecx, r14d
jle 0x6d3abd00
movsxd r15, r14d
lea esi, [rax + 8]
not byte [rbp + r15]
cmp ecx, esi
jle 0x6d3abd00
movsxd rdi, esi
lea r8d, [rax + 9]
not byte [rbp + rdi]
cmp ecx, r8d
jle 0x6d3abd00
movsxd r10, r8d
lea r11d, [rax + 0xa]
not byte [rbp + r10]
cmp ecx, r11d
jle 0x6d3abd00
movsxd r9, r11d
lea ebx, [rax + 0xb]
not byte [rbp + r9]
cmp ecx, ebx
jle 0x6d3abd00
movsxd rdx, ebx
lea r13d, [rax + 0xc]
not byte [rbp + rdx]
cmp ecx, r13d
jle 0x6d3abd00
movsxd r14, r13d
lea r15d, [rax + 0xd]
not byte [rbp + r14]
cmp ecx, r15d
jle 0x6d3abd00
movsxd rsi, r15d
add eax, 0xe
not byte [rbp + rsi]
cmp ecx, eax
jle 0x6d3abd00
cdqe
not byte [rbp + rax]
mov edx, dword [r12 + 0x16c]
jmp 0x6d3aae57
mov edx, r8d
jmp 0x6d3aae43
mov ecx, dword [r12 + 0x298]
call fcn.6d3b2880
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x298]
mov ebp, eax
call fcn.6d3b2910
mov r13d, eax
jmp 0x6d3ab117
mov ecx, dword [rsp + 0x4c]
call fcn.6d39b860
or word [r12 + 0x50a], 1
test eax, eax
jne 0x6d3ab06a
mov ecx, dword [r12 + 0x2c4]
jmp 0x6d3aad5c
mov ecx, dword [r12 + 0x4c0]
call fcn.6d3b2880
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x4c0]
mov ebp, eax
call fcn.6d3b2910
mov r13d, eax
jmp 0x6d3ab117
mov ecx, dword [r12 + 0x2c4]
call fcn.6d39b860
test eax, eax
jne 0x6d3ab0a8
mov edx, dword [r12 + 0x16c]
jmp 0x6d3aaec1
movzx esi, word [r12 + 0x278]
mov rax, qword [r12 + 0x270]
test si, si
je 0x6d3abf6f
sub esi, 1
lea r10, [rax + 3]
movabs r14, 0xaaaaaaaaaaaaaaab
mov rdi, qword [r12 + 0x2c8]
lea rbp, [rsi + rsi*2]
add rbp, r10
mov r13, rbp
sub r13, rax
sub r13, 3
imul r13, r14
add r13, 1
and r13d, 3
je 0x6d3abec2
cmp r13, 1
je 0x6d3abe8e
cmp r13, 2
je 0x6d3abe63
movzx r15d, byte [rax]
movzx ebx, byte [rax + 1]
movzx r11d, byte [rax + 2]
movzx ecx, byte [rdi + r15]
mov byte [rax], cl
movzx r8d, byte [rdi + rbx]
mov byte [rax + 1], r8b
movzx r9d, byte [rdi + r11]
mov byte [rax + 2], r9b
mov rax, r10
movzx esi, byte [rax]
movzx r13d, byte [rax + 1]
add rax, 3
movzx r15d, byte [rax - 1]
movzx r10d, byte [rdi + rsi]
mov byte [rax - 3], r10b
movzx r14d, byte [rdi + r13]
mov byte [rax - 2], r14b
movzx ecx, byte [rdi + r15]
mov byte [rax - 1], cl
movzx ebx, byte [rax]
movzx r11d, byte [rax + 1]
add rax, 3
movzx esi, byte [rax - 1]
movzx r8d, byte [rdi + rbx]
mov byte [rax - 3], r8b
movzx r9d, byte [rdi + r11]
mov byte [rax - 2], r9b
movzx r10d, byte [rdi + rsi]
mov byte [rax - 1], r10b
cmp rbp, rax
je 0x6d3abf6f
movzx r13d, byte [rax]
movzx r15d, byte [rax + 1]
add rax, 0xc
movzx ebx, byte [rax - 0xa]
movzx r11d, byte [rax - 9]
movzx r14d, byte [rdi + r13]
movzx esi, byte [rax - 8]
movzx r13d, byte [rax - 7]
mov byte [rax - 0xc], r14b
movzx ecx, byte [rdi + r15]
movzx r15d, byte [rax - 6]
mov byte [rax - 0xb], cl
movzx r8d, byte [rdi + rbx]
movzx ebx, byte [rax - 5]
mov byte [rax - 0xa], r8b
movzx r9d, byte [rdi + r11]
movzx r11d, byte [rax - 4]
mov byte [rax - 9], r9b
movzx r10d, byte [rdi + rsi]
movzx esi, byte [rax - 3]
mov byte [rax - 8], r10b
movzx r14d, byte [rdi + r13]
movzx r13d, byte [rax - 2]
mov byte [rax - 7], r14b
movzx ecx, byte [rdi + r15]
mov byte [rax - 6], cl
movzx r8d, byte [rdi + rbx]
mov byte [rax - 5], r8b
movzx r9d, byte [rdi + r11]
mov byte [rax - 4], r9b
movzx r10d, byte [rdi + rsi]
mov byte [rax - 3], r10b
movzx r14d, byte [rdi + r13]
mov byte [rax - 2], r14b
movzx r15d, byte [rax - 1]
movzx ecx, byte [rdi + r15]
mov byte [rax - 1], cl
cmp rbp, rax
jne 0x6d3abec2
and dh, 0xdf
mov dword [r12 + 0x16c], edx
jmp 0x6d3ab250
cmp byte [r12 + 0x288], 0x10
jne 0x6d3aae8a
movzx r14d, word [r12 + 0x29e]
movzx esi, word [r12 + 0x2a0]
movzx ebp, word [r12 + 0x2a2]
movzx edi, word [r12 + 0x2a4]
mov r15d, r14d
mov ecx, esi
shl r15d, 8
mov eax, ebp
mov r8d, edi
shl ecx, 8
shl eax, 8
shl r8d, 8
add r15d, r14d
add ecx, esi
mov word [r12 + 0x29e], r15w
add eax, ebp
add r8d, edi
mov word [r12 + 0x2a0], cx
mov word [r12 + 0x2a2], ax
mov word [r12 + 0x2a4], r8w
jmp 0x6d3aae8a
cmp byte [r12 + 0x287], 3
jne 0x6d3ab184
jmp 0x6d3ab261
mov ecx, r8d
call fcn.6d3b2880
mov ecx, dword [r12 + 0x2c4]
or word [r12 + 0x50a], 1
mov dword [r12 + 0x4c0], eax
jmp 0x6d3aad5c
mov ecx, dword [r12 + 0x4c0]
call fcn.6d39b860
test eax, eax
jne 0x6d3ab0a8
mov ecx, dword [r12 + 0x2c4]
call fcn.6d39b860
test eax, eax
jne 0x6d3ab0a8
cmp byte [r12 + 0x294], 3
je 0x6d3acd9b
mov edx, dword [r12 + 0x16c]
test edx, 0x800000
je 0x6d3aaef3
jmp 0x6d3aaed6
mov rsi, qword [r12 + 0x270]
movzx ebx, word [r12 + 0x278]
cmp dl, 2
je 0x6d3acbb8
cmp dl, 1
je 0x6d3acc90
cmp dl, 3
je 0x6d3ac6b8
mov r14d, 0x186a0
mov r13d, 0x186a0
mov ecx, r14d
call fcn.6d39b860
test eax, eax
jne 0x6d3accf0
movzx r8d, byte [r12 + 0x29e]
movzx edi, byte [r12 + 0x2a0]
movzx ebp, byte [r12 + 0x2a2]
mov byte [rsp + 0x30], r8b
mov ecx, r13d
call fcn.6d39b860
test eax, eax
jne 0x6d3acca8
movzx r15d, byte [r12 + 0x29e]
movzx r14d, byte [r12 + 0x2a0]
movzx eax, byte [r12 + 0x2a2]
test ebx, ebx
je 0x6d3ac769
movzx r9d, word [r12 + 0x280]
test r9d, r9d
jle 0x6d3ac788
cmp r9d, ebx
mov rdx, qword [r12 + 0x308]
movzx r8d, r14b
movzx r13d, r15b
cmovg r9d, ebx
mov word [rsp + 0x28], r8w
movzx r15d, al
mov r11d, 0xff
movzx ecx, byte [rdx]
mov word [rsp + 0x34], r13w
lea r8d, [r9 - 1]
mov word [rsp + 0x36], r15w
and r8d, 1
cmp cl, 0xff
je 0x6d3ac9f0
test cl, cl
je 0x6d3acd50
movzx r14d, byte [rsi]
movzx r15d, word [rsp + 0x34]
mov r10d, r11d
mov eax, ecx
mov r13, qword [r12 + 0x2e0]
sub r10d, ecx
imul r15d, r10d
mov r10, qword [r12 + 0x2d8]
mul byte [r13 + r14]
lea eax, [rax + r15 + 0x80]
movzx r15d, byte [rsi + 1]
movzx ecx, ah
add rax, rcx
movzx eax, ah
movzx r14d, byte [r10 + rax]
mov byte [rsi], r14b
movzx ecx, byte [rdx]
mov r14d, r11d
sub r14d, ecx
mov eax, ecx
movzx ecx, word [rsp + 0x28]
mul byte [r13 + r15]
imul ecx, r14d
movzx r14d, byte [rsi + 2]
lea eax, [rax + rcx + 0x80]
movzx ecx, ah
add rax, rcx
movzx ecx, word [rsp + 0x36]
movzx eax, ah
movzx r15d, byte [r10 + rax]
mov byte [rsi + 1], r15b
movzx edx, byte [rdx]
mov eax, edx
mul byte [r13 + r14]
mov r13d, r11d
sub r13d, edx
imul ecx, r13d
lea eax, [rax + rcx + 0x80]
movzx edx, ah
add rax, rdx
movzx ecx, ah
movzx r10d, byte [r10 + rcx]
mov byte [rsi + 2], r10b
nop word cs:[rax + rax]
mov r10d, 1
mov ecx, 1
lea rdx, [rsi + 3]
cmp r9d, 1
jle 0x6d3ac764
test r8d, r8d
je 0x6d3ac375
mov r8, qword [r12 + 0x308]
movzx r10d, byte [r8 + 1]
lea r8, [r8 + 1]
cmp r10b, 0xff
je 0x6d3acc10
test r10b, r10b
je 0x6d3acd66
mov r13d, r11d
mov r15, qword [r12 + 0x2e0]
mov qword [rsp + 0x38], rcx
mov eax, r10d
movzx ecx, byte [rdx]
sub r13d, r10d
movzx r10d, word [rsp + 0x34]
mov r14, qword [r12 + 0x2d8]
mul byte [r15 + rcx]
imul r10d, r13d
lea eax, [rax + r10 + 0x80]
movzx r10d, byte [rdx + 1]
movzx ecx, ah
add rax, rcx
movzx eax, ah
movzx r13d, byte [r14 + rax]
mov byte [rdx], r13b
movzx eax, byte [r8]
mul byte [r15 + r10]
movzx r13d, byte [r8]
mov r10d, r11d
sub r10d, r13d
mov ecx, eax
movzx eax, word [rsp + 0x28]
imul eax, r10d
movzx r10d, byte [rdx + 2]
lea eax, [rcx + rax + 0x80]
movzx ecx, ah
add rax, rcx
movzx ecx, word [rsp + 0x36]
movzx eax, ah
movzx r13d, byte [r14 + rax]
mov byte [rdx + 1], r13b
movzx r8d, byte [r8]
mov eax, r8d
mul byte [r15 + r10]
mov r15d, r11d
sub r15d, r8d
imul ecx, r15d
lea eax, [rax + rcx + 0x80]
movzx ecx, ah
add rax, rcx
mov rcx, qword [rsp + 0x38]
movzx eax, ah
movzx r14d, byte [r14 + rax]
mov byte [rdx + 2], r14b
nop word cs:[rax + rax]
lea r10d, [rcx + 1]
add rcx, 1
add rdx, 3
cmp r9d, ecx
jle 0x6d3ac764
mov dword [rsp + 0x38], ebx
jmp 0x6d3ac495
test r10b, r10b
jne 0x6d3aca28
movzx r15d, byte [rsp + 0x30]
mov byte [rdx + 1], dil
mov byte [rdx + 2], bpl
mov byte [rdx], r15b
nop word [rax + rax]
mov r10, qword [r12 + 0x308]
add rcx, 1
lea r8, [rdx + 3]
add r10, rcx
movzx ebx, byte [r10]
cmp bl, 0xff
je 0x6d3ac728
test bl, bl
je 0x6d3acae8
mov r14, qword [r12 + 0x2e0]
movzx r13d, byte [r8]
mov edx, r11d
mov eax, ebx
sub edx, ebx
imul dx, word [rsp + 0x34]
mul byte [r14 + r13]
mov r13, qword [r12 + 0x2d8]
lea ebx, [rax + rdx + 0x80]
movzx eax, bh
add rbx, rax
movzx edx, bh
movzx ebx, byte [r8 + 1]
movzx r15d, byte [r13 + rdx]
mov byte [r8], r15b
movzx edx, byte [r10]
mov r15d, r11d
sub r15d, edx
mov eax, edx
movzx edx, word [rsp + 0x28]
mul byte [r14 + rbx]
imul edx, r15d
lea ebx, [rax + rdx + 0x80]
movzx eax, bh
add rbx, rax
movzx edx, bh
movzx ebx, word [rsp + 0x36]
movzx r15d, byte [r13 + rdx]
mov byte [r8 + 1], r15b
movzx edx, byte [r10]
movzx r10d, byte [r8 + 2]
mov eax, edx
mul byte [r14 + r10]
mov r14d, r11d
sub r14d, edx
imul ebx, r14d
lea eax, [rax + rbx + 0x80]
movzx edx, ah
add rax, rdx
movzx ebx, ah
movzx r13d, byte [r13 + rbx]
mov byte [r8 + 2], r13b
nop word cs:[rax + rax]
lea r10d, [rcx + 1]
add rcx, 1
lea rdx, [r8 + 3]
cmp r9d, ecx
jle 0x6d3ac760
mov r8, qword [r12 + 0x308]
add r8, rcx
movzx r10d, byte [r8]
cmp r10b, 0xff
jne 0x6d3ac380
mov rbx, qword [r12 + 0x2c8]
movzx r15d, byte [rdx]
movzx r14d, byte [rdx + 1]
movzx r8d, byte [rdx + 2]
movzx eax, byte [rbx + r15]
mov byte [rdx], al
movzx r13d, byte [rbx + r14]
mov byte [rdx + 1], r13b
movzx r10d, byte [rbx + r8]
mov byte [rdx + 2], r10b
jmp 0x6d3ac3a0
lea rdx, str.libpng_does_not_support_gammabackgroundrgb_to_gray
mov rcx, r12
call fcn.6d3b8f50
jmp 0x6d3ab0d6
cmp dx, word [r12 + 0x2a2]
jne 0x6d3ab152
cmp dx, word [r12 + 0x2a4]
jne 0x6d3ab152
movzx eax, word [r12 + 0x2ae]
mov word [r12 + 0x2ac], ax
mov word [r12 + 0x2aa], ax
mov word [r12 + 0x2a8], ax
jmp 0x6d3ab162
movzx edx, word [r12 + 0x2a4]
mov r8d, r13d
mov rcx, r12
call fcn.6d39b700
mov word [r12 + 0x2a4], ax
jmp 0x6d3ab13a
movzx edx, word [r12 + 0x2a4]
mov r8d, ebp
mov rcx, r12
call fcn.6d39b700
mov word [r12 + 0x2ae], ax
jmp 0x6d3ab132
mov r8d, ebp
mov rcx, r12
call fcn.6d39b700
mov r8d, ebp
mov rcx, r12
movzx edx, word [r12 + 0x2a0]
mov word [r12 + 0x2a8], ax
call fcn.6d39b700
mov r8d, ebp
mov rcx, r12
movzx edx, word [r12 + 0x2a2]
mov word [r12 + 0x2aa], ax
call fcn.6d39b700
mov word [r12 + 0x2ac], ax
jmp 0x6d3ab15a
movzx edx, word [r12 + 0x29e]
mov r8d, r13d
mov rcx, r12
call fcn.6d39b700
mov r8d, r13d
mov rcx, r12
movzx edx, word [r12 + 0x2a0]
mov word [r12 + 0x29e], ax
call fcn.6d39b700
mov r8d, r13d
mov rcx, r12
movzx edx, word [r12 + 0x2a2]
mov word [r12 + 0x2a0], ax
call fcn.6d39b700
mov word [r12 + 0x2a2], ax
jmp 0x6d3ab162
movzx esi, byte [r12 + 0x2f9]
sub r14d, esi
lea r10d, [r14 - 1]
mov ecx, r14d
cmp r10d, 6
jbe 0x6d3ac6e8
movzx edi, byte [r12 + 0x2fa]
mov ecx, 8
sub ecx, edi
lea ebp, [rcx - 1]
cmp ebp, 6
ja 0x6d3ab184
test r8d, r8d
je 0x6d3ab184
mov r9, qword [r12 + 0x270]
jmp 0x6d3ab53e
lea rdx, str.invalid_background_gamma_type
mov rcx, r12
call fcn.6d39a460
nop word [rax + rax]
mov ecx, dword [r12 + 0x298]
call fcn.6d3b2880
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x298]
mov r13d, eax
call fcn.6d3b2910
mov r14d, eax
jmp 0x6d3ac0d0
test r8d, r8d
je 0x6d3ab184
mov r9, qword [r12 + 0x270]
jmp 0x6d3ab3ef
movzx r9d, byte [r12 + 0x2fa]
sub r10d, r9d
lea edx, [r10 - 1]
mov ecx, r10d
cmp edx, 6
jbe 0x6d3ac696
jmp 0x6d3ab184
mov r14, qword [r12 + 0x2c8]
movzx eax, byte [rdx + 3]
movzx r13d, byte [r14 + rax]
mov byte [rdx + 3], r13b
movzx edx, byte [r8 + 1]
movzx r10d, byte [r8 + 2]
movzx r15d, byte [r14 + rdx]
mov byte [r8 + 1], r15b
movzx ebx, byte [r14 + r10]
mov byte [r8 + 2], bl
jmp 0x6d3ac480
mov ebx, dword [rsp + 0x38]
cmp ebx, r10d
jg 0x6d3ac78b
mov edx, dword [r12 + 0x16c]
and edx, 0xffffdf7f
mov dword [r12 + 0x16c], edx
jmp 0x6d3ab173
xor r10d, r10d
movsxd rdi, r10d
mov r11, qword [r12 + 0x2c8]
mov r9d, r10d
lea rbp, [rdi + rdi*2]
not r9d
add rsi, rbp
add r9d, ebx
movzx ecx, byte [rsi]
movzx r14d, byte [rsi + 1]
and r9d, 3
lea rdx, [rsi + 3]
movzx r13d, byte [rsi + 2]
movzx r8d, byte [r11 + rcx]
mov byte [rsi], r8b
movzx eax, byte [r11 + r14]
mov byte [rsi + 1], al
movzx r15d, byte [r11 + r13]
lea r13d, [r10 + 1]
mov byte [rsi + 2], r15b
cmp ebx, r13d
jle 0x6d3ac769
test r9d, r9d
je 0x6d3ac89f
cmp r9d, 1
je 0x6d3ac85f
cmp r9d, 2
je 0x6d3ac828
mov rdi, qword [r12 + 0x2c8]
movzx ebp, byte [rdx]
lea r13d, [r10 + 2]
movzx r11d, byte [rdx + 1]
movzx r8d, byte [rdx + 2]
movzx r9d, byte [rdi + rbp]
mov byte [rdx], r9b
movzx ecx, byte [rdi + r11]
mov byte [rdx + 1], cl
movzx r14d, byte [rdi + r8]
mov byte [rdx + 2], r14b
lea rdx, [rsi + 6]
movzx r10d, byte [rdx]
movzx ebp, byte [rdx + 2]
add r13d, 1
add rdx, 3
mov rsi, qword [r12 + 0x2c8]
movzx r15d, byte [rdx - 2]
movzx eax, byte [rsi + r10]
mov byte [rdx - 3], al
movzx edi, byte [rsi + r15]
mov byte [rdx - 2], dil
movzx r9d, byte [rsi + rbp]
mov byte [rdx - 1], r9b
movzx ecx, byte [rdx]
movzx r14d, byte [rdx + 1]
add r13d, 1
add rdx, 3
mov r11, qword [r12 + 0x2c8]
movzx r10d, byte [rdx - 1]
movzx r8d, byte [r11 + rcx]
mov byte [rdx - 3], r8b
movzx esi, byte [r11 + r14]
mov byte [rdx - 2], sil
movzx eax, byte [r11 + r10]
mov byte [rdx - 1], al
cmp ebx, r13d
jle 0x6d3ac769
movzx edi, byte [rdx]
movzx r9d, byte [rdx + 1]
add r13d, 4
add rdx, 0xc
mov r15, qword [r12 + 0x2c8]
movzx ecx, byte [rdx - 0xa]
movzx esi, byte [rdx - 9]
movzx eax, byte [rdx - 8]
movzx ebp, byte [r15 + rdi]
movzx edi, byte [rdx - 7]
mov byte [rdx - 0xc], bpl
movzx r11d, byte [r15 + r9]
movzx r9d, byte [rdx - 6]
mov byte [rdx - 0xb], r11b
movzx r8d, byte [r15 + rcx]
mov byte [rdx - 0xa], r8b
mov r14, qword [r12 + 0x2c8]
movzx r8d, byte [rdx - 5]
movzx r10d, byte [r14 + rsi]
movzx esi, byte [rdx - 4]
mov byte [rdx - 9], r10b
movzx r15d, byte [r14 + rax]
mov byte [rdx - 8], r15b
movzx ebp, byte [r14 + rdi]
movzx r15d, byte [rdx - 3]
mov byte [rdx - 7], bpl
mov r11, qword [r12 + 0x2c8]
movzx ecx, byte [r11 + r9]
mov byte [rdx - 6], cl
movzx r14d, byte [r11 + r8]
mov byte [rdx - 5], r14b
movzx r10d, byte [r11 + rsi]
mov byte [rdx - 4], r10b
mov rax, qword [r12 + 0x2c8]
movzx edi, byte [rax + r15]
movzx ebp, byte [rdx - 2]
movzx r9d, byte [rdx - 1]
mov byte [rdx - 3], dil
movzx r11d, byte [rax + rbp]
mov byte [rdx - 2], r11b
movzx ecx, byte [rax + r9]
mov byte [rdx - 1], cl
cmp ebx, r13d
jg 0x6d3ac89f
jmp 0x6d3ac769
cmp al, 0xff
je 0x6d3aafc3
movzx r11d, al
mul byte [rcx]
mov edx, r10d
sub edx, r11d
imul edx, r13d
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov edx, r10d
mov byte [rcx], ah
movzx r11d, byte [r9]
sub edx, r11d
mov eax, r11d
mov r11d, r10d
imul edx, r14d
mul byte [rcx + 1]
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov byte [rcx + 1], ah
movzx r9d, byte [r9]
sub r11d, r9d
mov eax, r9d
mov edx, r11d
mul byte [rcx + 2]
imul edx, r15d
lea eax, [rdx + rax + 0x80]
movzx edx, ah
add eax, edx
mov byte [rcx + 2], ah
jmp 0x6d3aafc3
mov r14, qword [r12 + 0x2c8]
movzx r10d, byte [rsi]
movzx r13d, byte [rsi + 1]
movzx edx, byte [rsi + 2]
movzx eax, byte [r14 + r10]
mov byte [rsi], al
movzx r15d, byte [r14 + r13]
mov byte [rsi + 1], r15b
movzx ecx, byte [r14 + rdx]
mov byte [rsi + 2], cl
jmp 0x6d3ac250
movzx ebx, byte [rdx]
movzx r13d, word [rsp + 0x34]
mov r15d, r11d
mov eax, r10d
mov r14, qword [r12 + 0x2e0]
sub r15d, r10d
imul r13d, r15d
movzx r15d, byte [rdx + 1]
mul byte [r14 + rbx]
lea eax, [rax + r13 + 0x80]
mov r13, qword [r12 + 0x2d8]
movzx ebx, ah
add rax, rbx
mov ebx, r11d
movzx eax, ah
movzx r10d, byte [r13 + rax]
mov byte [rdx], r10b
movzx r10d, byte [r8]
sub ebx, r10d
mov eax, r10d
movzx r10d, word [rsp + 0x28]
mul byte [r14 + r15]
imul r10d, ebx
lea eax, [rax + r10 + 0x80]
movzx r10d, byte [rdx + 2]
movzx ebx, ah
add rax, rbx
movzx ebx, word [rsp + 0x36]
movzx eax, ah
movzx r15d, byte [r13 + rax]
mov byte [rdx + 1], r15b
movzx r8d, byte [r8]
mov eax, r8d
mul byte [r14 + r10]
mov r14d, r11d
sub r14d, r8d
imul ebx, r14d
lea eax, [rax + rbx + 0x80]
movzx ebx, ah
add rax, rbx
movzx eax, ah
movzx r13d, byte [r13 + rax]
mov byte [rdx + 2], r13b
jmp 0x6d3ac3a0
movzx r15d, byte [rsp + 0x30]
mov byte [r8 + 1], dil
mov byte [r8 + 2], bpl
mov byte [r8], r15b
jmp 0x6d3ac480
mov edx, dword [rsp + 0x30]
and dl, 0x7f
mov dword [r12 + 0x16c], edx
jmp 0x6d3ab250
movzx eax, byte [r8]
test al, al
je 0x6d3acd30
cmp al, 0xff
je 0x6d3acb99
movzx ecx, al
mul byte [r11]
mov ebx, r10d
sub ebx, ecx
imul ebx, r13d
lea eax, [rbx + rax + 0x80]
movzx ecx, ah
add eax, ecx
movzx ebx, ah
mov byte [r11], bl
movzx ecx, byte [r8]
mov ebx, r10d
sub ebx, ecx
mov eax, ecx
imul ebx, r14d
mul byte [r11 + 1]
lea eax, [rbx + rax + 0x80]
movzx ecx, ah
add eax, ecx
mov ecx, r10d
movzx ebx, ah
mov byte [r11 + 1], bl
movzx r8d, byte [r8]
sub ecx, r8d
mov eax, r8d
mov ebx, ecx
mul byte [r11 + 2]
imul ebx, r15d
lea eax, [rbx + rax + 0x80]
movzx ecx, ah
add eax, ecx
movzx ebx, ah
mov byte [r11 + 2], bl
mov r8, r9
mov dword [rsp + 0x30], edx
mov rbx, qword [rsp + 0x28]
lea rcx, [r11 + 3]
add r9, 1
jmp 0x6d3aafcb
mov r11, qword [r12 + 0x2c8]
movzx r9d, word [r12 + 0x29e]
mov rax, qword [r12 + 0x2e0]
movzx ecx, word [r12 + 0x2a0]
movzx edx, word [r12 + 0x2a2]
movzx r10d, byte [r11 + r9]
movzx r15d, byte [rax + r9]
movzx r14d, byte [rax + rcx]
movzx edi, byte [r11 + rcx]
movzx ebp, byte [r11 + rdx]
mov byte [rsp + 0x30], r10b
movzx eax, byte [rax + rdx]
jmp 0x6d3ac12b
mov r14, qword [r12 + 0x2c8]
movzx r13d, byte [rdx]
movzx r15d, byte [rdx + 1]
movzx r10d, byte [rdx + 2]
movzx eax, byte [r14 + r13]
mov byte [rdx], al
movzx r8d, byte [r14 + r15]
mov byte [rdx + 1], r8b
movzx r14d, byte [r14 + r10]
mov byte [rdx + 2], r14b
jmp 0x6d3ac360
mov r13d, r11d
shl r14d, 4
shl r13d, 4
add r14d, r9d
add r11d, r13d
jmp 0x6d3ab9cc
imul r11d, r11d, 0x55
imul r14d, r9d, 0x55
jmp 0x6d3ab9cc
mov ecx, r11d
shl r14d, 8
shl ecx, 8
sub r14d, r9d
sub ecx, r11d
mov r11d, ecx
jmp 0x6d3ab9cc
mov r13d, dword [r12 + 0x2c4]
mov r14d, 0x186a0
jmp 0x6d3ac0d0
movzx ecx, word [r12 + 0x29e]
mov edx, r13d
call fcn.6d39b640
mov edx, r13d
movzx ecx, word [r12 + 0x2a0]
mov r15d, eax
call fcn.6d39b640
mov edx, r13d
movzx ecx, word [r12 + 0x2a2]
mov r14d, eax
call fcn.6d39b640
jmp 0x6d3ac12b
movzx ecx, word [r12 + 0x29e]
mov edx, r14d
call fcn.6d39b640
mov edx, r14d
movzx ecx, word [r12 + 0x2a0]
mov byte [rsp + 0x30], al
call fcn.6d39b640
mov edx, r14d
movzx ecx, word [r12 + 0x2a2]
mov edi, eax
call fcn.6d39b640
mov ebp, eax
jmp 0x6d3ac100
movzx r8d, byte [rsp + 0x30]
movzx eax, byte [rsp + 0x34]
mov byte [r11 + 2], bl
mov byte [r11], r8b
mov byte [r11 + 1], al
jmp 0x6d3acb99
movzx r15d, byte [rsp + 0x30]
mov byte [rsi + 1], dil
mov byte [rsi + 2], bpl
mov byte [rsi], r15b
jmp 0x6d3ac250
movzx r13d, byte [rsp + 0x30]
mov byte [rdx + 1], dil
mov byte [rdx + 2], bpl
mov byte [rdx], r13b
jmp 0x6d3ac360
movzx eax, byte [r12 + 0x2f9]
sub r14d, eax
lea r15d, [r14 - 1]
cmp r15d, 6
ja 0x6d3ac671
jmp 0x6d3ab184
mov ecx, dword [r12 + 0x298]
call fcn.6d39b860
test eax, eax
jne 0x6d3ab0a8
jmp 0x6d3ac079
xor eax, eax
jmp 0x6d3abc04