Function at 0x69959ca0
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 0x6995a128
test r8d, r8d
jne 0x69959fd8
mov ecx, edx
call fcn.69961810
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 0x69959d32
and edx, 0xfd7ffeff
xor ebx, ebx
and dword [r12 + 0x168], 0xffffdfff
mov dword [r12 + 0x16c], edx
mov word [r12 + 0x280], bx
call fcn.6994a7f0
mov edx, dword [r12 + 0x16c]
test eax, eax
jne 0x69959d5b
movabs rcx, 0xff7fffffffffdfff
and edx, 0xff7fffff
and qword [r12 + 0x168], rcx
test edx, 0x600000
jne 0x6995a900
movzx eax, byte [r12 + 0x287]
test dh, 1
je 0x6995a160
test al, 2
jne 0x69959d89
or dword [r12 + 0x164], 0x800
movzx ecx, word [r12 + 0x280]
cmp al, 3
je 0x6995a610
test al, 4
jne 0x69959dd3
and dword [r12 + 0x168], 0xffffdfff
mov r8d, edx
and r8d, 0xff7fffff
mov dword [r12 + 0x16c], r8d
test cx, cx
jne 0x6995aca0
and edx, 0xff7ffe7f
mov dword [r12 + 0x16c], edx
mov ebp, edx
and ebp, 0x1100
cmp ebp, 0x1100
je 0x6995a918
mov ecx, edx
and ecx, 0x380
cmp ecx, 0x280
je 0x6995a850
test edx, 0x4000400
je 0x69959e1a
mov r13d, edx
and r13d, 0x180
cmp r13d, 0x80
je 0x6995af10
mov r10, qword [r12 + 0x29c]
movzx r11d, word [r12 + 0x2a4]
mov qword [r12 + 0x2a6], r10
mov word [r12 + 0x2ae], r11w
test dh, 0x20
jne 0x6995a038
test edx, 0x600000
jne 0x6995a020
test dl, 0x80
jne 0x6995afd0
test edx, 0x800000
je 0x6995a103
mov ecx, dword [r12 + 0x2c4]
call fcn.6994a7f0
test eax, eax
jne 0x6995a038
mov edx, dword [r12 + 0x16c]
test dl, 0x80
je 0x6995a103
cmp byte [r12 + 0x287], 3
jne 0x6995a114
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 0x6995ba94
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 0x6995baa8
mov dword [rsp + 0x30], edx
mov rbx, qword [rsp + 0x28]
jmp 0x69959f5b
mov byte [rcx], sil
mov byte [rcx + 1], dil
mov byte [rcx + 2], bpl
add rcx, 3
cmp r9, rbx
je 0x6995ba90
movzx eax, byte [r9]
lea r8, [r9 + 1]
test al, al
jne 0x6995b908
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 0x69959f20
cmp al, 0xff
je 0x69959f2b
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 0x69959f2b
lea rcx, [rsp + 0x4c]
mov r9d, 0x186a0
call fcn.6995bf50
test eax, eax
jne 0x6995ace0
or word [r12 + 0x50a], 1
mov edx, dword [r12 + 0x16c]
mov ecx, dword [r12 + 0x2c4]
or dh, 0x20
mov dword [r12 + 0x16c], edx
jmp 0x69959cff
mov ecx, dword [r12 + 0x4c0]
call fcn.6994a7f0
test eax, eax
je 0x6995ad40
nop dword [rax]
movzx edx, byte [r12 + 0x288]
mov rcx, r12
call fcn.6992b080
mov edx, dword [r12 + 0x16c]
test dl, 0x80
je 0x6995a1b8
and edx, 0x600000
jne 0x6995b478
cmp byte [r12 + 0x287], 3
movzx edx, byte [r12 + 0x294]
je 0x6995b028
cmp dl, 2
je 0x6995ad10
cmp dl, 3
je 0x6995acb0
cmp dl, 1
jne 0x6995b633
mov ebp, dword [r12 + 0x2c4]
mov r13d, 0x186a0
mov ecx, ebp
call fcn.6994a7f0
mov ecx, r13d
mov esi, eax
call fcn.6994a7f0
mov ebx, eax
test esi, esi
jne 0x6995b508
test ebx, ebx
jne 0x6995b4e0
movzx edx, word [r12 + 0x29e]
cmp dx, word [r12 + 0x2a0]
je 0x6995b490
test esi, esi
jne 0x6995b530
test ebx, ebx
jne 0x6995b588
mov byte [r12 + 0x294], 1
mov edx, dword [r12 + 0x16c]
mov ebx, edx
and ebx, 0x1008
cmp ebx, 8
je 0x6995af90
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r8d, r8d
jne 0x6995afa8
or word [rcx + 0x50a], 1
mov dword [rcx + 0x4c0], 0x186a0
mov dword [rcx + 0x2c4], 0x186a0
mov ecx, 0x186a0
jmp 0x69959cec
mov esi, edx
and esi, 0x4080
cmp esi, 0x4080
jne 0x69959d89
movzx edi, word [r12 + 0x29e]
cmp di, word [r12 + 0x2a0]
jne 0x69959d89
cmp di, word [r12 + 0x2a2]
jne 0x69959d89
or dword [r12 + 0x164], 0x800
mov word [r12 + 0x2a4], di
jmp 0x69959d89
cmp byte [r12 + 0x287], 3
jne 0x6995a114
test dh, 0x10
je 0x6995ad68
test edx, 0x600000
je 0x6995ad68
nop dword [rax]
mov edi, edx
and edi, 0x1008
cmp edi, 8
jne 0x6995a114
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 0x6995b5e8
test r8d, r8d
je 0x6995bd0c
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 0x6995a2fa
cmp rdx, 1
je 0x6995a2e6
cmp rdx, 2
je 0x6995a2d7
cmp rdx, 3
je 0x6995a2c9
cmp rdx, 4
je 0x6995a2bb
cmp rdx, 5
je 0x6995a2ac
cmp rdx, 6
je 0x6995a29e
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 0x6995a35c
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 0x6995a2fa
movzx r13d, byte [r12 + 0x2f9]
mov r10d, 8
mov ecx, r10d
sub ecx, r13d
lea r14d, [rcx - 1]
cmp r14d, 6
ja 0x6995b690
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 0x6995a4b1
test ebx, ebx
je 0x6995a44d
cmp ebx, 1
je 0x6995a439
cmp ebx, 2
je 0x6995a427
cmp ebx, 3
je 0x6995a415
cmp ebx, 4
je 0x6995a403
cmp ebx, 5
je 0x6995a3f1
cmp ebx, 6
je 0x6995a3e1
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 0x6995a4b1
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 0x6995a44d
movzx r12d, byte [r12 + 0x2fa]
mov ecx, 8
sub ecx, r12d
lea edi, [rcx - 1]
cmp edi, 6
ja 0x6995a114
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 0x6995a114
test edx, edx
je 0x6995a5a3
cmp edx, 1
je 0x6995a588
cmp edx, 2
je 0x6995a576
cmp edx, 3
je 0x6995a564
cmp edx, 4
je 0x6995a552
cmp edx, 5
je 0x6995a541
cmp edx, 6
je 0x6995a52f
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 0x6995a114
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 0x6995a5a3
jmp 0x6995a114
test cx, cx
je 0x6995a9a8
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 0x6995a740
cmp r15, 1
je 0x6995a71a
cmp r15, 2
je 0x6995a6fd
cmp r15, 3
je 0x6995a6e0
cmp r15, 4
je 0x6995a6c4
cmp r15, 5
je 0x6995a6a7
cmp r15, 6
je 0x6995a68b
movzx esi, byte [rax]
cmp sil, 0xff
je 0x6995a687
test sil, sil
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx edi, byte [rax]
cmp dil, 0xff
je 0x6995a6a3
test dil, dil
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx r8d, byte [rax]
cmp r8b, 0xff
je 0x6995a6c0
test r8b, r8b
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx ebp, byte [rax]
cmp bpl, 0xff
je 0x6995a6dc
test bpl, bpl
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx r10d, byte [rax]
cmp r10b, 0xff
je 0x6995a6f9
test r10b, r10b
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx r11d, byte [rax]
cmp r11b, 0xff
je 0x6995a716
test r11b, r11b
jne 0x6995a9c2
mov r9d, 1
add rax, 1
movzx r13d, byte [rax]
cmp r13b, 0xff
je 0x6995a733
test r13b, r13b
jne 0x6995a9c2
mov r9d, 1
add rax, 1
cmp rbx, rax
je 0x6995a81c
movzx r14d, byte [rax]
cmp r14b, 0xff
je 0x6995a759
test r14b, r14b
jne 0x6995a9c2
mov r9d, 1
lea r15, [rax + 1]
movzx eax, byte [rax + 1]
cmp al, 0xff
je 0x6995a773
test al, al
jne 0x6995a9c2
mov r9d, 1
movzx esi, byte [r15 + 1]
cmp sil, 0xff
je 0x6995a78d
test sil, sil
jne 0x6995a9c2
mov r9d, 1
movzx edi, byte [r15 + 2]
cmp dil, 0xff
je 0x6995a7a7
test dil, dil
jne 0x6995a9c2
mov r9d, 1
movzx r8d, byte [r15 + 3]
cmp r8b, 0xff
je 0x6995a7c1
test r8b, r8b
jne 0x6995a9c2
mov r9d, 1
movzx ebp, byte [r15 + 4]
cmp bpl, 0xff
je 0x6995a7db
test bpl, bpl
jne 0x6995a9c2
mov r9d, 1
movzx r10d, byte [r15 + 5]
cmp r10b, 0xff
je 0x6995a7f5
test r10b, r10b
jne 0x6995a9c2
mov r9d, 1
movzx r11d, byte [r15 + 6]
cmp r11b, 0xff
je 0x6995a80f
test r11b, r11b
jne 0x6995a9c2
mov r9d, 1
lea rax, [r15 + 7]
cmp rbx, rax
jne 0x6995a740
and dword [r12 + 0x168], 0xffffdfff
mov ebx, edx
and ebx, 0xff7fffff
mov dword [r12 + 0x16c], ebx
test r9d, r9d
je 0x6995a9b4
mov edx, ebx
jmp 0x6995a9c2
cmp byte [r12 + 0x288], 0x10
je 0x69959dfb
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 0x69959dfb
mov rcx, r12
call fcn.69930430
mov edx, dword [r12 + 0x16c]
jmp 0x69959d67
test al, 2
jne 0x69959de7
movzx r9d, word [r12 + 0x2a4]
movzx r10d, byte [r12 + 0x288]
movzx r11d, word [r12 + 0x318]
mov r14d, r9d
cmp r10b, 2
je 0x6995bbf0
cmp r10b, 4
je 0x6995bbd8
cmp r10b, 1
je 0x6995bc00
mov word [r12 + 0x2a2], r14w
mov word [r12 + 0x2a0], r14w
mov word [r12 + 0x29e], r14w
test edx, 0x2000000
jne 0x69959de7
mov word [r12 + 0x316], r11w
mov word [r12 + 0x314], r11w
mov word [r12 + 0x312], r11w
jmp 0x69959de7
and dword [r12 + 0x168], 0xffffdfff
and edx, 0xff7ffe7f
mov dword [r12 + 0x16c], edx
mov r13d, edx
and r13d, 0x1100
cmp r13d, 0x1100
jne 0x69959de7
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 0x69959de7
test edx, 0x2000000
jne 0x69959de7
test ecx, ecx
je 0x69959de7
lea r10d, [rcx - 1]
mov rbp, qword [r12 + 0x308]
cmp r10d, 0xe
jbe 0x6995bd45
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 0x6995ab13
cmp r11, 1
je 0x6995aafe
cmp r11, 2
je 0x6995aaee
cmp r11, 3
je 0x6995aade
cmp r11, 4
je 0x6995aace
cmp r11, 5
je 0x6995aabe
cmp r11, 6
je 0x6995aaae
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 0x6995ab83
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 0x6995ab13
mov eax, ecx
and eax, 0xfffffff0
test ecx, 0xffff000f
je 0x6995ac90
movsxd rdx, eax
lea r13d, [rax + 1]
not byte [rbp + rdx]
cmp ecx, r13d
jle 0x6995ac90
movsxd r14, r13d
lea r15d, [rax + 2]
not byte [rbp + r14]
cmp ecx, r15d
jle 0x6995ac90
movsxd rsi, r15d
lea edi, [rax + 3]
not byte [rbp + rsi]
cmp ecx, edi
jle 0x6995ac90
movsxd r8, edi
lea r10d, [rax + 4]
not byte [rbp + r8]
cmp ecx, r10d
jle 0x6995ac90
movsxd r11, r10d
lea r9d, [rax + 5]
not byte [rbp + r11]
cmp ecx, r9d
jle 0x6995ac90
movsxd rbx, r9d
lea edx, [rax + 6]
not byte [rbp + rbx]
cmp ecx, edx
jle 0x6995ac90
movsxd r13, edx
lea r14d, [rax + 7]
not byte [rbp + r13]
cmp ecx, r14d
jle 0x6995ac90
movsxd r15, r14d
lea esi, [rax + 8]
not byte [rbp + r15]
cmp ecx, esi
jle 0x6995ac90
movsxd rdi, esi
lea r8d, [rax + 9]
not byte [rbp + rdi]
cmp ecx, r8d
jle 0x6995ac90
movsxd r10, r8d
lea r11d, [rax + 0xa]
not byte [rbp + r10]
cmp ecx, r11d
jle 0x6995ac90
movsxd r9, r11d
lea ebx, [rax + 0xb]
not byte [rbp + r9]
cmp ecx, ebx
jle 0x6995ac90
movsxd rdx, ebx
lea r13d, [rax + 0xc]
not byte [rbp + rdx]
cmp ecx, r13d
jle 0x6995ac90
movsxd r14, r13d
lea r15d, [rax + 0xd]
not byte [rbp + r14]
cmp ecx, r15d
jle 0x6995ac90
movsxd rsi, r15d
add eax, 0xe
not byte [rbp + rsi]
cmp ecx, eax
jle 0x6995ac90
cdqe
not byte [rbp + rax]
mov edx, dword [r12 + 0x16c]
jmp 0x69959de7
mov edx, r8d
jmp 0x69959dd3
mov ecx, dword [r12 + 0x298]
call fcn.69961810
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x298]
mov ebp, eax
call fcn.699618a0
mov r13d, eax
jmp 0x6995a0a7
mov ecx, dword [rsp + 0x4c]
call fcn.6994a7f0
or word [r12 + 0x50a], 1
test eax, eax
jne 0x69959ffa
mov ecx, dword [r12 + 0x2c4]
jmp 0x69959cec
mov ecx, dword [r12 + 0x4c0]
call fcn.69961810
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x4c0]
mov ebp, eax
call fcn.699618a0
mov r13d, eax
jmp 0x6995a0a7
mov ecx, dword [r12 + 0x2c4]
call fcn.6994a7f0
test eax, eax
jne 0x6995a038
mov edx, dword [r12 + 0x16c]
jmp 0x69959e51
movzx esi, word [r12 + 0x278]
mov rax, qword [r12 + 0x270]
test si, si
je 0x6995aeff
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 0x6995ae52
cmp r13, 1
je 0x6995ae1e
cmp r13, 2
je 0x6995adf3
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 0x6995aeff
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 0x6995ae52
and dh, 0xdf
mov dword [r12 + 0x16c], edx
jmp 0x6995a1e0
cmp byte [r12 + 0x288], 0x10
jne 0x69959e1a
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 0x69959e1a
cmp byte [r12 + 0x287], 3
jne 0x6995a114
jmp 0x6995a1f1
mov ecx, r8d
call fcn.69961810
mov ecx, dword [r12 + 0x2c4]
or word [r12 + 0x50a], 1
mov dword [r12 + 0x4c0], eax
jmp 0x69959cec
mov ecx, dword [r12 + 0x4c0]
call fcn.6994a7f0
test eax, eax
jne 0x6995a038
mov ecx, dword [r12 + 0x2c4]
call fcn.6994a7f0
test eax, eax
jne 0x6995a038
cmp byte [r12 + 0x294], 3
je 0x6995bd2b
mov edx, dword [r12 + 0x16c]
test edx, 0x800000
je 0x69959e83
jmp 0x69959e66
mov rsi, qword [r12 + 0x270]
movzx ebx, word [r12 + 0x278]
cmp dl, 2
je 0x6995bb48
cmp dl, 1
je 0x6995bc20
cmp dl, 3
je 0x6995b648
mov r14d, 0x186a0
mov r13d, 0x186a0
mov ecx, r14d
call fcn.6994a7f0
test eax, eax
jne 0x6995bc80
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.6994a7f0
test eax, eax
jne 0x6995bc38
movzx r15d, byte [r12 + 0x29e]
movzx r14d, byte [r12 + 0x2a0]
movzx eax, byte [r12 + 0x2a2]
test ebx, ebx
je 0x6995b6f9
movzx r9d, word [r12 + 0x280]
test r9d, r9d
jle 0x6995b718
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 0x6995b980
test cl, cl
je 0x6995bce0
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 0x6995b6f4
test r8d, r8d
je 0x6995b305
mov r8, qword [r12 + 0x308]
movzx r10d, byte [r8 + 1]
lea r8, [r8 + 1]
cmp r10b, 0xff
je 0x6995bba0
test r10b, r10b
je 0x6995bcf6
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 0x6995b6f4
mov dword [rsp + 0x38], ebx
jmp 0x6995b425
test r10b, r10b
jne 0x6995b9b8
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 0x6995b6b8
test bl, bl
je 0x6995ba78
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 0x6995b6f0
mov r8, qword [r12 + 0x308]
add r8, rcx
movzx r10d, byte [r8]
cmp r10b, 0xff
jne 0x6995b310
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 0x6995b330
lea rdx, str.libpng_does_not_support_gammabackgroundrgb_to_gray
mov rcx, r12
call fcn.69967ee0
jmp 0x6995a066
cmp dx, word [r12 + 0x2a2]
jne 0x6995a0e2
cmp dx, word [r12 + 0x2a4]
jne 0x6995a0e2
movzx eax, word [r12 + 0x2ae]
mov word [r12 + 0x2ac], ax
mov word [r12 + 0x2aa], ax
mov word [r12 + 0x2a8], ax
jmp 0x6995a0f2
movzx edx, word [r12 + 0x2a4]
mov r8d, r13d
mov rcx, r12
call fcn.6994a690
mov word [r12 + 0x2a4], ax
jmp 0x6995a0ca
movzx edx, word [r12 + 0x2a4]
mov r8d, ebp
mov rcx, r12
call fcn.6994a690
mov word [r12 + 0x2ae], ax
jmp 0x6995a0c2
mov r8d, ebp
mov rcx, r12
call fcn.6994a690
mov r8d, ebp
mov rcx, r12
movzx edx, word [r12 + 0x2a0]
mov word [r12 + 0x2a8], ax
call fcn.6994a690
mov r8d, ebp
mov rcx, r12
movzx edx, word [r12 + 0x2a2]
mov word [r12 + 0x2aa], ax
call fcn.6994a690
mov word [r12 + 0x2ac], ax
jmp 0x6995a0ea
movzx edx, word [r12 + 0x29e]
mov r8d, r13d
mov rcx, r12
call fcn.6994a690
mov r8d, r13d
mov rcx, r12
movzx edx, word [r12 + 0x2a0]
mov word [r12 + 0x29e], ax
call fcn.6994a690
mov r8d, r13d
mov rcx, r12
movzx edx, word [r12 + 0x2a2]
mov word [r12 + 0x2a0], ax
call fcn.6994a690
mov word [r12 + 0x2a2], ax
jmp 0x6995a0f2
movzx esi, byte [r12 + 0x2f9]
sub r14d, esi
lea r10d, [r14 - 1]
mov ecx, r14d
cmp r10d, 6
jbe 0x6995b678
movzx edi, byte [r12 + 0x2fa]
mov ecx, 8
sub ecx, edi
lea ebp, [rcx - 1]
cmp ebp, 6
ja 0x6995a114
test r8d, r8d
je 0x6995a114
mov r9, qword [r12 + 0x270]
jmp 0x6995a4ce
lea rdx, str.invalid_background_gamma_type
mov rcx, r12
call fcn.699493f0
nop word [rax + rax]
mov ecx, dword [r12 + 0x298]
call fcn.69961810
mov edx, dword [r12 + 0x2c4]
mov ecx, dword [r12 + 0x298]
mov r13d, eax
call fcn.699618a0
mov r14d, eax
jmp 0x6995b060
test r8d, r8d
je 0x6995a114
mov r9, qword [r12 + 0x270]
jmp 0x6995a37f
movzx r9d, byte [r12 + 0x2fa]
sub r10d, r9d
lea edx, [r10 - 1]
mov ecx, r10d
cmp edx, 6
jbe 0x6995b626
jmp 0x6995a114
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 0x6995b410
mov ebx, dword [rsp + 0x38]
cmp ebx, r10d
jg 0x6995b71b
mov edx, dword [r12 + 0x16c]
and edx, 0xffffdf7f
mov dword [r12 + 0x16c], edx
jmp 0x6995a103
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 0x6995b6f9
test r9d, r9d
je 0x6995b82f
cmp r9d, 1
je 0x6995b7ef
cmp r9d, 2
je 0x6995b7b8
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 0x6995b6f9
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 0x6995b82f
jmp 0x6995b6f9
cmp al, 0xff
je 0x69959f53
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 0x69959f53
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 0x6995b1e0
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 0x6995b330
movzx r15d, byte [rsp + 0x30]
mov byte [r8 + 1], dil
mov byte [r8 + 2], bpl
mov byte [r8], r15b
jmp 0x6995b410
mov edx, dword [rsp + 0x30]
and dl, 0x7f
mov dword [r12 + 0x16c], edx
jmp 0x6995a1e0
movzx eax, byte [r8]
test al, al
je 0x6995bcc0
cmp al, 0xff
je 0x6995bb29
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 0x69959f5b
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 0x6995b0bb
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 0x6995b2f0
mov r13d, r11d
shl r14d, 4
shl r13d, 4
add r14d, r9d
add r11d, r13d
jmp 0x6995a95c
imul r11d, r11d, 0x55
imul r14d, r9d, 0x55
jmp 0x6995a95c
mov ecx, r11d
shl r14d, 8
shl ecx, 8
sub r14d, r9d
sub ecx, r11d
mov r11d, ecx
jmp 0x6995a95c
mov r13d, dword [r12 + 0x2c4]
mov r14d, 0x186a0
jmp 0x6995b060
movzx ecx, word [r12 + 0x29e]
mov edx, r13d
call fcn.6994a5d0
mov edx, r13d
movzx ecx, word [r12 + 0x2a0]
mov r15d, eax
call fcn.6994a5d0
mov edx, r13d
movzx ecx, word [r12 + 0x2a2]
mov r14d, eax
call fcn.6994a5d0
jmp 0x6995b0bb
movzx ecx, word [r12 + 0x29e]
mov edx, r14d
call fcn.6994a5d0
mov edx, r14d
movzx ecx, word [r12 + 0x2a0]
mov byte [rsp + 0x30], al
call fcn.6994a5d0
mov edx, r14d
movzx ecx, word [r12 + 0x2a2]
mov edi, eax
call fcn.6994a5d0
mov ebp, eax
jmp 0x6995b090
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 0x6995bb29
movzx r15d, byte [rsp + 0x30]
mov byte [rsi + 1], dil
mov byte [rsi + 2], bpl
mov byte [rsi], r15b
jmp 0x6995b1e0
movzx r13d, byte [rsp + 0x30]
mov byte [rdx + 1], dil
mov byte [rdx + 2], bpl
mov byte [rdx], r13b
jmp 0x6995b2f0
movzx eax, byte [r12 + 0x2f9]
sub r14d, eax
lea r15d, [r14 - 1]
cmp r15d, 6
ja 0x6995b601
jmp 0x6995a114
mov ecx, dword [r12 + 0x298]
call fcn.6994a7f0
test eax, eax
jne 0x6995a038
jmp 0x6995b009
xor eax, eax
jmp 0x6995ab94