Function at 0x140067c22
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
mov rax, qword [rsp + 0x1f8]
mov edi, dword [rsp + 0x218]
mov rbx, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x200]
mov r12, qword [rsp + 0x208]
mov dword [rsp + 0xd8], edi
mov rdi, qword [rax]
mov r15, rdx
mov r13, r8
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x68], rdi
mov rdi, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1e8], r9
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb8], rax
cmp qword [rsp + 0x210], r12
jle 0x140067caf
lea rcx, [0x1400fdde0]
call fcn.140001879
mov dword [rsp + 0x13c], 0
or r8, 0xffffffffffffffff
test rbx, rbx
je 0x140067cca
mov rax, qword [rbx]
lea r8, [rax - 1]
lea rcx, [rsp + 0x120]
xor edx, edx
call fcn.140066225
mov dword [rsp + 0x74], 0xffffffff
mov rax, qword [rsp + 0x128]
cmp r12, qword [rsp + 0x120]
jl 0x140067d07
cmp r12, rax
jg 0x140067d07
mov rdx, r12
mov rcx, rbx
call fcn.14000bd1b
mov dword [rsp + 0x74], eax
mov rax, qword [rsp + 0x1d0]
lea rcx, [rsp + 0x158]
mov rdx, r12
lea r8, [r12 - 1]
mov word [rsp + 0x150], 0
mov rax, qword [rax]
mov word [rax + 0x10], 0
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax]
mov dword [rsp + 0x154], eax
call fcn.140066225
movaps xmm1, xmmword [rsp + 0x150]
mov rax, qword [rsp + 0x160]
lea rdx, [rsp + 0x100]
mov rcx, qword [rsp + 0x1d0]
mov qword [rsp + 0x110], rax
movaps xmmword [rsp + 0x100], xmm1
call fcn.140066378
cmp r12, qword [rsp + 0x210]
jle 0x1400687cb
test r12, r12
jg 0x1400691f4
lea rcx, [0x1400fdda0]
call fcn.140001879
test rbx, rbx
je 0x140067db6
cmp r12, qword [rbx]
jle 0x140067db6
lea rcx, [0x1400fdd60]
call fcn.140001879
lea rdi, [r12 - 1]
mov al, byte [rbx + rdi + 0x10]
test rdi, rdi
jle 0x140067dce
mov edx, eax
shr dl, 6
cmp dl, 2
je 0x140067ddb
movsx ebp, al
test al, al
jns 0x140067f6c
jmp 0x140067de0
dec rdi
jmp 0x140067dbb
mov edx, eax
shr dl, 5
cmp dl, 6
je 0x140067df6
mov edx, eax
shr dl, 4
cmp dl, 0xe
jne 0x140067e20
jmp 0x140067e2c
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 2]
cmp rdi, rdx
jg 0x140067f6c
mov bpl, byte [rbx + rdi + 0x11]
shl eax, 6
and eax, 0x7c0
and ebp, 0x3f
jmp 0x140067f6a
mov edx, eax
shr dl, 3
cmp dl, 0x1e
jne 0x140067e68
jmp 0x140067e74
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 3]
cmp rdi, rdx
jg 0x140067f6c
mov bpl, byte [rbx + rdi + 0x12]
movzx edx, byte [rbx + rdi + 0x11]
shl eax, 0xc
and eax, 0xf000
and ebp, 0x3f
shl edx, 6
or ebp, eax
and edx, 0xfc0
or ebp, edx
jmp 0x140067f6c
mov edx, eax
shr dl, 2
cmp dl, 0x3e
jne 0x140067eb4
jmp 0x140067ec6
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 4]
cmp rdi, rdx
jg 0x140067f6c
mov bpl, byte [rbx + rdi + 0x13]
shl eax, 0x12
and eax, 0x1c0000
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
jmp 0x140067f62
mov edx, eax
movzx ebp, al
shr dl, 1
cmp dl, 0x7e
jne 0x140067f6c
jmp 0x140067f12
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 5]
cmp rdi, rdx
jg 0x140067f6c
mov bpl, byte [rbx + rdi + 0x14]
shl eax, 0x18
and eax, 0x3000000
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0x12
and eax, 0xfc0000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x13]
jmp 0x140067f62
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 6]
cmp rdi, rdx
jg 0x140067f6c
mov bpl, byte [rbx + rdi + 0x15]
shl eax, 0x1e
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0x18
and eax, 0x3f000000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
shl eax, 0x12
and eax, 0xfc0000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x13]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x14]
shl eax, 6
and eax, 0xfc0
or ebp, eax
mov rax, qword [r15]
lea rcx, [rsp + 0x140]
mov edx, 0x10
mov word [rax + 0x10], 0
call fcn.140066216
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x80], 0
mov rax, qword [rax]
movsx rax, word [rax + 0x10]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rax]
cmp qword [rsp + 0x80], rcx
jge 0x140068755
imul rax, qword [rsp + 0x80], 0x18
add rax, qword [rdx]
movsx r8d, word [rax + 0x10]
mov ecx, dword [rax + 0x14]
mov r10, qword [rax + 0x18]
mov r11, qword [rax + 0x20]
movsx rdx, r8w
mov dword [rsp + 0x8c], ecx
mov r9d, r8d
mov rax, rdx
mov qword [rsp + 0x140], r10
shl rax, 7
add rax, qword [rsp + 0x68]
mov qword [rsp + 0x148], r11
cmp byte [rax + 0x10], 0x2d
je 0x140068036
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x90], rax
test rax, rax
jne 0x1400680a5
inc qword [rsp + 0x80]
jmp 0x140067fab
mov rcx, qword [r15]
mov edx, r8d
call fcn.140066170
test al, al
jne 0x140068755
mov eax, dword [rsp + 0x8c]
mov qword [rsp + 0x170], r10
mov rcx, r15
lea rdx, [rsp + 0x100]
mov word [rsp + 0x168], r9w
mov dword [rsp + 0x16c], eax
movups xmm2, xmmword [rsp + 0x168]
mov qword [rsp + 0x178], r11
mov rax, qword [rsp + 0x178]
movaps xmmword [rsp + 0x100], xmm2
mov qword [rsp + 0x110], rax
call fcn.140066378
jmp 0x140068755
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x78], 0
mov rax, qword [rax]
mov qword [rsp + 0xc8], rax
lea rax, [rdx + 2]
mov qword [rsp + 0xd0], rax
mov rcx, qword [r15]
mov rdx, qword [rsp + 0xc8]
cmp qword [rsp + 0x78], rdx
jge 0x140068029
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x90]
movsx r14d, word [rax + rdx*2 + 0x10]
mov word [rsp + 0x8a], r14w
mov edx, r14d
call fcn.140066170
test al, al
jne 0x14006874b
movsx rax, word [rsp + 0x8a]
mov rcx, qword [rsp + 0x68]
mov edx, ebp
shl rax, 7
lea rcx, [rcx + rax + 0x10]
call fcn.1400664f1
test al, al
jne 0x140068149
mov rax, qword [rsp + 0x68]
movsxd r14, r14d
shl r14, 7
cmp byte [rax + r14 + 0x10], 0x2d
jne 0x14006874b
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x78]
movsx rax, word [rax + rcx*2 + 0x10]
cmp ax, 0xffff
je 0x14006819c
mov ecx, dword [rsp + 0x8c]
mov dword [rsp + 0x13c], ecx
mov rcx, qword [rsp + 0xb8]
mov r14, qword [rcx + rax*8 + 0x10]
test r14, r14
jne 0x1400681e7
mov qword [rsp + 0xa8], 0
jmp 0x1400681f2
mov ax, word [rsp + 0x8a]
mov r8, qword [rsp + 0x148]
lea rcx, [rsp + 0x170]
mov rdx, r12
mov word [rsp + 0x168], ax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x16c], eax
call fcn.140066225
movups xmm3, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x100], xmm3
jmp 0x14006872b
mov rax, qword [r14]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xa0], 0
add r14, 0x10
mov r8b, 1
mov rdx, qword [rsp + 0xa8]
cmp qword [rsp + 0xa0], rdx
jge 0x1400686e0
test r8b, r8b
je 0x14006874b
mov cl, byte [r14]
cmp cl, 0x1d
ja 0x1400682e9
cmp cl, 0x1b
ja 0x1400682f6
cmp cl, 4
ja 0x1400682dd
cmp cl, 2
jbe 0x1400686b3
lea rcx, [rsp + 0x168]
mov edx, 0x18
mov byte [rsp + 0x98], r8b
call fcn.140066216
mov eax, dword [rsp + 0x13c]
mov rdx, qword [0x14010eef0]
mov qword [rsp + 0x170], r12
mov rcx, qword [r13]
mov dword [rsp + 0x168], eax
mov eax, dword [r14 + 0x14]
mov word [rsp + 0x178], ax
call fcn.14000627f
mov rcx, r13
mov rdx, rax
call fcn.1400059ea
mov rax, qword [r13]
movups xmm4, xmmword [rsp + 0x168]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
imul rcx, rcx, 0x18
mov qword [rax], rdx
dec edx
mov dword [rsp + 0x13c], edx
add rax, rcx
mov rcx, qword [rsp + 0x178]
movups xmmword [rax + 0x10], xmm4
mov qword [rax + 0x20], rcx
jmp 0x1400686c7
lea eax, [rcx - 0xa]
cmp al, 7
jbe 0x1400682f6
jmp 0x1400686b3
sub ecx, 0x28
cmp cl, 3
jbe 0x14006830a
jmp 0x1400686b3
mov r8d, dword [rsp + 0x74]
mov edx, ebp
call fcn.1400667ae
mov r8d, eax
jmp 0x1400686cf
cmp byte [r14 + 0x78], 1
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x50
mov byte [rsp + 0xdf], al
lea rax, [rsi + 0x20]
mov rcx, rax
mov qword [rsp + 0x98], rax
call fcn.14006626b
mov rcx, qword [r14 + 0x58]
xor edx, edx
mov al, byte [rsp + 0xdf]
test rcx, rcx
je 0x140068347
mov rdx, qword [rcx]
mov rcx, qword [rsi + 0x28]
mov byte [rsp + 0xdf], al
shl rcx, 4
add rcx, qword [rsi + 0x20]
call fcn.140066430
mov dl, byte [r14]
movzx eax, byte [rsp + 0xdf]
cmp dl, 0x2a
je 0x140068446
ja 0x140068388
cmp dl, 0x28
je 0x140068396
cmp dl, 0x29
je 0x1400684fa
jmp 0x140068685
cmp dl, 0x2b
je 0x1400685c1
jmp 0x140068685
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
mov r8, qword [rsi + 8]
movups xmm0, xmmword [r14 + 0x58]
shl r9, 4
mov r10, qword [rsi]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068404
mov r9, qword [r14 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x14006843e
mov r8, qword [r14 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
mov r8d, eax
jmp 0x140068694
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
mov r8, qword [rsi + 8]
movups xmm0, xmmword [r14 + 0x58]
shl r9, 4
mov r10, qword [rsi]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x1400684b4
mov r9, qword [r14 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x1400684ee
mov r8, qword [r14 + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
mov r8d, eax
xor r8d, 1
jmp 0x140068694
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
mov r8, qword [rsi + 0x18]
movups xmm0, xmmword [r14 + 0x58]
shl r9, 4
mov r10, qword [rsi + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068572
mov r9, qword [r14 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x50], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x1400685b5
mov r8, qword [r14 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
inc rax
setne r8b
jmp 0x140068694
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
mov r8, qword [rsi + 0x18]
movups xmm0, xmmword [r14 + 0x58]
shl r9, 4
mov r10, qword [rsi + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068639
mov r9, qword [r14 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x50], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x14006867c
mov r8, qword [r14 + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
inc rax
sete r8b
jmp 0x140068694
lea rcx, [0x1400fdea0]
call fcn.140001879
xor r8d, r8d
mov rcx, qword [rsp + 0x98]
mov byte [rsp + 0xdf], r8b
call fcn.1400661f1
mov r8b, byte [rsp + 0xdf]
jmp 0x1400686cf
lea rcx, [0x1400fde20]
mov byte [rsp + 0x98], r8b
call fcn.140001879
mov r8b, byte [rsp + 0x98]
inc qword [rsp + 0xa0]
sub r14, 0xffffffffffffff80
jmp 0x140068205
test r8b, r8b
je 0x14006874b
mov ax, word [rsp + 0x8a]
mov r8, qword [rsp + 0x148]
lea rcx, [rsp + 0x170]
mov rdx, r12
mov word [rsp + 0x168], ax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x16c], eax
call fcn.140066225
movups xmm5, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x100], xmm5
mov rax, qword [rsp + 0x178]
lea rdx, [rsp + 0x100]
mov rcx, r15
mov qword [rsp + 0x110], rax
call fcn.140066378
inc qword [rsp + 0x78]
jmp 0x1400680cd
mov rax, qword [rsp + 0x1d0]
mov rdx, qword [r15]
mov r14, qword [rax]
mov rcx, rax
call fcn.1400059ea
mov rcx, r15
mov rdx, r14
call fcn.1400059ea
mov rax, qword [rsp + 0x1d0]
mov rdx, qword [rax]
cmp word [rdx + 0x10], 0
je 0x1400691ee
lea rcx, [rsp + 0x168]
call fcn.1400663f5
mov rcx, qword [rsp + 0x68]
movsx rax, word [rsp + 0x168]
shl rax, 7
cmp byte [rcx + rax + 0x10], 0x2d
je 0x1400687be
mov dword [rsp + 0x74], ebp
mov r12, rdi
jmp 0x140067d7d
test rdi, rdi
jg 0x1400687d8
or ebp, 0xffffffff
jmp 0x140068996
test r12, r12
jle 0x1400687c3
mov rdi, r12
test rbx, rbx
je 0x1400687dd
cmp rdi, qword [rbx]
jle 0x1400687e9
lea rcx, [0x1400fdd60]
call fcn.140001879
dec rdi
mov al, byte [rbx + rdi + 0x10]
test rdi, rdi
je 0x1400687ff
mov edx, eax
shr dl, 6
cmp dl, 2
je 0x1400687e9
movsx ebp, al
test al, al
jns 0x140068996
mov edx, eax
shr dl, 5
cmp dl, 6
je 0x140068820
mov edx, eax
shr dl, 4
cmp dl, 0xe
jne 0x14006884a
jmp 0x140068856
mov rdx, qword [rbx]
mov ebp, 0xfffd
sub rdx, 2
cmp rdi, rdx
jg 0x140068996
mov bpl, byte [rbx + rdi + 0x11]
shl eax, 6
and eax, 0x7c0
and ebp, 0x3f
jmp 0x140068994
mov edx, eax
shr dl, 3
cmp dl, 0x1e
jne 0x140068892
jmp 0x14006889e
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 3]
cmp rdi, rdx
jg 0x140068996
mov bpl, byte [rbx + rdi + 0x12]
movzx edx, byte [rbx + rdi + 0x11]
shl eax, 0xc
and eax, 0xf000
and ebp, 0x3f
shl edx, 6
or ebp, eax
and edx, 0xfc0
or ebp, edx
jmp 0x140068996
mov edx, eax
shr dl, 2
cmp dl, 0x3e
jne 0x1400688de
jmp 0x1400688f0
mov rdx, qword [rbx]
mov ebp, 0xfffd
sub rdx, 4
cmp rdi, rdx
jg 0x140068996
mov bpl, byte [rbx + rdi + 0x13]
shl eax, 0x12
and eax, 0x1c0000
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
jmp 0x14006898c
mov edx, eax
movzx ebp, al
shr dl, 1
cmp dl, 0x7e
jne 0x140068996
jmp 0x14006893c
mov rcx, qword [rbx]
mov ebp, 0xfffd
lea rdx, [rcx - 5]
cmp rdi, rdx
jg 0x140068996
mov bpl, byte [rbx + rdi + 0x14]
shl eax, 0x18
and eax, 0x3000000
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0x12
and eax, 0xfc0000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x13]
jmp 0x14006898c
mov rdx, qword [rbx]
mov ebp, 0xfffd
sub rdx, 6
cmp rdi, rdx
jg 0x140068996
mov bpl, byte [rbx + rdi + 0x15]
shl eax, 0x1e
and ebp, 0x3f
or ebp, eax
movzx eax, byte [rbx + rdi + 0x11]
shl eax, 0x18
and eax, 0x3f000000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x12]
shl eax, 0x12
and eax, 0xfc0000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x13]
shl eax, 0xc
and eax, 0x3f000
or ebp, eax
movzx eax, byte [rbx + rdi + 0x14]
shl eax, 6
and eax, 0xfc0
or ebp, eax
mov rax, qword [r15]
lea rcx, [rsp + 0x140]
mov edx, 0x10
mov word [rax + 0x10], 0
call fcn.140066216
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x80], 0
mov rax, qword [rax]
movsx rax, word [rax + 0x10]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x1d0]
mov rdi, qword [rsp + 0xc8]
mov rdx, qword [rax]
cmp qword [rsp + 0x80], rdi
jge 0x140069141
imul rax, qword [rsp + 0x80], 0x18
add rax, qword [rdx]
movsx r8d, word [rax + 0x10]
mov edi, dword [rax + 0x14]
mov r10, qword [rax + 0x18]
mov r11, qword [rax + 0x20]
movsx rdx, r8w
mov dword [rsp + 0x8c], edi
mov r9d, r8d
mov rax, rdx
mov qword [rsp + 0x140], r10
shl rax, 7
add rax, qword [rsp + 0x68]
mov qword [rsp + 0x148], r11
cmp byte [rax + 0x10], 0x2d
je 0x140068a60
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x90], rax
test rax, rax
jne 0x140068acf
inc qword [rsp + 0x80]
jmp 0x1400689d5
mov rcx, qword [r15]
mov edx, r8d
call fcn.140066170
test al, al
jne 0x140069141
mov eax, dword [rsp + 0x8c]
mov qword [rsp + 0x170], r10
mov rcx, r15
lea rdx, [rsp + 0x100]
mov word [rsp + 0x168], r9w
mov dword [rsp + 0x16c], eax
movups xmm1, xmmword [rsp + 0x168]
mov qword [rsp + 0x178], r11
mov rax, qword [rsp + 0x178]
movaps xmmword [rsp + 0x100], xmm1
mov qword [rsp + 0x110], rax
call fcn.140066378
jmp 0x140069141
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x78], 0
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
lea rax, [rdx + 2]
mov qword [rsp + 0xd0], rax
mov rcx, qword [r15]
mov rdi, qword [rsp + 0xc0]
cmp qword [rsp + 0x78], rdi
jge 0x140068a53
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x78]
movsx edi, word [rax + rdi*2 + 0x10]
mov edx, edi
mov word [rsp + 0x8a], di
call fcn.140066170
test al, al
jne 0x140069137
movsx rax, word [rsp + 0x8a]
mov rcx, qword [rsp + 0x68]
mov edx, ebp
shl rax, 7
lea rcx, [rcx + rax + 0x10]
call fcn.1400664f1
test al, al
jne 0x140068b6f
mov rax, qword [rsp + 0x68]
movsxd rdi, edi
shl rdi, 7
cmp byte [rax + rdi + 0x10], 0x2d
jne 0x140069137
mov rdi, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + rdi*8]
mov rdi, qword [rsp + 0x78]
movsx rax, word [rax + rdi*2 + 0x10]
cmp ax, 0xffff
je 0x140068bc2
mov edi, dword [rsp + 0x8c]
mov dword [rsp + 0x13c], edi
mov rdi, qword [rsp + 0xb8]
mov rdi, qword [rdi + rax*8 + 0x10]
test rdi, rdi
jne 0x140068c0d
mov qword [rsp + 0xa8], 0
jmp 0x140068c18
mov ax, word [rsp + 0x8a]
mov r8, qword [rsp + 0x148]
lea rcx, [rsp + 0x170]
mov rdx, r12
mov word [rsp + 0x168], ax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x16c], eax
call fcn.140066225
movups xmm2, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x100], xmm2
jmp 0x140069117
mov rax, qword [rdi]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xa0], 0
add rdi, 0x10
mov r14b, 1
mov rdx, qword [rsp + 0xa8]
cmp qword [rsp + 0xa0], rdx
jge 0x1400690cc
test r14b, r14b
je 0x140069137
mov cl, byte [rdi]
cmp cl, 0x1d
ja 0x140068d05
cmp cl, 0x1b
ja 0x140068d12
cmp cl, 4
ja 0x140068cf9
cmp cl, 2
jbe 0x1400690af
lea rcx, [rsp + 0x168]
mov edx, 0x18
call fcn.140066216
mov eax, dword [rsp + 0x13c]
mov rdx, qword [0x14010eef0]
mov qword [rsp + 0x170], r12
mov rcx, qword [r13]
mov dword [rsp + 0x168], eax
mov eax, dword [rdi + 0x14]
mov word [rsp + 0x178], ax
call fcn.14000627f
mov rcx, r13
mov rdx, rax
call fcn.1400059ea
mov rax, qword [r13]
movups xmm3, xmmword [rsp + 0x168]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
imul rcx, rcx, 0x18
mov qword [rax], rdx
dec edx
mov dword [rsp + 0x13c], edx
add rax, rcx
mov rcx, qword [rsp + 0x178]
movups xmmword [rax + 0x10], xmm3
mov qword [rax + 0x20], rcx
jmp 0x1400690bb
lea eax, [rcx - 0xa]
cmp al, 7
jbe 0x140068d12
jmp 0x1400690af
sub ecx, 0x28
cmp cl, 3
jbe 0x140068d26
jmp 0x1400690af
mov r8d, dword [rsp + 0x74]
mov edx, ebp
call fcn.1400667ae
mov r14d, eax
jmp 0x1400690bb
lea rax, [rsi + 0x20]
cmp byte [rdi + 0x78], 1
mov rcx, rax
sbb r14d, r14d
mov qword [rsp + 0x98], rax
call fcn.14006626b
mov rcx, qword [rdi + 0x58]
and r14d, 0xffffffc0
xor edx, edx
add r14d, 0x50
test rcx, rcx
je 0x140068d57
mov rdx, qword [rcx]
mov rcx, qword [rsi + 0x28]
shl rcx, 4
add rcx, qword [rsi + 0x20]
call fcn.140066430
mov dl, byte [rdi]
cmp dl, 0x2a
je 0x140068e49
ja 0x140068d88
cmp dl, 0x28
je 0x140068d96
cmp dl, 0x29
je 0x140068f00
jmp 0x140069091
cmp dl, 0x2b
je 0x140068fca
jmp 0x140069091
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
movzx eax, r14b
mov r8, qword [rsi + 8]
movups xmm0, xmmword [rdi + 0x58]
shl r9, 4
mov r10, qword [rsi]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068e07
mov r9, qword [rdi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x140068e41
mov r8, qword [rdi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
mov r14d, eax
jmp 0x1400690a0
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
movzx eax, r14b
mov r8, qword [rsi + 8]
movups xmm0, xmmword [rdi + 0x58]
shl r9, 4
mov r10, qword [rsi]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068eba
mov r9, qword [rdi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x140068ef4
mov r8, qword [rdi + 0x68]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
mov r14d, eax
xor r14d, 1
jmp 0x1400690a0
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
movzx eax, r14b
mov r8, qword [rsi + 0x18]
movups xmm0, xmmword [rdi + 0x58]
shl r9, 4
mov r10, qword [rsi + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140068f7b
mov r9, qword [rdi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x50], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x140068fbe
mov r8, qword [rdi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
inc rax
setne r14b
jmp 0x1400690a0
mov r9, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
movzx eax, r14b
mov r8, qword [rsi + 0x18]
movups xmm0, xmmword [rdi + 0x58]
shl r9, 4
mov r10, qword [rsi + 0x10]
lea rdx, [rcx + r9 + 8]
add rcx, r9
test r8, r8
movaps xmmword [rsp + 0xe0], xmm0
je 0x140069045
mov r9, qword [rdi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x50], r8
mov r8, r13
mov qword [rsp + 0xf0], r9
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
jmp 0x140069088
mov r8, qword [rdi + 0x68]
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xe0]
lea r9, [rsp + 0x13c]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0xf0], r8
mov r8, r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call r10
inc rax
sete r14b
jmp 0x1400690a0
lea rcx, [0x1400fdea0]
xor r14d, r14d
call fcn.140001879
mov rcx, qword [rsp + 0x98]
call fcn.1400661f1
jmp 0x1400690bb
lea rcx, [0x1400fde20]
call fcn.140001879
inc qword [rsp + 0xa0]
sub rdi, 0xffffffffffffff80
jmp 0x140068c2b
test r14b, r14b
je 0x140069137
mov ax, word [rsp + 0x8a]
mov r8, qword [rsp + 0x148]
lea rcx, [rsp + 0x170]
mov rdx, r12
mov word [rsp + 0x168], ax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x16c], eax
call fcn.140066225
movups xmm4, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x100], xmm4
mov rax, qword [rsp + 0x178]
lea rdx, [rsp + 0x100]
mov rcx, r15
mov qword [rsp + 0x110], rax
call fcn.140066378
inc qword [rsp + 0x78]
jmp 0x140068af7
mov rax, qword [rsp + 0x1d0]
mov rdx, qword [r15]
mov r12, qword [rax]
mov rcx, rax
call fcn.1400059ea
mov rcx, r15
mov rdx, r12
call fcn.1400059ea
lea rcx, [rsp + 0x168]
mov edx, 0x10
call fcn.140066216
mov rax, qword [rsp + 0x1d0]
xor ecx, ecx
mov r8, qword [rax]
movsx r9, word [r8 + 0x10]
cmp rcx, r9
jge 0x1400691ee
imul rax, rcx, 0x18
add rax, qword [r8]
mov rsi, qword [rsp + 0x68]
movups xmm5, xmmword [rax + 0x18]
mov edx, dword [rax + 0x14]
movsx rax, word [rax + 0x10]
movups xmmword [rsp + 0x168], xmm5
shl rax, 7
cmp byte [rsi + rax + 0x10], 0x2d
je 0x1400691bb
inc rcx
jmp 0x140069186
test byte [rsp + 0xd8], 0x40
je 0x1400691da
mov rax, qword [rsp + 0x1e8]
mov rcx, r13
mov r8d, dword [rax]
call fcn.140065bd6
mov edx, eax
mov rax, qword [rsp + 0x1e8]
mov dword [rax], edx
mov rax, qword [rsp + 0x168]
jmp 0x140069202
or rax, 0xffffffffffffffff
jmp 0x140069202
test rbx, rbx
jne 0x140067da5
jmp 0x140067daa
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret