Function at 0x1800887a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x68
mov r11, qword [rsp + 0x98]
mov eax, dword [r11 + 0x28]
add eax, 0xfffffffe
cmp eax, 0x3f
ja case.0x180079fb2.14
mov qword [rsp + 0x60], rbx
lea rbx, [0x180000000]
cdqe
movzx eax, byte [rbx + rax + 0x7a0bc]
mov r10d, dword [rbx + rax*4 + 0x7a088]
add r10, rbx
mov rbx, qword [rsp + 0x60]
jmp r10
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007a100
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007afc0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007cfa0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180083480
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x1800871c0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007e560
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007fee0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x1800816b0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180084a10
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18007be10
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180085c50
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x1800887a0
add rsp, 0x68
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push r12
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xe0
mov r12, qword [rbp + 0x5f]
mov r15, rdx
mov r10, qword [rbp + 0x77]
mov rax, rcx
mov r14, qword [rbp + 0x7f]
mov edx, 1
mov r11, r9
mov qword [rbp - 0x29], r14
mov ecx, dword [r12 + 8]
mov r9, r8
mov r10, qword [r10]
lea r8, [rax + r15]
shl rdx, cl
mov rcx, qword [r12 + 0x10]
sub rdx, 0x10
mov qword [rbp - 0x79], rdx
mov qword [rbp - 0x71], rcx
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x58], r8
cmp rax, 8
jb 0x18007a17e
lea rax, [r8 - 7]
mov qword [rbp - 0x49], rax
jmp 0x18007a182
mov qword [rbp - 0x49], r15
cmp dword [r12 + 4], 9
mov eax, 0x200
mov ebx, 0x40
cmovl eax, ebx
mov qword [rbp - 0x41], rax
add rax, r15
mov qword [rsp + 8], rax
lea rax, [r15 + 8]
cmp rax, r8
jae 0x18007af87
mov qword [rsp + 0xd8], rsi
mov eax, r11d
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xc8], r13
mov dword [rbp + 0x37], eax
mov dword [rsp + 0x50], eax
mov rsi, qword [rbp + 0x67]
lea rax, [rcx + r15]
mov rcx, qword [rbp + 0x3f]
sub r8, r15
cmp r15, rdx
mov qword [rsp], r8
mov r14, rdx
mov qword [rsp + 0x10], 0x7e4
mov rsi, qword [rsi + 0x38]
cmovb r14, r15
cmp rax, rdx
mov dword [rbp - 0x51], 0
mov r13, rdx
cmovb r13, rax
xor eax, eax
mov qword [rsp + 0x18], rax
mov qword [rbp - 0x61], rax
mov rax, qword [r12 + 0x50]
mov r12, r11
and r12, r15
mov qword [rsp + 0x28], rax
add r12, r9
movabs rax, 0xbd1e35a7bd000000
mov rbx, qword [r12]
movzx edi, byte [r12]
imul rbx, rax
mov rax, qword [rbp + 0x6f]
shr rbx, 0x30
movsxd r15, dword [rax]
sub rcx, r15
cmp rcx, qword [rbp + 0x3f]
jae 0x18007a333
mov r11d, dword [rbp + 0x37]
and r11, rcx
add r11, r9
cmp dil, byte [r11]
jne 0x18007a333
mov rax, r8
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007a2b2
mov r10, r11
sub r10, r12
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rdx + r10]
cmp r9, r8
jne 0x18007a319
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007a290
mov r8, qword [rsp]
and r8d, 7
je 0x18007a2d3
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007a2d3
inc rcx
sub r8, 1
jne 0x18007a2c0
mov rax, rcx
cmp rax, 4
jb 0x18007a32a
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, 0x7e4
jbe 0x18007a32a
mov rdi, qword [rsp]
mov r8, rax
mov r12, qword [rbp + 0x5f]
mov qword [rbp - 0x61], r15
mov r15, qword [rbp + 0x3f]
mov dword [rsi + rbx*4], r15d
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x10], rcx
jmp 0x18007a5bd
xor r8, r9
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x18007a2d6
mov r10, qword [rsp + 0x20]
mov r9, qword [rbp + 0x47]
mov ecx, dword [rsi + rbx*4]
mov r15, qword [rbp + 0x3f]
mov r11d, ecx
mov eax, dword [rbp + 0x37]
mov dword [rsi + rbx*4], r15d
and r11, rax
add r11, r9
mov rbx, r15
sub rbx, rcx
cmp dil, byte [r11]
jne 0x18007ae3b
test rbx, rbx
je 0x18007ae3b
cmp rbx, r14
ja 0x18007ae3b
mov rdi, qword [rsp]
xor ecx, ecx
mov rax, rdi
mov rdx, r12
shr rax, 3
test rax, rax
je 0x18007a3aa
mov r10, r11
sub r10, r12
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rdx + r10]
cmp r9, r8
jne 0x18007a40a
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007a390
mov r8, rdi
and r8d, 7
je 0x18007a3c9
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007a3c9
inc rcx
sub r8, 1
jne 0x18007a3b6
mov rdx, rcx
cmp rdx, 4
jb 0x18007a41b
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jbe 0x18007a41b
mov r12, qword [rbp + 0x5f]
mov r8, rdx
mov qword [rsp + 0x18], rdx
mov qword [rbp - 0x61], rbx
mov qword [rsp + 0x10], rax
jmp 0x18007a5bd
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18007a3cc
mov r8, qword [rbp + 0x67]
mov rbx, qword [r8 + 0x30]
mov rdx, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
mov rax, rdx
shr rax, 7
cmp r14, rax
jb 0x18007ae27
imul ecx, dword [r12], 0x1e35a7bd
lea rax, [rdx + 1]
mov r8, qword [rbp + 0x5f]
mov qword [rbx + 8], rax
mov rax, qword [r8 + 0x78]
shr rcx, 0x11
and ecx, 0x7ffe
movzx edx, byte [rcx + rax]
test dl, dl
je 0x18007a5b5
mov rax, qword [r8 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, rdi
ja 0x18007a5b5
mov rdi, qword [r8 + 0x58]
mov eax, r11d
imul rax, rsi
mov edx, dword [rdi + rdx*4 + 0x20]
mov r8d, r11d
xor ecx, ecx
shr r8, 3
add rdx, rax
add rdx, qword [rdi + 0xa8]
test r8, r8
je 0x18007a4ce
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18007a594
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007a4b0
mov r8, r11
and r8d, 7
je 0x18007a4f3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x18007a4f3
inc rcx
sub r8, 1
jne 0x18007a4e0
mov r9, rcx
mov r12, qword [rbp + 0x5f]
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007a5af
test r9, r9
je 0x18007a5af
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r12 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rsi
add rdx, r13
cmp rdx, qword [rsp + 0x28]
ja 0x18007a5af
mov rdi, qword [rsp]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
mov rcx, qword [rsp + 0x10]
add rax, 0x780
cmp rax, rcx
jb 0x18007a5a8
mov qword [rsp + 0x10], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x18], r9
mov qword [rbx + 0x10], rax
mov r8, r9
mov dword [rbp - 0x51], r11d
mov qword [rbp - 0x61], rdx
jmp 0x18007a5bd
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007a4f6
mov r8, qword [rsp + 0x18]
jmp 0x18007a5c2
mov rdi, qword [rsp]
jmp 0x18007a5b8
mov r12, r8
mov r8, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
cmp rcx, 0x7e4
jbe 0x18007ae32
mov ebx, dword [rsp + 0x50]
lea rdx, [r15 + 1]
mov qword [rsp + 8], rdx
mov dword [rsp + 0x28], 0
mov dword [rbp + 0x37], ebx
dec rdi
cmp dword [r12 + 4], 5
mov qword [rsp], rdi
jge 0x18007a606
lea rax, [r8 - 1]
mov r11, rdi
cmp rax, rdi
cmovb r11, rax
jmp 0x18007a609
xor r11d, r11d
mov r8, qword [rbp - 0x79]
mov rax, qword [rbp - 0x71]
cmp rdx, r8
mov r12, r8
mov qword [rsp + 0x30], r11
cmovb r12, rdx
mov qword [rsp + 0x38], 0
add rax, rdx
mov qword [rsp + 0x40], 0x7e4
cmp rax, r8
mov dword [rsp + 0x48], 0
mov rcx, r8
mov r8, qword [rbp + 0x5f]
cmovb rcx, rax
mov qword [rbp - 0x39], rcx
mov rcx, qword [rbp + 0x4f]
mov rax, qword [r8 + 0x50]
and rcx, rdx
mov r8, qword [rbp + 0x47]
mov rdi, qword [rcx + r8]
lea r13, [rcx + r8]
mov qword [rbp - 0x31], rax
mov rax, qword [rbp + 0x67]
mov rsi, qword [rax + 0x38]
lea rax, [rcx + r11]
movzx r14d, byte [rax + r8]
mov rcx, rdx
movabs rax, 0xbd1e35a7bd000000
imul rdi, rax
mov rax, qword [rbp + 0x6f]
shr rdi, 0x30
movsxd r15, dword [rax]
sub rcx, r15
cmp rcx, rdx
jae 0x18007a801
mov eax, ebx
and rcx, rax
lea rax, [rcx + r11]
cmp r14b, byte [rax + r8]
jne 0x18007a801
mov rax, qword [rsp]
lea rbx, [rcx + r8]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18007a702
mov r10, rbx
sub r10, r13
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x18007a7ed
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007a6e0
mov rax, qword [rsp]
mov r8, rax
and r8d, 7
je 0x18007a722
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + rbx], al
jne 0x18007a722
inc rcx
sub r8, 1
jne 0x18007a710
mov rax, rcx
mov rdx, qword [rsp + 8]
cmp rax, 4
jb 0x18007a801
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, 0x7e4
jbe 0x18007a801
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rcx
mov dword [rsi + rdi*4], edx
mov rdi, qword [rsp]
mov r12, qword [rbp + 0x5f]
mov rax, qword [rsp + 0x10]
mov r15, qword [rbp + 0x3f]
add rax, 0xaf
mov r13, qword [rsp + 0x20]
cmp qword [rsp + 0x40], rax
jb 0x18007aa95
mov ecx, dword [rsp + 0x28]
inc r15
movups xmm0, xmmword [rsp + 0x30]
inc ecx
inc rdx
movups xmm1, xmmword [rsp + 0x40]
inc r13
mov qword [rbp + 0x3f], r15
mov qword [rsp + 8], rdx
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x28], ecx
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm1
cmp ecx, 4
jge 0x18007aa8a
lea rax, [rdx + 7]
cmp rax, qword [rsp + 0x58]
jae 0x18007aa8a
mov r15, qword [rbp - 0x59]
mov r8, qword [rbp - 0x69]
mov ebx, dword [rbp + 0x37]
mov qword [rsp + 0x10], r15
mov qword [rsp + 0x18], r8
jmp 0x18007a5e7
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18007a725
mov ecx, dword [rsi + rdi*4]
mov rbx, rdx
mov eax, dword [rbp + 0x37]
mov r8d, ecx
and r8, rax
mov dword [rsi + rdi*4], edx
sub rbx, rcx
mov rcx, qword [rbp + 0x47]
lea rax, [r8 + r11]
cmp r14b, byte [rax + rcx]
jne 0x18007a761
test rbx, rbx
je 0x18007a761
mov rdi, qword [rsp]
cmp rbx, r12
ja 0x18007a765
lea r11, [r8 + rcx]
xor eax, eax
mov r8, rdi
mov rdx, r13
shr r8, 3
test r8, r8
je 0x18007a87a
mov r10, r11
sub r10, r13
nop dword [rax]
mov rcx, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rcx, r9
jne 0x18007a8d9
add rdx, 8
add rax, 8
sub r8, 1
jne 0x18007a860
mov r8, rdi
and r8d, 7
je 0x18007a899
sub rdx, rax
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x18007a899
inc rax
sub r8, 1
jne 0x18007a886
mov rdx, rax
cmp rdx, 4
jb 0x18007a8ea
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jbe 0x18007a8ea
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 8]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rax
jmp 0x18007a765
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18007a89c
mov rax, qword [rbp + 0x67]
mov r12, qword [rbp + 0x5f]
mov rbx, qword [rax + 0x30]
mov rdx, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
mov rax, rdx
shr rax, 7
cmp r14, rax
jb 0x18007aa5e
imul ecx, dword [r13], 0x1e35a7bd
lea rax, [rdx + 1]
mov qword [rbx + 8], rax
mov rax, qword [r12 + 0x78]
shr rcx, 0x11
and ecx, 0x7ffe
movzx edx, byte [rcx + rax]
test dl, dl
je 0x18007aa5e
mov rax, qword [r12 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, rdi
ja 0x18007aa5e
mov rdi, qword [r12 + 0x58]
mov eax, r11d
imul rax, rsi
mov edx, dword [rdi + rdx*4 + 0x20]
mov r8d, r11d
xor ecx, ecx
shr r8, 3
add rdx, rax
add rdx, qword [rdi + 0xa8]
test r8, r8
je 0x18007a99e
mov r10, r13
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18007aa68
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007a980
mov r8, r11
and r8d, 7
je 0x18007a9c3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r13], al
jne 0x18007a9c3
inc rcx
sub r8, 1
jne 0x18007a9b0
mov r9, rcx
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007aa7c
test r9, r9
je 0x18007aa7c
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r12 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rdi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rbp - 0x39]
shl rax, cl
inc rdx
add rax, rsi
add rdx, rax
cmp rdx, qword [rbp - 0x31]
ja 0x18007aa7c
mov rdi, qword [rsp]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18007aa5e
mov qword [rsp + 0x40], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x30], r9
mov qword [rbx + 0x10], rax
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 8]
jmp 0x18007a769
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007a9c6
mov rdx, qword [rsp + 8]
mov rdi, qword [rsp]
jmp 0x18007a769
mov rax, qword [rbp - 0x69]
mov qword [rsp + 0x18], rax
jmp 0x18007aa9a
mov rax, qword [rsp + 0x18]
mov r10, qword [rbp - 0x79]
mov rcx, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x61]
lea r11, [rcx + rax*2]
mov rax, qword [rbp - 0x71]
add r11, r15
add rax, r15
cmp rax, r10
mov qword [rsp + 8], r11
mov r11, qword [rbp + 0x6f]
cmovb r10, rax
lea rdx, [r11 + 4]
cmp rbx, r10
ja 0x18007ab4b
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rbx, rax
jne 0x18007aaea
xor r8d, r8d
jmp 0x18007ab4f
cmp rbx, r9
jne 0x18007aaf7
mov r8d, 1
jmp 0x18007ab4f
cmp r8, 7
jae 0x18007ab13
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18007ab4f
cmp rcx, 7
jae 0x18007ab2b
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18007ab4f
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x18007ab3c
mov r8d, 2
jmp 0x18007ab4f
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18007ab4f
lea r8, [rbx + 0xf]
cmp rbx, r10
ja 0x18007ab6f
test r8, r8
je 0x18007ab6f
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [rdx], eax
mov dword [r11], ebx
mov rcx, qword [rbp + 0x7f]
mov esi, dword [rbp - 0x51]
mov r11, qword [rsp + 0x18]
movzx eax, sil
shl eax, 0x19
or eax, r11d
mov dword [rcx], r13d
mov dword [rcx + 4], eax
mov r14d, dword [r12 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x18007ab9d
xor edi, edi
jmp 0x18007ac17
mov r11d, dword [r12 + 0x40]
add r8, 0xfffffffffffffff0
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x18]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov r14, qword [rbp + 0x7f]
lea edx, [r11 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r14 + 0xe], r8w
and r8w, ax
mov dword [r14 + 8], edi
cmp r13, 6
jae 0x18007ac45
movzx r10d, r13w
mov ecx, 0x17
jmp 0x18007acb6
cmp r13, 0x82
jae 0x18007ac6f
lea eax, [r13 - 2]
bsr ecx, eax
lea r10, [r13 - 2]
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
mov ecx, 0x17
jmp 0x18007acb6
mov ecx, 0x17
cmp r13, 0x842
jae 0x18007ac8c
lea eax, [r13 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x18007acb6
cmp r13, 0x1842
jae 0x18007ac9d
mov r10d, 0x15
jmp 0x18007acb6
mov r10d, 0x16
cmp r13, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp r9, 0xa
jae 0x18007acc3
sub r9w, 2
jmp 0x18007ad03
cmp r9, 0x86
jae 0x18007ace8
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18007ad03
cmp r9, 0x846
jae 0x18007acff
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18007ad03
movzx r9d, cx
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18007ad3b
cmp r10w, 8
jae 0x18007ad3b
cmp r9w, 0x10
jae 0x18007ad3b
cmp r9w, 8
jb 0x18007ad6f
or dx, 0x40
jmp 0x18007ad6f
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x8f]
xor r10d, r10d
mov r8, qword [rbp - 0x49]
mov word [r14 + 0xc], dx
add r14, 0x10
mov qword [rbp + 0x7f], r14
lea rdx, [r15 + 2]
add qword [rax], r13
lea rax, [r11 + r15]
cmp rax, r8
mov qword [rsp + 0x20], r10
cmovb r8, rax
mov rax, r11
shr rax, 2
cmp rbx, rax
jae 0x18007add6
lea rax, [rbx*4]
mov rcx, r11
sub rcx, rax
lea rax, [rcx + r15]
cmp rdx, rax
mov eax, 2
cmova rcx, rax
lea rdx, [r15 + rcx]
cmp r8, rdx
cmovb rdx, r8
cmp rdx, r8
jae 0x18007ae1b
mov r9, qword [rbp + 0x47]
movabs r14, 0xbd1e35a7bd000000
mov r12, qword [rbp + 0x67]
mov rbx, qword [rbp + 0x4f]
mov rax, rdx
and rax, rbx
mov rcx, qword [rax + r9]
mov rax, qword [r12 + 0x38]
imul rcx, r14
shr rcx, 0x30
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18007adf1
mov r12, qword [rbp + 0x5f]
mov r14, qword [rbp + 0x7f]
add r15, r11
mov qword [rbp + 0x3f], r15
jmp 0x18007af4d
mov r9, qword [rbp + 0x47]
mov r10, qword [rsp + 0x20]
jmp 0x18007ae3f
mov r9, qword [rbp + 0x47]
mov r10, qword [rsp + 0x20]
mov r8, qword [rbp + 0x67]
mov r11, qword [rsp + 8]
inc r10
inc r15
mov qword [rsp + 0x20], r10
mov qword [rbp + 0x3f], r15
cmp r15, r11
jbe 0x18007af45
mov rax, qword [rbp - 0x41]
mov rdx, qword [rsp + 0x58]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
mov r11, qword [rbp + 0x4f]
cmp r15, rax
jbe 0x18007aee6
lea rax, [r15 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x18007aedc
add r10, 4
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x20], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
mov rax, r11
and rax, r15
mov rcx, qword [rax + r9]
mov rax, qword [r8 + 0x38]
imul rcx, r10
shr rcx, 0x30
mov dword [rax + rcx*4], r15d
add r15, 4
cmp r15, rdx
jb 0x18007aeb0
mov r10, qword [rsp + 0x20]
mov qword [rbp + 0x3f], r15
mov r12, qword [rbp + 0x5f]
mov r14, qword [rbp + 0x7f]
jmp 0x18007af51
lea rax, [r15 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x18007aedc
add r10, 2
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x20], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
mov rax, r11
and rax, r15
mov rcx, qword [rax + r9]
mov rax, qword [r8 + 0x38]
imul rcx, r10
shr rcx, 0x30
mov dword [rax + rcx*4], r15d
add r15, 2
cmp r15, rdx
jb 0x18007af20
jmp 0x18007aed3
mov r12, qword [rbp + 0x5f]
mov r14, qword [rbp + 0x7f]
mov r11, qword [rbp + 0x4f]
mov r8, qword [rsp + 0x58]
lea rax, [r15 + 8]
mov r9, qword [rbp + 0x47]
mov rdx, qword [rbp - 0x79]
mov rcx, qword [rbp - 0x71]
cmp rax, r8
jb 0x18007a1d0
mov r13, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
mov rax, qword [rbp + 0x77]
sub r8, r15
sub r14, qword [rbp - 0x29]
add r8, r10
sar r14, 4
mov qword [rax], r8
mov rax, qword [rbp + 0x87]
add qword [rax], r14
add rsp, 0xe0
pop r15
pop r14
pop r12
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 7]
sub rsp, 0xe8
mov r11, qword [rbp + 0x57]
mov rax, rcx
mov r10, qword [rbp + 0x6f]
mov rbx, r9
mov r9, r8
mov r13, rdx
add rdx, rax
mov r8d, 1
mov ecx, dword [r11 + 8]
mov r10, qword [r10]
shl r8, cl
mov rcx, qword [r11 + 0x10]
sub r8, 0x10
mov qword [rbp - 0x31], rcx
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 0x29], rcx
mov qword [rbp - 0x79], r8
mov qword [rsp + 0x10], r10
mov qword [rsp + 0x60], rdx
cmp rax, 8
jb 0x18007b039
lea rax, [rdx - 7]
mov qword [rbp - 0x71], rax
jmp 0x18007b03d
mov qword [rbp - 0x71], r13
cmp dword [r11 + 4], 9
mov eax, 0x200
mov edi, 0x40
cmovl eax, edi
mov qword [rbp - 0x69], rax
add rax, r13
mov qword [rsp + 0x20], rax
lea rax, [r13 + 8]
cmp rax, rdx
jae 0x18007bca8
movdqa xmm4, xmmword [0x180b80a40]
movabs rdi, 0xbd1e35a7bd000000
movdqa xmm3, xmmword [0x180b80a50]
movdqa xmm2, xmm4
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], r14
psllq xmm2, 3
mov qword [rsp + 0xc8], r15
mov dword [rbp + 0x2f], ebx
mov dword [rsp + 0x58], ebx
mov rcx, qword [rbp + 0x37]
mov r10, rdx
mov rax, qword [rbp + 0x5f]
sub r10, r13
cmp rcx, r8
mov qword [rsp], r10
mov r13, r8
mov r15, rbx
cmovb r13, rcx
mov edx, 0x7e4
mov rax, qword [rax + 0x38]
and r15, rcx
movzx r14d, byte [r15 + r9]
lea r8, [r15 + r9]
mov qword [rsp + 0x30], rax
xor r11d, r11d
mov rax, qword [r8]
xor r12d, r12d
imul rax, rdi
mov qword [rsp + 8], r11
mov esi, edx
shr rax, 0x30
mov qword [rbp - 0x49], r11
mov qword [rsp + 0x18], rdx
mov dword [rbp - 0x39], r11d
movq xmm0, rax
mov rax, qword [rbp + 0x67]
punpcklqdq xmm0, xmm0
movsxd rdi, dword [rax]
sub rcx, rdi
cmp rcx, qword [rbp + 0x37]
jae 0x18007b200
mov ebx, dword [rbp + 0x2f]
and rbx, rcx
add rbx, r9
movzx eax, byte [rbx]
cmp r14d, eax
jne 0x18007b200
mov rax, r10
xor ecx, ecx
shr rax, 3
mov rdx, r8
test rax, rax
je 0x18007b17e
mov r11, rbx
sub r11, r8
nop dword [rax]
mov r10, qword [rdx]
mov r9, qword [rdx + r11]
cmp r10, r9
jne 0x18007b1e0
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007b160
mov r10, qword [rsp]
mov r9, r10
and r9d, 7
je 0x18007b1a2
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18007b1a2
inc rcx
sub r9, 1
jne 0x18007b190
mov rax, rcx
mov r11, qword [rbp + 0x3f]
cmp rax, 4
jb 0x18007b204
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x18007b204
mov qword [rsp + 8], rax
mov r12, rax
add rax, r15
mov qword [rbp - 0x49], rdi
mov qword [rsp + 0x18], rcx
mov rsi, rcx
movzx r14d, byte [rax + r11]
jmp 0x18007b204
xor r9, r10
mov r10, qword [rsp]
tzcnt rax, r9
shr rax, 3
add rax, rcx
jmp 0x18007b1a5
mov r11, qword [rbp + 0x3f]
mov rdi, qword [rbp + 0x37]
paddq xmm0, xmm2
mov rcx, qword [rsp + 0x30]
mov rax, rdi
shr rax, 3
andps xmm0, xmm3
and eax, 1
movdqu xmmword [rbp - 0x61], xmm0
mov rax, qword [rbp + rax*8 - 0x61]
mov qword [rsp + 0x28], rax
movq rax, xmm0
mov r9d, dword [rcx + rax*4]
mov eax, dword [rbp + 0x2f]
sub rdi, r9
and r9, rax
lea rax, [r9 + r12]
movzx ecx, byte [rax + r11]
cmp r14d, ecx
jne 0x18007b332
test rdi, rdi
je 0x18007b332
cmp rdi, r13
ja 0x18007b332
mov rbx, qword [rbp + 0x3f]
xor ecx, ecx
add rbx, r9
mov rdx, r8
mov r9, r10
shr r9, 3
test r9, r9
je 0x18007b2b2
mov r11, rbx
sub r11, r8
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rdx]
mov rax, qword [rdx + r11]
cmp r10, rax
jne 0x18007b31d
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18007b290
mov r10, qword [rsp]
mov r9, r10
and r9d, 7
je 0x18007b2d2
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18007b2d2
inc rcx
sub r9, 1
jne 0x18007b2c0
mov rdx, rcx
cmp rdx, 4
jb 0x18007b332
bsr eax, edi
imul r9, rdx, 0x87
imul ecx, eax, 0x1e
sub r9, rcx
add r9, 0x780
cmp rsi, r9
jae 0x18007b332
mov r11, qword [rbp + 0x3f]
lea rax, [rdx + r15]
mov r12, rdx
mov qword [rsp + 8], rdx
mov rsi, r9
mov qword [rsp + 0x18], r9
mov r15, r9
mov qword [rbp - 0x49], rdi
movzx r14d, byte [rax + r11]
jmp 0x18007b337
xor rax, r10
mov r10, qword [rsp]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007b2d5
mov r15, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rbp + 0x37]
mov r9, qword [rbp + 0x3f]
psrldq xmm0, 8
movq rax, xmm0
mov edx, dword [rdi + rax*4]
mov eax, dword [rbp + 0x2f]
sub rbx, rdx
and rdx, rax
lea rax, [rdx + r12]
movzx ecx, byte [rax + r9]
cmp r14d, ecx
jne 0x18007b42f
test rbx, rbx
je 0x18007b42f
cmp rbx, r13
ja 0x18007b42f
mov rax, r10
lea r11, [rdx + r9]
shr rax, 3
xor ecx, ecx
test rax, rax
je 0x18007b3be
mov r10, r11
sub r10, r8
nop word [rax + rax]
mov r9, qword [r8]
mov rdx, qword [r8 + r10]
cmp r9, rdx
jne 0x18007b41a
add r8, 8
add rcx, 8
sub rax, 1
jne 0x18007b3a0
mov r10, qword [rsp]
mov rdx, r10
and edx, 7
je 0x18007b3dc
movzx eax, byte [r8]
cmp byte [rcx + r11], al
jne 0x18007b3dc
inc r8
inc rcx
sub rdx, 1
jne 0x18007b3c6
mov r8, rcx
mov r9, qword [rbp + 0x3f]
cmp r8, 4
jb 0x18007b42f
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x18007b42f
mov rcx, r8
mov qword [rsp + 0x18], rax
mov qword [rsp + 8], rcx
mov r15, rax
mov qword [rbp - 0x49], rbx
jmp 0x18007b434
mov r10, qword [rsp]
xor rdx, r9
tzcnt r8, rdx
shr r8, 3
add r8, rcx
jmp 0x18007b3df
mov rcx, qword [rsp + 8]
mov rax, qword [rsp + 0x28]
mov r13, qword [rbp + 0x37]
mov dword [rdi + rax*4], r13d
lea rdi, [r13 + 1]
mov qword [rsp + 0x28], rdi
cmp r15, 0x7e4
jbe 0x18007bcd1
mov r11d, dword [rsp + 0x58]
movdqa xmm2, xmm4
psllq xmm2, 3
mov dword [rbp + 0x37], 0
mov dword [rbp + 0x2f], r11d
mov rax, qword [rbp + 0x57]
dec r10
mov qword [rsp], r10
cmp dword [rax + 4], 5
jge 0x18007b491
lea rax, [rcx - 1]
mov rsi, r10
cmp rax, r10
cmovb rsi, rax
jmp 0x18007b493
xor esi, esi
mov rax, qword [rbp + 0x5f]
mov edx, 0x7e4
mov r12, qword [rbp + 0x47]
movabs rcx, 0xbd1e35a7bd000000
mov qword [rsp + 0x48], rdx
mov r14d, 0x7e4
mov rdx, qword [rbp - 0x79]
mov rax, qword [rax + 0x38]
cmp rdi, rdx
mov qword [rsp + 0x30], rax
cmovb rdx, rdi
mov qword [rsp + 0x38], rsi
and r12, rdi
mov qword [rsp + 0x40], 0
lea r8, [r12 + r9]
mov qword [rsp + 0x20], rdx
mov dword [rsp + 0x50], 0
lea rax, [r12 + rsi]
movzx r15d, byte [rax + r9]
mov rax, qword [r8]
mov r9, qword [rsp + 0x28]
imul rax, rcx
shr rax, 0x30
movq xmm0, rax
mov rax, qword [rbp + 0x67]
punpcklqdq xmm0, xmm0
movsxd rdi, dword [rax]
sub r9, rdi
cmp r9, qword [rsp + 0x28]
jae 0x18007b600
mov eax, r11d
mov r11, qword [rbp + 0x3f]
and r9, rax
lea rax, [r9 + rsi]
movzx ecx, byte [rax + r11]
cmp r15d, ecx
jne 0x18007b604
mov rbx, r11
xor eax, eax
add rbx, r9
mov rdx, r8
mov r9, r10
shr r9, 3
test r9, r9
je 0x18007b57e
mov r11, rbx
sub r11, r8
nop dword [rax + rax]
mov rcx, qword [rdx]
mov r10, qword [rdx + r11]
cmp rcx, r10
jne 0x18007b5e6
add rdx, 8
add rax, 8
sub r9, 1
jne 0x18007b560
mov r10, qword [rsp]
mov r9, r10
and r9d, 7
je 0x18007b5a2
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + rbx], cl
jne 0x18007b5a2
inc rax
sub r9, 1
jne 0x18007b590
mov rcx, rax
mov rdx, qword [rsp + 0x20]
cmp rcx, 4
jb 0x18007b600
mov r11, qword [rbp + 0x3f]
imul rax, rcx, 0x87
add rax, 0x78f
cmp rax, r14
jbe 0x18007b604
mov qword [rsp + 0x48], rax
mov r14, rax
lea rax, [rcx + r12]
mov qword [rsp + 0x38], rcx
movzx r15d, byte [rax + r11]
mov rsi, rcx
mov qword [rsp + 0x40], rdi
jmp 0x18007b604
xor rcx, r10
mov r10, qword [rsp]
tzcnt rcx, rcx
shr rcx, 3
add rcx, rax
jmp 0x18007b5a5
mov r11, qword [rbp + 0x3f]
mov rdi, qword [rsp + 0x28]
paddq xmm0, xmm2
mov rcx, qword [rsp + 0x30]
mov rax, rdi
shr rax, 3
andps xmm0, xmm3
and eax, 1
movdqu xmmword [rbp - 0x61], xmm0
mov rax, qword [rbp + rax*8 - 0x61]
mov qword [rbp - 0x61], rax
movq rax, xmm0
mov r9d, dword [rcx + rax*4]
mov eax, dword [rbp + 0x2f]
sub rdi, r9
and r9, rax
lea rax, [r9 + rsi]
movzx ecx, byte [rax + r11]
cmp r15d, ecx
jne 0x18007b733
test rdi, rdi
je 0x18007b733
cmp rdi, rdx
ja 0x18007b733
mov rbx, qword [rbp + 0x3f]
xor ecx, ecx
add rbx, r9
mov rdx, r8
mov r9, r10
shr r9, 3
test r9, r9
je 0x18007b6b2
mov r11, rbx
sub r11, r8
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdx]
mov r10, qword [rdx + r11]
cmp rax, r10
jne 0x18007b71e
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18007b690
mov r10, qword [rsp]
mov r9, r10
and r9d, 7
je 0x18007b6d2
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18007b6d2
inc rcx
sub r9, 1
jne 0x18007b6c0
mov rdx, rcx
cmp rdx, 4
jb 0x18007b733
bsr eax, edi
imul r9, rdx, 0x87
imul ecx, eax, 0x1e
sub r9, rcx
add r9, 0x780
cmp r14, r9
jae 0x18007b733
mov r11, qword [rbp + 0x3f]
lea rax, [rdx + r12]
mov rsi, rdx
mov qword [rsp + 0x38], rdx
mov r14, r9
mov qword [rsp + 0x48], r9
mov r12, r9
mov qword [rsp + 0x40], rdi
movzx r15d, byte [rax + r11]
jmp 0x18007b738
xor rax, r10
mov r10, qword [rsp]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007b6d5
mov r12, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
mov r11d, dword [rbp + 0x2f]
mov rbx, rdi
mov r9, qword [rbp + 0x3f]
psrldq xmm0, 8
movq rax, xmm0
mov edx, dword [rcx + rax*4]
sub rbx, rdx
and rdx, r11
lea rax, [rdx + rsi]
movzx ecx, byte [rax + r9]
cmp r15d, ecx
jne 0x18007b824
test rbx, rbx
je 0x18007b824
cmp rbx, qword [rsp + 0x20]
ja 0x18007b824
lea r11, [rdx + r9]
xor ecx, ecx
mov rdx, r10
shr rdx, 3
test rdx, rdx
je 0x18007b7c2
mov r10, r11
sub r10, r8
nop
mov rax, qword [r8]
mov r9, qword [r8 + r10]
cmp rax, r9
jne 0x18007b899
add r8, 8
add rcx, 8
sub rdx, 1
jne 0x18007b7a0
mov r10, qword [rsp]
mov rdx, r10
and edx, 7
je 0x18007b7e6
nop word [rax + rax]
movzx eax, byte [r8]
cmp byte [rcx + r11], al
jne 0x18007b7e6
inc r8
inc rcx
sub rdx, 1
jne 0x18007b7d0
mov rdx, rcx
mov r9, qword [rbp + 0x3f]
mov r11d, dword [rbp + 0x2f]
cmp rdx, 4
jb 0x18007b824
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r14, rax
jae 0x18007b824
mov qword [rsp + 0x38], rdx
mov r12, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rbx
mov rax, qword [rbp - 0x61]
mov rcx, qword [rsp + 0x30]
mov r15, qword [rsp + 0x10]
mov dword [rcx + rax*4], edi
mov rax, qword [rsp + 0x18]
add rax, 0xaf
cmp r12, rax
jb 0x18007b8bc
mov ecx, dword [rbp + 0x37]
inc rdi
movups xmm0, xmmword [rsp + 0x38]
inc ecx
inc r15
movups xmm1, xmmword [rsp + 0x48]
inc r13
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x10], r15
mov dword [rbp + 0x37], ecx
movups xmmword [rbp - 0x51], xmm0
movups xmmword [rbp - 0x41], xmm1
cmp ecx, 4
jge 0x18007b8b1
lea rax, [rdi + 7]
cmp rax, qword [rsp + 0x60]
jae 0x18007b8b1
mov r15, qword [rbp - 0x41]
mov rcx, qword [rbp - 0x51]
mov qword [rsp + 0x18], r15
mov qword [rsp + 8], rcx
jmp 0x18007b470
mov r10, qword [rsp]
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007b7e9
mov r12, qword [rbp - 0x51]
mov qword [rsp + 8], r12
jmp 0x18007b8c1
mov r12, qword [rsp + 8]
mov rax, qword [rbp - 0x69]
mov r10, qword [rbp - 0x79]
mov rbx, qword [rbp - 0x49]
lea r11, [rax + r12*2]
mov rax, qword [rbp - 0x31]
add r11, r13
add rax, r13
cmp rax, r10
mov qword [rsp + 0x20], r11
mov r11, qword [rbp + 0x67]
cmovb r10, rax
lea rdx, [r11 + 4]
cmp rbx, r10
ja 0x18007b972
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rbx, rax
jne 0x18007b911
xor r8d, r8d
jmp 0x18007b976
cmp rbx, r9
jne 0x18007b91e
mov r8d, 1
jmp 0x18007b976
cmp r8, 7
jae 0x18007b93a
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18007b976
cmp rcx, 7
jae 0x18007b952
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18007b976
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x18007b963
mov r8d, 2
jmp 0x18007b976
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18007b976
lea r8, [rbx + 0xf]
cmp rbx, r10
ja 0x18007b996
test r8, r8
je 0x18007b996
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [rdx], eax
mov dword [r11], ebx
mov r11, qword [rbp + 0x77]
mov esi, dword [rbp - 0x39]
mov rcx, qword [rbp + 0x57]
movzx eax, sil
shl eax, 0x19
or eax, r12d
mov dword [r11], r15d
mov dword [r11 + 4], eax
mov r14d, dword [rcx + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x18007b9c3
xor edi, edi
jmp 0x18007ba3b
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rbp + 0x77]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea edx, [r12 + rsi]
mov eax, 0x3ff
mov dword [r11 + 8], edi
and r8w, ax
movsxd r9, edx
cmp r15, 6
jae 0x18007ba65
movzx r10d, r15w
mov eax, 0x17
jmp 0x18007bad7
cmp r15, 0x82
jae 0x18007ba8f
lea eax, [r15 - 2]
bsr ecx, eax
lea r10, [r15 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18007bad7
cmp r15, 0x842
jae 0x18007baac
lea eax, [r15 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18007bad7
mov eax, 0x17
cmp r15, 0x1842
jae 0x18007bac2
mov r10d, 0x15
jmp 0x18007bad7
cmp r15, 0x5842
jae 0x18007bad3
mov r10d, 0x16
jmp 0x18007bad7
movzx r10d, ax
cmp r9, 0xa
jae 0x18007bae4
sub r9w, 2
jmp 0x18007bb24
cmp r9, 0x86
jae 0x18007bb09
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18007bb24
cmp r9, 0x846
jae 0x18007bb20
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18007bb24
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18007bb5c
cmp r10w, 8
jae 0x18007bb5c
cmp r9w, 0x10
jae 0x18007bb5c
cmp r9w, 8
jb 0x18007bb90
or dx, 0x40
jmp 0x18007bb90
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x87]
xor r10d, r10d
mov r8, qword [rbp - 0x71]
mov word [r11 + 0xc], dx
add r11, 0x10
mov qword [rbp + 0x77], r11
lea rdx, [r13 + 2]
add qword [rax], r15
lea rax, [r12 + r13]
cmp rax, r8
mov qword [rsp + 0x10], r10
cmovb r8, rax
mov rax, r12
shr rax, 2
cmp rbx, rax
jae 0x18007bbf7
lea rax, [rbx*4]
mov rcx, r12
sub rcx, rax
lea rax, [rcx + r13]
cmp rdx, rax
mov eax, 2
cmova rcx, rax
lea rdx, [rcx + r13]
cmp r8, rdx
cmovb rdx, r8
cmp rdx, r8
jae 0x18007bc55
mov r11, qword [rbp + 0x3f]
movabs r12, 0xbd1e35a7bd000000
mov r9, qword [rbp + 0x47]
mov r10, qword [rbp + 0x5f]
nop dword [rax]
nop word [rax + rax]
mov rax, rdx
and rax, r9
mov rcx, qword [rax + r11]
mov eax, edx
imul rcx, r12
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [r10 + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18007bc20
mov r10, qword [rsp + 0x10]
mov r12, qword [rsp + 8]
add r13, r12
mov qword [rbp + 0x37], r13
mov rbx, qword [rbp + 0x47]
movabs rdi, 0xbd1e35a7bd000000
mov rdx, qword [rsp + 0x60]
lea rax, [r13 + 8]
mov r9, qword [rbp + 0x3f]
mov r8, qword [rbp - 0x79]
cmp rax, rdx
jb 0x18007b0b2
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x6f]
sub rdx, r13
sub rcx, qword [rbp - 0x29]
add rdx, r10
sar rcx, 4
mov qword [rax], rdx
mov rax, qword [rbp + 0x7f]
add qword [rax], rcx
add rsp, 0xe8
pop r13
pop rdi
pop rbx
pop rbp
ret
mov r10, qword [rsp + 0x10]
mov r13, rdi
mov r11, qword [rsp + 0x20]
inc r10
mov qword [rsp + 0x10], r10
mov qword [rbp + 0x37], rdi
cmp rdi, r11
jbe 0x18007bc5c
mov rax, qword [rbp - 0x69]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rbp + 0x47]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
cmp rdi, rax
jbe 0x18007bd8c
lea rax, [rdi + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp rdi, rdx
jae 0x18007bc60
add r10, 4
mov rax, rdx
sub rax, rdi
movabs rdi, 0xbd1e35a7bd000000
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x10], r10
mov r10, qword [rbp + 0x5f]
nop dword [rax + rax]
mov rax, rbx
and rax, r13
mov rcx, qword [rax + r9]
mov eax, r13d
imul rcx, rdi
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [r10 + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r13d
add r13, 4
cmp r13, rdx
jb 0x18007bd50
mov r10, qword [rsp + 0x10]
mov qword [rbp + 0x37], r13
jmp 0x18007bc6a
lea rax, [rdi + 8]
cmp rax, rdx
cmovb rdx, rax
cmp rdi, rdx
jae 0x18007bc60
add r10, 2
mov rax, rdx
sub rax, rdi
movabs rdi, 0xbd1e35a7bd000000
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x10], r10
mov r10, qword [rbp + 0x5f]
nop word [rax + rax]
mov rax, rbx
and rax, r13
mov rcx, qword [rax + r9]
mov eax, r13d
imul rcx, rdi
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [r10 + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r13d
add r13, 2
cmp r13, rdx
jb 0x18007bdd0
mov r10, qword [rsp + 0x10]
mov qword [rbp + 0x37], r13
jmp 0x18007bc6a
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
push r15
lea rbp, [rsp - 7]
sub rsp, 0xf8
mov rbx, qword [rbp + 0x57]
mov rax, rcx
mov r10, qword [rbp + 0x6f]
mov r11, r8
mov r8d, 1
mov r15, rdx
add rdx, rax
mov ecx, dword [rbx + 8]
mov r10, qword [r10]
shl r8, cl
mov rcx, qword [rbx + 0x10]
sub r8, 0x10
mov qword [rbp - 0x41], rcx
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 0x39], rcx
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x60], rdx
cmp rax, 8
jb 0x18007be86
lea rax, [rdx - 7]
mov qword [rbp - 0x51], rax
jmp 0x18007be8a
mov qword [rbp - 0x51], r15
cmp dword [rbx + 4], 9
mov eax, 0x200
mov edi, 0x40
cmovl eax, edi
mov qword [rbp - 0x49], rax
add rax, r15
mov qword [rsp + 0x30], rax
lea rax, [r15 + 8]
cmp rax, rdx
jae 0x18007cf74
movdqa xmm4, xmmword [0x180b80a40]
mov eax, r9d
movdqa xmm3, xmmword [0x180b80a50]
movdqa xmm2, xmm4
mov rbx, qword [rbp + 0x5f]
movabs rcx, 0xbd1e35a7bd000000
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xe8], r12
mov qword [rsp + 0xe0], r13
psllq xmm2, 3
mov qword [rsp + 0xd8], r14
mov dword [rbp + 0x2f], eax
mov dword [rsp + 0x5c], eax
nop word [rax + rax]
mov r12, qword [rbp + 0x37]
mov r10, rdx
mov r13, qword [rbx + 0x38]
sub r10, r15
cmp r15, r8
mov qword [rsp + 0x10], r10
mov rdx, r8
mov r14, r9
cmovb rdx, r15
mov r8d, 0x7e4
xor edi, edi
mov qword [rsp + 0x18], rdx
and r14, r15
mov qword [rsp + 0x28], rdi
mov rax, qword [r14 + r11]
lea r9, [r14 + r11]
movzx esi, byte [r9]
xor r15d, r15d
imul rax, rcx
mov rcx, r12
mov qword [rbp - 0x69], rdi
shr rax, 0x30
mov dword [rbp - 0x59], edi
mov edi, r8d
mov qword [rsp], r8
mov qword [rsp + 8], r9
movq xmm0, rax
mov rax, qword [rbp + 0x67]
punpcklqdq xmm0, xmm0
movsxd rbx, dword [rax]
sub rcx, rbx
cmp rcx, r12
jae 0x18007c064
mov eax, dword [rbp + 0x2f]
and rax, rcx
add r11, rax
movzx eax, byte [r11]
cmp esi, eax
jne 0x18007c060
mov r8, r10
xor ecx, ecx
shr r8, 3
mov rdx, r9
test r8, r8
je 0x18007bfdf
mov r10, r11
sub r10, r9
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18007c04a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007bfc0
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18007c003
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18007c003
inc rcx
sub r8, 1
jne 0x18007bff0
mov rax, rcx
mov r9, qword [rsp + 8]
mov rdx, qword [rsp + 0x18]
cmp rax, 4
jb 0x18007c060
mov r11, qword [rbp + 0x3f]
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x18007c064
mov qword [rsp + 0x28], rax
mov r15, rax
add rax, r14
mov qword [rbp - 0x69], rbx
mov qword [rsp], rcx
mov rdi, rcx
movzx esi, byte [rax + r11]
jmp 0x18007c064
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18007c006
mov r11, qword [rbp + 0x3f]
mov rbx, qword [rbp + 0x37]
mov rax, r12
shr rax, 3
paddq xmm0, xmm2
and eax, 1
andps xmm0, xmm3
movdqu xmmword [rsp + 0x70], xmm0
mov r12, qword [rsp + rax*8 + 0x70]
movq rax, xmm0
mov r8d, dword [r13 + rax*4]
mov eax, dword [rbp + 0x2f]
sub rbx, r8
and r8, rax
lea rax, [r8 + r15]
movzx ecx, byte [rax + r11]
cmp esi, ecx
jne 0x18007c168
test rbx, rbx
je 0x18007c168
cmp rbx, rdx
ja 0x18007c168
add r11, r8
xor ecx, ecx
mov r8, r10
mov rdx, r9
shr r8, 3
test r8, r8
je 0x18007c103
mov r10, r11
sub r10, r9
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18007c24f
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007c0e0
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18007c123
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007c123
inc rcx
sub r8, 1
jne 0x18007c110
mov rdx, rcx
mov r11, qword [rbp + 0x3f]
cmp rdx, 4
jb 0x18007c168
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18007c168
lea rax, [rdx + r14]
mov qword [rsp + 0x28], rdx
movzx esi, byte [rax + r11]
mov r15, rdx
mov rdi, r8
mov qword [rsp], r8
mov qword [rbp - 0x69], rbx
mov edx, dword [rbp + 0x2f]
mov rbx, qword [rbp + 0x37]
mov r14, qword [rsp + 8]
psrldq xmm0, 8
movq rax, xmm0
mov ecx, dword [r13 + rax*4]
and rdx, rcx
sub rbx, rcx
lea rax, [rdx + r15]
mov r15, qword [rsp + 0x18]
movzx ecx, byte [rax + r11]
cmp esi, ecx
jne 0x18007c279
test rbx, rbx
je 0x18007c279
cmp rbx, r15
ja 0x18007c279
add r11, rdx
mov rax, r10
shr rax, 3
xor edx, edx
mov rcx, r14
test rax, rax
je 0x18007c1f3
mov r10, r11
sub r10, r14
nop dword [rax + rax]
mov r9, qword [rcx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007c268
add rcx, 8
add rdx, 8
sub rax, 1
jne 0x18007c1d0
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18007c215
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18007c215
inc rcx
inc rdx
sub r8, 1
jne 0x18007c200
mov r9, rdx
mov r11, qword [rbp + 0x3f]
cmp r9, 4
jb 0x18007c279
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x18007c279
mov qword [rsp + 0x28], r9
mov r10, rax
mov qword [rsp], rax
mov qword [rbp - 0x69], rbx
jmp 0x18007c27d
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007c126
xor r8, r9
tzcnt r9, r8
shr r9, 3
add r9, rdx
jmp 0x18007c218
mov r10, qword [rsp]
mov rax, qword [rbp + 0x37]
mov rdi, qword [rbp + 0x5f]
mov dword [r13 + r12*4], eax
mov r12, rax
mov r13, qword [rsp + 0x10]
test r12b, 3
jne 0x18007c421
cmp r13, 0x20
jb 0x18007c421
mov rbx, qword [rdi + 0x50]
cmp rbx, rax
ja 0x18007c413
lea rsi, [rbx + 0x20]
nop word [rax + rax]
mov r8d, dword [rdi + 0x40]
mov rax, rbx
and rax, qword [rbp + 0x47]
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r11]
mov rax, qword [rbp + 0x47]
inc edx
imul edx, dword [rdi + 0x60]
and rax, rsi
movzx ecx, byte [rax + r11]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18007c402
mov rax, qword [rdi + 0x48]
mov r10d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r12
jne 0x18007c3fe
mov eax, 0xffffffff
cmp r10, rax
je 0x18007c3fe
mov edi, r12d
sub edi, r10d
cmp rdi, r15
ja 0x18007c3fa
and r10, qword [rbp + 0x47]
mov r8, r13
add r10, r11
shr r8, 3
xor ecx, ecx
mov rdx, r14
test r8, r8
je 0x18007c37a
mov r11, r10
sub r11, r14
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r11]
cmp rax, r9
jne 0x18007c3e9
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007c360
mov r8, r13
and r8d, 7
je 0x18007c399
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x18007c399
inc rcx
sub r8, 1
jne 0x18007c386
mov rdx, rcx
mov r11, qword [rbp + 0x3f]
cmp rdx, 4
jb 0x18007c3fa
mov r10, qword [rsp]
cmp rdx, qword [rsp + 0x28]
jbe 0x18007c3e3
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r10
jbe 0x18007c3e3
mov qword [rsp + 0x28], rdx
mov r10, rax
mov qword [rbp - 0x69], rdi
mov qword [rsp], rax
mov dword [rbp - 0x59], 0
mov rdi, qword [rbp + 0x5f]
jmp 0x18007c402
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007c39c
mov rdi, qword [rbp + 0x5f]
mov r10, qword [rsp]
add rbx, 4
add rsi, 4
cmp rbx, r12
jbe 0x18007c2c0
mov r15, qword [rbp + 0x37]
lea rax, [r15 + 4]
mov qword [rdi + 0x50], rax
jmp 0x18007c425
mov r15, qword [rbp + 0x37]
lea r12, [r15 + 1]
mov qword [rsp + 0x70], r12
cmp r10, 0x7e4
jbe 0x18007cde0
mov ecx, dword [rsp + 0x5c]
movdqa xmm2, xmm4
mov rax, qword [rsp + 0x28]
psllq xmm2, 3
mov dword [rsp + 0x58], 0
mov dword [rbp + 0x2f], ecx
mov rdx, qword [rbp + 0x57]
dec r13
mov qword [rsp + 0x10], r13
cmp dword [rdx + 4], 5
jge 0x18007c479
dec rax
mov r9, r13
cmp rax, r13
cmovb r9, rax
jmp 0x18007c47c
xor r9d, r9d
mov r10, qword [rsp + 0x68]
mov r8d, 0x7e4
mov r15, qword [rbp + 0x47]
cmp r12, r10
mov r13, qword [rdi + 0x38]
mov r14, r9
cmovb r10, r12
mov qword [rsp + 0x48], r8
and r15, r12
mov qword [rsp + 0x38], r9
lea rdx, [r15 + r11]
mov qword [rsp + 8], r9
movabs r8, 0xbd1e35a7bd000000
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x30], r10
mov edi, 0x7e4
lea rax, [r15 + r9]
mov qword [rsp + 0x18], rdx
movzx esi, byte [rax + r11]
mov rax, qword [rdx]
imul rax, r8
mov r8, r12
mov dword [rsp + 0x50], 0
shr rax, 0x30
movq xmm0, rax
mov rax, qword [rbp + 0x67]
punpcklqdq xmm0, xmm0
movsxd rbx, dword [rax]
sub r8, rbx
cmp r8, r12
jae 0x18007c5e0
mov eax, ecx
and r8, rax
lea rax, [r9 + r8]
movzx ecx, byte [rax + r11]
cmp esi, ecx
jne 0x18007c5e0
mov rdi, qword [rsp + 0x10]
add r11, r8
mov r8, rdi
xor ecx, ecx
shr r8, 3
test r8, r8
je 0x18007c55e
mov r10, r11
sub r10, rdx
nop
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18007c7db
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007c540
mov r8, rdi
and r8d, 7
je 0x18007c583
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007c583
inc rcx
sub r8, 1
jne 0x18007c570
mov rax, rcx
mov r11, qword [rbp + 0x3f]
mov edi, 0x7e4
mov rdx, qword [rsp + 0x18]
mov r10, qword [rsp + 0x30]
cmp rax, 4
jb 0x18007c5e0
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x18007c5e0
mov qword [rsp + 8], rax
mov r14, rax
mov qword [rsp + 0x38], rax
mov rdi, rcx
add rax, r15
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
movzx esi, byte [rax + r11]
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rbp + 0x2f]
mov rax, r12
mov rbx, qword [rsp + 0x70]
paddq xmm0, xmm2
shr rax, 3
andps xmm0, xmm3
and eax, 1
movdqu xmmword [rbp - 0x31], xmm0
mov r12, qword [rbp + rax*8 - 0x31]
movq rax, xmm0
mov ecx, dword [r13 + rax*4]
and r8, rcx
sub rbx, rcx
lea rax, [r8 + r14]
movzx ecx, byte [rax + r11]
cmp esi, ecx
jne 0x18007c6ef
test rbx, rbx
je 0x18007c6ef
cmp rbx, r10
ja 0x18007c6ef
mov rax, qword [rsp + 0x10]
add r11, r8
mov r8, rax
xor ecx, ecx
shr r8, 3
test r8, r8
je 0x18007c683
mov r10, r11
sub r10, qword [rsp + 0x18]
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18007c7ef
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007c660
mov rax, qword [rsp + 0x10]
mov r8, rax
and r8d, 7
je 0x18007c6a3
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007c6a3
inc rcx
sub r8, 1
jne 0x18007c690
mov rdx, rcx
mov r11, qword [rbp + 0x3f]
cmp rdx, 4
jb 0x18007c6ef
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18007c6ef
lea rax, [rdx + r15]
mov qword [rsp + 8], rdx
movzx esi, byte [rax + r11]
mov r14, rdx
mov qword [rsp + 0x38], rdx
mov rdi, r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rbx
mov edx, dword [rbp + 0x2f]
mov r15, qword [rsp + 0x70]
psrldq xmm0, 8
mov rbx, r15
movq rax, xmm0
mov ecx, dword [r13 + rax*4]
and rdx, rcx
sub rbx, rcx
lea rax, [rdx + r14]
movzx ecx, byte [rax + r11]
cmp esi, ecx
jne 0x18007c814
test rbx, rbx
je 0x18007c814
cmp rbx, qword [rsp + 0x30]
ja 0x18007c814
mov rsi, qword [rsp + 0x10]
add r11, rdx
mov rax, qword [rsp + 0x18]
mov r8, rsi
shr r8, 3
xor edx, edx
mov rcx, rax
test r8, r8
je 0x18007c77e
mov r10, r11
sub r10, rax
nop dword [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x18007c803
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18007c760
mov r8, rsi
and r8d, 7
je 0x18007c79c
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18007c79c
inc rcx
inc rdx
sub r8, 1
jne 0x18007c787
mov r8, rdx
mov r11, qword [rbp + 0x3f]
cmp r8, 4
jb 0x18007c814
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x18007c814
mov r14, r8
mov qword [rsp + 0x38], r8
mov r10, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rbx
jmp 0x18007c81e
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18007c586
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007c6a6
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18007c79f
mov r14, qword [rsp + 8]
mov r10, qword [rsp + 0x48]
mov rdi, qword [rbp + 0x5f]
mov dword [r13 + r12*4], r15d
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x10]
test r12b, 3
jne 0x18007c9c3
cmp r13, 0x20
jb 0x18007c9c3
mov rbx, qword [rdi + 0x50]
cmp rbx, r12
ja 0x18007c9ba
mov r15, qword [rbp + 0x47]
lea rsi, [rbx + 0x20]
nop word [rax + rax]
mov r8d, dword [rdi + 0x40]
mov rax, r15
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r11]
mov rax, r15
and rax, rsi
inc edx
imul edx, dword [rdi + 0x60]
movzx ecx, byte [rax + r11]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18007c9a9
mov rax, qword [rdi + 0x48]
mov r11d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r12
jne 0x18007c99b
mov eax, 0xffffffff
cmp r11, rax
je 0x18007c99b
mov edi, r12d
sub edi, r11d
cmp rdi, qword [rsp + 0x30]
ja 0x18007c9a1
mov rcx, qword [rsp + 0x18]
and r11, r15
add r11, qword [rbp + 0x3f]
mov r8, r13
shr r8, 3
xor eax, eax
mov rdx, rcx
test r8, r8
je 0x18007c91a
mov r10, r11
sub r10, rcx
nop
mov r9, qword [rdx]
mov rcx, qword [rdx + r10]
cmp r9, rcx
jne 0x18007c98a
add rdx, 8
add rax, 8
sub r8, 1
jne 0x18007c900
mov r8, r13
and r8d, 7
je 0x18007c939
sub rdx, rax
movzx ecx, byte [rax + rdx]
cmp byte [rax + r11], cl
jne 0x18007c939
inc rax
sub r8, 1
jne 0x18007c926
mov rdx, rax
mov r10, qword [rsp + 0x48]
cmp rdx, 4
jb 0x18007c9a1
cmp rdx, r14
jbe 0x18007c9a1
mov r11, qword [rbp + 0x3f]
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r10
jbe 0x18007c9a5
mov r14, rdx
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rdi
mov r10, rax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], 0
jmp 0x18007c9a5
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18007c93c
mov r11, qword [rbp + 0x3f]
jmp 0x18007c9a9
mov r11, qword [rbp + 0x3f]
mov rdi, qword [rbp + 0x5f]
add rbx, 4
add rsi, 4
cmp rbx, r12
jbe 0x18007c860
lea rax, [r12 + 4]
mov qword [rdi + 0x50], rax
mov rax, qword [rsp]
mov r15, qword [rbp + 0x37]
add rax, 0xaf
cmp r10, rax
jb 0x18007ca36
mov ecx, dword [rsp + 0x58]
inc r15
movups xmm0, xmmword [rsp + 0x38]
inc qword [rsp + 0x20]
inc ecx
movups xmm1, xmmword [rsp + 0x48]
inc r12
mov qword [rbp + 0x37], r15
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x58], ecx
movups xmmword [rbp - 0x71], xmm0
movups xmmword [rbp - 0x61], xmm1
cmp ecx, 4
jge 0x18007ca30
lea rax, [r12 + 7]
cmp rax, qword [rsp + 0x60]
jae 0x18007ca30
mov rax, qword [rbp - 0x61]
mov ecx, dword [rbp + 0x2f]
mov qword [rsp], rax
mov rax, qword [rbp - 0x71]
mov qword [rsp + 0x28], rax
jmp 0x18007c458
mov r12, qword [rbp - 0x71]
jmp 0x18007ca3b
mov r12, qword [rsp + 0x28]
mov rax, qword [rbp - 0x49]
mov r10, qword [rsp + 0x68]
mov rbx, qword [rbp - 0x69]
lea r11, [rax + r12*2]
mov rax, qword [rbp - 0x41]
add r11, r15
add rax, r15
cmp rax, r10
mov qword [rsp + 0x30], r11
mov r11, qword [rbp + 0x67]
cmovb r10, rax
lea rdx, [r11 + 4]
cmp rbx, r10
ja 0x18007caed
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rbx, rax
jne 0x18007ca8c
xor r8d, r8d
jmp 0x18007caf1
cmp rbx, r9
jne 0x18007ca99
mov r8d, 1
jmp 0x18007caf1
cmp r8, 7
jae 0x18007cab5
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18007caf1
cmp rcx, 7
jae 0x18007cacd
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18007caf1
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x18007cade
mov r8d, 2
jmp 0x18007caf1
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18007caf1
lea r8, [rbx + 0xf]
cmp rbx, r10
ja 0x18007cb11
test r8, r8
je 0x18007cb11
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [rdx], eax
mov dword [r11], ebx
mov r11, qword [rbp + 0x77]
mov esi, dword [rbp - 0x59]
mov rcx, qword [rbp + 0x57]
mov r13, qword [rsp + 0x20]
movzx eax, sil
shl eax, 0x19
or eax, r12d
mov dword [r11], r13d
mov dword [r11 + 4], eax
mov r14d, dword [rcx + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x18007cb43
xor edi, edi
jmp 0x18007cbbb
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rbp + 0x77]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea edx, [r12 + rsi]
mov eax, 0x3ff
mov dword [r11 + 8], edi
and r8w, ax
movsxd r9, edx
cmp r13, 6
jae 0x18007cbe5
movzx r10d, r13w
mov eax, 0x17
jmp 0x18007cc57
cmp r13, 0x82
jae 0x18007cc0f
lea eax, [r13 - 2]
bsr ecx, eax
lea r10, [r13 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18007cc57
cmp r13, 0x842
jae 0x18007cc2c
lea eax, [r13 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18007cc57
mov eax, 0x17
cmp r13, 0x1842
jae 0x18007cc42
mov r10d, 0x15
jmp 0x18007cc57
cmp r13, 0x5842
jae 0x18007cc53
mov r10d, 0x16
jmp 0x18007cc57
movzx r10d, ax
cmp r9, 0xa
jae 0x18007cc64
sub r9w, 2
jmp 0x18007cca4
cmp r9, 0x86
jae 0x18007cc89
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18007cca4
cmp r9, 0x846
jae 0x18007cca0
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18007cca4
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18007ccdc
cmp r10w, 8
jae 0x18007ccdc
cmp r9w, 0x10
jae 0x18007ccdc
cmp r9w, 8
jb 0x18007cd10
or dx, 0x40
jmp 0x18007cd10
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x87]
xor r10d, r10d
mov r8, qword [rbp - 0x51]
mov word [r11 + 0xc], dx
add r11, 0x10
mov qword [rbp + 0x77], r11
lea rdx, [r15 + 2]
add qword [rax], r13
lea rax, [r12 + r15]
cmp rax, r8
mov qword [rsp + 0x20], r10
cmovb r8, rax
mov rax, r12
shr rax, 2
cmp rbx, rax
jae 0x18007cd77
lea rax, [rbx*4]
mov rcx, r12
sub rcx, rax
lea rax, [rcx + r15]
cmp rdx, rax
mov eax, 2
cmova rcx, rax
lea rdx, [r15 + rcx]
cmp r8, rdx
cmovb rdx, r8
mov rbx, qword [rbp + 0x5f]
cmp rdx, r8
jae 0x18007cdd4
mov r9, qword [rbp + 0x3f]
movabs r15, 0xbd1e35a7bd000000
mov r10, qword [rbp + 0x47]
nop dword [rax]
nop word [rax + rax]
mov rax, rdx
and rax, r10
mov rcx, qword [rax + r9]
mov eax, edx
imul rcx, r15
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rbx + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18007cda0
mov r15, qword [rbp + 0x37]
mov r10, qword [rsp + 0x20]
add r15, r12
mov qword [rbp + 0x37], r15
jmp 0x18007cf27
mov r10, qword [rsp + 0x20]
mov r15, r12
mov r11, qword [rsp + 0x30]
inc r10
mov qword [rsp + 0x20], r10
mov qword [rbp + 0x37], r12
cmp r12, r11
jbe 0x18007cf23
mov rax, qword [rbp - 0x49]
mov rdx, qword [rsp + 0x60]
mov r9, qword [rbp + 0x47]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
mov r11, qword [rbp + 0x3f]
cmp r12, rax
jbe 0x18007cea0
lea rax, [r12 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r12, rdx
jae 0x18007cf1d
add r10, 4
mov rax, rdx
sub rax, r12
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x20], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
mov rax, r9
and rax, r15
mov rcx, qword [rax + r11]
mov eax, r15d
imul rcx, r10
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rdi + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r15d
add r15, 4
cmp r15, rdx
jb 0x18007ce60
mov rbx, qword [rbp + 0x5f]
mov r10, qword [rsp + 0x20]
mov qword [rbp + 0x37], r15
jmp 0x18007cf2f
lea rax, [r12 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r12, rdx
jae 0x18007cf1d
add r10, 2
mov rax, rdx
sub rax, r12
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x20], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
nop dword [rax + rax]
mov rax, r9
and rax, r15
mov rcx, qword [rax + r11]
mov eax, r15d
imul rcx, r10
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rdi + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r15d
add r15, 2
cmp r15, rdx
jb 0x18007cee0
mov rbx, qword [rbp + 0x5f]
mov r10, qword [rsp + 0x20]
mov qword [rbp + 0x37], r15
jmp 0x18007cf2f
mov rbx, qword [rbp + 0x5f]
jmp 0x18007cf2f
mov rbx, qword [rbp + 0x5f]
mov r9, qword [rbp + 0x47]
mov r11, qword [rbp + 0x3f]
mov rdx, qword [rsp + 0x60]
lea rax, [r15 + 8]
mov r8, qword [rsp + 0x68]
movabs rcx, 0xbd1e35a7bd000000
cmp rax, rdx
jb 0x18007bf10
mov r14, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x6f]
sub rdx, r15
sub rcx, qword [rbp - 0x39]
add rdx, r10
sar rcx, 4
mov qword [rax], rdx
mov rax, qword [rbp + 0x7f]
add qword [rax], rcx
add rsp, 0xf8
pop r15
pop rdi
pop rbx
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov rax, qword [0x180c47f80]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r10, qword [rbp + 0xd8]
mov rax, rcx
mov rcx, qword [rbp + 0xe8]
mov r11, rdx
mov rsi, qword [rbp + 0xc0]
mov rdi, r9
mov r15, qword [rbp + 0xe0]
mov rbx, r8
mov r8, qword [rbp + 0xc8]
mov r13d, 1
mov qword [rsp + 0x18], r9
lea r14, [r11 + rax]
mov r9, qword [rbp + 0xd0]
mov qword [rbp - 0x30], rcx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rbp + 0xb8]
mov qword [rbp - 0x20], r9
mov r9, qword [r9]
mov qword [rsp], rbx
mov ecx, dword [rdx + 8]
shl r13, cl
mov rcx, qword [rdx + 0x10]
sub r13, 0x10
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], r10
mov qword [rbp - 0x28], r15
mov qword [rsp + 0x58], r13
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x18], r10
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x78], r14
cmp rax, 8
jb 0x18007d074
lea rax, [r14 - 7]
mov qword [rbp - 0x50], rax
jmp 0x18007d078
mov qword [rbp - 0x50], r11
cmp dword [rdx + 4], 9
mov eax, 0x200
mov r12d, 0x40
cmovl eax, r12d
mov qword [rbp - 0x48], rax
add rax, r11
mov qword [rsp + 0x60], rax
lea rax, [r11 + 8]
cmp rax, r14
jae 0x18007e522
movdqa xmm2, xmmword [0x180b80a40]
movdqa xmm3, xmmword [0x180b80a60]
nop dword [rax]
nop dword [rax + rax]
lea rax, [r11 + rcx]
mov qword [rsp + 0x28], 0x7e4
mov r9, r14
mov r15, r13
sub r9, r11
mov rcx, r13
cmp r11, r13
mov qword [rsp + 8], r9
mov r14, rdi
cmovb r15, r11
cmp rax, r13
mov r13, qword [rsp + 0x30]
cmovb rcx, rax
mov rax, qword [rdx + 0x50]
mov rdx, qword [rsp]
xor r10d, r10d
and r14, r11
mov qword [rsp + 0x50], rcx
movsxd r11, dword [r8]
lea r12, [rbx + r14]
movzx edi, byte [r12]
movabs rcx, 0xbd1e35a7bd000000
mov r8, qword [rsp + 0x18]
mov ebx, 0x7e4
mov qword [rbp - 0x78], rax
mov rax, qword [r12]
imul rax, rcx
mov qword [rsp + 0x20], r10
mov rcx, r13
shr rax, 0x2f
sub rcx, r11
mov qword [rbp - 0x68], r10
mov r10, qword [rsi + 0x38]
xor esi, esi
mov qword [rsp + 0x40], r10
mov dword [rbp - 0x58], esi
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, r13
jae 0x18007d236
mov r10d, r8d
and r10, rcx
add r10, rdx
movzx eax, byte [r10]
cmp edi, eax
jne 0x18007d231
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007d1af
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007d21b
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007d190
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d1d3
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18007d1d3
inc rcx
sub r8, 1
jne 0x18007d1c0
mov rax, rcx
mov rdx, qword [rsp]
mov r10, qword [rsp + 0x40]
mov r8, qword [rsp + 0x18]
cmp rax, 4
jb 0x18007d236
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rbx
jbe 0x18007d236
mov qword [rsp + 0x20], rax
mov rsi, rax
add rax, rdx
mov qword [rbp - 0x68], r11
mov qword [rsp + 0x28], rcx
mov rbx, rcx
movzx edi, byte [rax + r14]
jmp 0x18007d236
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x18007d1d6
mov r10, qword [rsp + 0x40]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8 - 0x10], xmm0
add rax, 2
cmp rax, 4
jb 0x18007d240
mov r11, qword [rsp + 0x30]
mov rax, r13
shr rax, 3
and eax, 3
mov r13, qword [rbp + rax*8 - 0x10]
mov rax, qword [rbp - 0x10]
mov ecx, dword [r10 + rax*4]
mov r10d, r8d
sub r11, rcx
and r10, rcx
add r10, rdx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x18007d359
test r11, r11
je 0x18007d359
cmp r11, r15
ja 0x18007d359
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007d2f3
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007d5f1
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007d2d0
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d313
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18007d313
inc rcx
sub r8, 1
jne 0x18007d300
mov rdx, rcx
cmp rdx, 4
jb 0x18007d359
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18007d359
mov rax, qword [rsp]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov rbx, r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x68], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp - 8]
mov rcx, qword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x18]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x18007d43b
test r11, r11
je 0x18007d43b
cmp r11, r15
ja 0x18007d43b
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007d3d3
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007d60a
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007d3b0
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d3f5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18007d3f5
inc rdx
inc rcx
sub r8, 1
jne 0x18007d3e0
mov rdx, rcx
cmp rdx, 4
jb 0x18007d43b
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18007d43b
mov rax, qword [rsp]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov rbx, r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x68], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp]
mov rcx, qword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x18]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x18007d51b
test r11, r11
je 0x18007d51b
cmp r11, r15
ja 0x18007d51b
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007d4b3
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007d623
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007d490
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d4d5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18007d4d5
inc rdx
inc rcx
sub r8, 1
jne 0x18007d4c0
mov rdx, rcx
cmp rdx, 4
jb 0x18007d51b
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18007d51b
mov rax, qword [rsp]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov rbx, r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x68], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp + 8]
mov rcx, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x18]
mov r14, qword [rsp]
mov r11, qword [rsp + 0x30]
mov ecx, dword [rcx + rax*4]
and r10, rcx
sub r11, rcx
add r10, r14
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x18007d655
test r11, r11
je 0x18007d655
cmp r11, r15
ja 0x18007d655
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x18007d593
nop
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18007d63c
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18007d570
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d5b5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18007d5b5
inc rdx
inc rcx
sub r8, 1
jne 0x18007d5a0
mov rdx, rcx
cmp rdx, 4
jb 0x18007d655
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rbx, rax
jae 0x18007d655
mov qword [rsp + 0x20], rdx
mov r15, rax
mov qword [rsp + 0x28], rax
mov qword [rbp - 0x68], r11
jmp 0x18007d65a
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18007d316
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18007d3f8
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18007d4d8
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18007d5b8
mov r15, qword [rsp + 0x28]
mov r8, qword [rsp + 0x10]
mov r10, qword [rsp + 0x38]
cmp r15, 0x7e4
jne 0x18007d809
mov rbx, qword [r8 + 0x30]
mov rdx, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
mov rax, rdx
shr rax, 7
cmp r14, rax
jb 0x18007d805
imul ecx, dword [r12], 0x1e35a7bd
lea rax, [rdx + 1]
mov qword [rbx + 8], rax
mov rax, qword [r10 + 0x78]
shr rcx, 0x11
and ecx, 0x7ffe
movzx edx, byte [rcx + rax]
test dl, dl
je 0x18007d805
mov rax, qword [r10 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, r9
ja 0x18007d805
mov rdi, qword [r10 + 0x58]
mov eax, r11d
imul rax, rsi
mov edx, dword [rdi + rdx*4 + 0x20]
mov r8d, r11d
xor ecx, ecx
shr r8, 3
add rdx, rax
add rdx, qword [rdi + 0xa8]
test r8, r8
je 0x18007d723
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18007d7e7
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007d700
mov r10, qword [rsp + 0x38]
mov r8, r11
and r8d, 7
je 0x18007d743
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x18007d743
inc rcx
sub r8, 1
jne 0x18007d730
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007d800
test r9, r9
je 0x18007d800
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r10 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rsp + 0x50]
shl rax, cl
inc rdx
add rax, rsi
add rdx, rax
cmp rdx, qword [rbp - 0x78]
ja 0x18007d800
mov r8, qword [rsp + 0x10]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r15
jb 0x18007d805
mov qword [rsp + 0x28], rax
mov rcx, r9
mov r15, qword [rsp + 0x28]
lea rax, [r14 + 1]
mov r14, qword [rsp]
sub r11d, r9d
mov qword [rbx + 0x10], rax
mov qword [rsp + 0x20], rcx
mov dword [rbp - 0x58], r11d
mov qword [rbp - 0x68], rdx
jmp 0x18007d80e
mov r10, qword [rsp + 0x38]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007d746
mov r8, qword [rsp + 0x10]
mov r14, qword [rsp]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov dword [rax + r13*4], r11d
cmp r15, 0x7e4
jbe 0x18007e3b7
mov r9, qword [rsp + 8]
xor edi, edi
mov dword [rsp + 0x40], edi
dec r9
cmp dword [r10 + 4], 5
mov qword [rsp + 8], r9
jge 0x18007d853
lea rax, [rcx - 1]
mov rbx, r9
cmp rax, r9
cmovb rbx, rax
jmp 0x18007d856
mov rbx, rdi
mov rdx, qword [rsp + 0x58]
lea r10, [r11 + 1]
mov rax, qword [rbp - 0x80]
cmp r10, rdx
mov r15, rdx
mov qword [rbp - 8], rdi
cmovb r15, r10
mov dword [rbp + 8], edi
inc rax
mov qword [rbp - 0x10], rbx
add rax, r11
mov qword [rsp + 0x50], r10
cmp rax, rdx
mov rcx, rdx
mov rdx, qword [rsp + 0x38]
mov r12d, 0x7e4
cmovb rcx, rax
mov qword [rbp], r12
mov qword [rbp - 0x78], rcx
mov edi, r12d
movabs rcx, 0xbd1e35a7bd000000
mov rax, qword [rdx + 0x50]
mov rdx, qword [rsp]
mov qword [rbp - 0x40], rax
mov rax, qword [r8 + 0x38]
mov r8, qword [rsp + 0x18]
mov qword [rsp + 0x60], rax
mov r14, r8
and r14, r10
mov rax, qword [rdx + r14]
lea r13, [rdx + r14]
movzx esi, byte [rbx + r13]
imul rax, rcx
mov rcx, r10
shr rax, 0x2f
movq xmm1, rax
mov rax, qword [rsp + 0x68]
punpcklqdq xmm1, xmm1
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, r10
jae 0x18007d9d2
mov r10d, r8d
and r10, rcx
add r10, rdx
movzx eax, byte [r10 + rbx]
cmp esi, eax
jne 0x18007d9cd
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18007d94f
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18007d9b7
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007d930
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007d973
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18007d973
inc rcx
sub r8, 1
jne 0x18007d960
mov rax, rcx
mov r8, qword [rsp]
mov r10, qword [rsp + 0x50]
cmp rax, 4
jb 0x18007d9d5
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x18007d9d5
mov qword [rbp - 0x10], rax
mov rbx, rax
add rax, r8
mov qword [rbp - 8], r11
mov r12, rcx
mov qword [rbp], rcx
mov rdi, rcx
movzx esi, byte [rax + r14]
jmp 0x18007d9d5
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18007d976
mov r10, qword [rsp + 0x50]
mov r8, rdx
xor eax, eax
nop word [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8 + 0x10], xmm0
add rax, 2
cmp rax, 4
jb 0x18007d9e0
mov rdx, qword [rsp + 0x60]
mov rax, r10
shr rax, 3
mov r11, r10
mov r10d, dword [rsp + 0x18]
and eax, 3
mov rcx, qword [rbp + rax*8 + 0x10]
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x38], rcx
mov ecx, dword [rdx + rax*4]
and r10, rcx
sub r11, rcx
add r10, r8
movzx eax, byte [r10 + rbx]
cmp esi, eax
jne 0x18007dafa
test r11, r11
je 0x18007dafa
cmp r11, r15
ja 0x18007dafa
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18007da93
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18007df16
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007da70
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007dab3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18007dab3
inc rcx
sub r8, 1
jne 0x18007daa0
mov rdx, rcx
cmp rdx, 4
jb 0x18007dafa
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18007dafa
mov rax, qword [rsp]
mov rbx, rdx
add rax, rdx
mov qword [rbp - 0x10], rdx
mov rdi, r8
mov qword [rbp], r8
mov r12, r8
mov qword [rbp - 8], r11
movzx esi, byte [rax + r14]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rsp + 0x60]
mov r10, qword [rsp]
mov r11, qword [rsp + 0x50]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x18]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rbx]
cmp esi, eax
jne 0x18007dbdc
test r11, r11
je 0x18007dbdc
cmp r11, r15
ja 0x18007dbdc
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18007db73
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18007df2f
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007db50
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007db95
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18007db95
inc rdx
inc rcx
sub r8, 1
jne 0x18007db80
mov rdx, rcx
cmp rdx, 4
jb 0x18007dbdc
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18007dbdc
mov rax, qword [rsp]
mov rbx, rdx
add rax, rdx
mov qword [rbp - 0x10], rdx
mov rdi, r8
mov qword [rbp], r8
mov r12, r8
mov qword [rbp - 8], r11
movzx esi, byte [rax + r14]
mov rax, qword [rbp + 0x20]
mov rcx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x18]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rbx]
cmp esi, eax
jne 0x18007dcbc
test r11, r11
je 0x18007dcbc
cmp r11, r15
ja 0x18007dcbc
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18007dc53
nop
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18007df48
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007dc30
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007dc75
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18007dc75
inc rdx
inc rcx
sub r8, 1
jne 0x18007dc60
mov rdx, rcx
cmp rdx, 4
jb 0x18007dcbc
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18007dcbc
mov rax, qword [rsp]
mov rbx, rdx
add rax, rdx
mov qword [rbp - 0x10], rdx
mov rdi, r8
mov qword [rbp], r8
mov r12, r8
mov qword [rbp - 8], r11
movzx esi, byte [rax + r14]
mov rax, qword [rbp + 0x28]
mov rcx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x18]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rbx]
cmp esi, eax
jne 0x18007dd89
test r11, r11
je 0x18007dd89
cmp r11, r15
ja 0x18007dd89
mov rcx, r9
xor eax, eax
shr rcx, 3
mov rdx, r13
test rcx, rcx
je 0x18007dd33
nop
mov r9, qword [rdx]
mov r8, qword [rax + r10]
cmp r9, r8
jne 0x18007df61
add rdx, 8
add rax, 8
sub rcx, 1
jne 0x18007dd10
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18007dd55
nop dword [rax]
movzx ecx, byte [rdx]
cmp byte [rax + r10], cl
jne 0x18007dd55
inc rdx
inc rax
sub r8, 1
jne 0x18007dd40
mov rdx, rax
cmp rdx, 4
jb 0x18007dd89
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x18007dd89
mov qword [rbp - 0x10], rdx
mov r12, rax
mov qword [rbp], rax
mov qword [rbp - 8], r11
mov r8, qword [rsp + 0x10]
mov r10, qword [rsp + 0x38]
cmp r12, 0x7e4
jne 0x18007df98
mov rbx, qword [r8 + 0x30]
mov rdx, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
mov rax, rdx
shr rax, 7
cmp r14, rax
jb 0x18007df98
imul ecx, dword [r13], 0x1e35a7bd
lea rax, [rdx + 1]
mov qword [rbx + 8], rax
mov rax, qword [r10 + 0x78]
shr rcx, 0x11
and ecx, 0x7ffe
movzx edx, byte [rcx + rax]
test dl, dl
je 0x18007df98
mov rax, qword [r10 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, r9
ja 0x18007df98
mov rdi, qword [r10 + 0x58]
mov eax, r11d
imul rax, rsi
mov edx, dword [rdi + rdx*4 + 0x20]
mov r8d, r11d
xor ecx, ecx
shr r8, 3
add rdx, rax
add rdx, qword [rdi + 0xa8]
test r8, r8
je 0x18007de53
mov r10, r13
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18007df7a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007de30
mov r10, qword [rsp + 0x38]
mov r8, r11
and r8d, 7
je 0x18007de73
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r13], al
jne 0x18007de73
inc rcx
sub r8, 1
jne 0x18007de60
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007df93
test r9, r9
je 0x18007df93
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r10 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rdi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rbp - 0x78]
shl rax, cl
inc rdx
add rax, rsi
add rdx, rax
cmp rdx, qword [rbp - 0x40]
ja 0x18007df93
mov r8, qword [rsp + 0x10]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r12
jb 0x18007df98
mov r12, rax
mov qword [rbp], rax
lea rax, [r14 + 1]
mov qword [rbp - 0x10], r9
sub r11d, r9d
mov qword [rbx + 0x10], rax
mov dword [rbp + 8], r11d
mov qword [rbp - 8], rdx
jmp 0x18007df98
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007dab6
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007db98
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007dc78
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rdx, r8
shr rdx, 3
add rdx, rax
jmp 0x18007dd58
mov r10, qword [rsp + 0x38]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007de76
mov r8, qword [rsp + 0x10]
mov rax, qword [rbp - 0x38]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
mov dword [rdx + rax*4], ecx
mov rax, qword [rsp + 0x28]
add rax, 0xaf
cmp r12, rax
mov r12, qword [rsp + 0x48]
jb 0x18007e01f
movups xmm0, xmmword [rbp - 0x10]
mov r11, rcx
mov qword [rsp + 0x30], rcx
mov ecx, dword [rsp + 0x40]
inc r12
movups xmm1, xmmword [rbp]
inc ecx
mov qword [rsp + 0x48], r12
mov dword [rsp + 0x40], ecx
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm1
cmp ecx, 4
jge 0x18007e019
lea rax, [r11 + 8]
cmp rax, qword [rsp + 0x78]
jae 0x18007e019
mov r9, qword [rsp + 8]
mov rax, qword [rbp - 0x60]
dec r9
mov rcx, qword [rbp - 0x70]
xor edi, edi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
jmp 0x18007d837
mov r15, qword [rbp - 0x70]
jmp 0x18007e029
mov r11, qword [rsp + 0x30]
mov r15, qword [rsp + 0x20]
mov rax, qword [rbp - 0x80]
lea r13, [r11 + r15*2]
add r13, qword [rbp - 0x48]
add rax, r11
mov rbx, qword [rbp - 0x68]
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x60], r13
mov r13, qword [rsp + 0x58]
cmp rax, r13
mov r9, r13
cmovb r9, rax
cmp rbx, r9
ja 0x18007e0d8
movsxd rax, dword [rdi]
lea rcx, [rbx + 3]
movsxd r8, dword [rdi + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x18007e078
xor r8d, r8d
jmp 0x18007e0dc
cmp rbx, r8
jne 0x18007e085
mov r8d, 1
jmp 0x18007e0dc
cmp rdx, 7
jae 0x18007e0a0
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18007e0dc
cmp rcx, 7
jae 0x18007e0b8
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18007e0dc
movsxd rax, dword [rdi + 8]
cmp rbx, rax
jne 0x18007e0c9
mov r8d, 2
jmp 0x18007e0dc
movsxd rax, dword [rdi + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18007e0dc
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18007e0f9
test r8, r8
je 0x18007e0f9
mov eax, dword [rdi + 8]
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 4]
mov dword [rdi + 8], eax
mov eax, dword [rdi]
mov dword [rdi + 4], eax
mov dword [rdi], ebx
mov rcx, qword [rsp + 0x70]
mov esi, dword [rbp - 0x58]
movzx eax, sil
shl eax, 0x19
or eax, r15d
mov dword [rcx], r12d
mov dword [rcx + 4], eax
mov r14d, dword [r10 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x18007e122
xor edi, edi
jmp 0x18007e19b
mov r11d, dword [r10 + 0x40]
add r8, 0xfffffffffffffff0
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x30]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov r14, qword [rsp + 0x70]
lea edx, [r15 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r14 + 0xe], r8w
and r8w, ax
mov dword [r14 + 8], edi
cmp r12, 6
jae 0x18007e1ca
movzx r10d, r12w
mov eax, 0x17
jmp 0x18007e23f
cmp r12, 0x82
jae 0x18007e1f6
lea eax, [r12 - 2]
bsr ecx, eax
lea r10, [r12 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18007e23f
cmp r12, 0x842
jae 0x18007e214
lea eax, [r12 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18007e23f
mov eax, 0x17
cmp r12, 0x1842
jae 0x18007e22a
mov r10d, 0x15
jmp 0x18007e23f
cmp r12, 0x5842
jae 0x18007e23b
mov r10d, 0x16
jmp 0x18007e23f
movzx r10d, ax
cmp r9, 0xa
jae 0x18007e24c
sub r9w, 2
jmp 0x18007e28c
cmp r9, 0x86
jae 0x18007e271
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18007e28c
cmp r9, 0x846
jae 0x18007e288
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18007e28c
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18007e2c4
cmp r10w, 8
jae 0x18007e2c4
cmp r9w, 0x10
jae 0x18007e2c4
cmp r9w, 8
jb 0x18007e2f8
or dx, 0x40
jmp 0x18007e2f8
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp - 0x30]
xor r9d, r9d
mov r8, qword [rbp - 0x50]
mov word [r14 + 0xc], dx
add r14, 0x10
mov qword [rsp + 0x70], r14
lea rdx, [r11 + 2]
add qword [rax], r12
lea rax, [r11 + r15]
cmp rax, r8
mov qword [rsp + 0x48], r9
cmovb r8, rax
mov rax, r15
shr rax, 2
cmp rbx, rax
jae 0x18007e356
lea rax, [rbx*4]
mov rcx, r11
sub rcx, rax
add rcx, r15
cmp rdx, rcx
cmova rcx, rdx
cmp r8, rcx
mov rdx, rcx
cmovb rdx, r8
mov rsi, qword [rsp + 0x10]
cmp rdx, r8
jae 0x18007e3aa
mov r11, qword [rsp]
movabs r13, 0xbd1e35a7bd000000
nop
mov rax, qword [rsp + 0x18]
and rax, rdx
mov rcx, qword [rax + r11]
mov eax, edx
imul rcx, r13
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [rsi + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18007e370
mov r11, qword [rsp + 0x30]
mov r13, qword [rsp + 0x58]
add r11, r15
mov qword [rsp + 0x30], r11
jmp 0x18007e4f0
mov r9, qword [rsp + 0x48]
inc r11
mov r13, qword [rsp + 0x60]
inc r9
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x30], r11
cmp r11, r13
jbe 0x18007e4e6
mov rax, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x18]
add rdx, 0xfffffffffffffff9
lea rax, [rax*4]
add rax, r13
cmp r11, rax
jbe 0x18007e477
lea rax, [r11 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r11, rdx
jae 0x18007e46b
add r9, 4
mov rax, rdx
sub rax, r11
dec rax
and rax, 0xfffffffffffffffc
add r9, rax
mov qword [rsp + 0x48], r9
movabs r9, 0xbd1e35a7bd000000
nop
mov rax, rdi
and rax, r11
mov rcx, qword [rax + r14]
mov eax, r11d
imul rcx, r9
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [r8 + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], r11d
add r11, 4
cmp r11, rdx
jb 0x18007e430
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0x30], r11
mov rsi, qword [rsp + 0x10]
mov r13, qword [rsp + 0x58]
jmp 0x18007e4f5
lea rax, [r11 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r11, rdx
jae 0x18007e46b
add r9, 2
mov rax, rdx
sub rax, r11
dec rax
and rax, 0xfffffffffffffffe
add r9, rax
mov qword [rsp + 0x48], r9
movabs r9, 0xbd1e35a7bd000000
nop word [rax + rax]
mov rax, rdi
and rax, r11
mov rcx, qword [rax + r14]
mov eax, r11d
imul rcx, r9
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [r8 + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], r11d
add r11, 2
cmp r11, rdx
jb 0x18007e4b0
jmp 0x18007e461
mov rsi, qword [rsp + 0x10]
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x18]
mov r14, qword [rsp + 0x78]
lea rax, [r11 + 8]
mov rbx, qword [rsp]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x80]
cmp rax, r14
jb 0x18007d0c0
mov r10, qword [rsp + 0x70]
mov r15, qword [rbp - 0x28]
sub r10, qword [rbp - 0x18]
sub r14, r11
mov rax, qword [rbp - 0x20]
add r14, r9
sar r10, 4
mov qword [rax], r14
add qword [r15], r10
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1800b22c0
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xd8
mov r15, qword [rbp + 0x67]
mov r14, rdx
mov rdi, qword [rbp + 0x7f]
mov rax, rcx
mov edx, 1
mov r10, r9
mov ecx, dword [r15 + 8]
mov r11, qword [r15 + 0x10]
lea r12, [rax + r14]
mov rdi, qword [rdi]
shl rdx, cl
mov rcx, qword [rbp + 0x87]
sub rdx, 0x10
mov qword [rbp - 0x41], rdx
mov r9, rcx
mov qword [rbp - 0x39], r11
mov qword [rbp - 0x19], rcx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r12
cmp rax, 4
jb 0x18007e5e1
lea rax, [r12 - 3]
mov qword [rbp - 0x29], rax
jmp 0x18007e5e5
mov qword [rbp - 0x29], r14
cmp dword [r15 + 4], 9
mov eax, 0x200
mov ebx, 0x40
cmovl eax, ebx
mov qword [rbp - 0x21], rax
add rax, r14
mov qword [rbp - 0x71], rax
lea rax, [r14 + 4]
cmp rax, r12
jae 0x18007feb1
mov r12, qword [rbp + 0x6f]
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xc8], r13
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [r12 + 0x40]
lea rax, [r11 + r14]
mov r9, qword [rsp + 0x50]
mov rdi, rdx
mov r11, qword [rbp + 0x47]
sub r9, r14
cmp r14, rdx
mov qword [rsp], r9
mov rcx, rdx
mov qword [rbp - 0x59], 0
cmovb rdi, r14
mov qword [rsp + 8], 0x7e4
cmp rax, rdx
mov qword [rbp - 0x69], rdi
mov qword [rsp + 0x10], rsi
cmovb rcx, rax
mov rax, qword [r15 + 0x50]
mov qword [rbp - 0x79], rax
xor r12d, r12d
mov rax, r14
mov qword [rbp + 0x3f], rcx
and rax, r10
xor ecx, ecx
imul r14d, dword [rax + r8], 0x1e35a7bd
lea r13, [rax + r8]
mov qword [rsp + 0x48], rax
mov r15d, 0x7e4
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x18], rcx
mov dword [rbp - 0x49], ecx
shr r14, 0x11
movsxd rbx, dword [rax]
sub r11, rbx
mov qword [rbp - 0x31], r14
cmp r11, qword [rbp + 0x47]
jae 0x18007e766
cmp rbx, rdi
ja 0x18007e766
and r11, r10
mov rdx, r13
add r11, r8
mov r8, r9
shr r8, 3
test r8, r8
je 0x18007e712
mov r10, r11
sub r10, r13
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18007e9fe
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007e6f0
mov r9, qword [rsp]
mov r8, r9
and r8d, 7
je 0x18007e733
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007e733
inc rcx
sub r8, 1
jne 0x18007e720
mov rdx, rcx
mov r8, qword [rbp + 0x4f]
cmp rdx, 2
jb 0x18007e766
imul rax, rdx, 0x87
add rax, 0x78f
cmp rax, r15
jbe 0x18007e766
mov r15, rax
mov qword [rsp + 0x18], rdx
mov r12, rdx
mov qword [rbp - 0x59], rbx
mov qword [rsp + 8], rax
mov rax, qword [rbp + 0x77]
mov r11, qword [rbp + 0x47]
mov r10, r11
movsxd rbx, dword [rax + 4]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007e83d
cmp r10, r11
jae 0x18007e83d
cmp rbx, rdi
ja 0x18007e83d
and r10, qword [rbp + 0x57]
xor edx, edx
add r10, r8
mov rcx, r13
mov r8, r9
shr r8, 3
test r8, r8
je 0x18007e7e2
mov r11, r10
sub r11, r13
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r11]
cmp r9, rax
jne 0x18007ea16
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18007e7c0
mov r9, qword [rsp]
mov r8, r9
and r8d, 7
je 0x18007e805
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18007e805
inc rcx
inc rdx
sub r8, 1
jne 0x18007e7f0
mov rcx, rdx
cmp rcx, 2
jb 0x18007e83d
imul rax, rcx, 0x87
add rax, 0x78f
cmp r15, rax
jae 0x18007e83d
add rax, 0xffffffffffffffd9
cmp r15, rax
jae 0x18007e83d
mov r15, rax
mov qword [rsp + 0x18], rcx
mov r12, rcx
mov qword [rbp - 0x59], rbx
mov qword [rsp + 8], rax
mov rax, qword [rbp + 0x77]
mov r10, qword [rbp + 0x47]
movsxd rbx, dword [rax + 8]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007e911
cmp r10, qword [rbp + 0x47]
jae 0x18007e911
cmp rbx, rdi
ja 0x18007e911
and r10, qword [rbp + 0x57]
mov r8, r9
add r10, qword [rbp + 0x4f]
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x18007e8b2
mov r11, r10
sub r11, r13
mov r9, qword [rcx]
mov rax, qword [rcx + r11]
cmp r9, rax
jne 0x18007ea2e
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18007e890
mov r9, qword [rsp]
mov r8, r9
and r8d, 7
je 0x18007e8d5
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18007e8d5
inc rcx
inc rdx
sub r8, 1
jne 0x18007e8c0
mov rcx, rdx
cmp rcx, 2
jb 0x18007e911
imul rdx, rcx, 0x87
lea rax, [rdx + 0x78f]
cmp r15, rax
jae 0x18007e911
lea rax, [rdx + 0x764]
cmp r15, rax
jae 0x18007e911
mov r15, rax
mov qword [rsp + 0x18], rcx
mov r12, rcx
mov qword [rbp - 0x59], rbx
mov qword [rsp + 8], rax
mov rax, qword [rbp + 0x77]
mov r10, qword [rbp + 0x47]
movsxd rbx, dword [rax + 0xc]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007ea5e
cmp r10, qword [rbp + 0x47]
jae 0x18007ea5e
cmp rbx, rdi
ja 0x18007ea5e
and r10, qword [rbp + 0x57]
mov r8, r9
add r10, qword [rbp + 0x4f]
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x18007e992
mov r11, r10
sub r11, r13
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r11]
cmp r9, rax
jne 0x18007ea46
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18007e970
mov r9, qword [rsp]
mov r8, r9
and r8d, 7
je 0x18007e9b5
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18007e9b5
inc rcx
inc rdx
sub r8, 1
jne 0x18007e9a0
mov rcx, rdx
cmp rcx, 2
jb 0x18007ea5e
imul rdx, rcx, 0x87
lea rax, [rdx + 0x78f]
cmp r15, rax
jae 0x18007ea5e
lea rax, [rdx + 0x764]
cmp r15, rax
jae 0x18007ea5e
mov r15, rax
mov qword [rsp + 0x18], rcx
mov r12, rcx
mov qword [rbp - 0x59], rbx
mov r11, rax
mov qword [rsp + 8], rax
jmp 0x18007ea63
xor rax, r9
mov r9, qword [rsp]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007e736
xor rax, r9
mov r9, qword [rsp]
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007e808
xor rax, r9
mov r9, qword [rsp]
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007e8d8
xor rax, r9
mov r9, qword [rsp]
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007e9b8
mov r11, qword [rsp + 8]
mov rsi, qword [rbp + 0x6f]
xor ebx, ebx
mov r10, qword [rsp + 0x10]
mov rdi, qword [rsi + 0x38]
mov eax, dword [r10 + r14*4]
mov rsi, qword [rbp + 0x47]
movzx r14d, word [r10 + r14*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x18007ebb8
nop
dec rdi
add rbx, rsi
cmp rbx, qword [rbp - 0x69]
ja 0x18007ebb8
mov r8, qword [rbp + 0x57]
lea rax, [r10 + r14*4]
mov rcx, qword [rbp + 0x47]
mov rdx, qword [rsp + 0x48]
sub rcx, rbx
movzx r14d, word [rax + 0x40002]
and rcx, r8
movzx esi, word [rax + 0x40000]
add rdx, r12
cmp rdx, r8
ja 0x18007ebaf
lea rax, [rcx + r12]
cmp rax, r8
ja 0x18007ebaf
mov r8, qword [rbp + 0x4f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
jne 0x18007ebaf
lea r11, [rcx + r8]
mov rdx, r13
mov r8, r9
xor ecx, ecx
shr r8, 3
test r8, r8
je 0x18007eb2e
mov r10, r11
sub r10, r13
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18007eb95
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007eb10
mov r9, qword [rsp]
mov r8, r9
and r8d, 7
je 0x18007eb53
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18007eb53
inc rcx
sub r8, 1
jne 0x18007eb40
mov rdx, rcx
mov r10, qword [rsp + 0x10]
cmp rdx, 4
jb 0x18007ebaa
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x18007ebaa
mov r15, rax
mov qword [rsp + 0x18], rdx
mov r12, rdx
mov qword [rbp - 0x59], rbx
mov r11, rax
mov qword [rsp + 8], rax
jmp 0x18007ebaf
xor rax, r9
mov r9, qword [rsp]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007eb56
mov r11, qword [rsp + 8]
test rdi, rdi
jne 0x18007ea90
mov r8, qword [rbp - 0x31]
mov esi, 0xffff
mov r14, qword [rbp + 0x47]
mov r12, qword [rbp + 0x6f]
mov rcx, r14
movzx edx, word [r12 + 0x30]
lea eax, [rdx + 1]
mov word [r12 + 0x30], ax
mov eax, dword [r10 + r8*4]
sub rcx, rax
movzx eax, r14w
cmp rcx, rsi
cmova rcx, rsi
mov byte [rax + r10 + 0x30000], r8b
mov word [r10 + rdx*4 + 0x40000], cx
movzx eax, word [r10 + r8*2 + 0x20000]
mov word [r10 + rdx*4 + 0x40002], ax
mov dword [r10 + r8*4], r14d
mov word [r10 + r8*2 + 0x20000], dx
cmp r11, 0x7e4
jne 0x18007ef1f
mov r13, qword [r12 + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18007ef1b
mov r12, qword [rsp + 0x48]
lea r15, [rcx + 1]
add r12, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x67]
imul ebx, dword [r12], 0x1e35a7bd
mov qword [r13 + 8], r15
mov rax, qword [rdx + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x18007edb1
mov rax, qword [rdx + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, r9
ja 0x18007edb1
mov rdi, qword [rdx + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor ecx, ecx
test r8, r8
je 0x18007ecde
mov r10, r12
sub r10, rdx
nop
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18007ed9d
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007ecc0
mov r8, r11
and r8d, 7
je 0x18007ed03
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x18007ed03
inc rcx
sub r8, 1
jne 0x18007ecf0
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007edb1
test r9, r9
je 0x18007edb1
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rbp + 0x3f]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rbp - 0x79]
ja 0x18007edb5
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 8]
jb 0x18007edb5
mov qword [rsp + 8], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x18], r9
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x49], r11d
mov qword [rbp - 0x59], rdx
jmp 0x18007edb5
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007ed06
mov rsi, qword [rbp + 0x3f]
lea rax, [r15 + 1]
mov r15, qword [rbp + 0x67]
mov qword [r13 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18007ef0c
mov r11d, ecx
mov rax, qword [r15 + 0x70]
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, qword [rsp]
ja 0x18007ef0c
mov rbx, qword [r15 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor ecx, ecx
test r8, r8
je 0x18007ee3e
mov r10, r12
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18007eef8
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007ee20
mov r8, r11
and r8d, 7
je 0x18007ee5c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18007ee5c
inc rdx
inc rcx
sub r8, 1
jne 0x18007ee47
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007ef0c
test r9, r9
je 0x18007ef0c
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r15 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
cmp rdx, qword [rbp - 0x79]
ja 0x18007ef0c
mov r14, qword [rbp + 0x47]
mov esi, 0xffff
mov r12, qword [rbp + 0x6f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 8]
jb 0x18007ef23
sub r11d, r9d
mov qword [rbp - 0x59], rdx
inc qword [r13 + 0x10]
mov rcx, r9
mov qword [rsp + 0x18], rcx
mov dword [rbp - 0x49], r11d
mov qword [rsp + 8], rax
jmp 0x18007ef28
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007ee5f
mov r14, qword [rbp + 0x47]
mov esi, 0xffff
mov r12, qword [rbp + 0x6f]
jmp 0x18007ef23
mov r14, qword [rbp + 0x47]
mov r15, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x18]
cmp qword [rsp + 8], 0x7e4
jbe 0x18007fcd4
mov r10, qword [rsp]
xor ebx, ebx
mov dword [rbp + 0x3f], ebx
dec r10
cmp dword [r15 + 4], 5
mov qword [rsp], r10
jge 0x18007ef5e
lea rax, [rcx - 1]
mov r12, r10
cmp rax, r10
cmovb r12, rax
jmp 0x18007ef61
mov r12, rbx
mov rdx, qword [rbp - 0x41]
lea r11, [r14 + 1]
mov rax, qword [rbp - 0x39]
cmp r11, rdx
mov r9, qword [rbp + 0x57]
mov ecx, 0x7e4
mov r8, qword [rbp + 0x4f]
mov r13, rdx
mov rsi, qword [rbp + 0x6f]
cmovb r13, r11
inc rax
mov qword [rsp + 0x30], rcx
add rax, r14
mov qword [rsp + 0x10], r11
cmp rax, rdx
mov qword [rsp + 0x28], rbx
mov rsi, qword [rsi + 0x40]
mov rcx, rdx
cmovb rcx, rax
mov qword [rsp + 0x20], rbx
mov rax, qword [r15 + 0x50]
mov r15d, 0x7e4
mov qword [rbp - 0x71], rax
mov rax, r11
and rax, r9
mov dword [rsp + 0x38], ebx
imul r14d, dword [rax + r8], 0x1e35a7bd
lea rdi, [rax + r8]
mov qword [rbp - 0x79], rax
mov rax, qword [rbp + 0x77]
mov qword [rbp - 0x69], rcx
mov qword [rsp + 0x48], rsi
shr r14, 0x11
movsxd rbx, dword [rax]
sub r11, rbx
mov qword [rbp - 0x31], r14
cmp r11, qword [rsp + 0x10]
jae 0x18007f0ab
cmp rbx, r13
ja 0x18007f0ab
and r11, r9
xor ecx, ecx
mov r9, r10
add r11, r8
shr r9, 3
mov rdx, rdi
test r9, r9
je 0x18007f052
mov r10, r11
sub r10, rdi
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r8, rax
jne 0x18007f347
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18007f030
mov r10, qword [rsp]
mov r8, r10
and r8d, 7
je 0x18007f073
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18007f073
inc rcx
sub r8, 1
jne 0x18007f060
mov rdx, rcx
mov r8, qword [rbp + 0x4f]
mov r9, qword [rbp + 0x57]
cmp rdx, 2
jb 0x18007f0ab
imul rax, rdx, 0x87
add rax, 0x78f
cmp rax, r15
jbe 0x18007f0ab
mov r15, rax
mov qword [rsp + 0x20], rdx
mov r12, rdx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov r11, qword [rbp + 0x77]
movsxd rbx, dword [r11 + 4]
mov r11, qword [rsp + 0x10]
sub r11, rbx
movzx eax, r11w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007f17e
cmp r11, qword [rsp + 0x10]
jae 0x18007f17e
cmp rbx, r13
ja 0x18007f17e
and r11, r9
xor edx, edx
mov r9, r10
add r11, r8
shr r9, 3
mov rcx, rdi
test r9, r9
je 0x18007f122
mov r10, r11
sub r10, rdi
nop
mov r8, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r8, rax
jne 0x18007f35f
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x18007f100
mov r10, qword [rsp]
mov r8, r10
and r8d, 7
je 0x18007f145
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18007f145
inc rcx
inc rdx
sub r8, 1
jne 0x18007f130
mov rcx, rdx
cmp rcx, 2
jb 0x18007f17e
imul rax, rcx, 0x87
add rax, 0x78f
cmp r15, rax
jae 0x18007f17e
add rax, 0xffffffffffffffd9
cmp r15, rax
jae 0x18007f17e
mov r15, rax
mov qword [rsp + 0x20], rcx
mov r12, rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x77]
mov r11, qword [rsp + 0x10]
movsxd rbx, dword [rax + 8]
sub r11, rbx
movzx eax, r11w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007f262
cmp r11, qword [rsp + 0x10]
jae 0x18007f262
cmp rbx, r13
ja 0x18007f262
and r11, qword [rbp + 0x57]
mov r9, r10
add r11, qword [rbp + 0x4f]
xor edx, edx
shr r9, 3
mov rcx, rdi
test r9, r9
je 0x18007f202
mov r10, r11
sub r10, rdi
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r8, rax
jne 0x18007f377
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x18007f1e0
mov r10, qword [rsp]
mov r8, r10
and r8d, 7
je 0x18007f225
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18007f225
inc rcx
inc rdx
sub r8, 1
jne 0x18007f210
mov rcx, rdx
cmp rcx, 2
jb 0x18007f262
imul rdx, rcx, 0x87
lea rax, [rdx + 0x78f]
cmp r15, rax
jae 0x18007f262
lea rax, [rdx + 0x764]
cmp r15, rax
jae 0x18007f262
mov r15, rax
mov qword [rsp + 0x20], rcx
mov r12, rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x77]
mov r11, qword [rsp + 0x10]
mov r10, r11
movsxd rbx, dword [rax + 0xc]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x18007f39f
cmp r10, r11
jae 0x18007f39f
cmp rbx, r13
ja 0x18007f39f
and r10, qword [rbp + 0x57]
xor edx, edx
mov rsi, qword [rsp]
mov rcx, rdi
add r10, qword [rbp + 0x4f]
mov r8, rsi
shr r8, 3
test r8, r8
je 0x18007f2de
mov r11, r10
sub r11, rdi
nop dword [rax]
mov r9, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r9, rax
jne 0x18007f38b
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18007f2c0
mov r8, rsi
and r8d, 7
je 0x18007f2fc
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18007f2fc
inc rcx
inc rdx
sub r8, 1
jne 0x18007f2e7
mov rcx, rdx
mov r11, qword [rsp + 0x10]
cmp rcx, 2
jb 0x18007f39f
imul rdx, rcx, 0x87
lea rax, [rdx + 0x78f]
cmp r15, rax
jae 0x18007f39f
lea rax, [rdx + 0x764]
cmp r15, rax
jae 0x18007f39f
mov r15, rax
mov qword [rsp + 0x20], rcx
mov r12, rcx
mov qword [rsp + 0x28], rbx
mov r9, rax
mov qword [rsp + 0x30], rax
jmp 0x18007f3a4
mov r10, qword [rsp]
xor rax, r8
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18007f076
mov r10, qword [rsp]
xor rax, r8
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007f148
xor rax, r8
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007f228
xor rax, r9
tzcnt rcx, rax
shr rcx, 3
add rcx, rdx
jmp 0x18007f2ff
mov r9, qword [rsp + 0x30]
mov rax, qword [rbp + 0x6f]
mov rsi, r11
mov r10, qword [rsp + 0x48]
xor ebx, ebx
mov rdi, qword [rax + 0x38]
mov eax, dword [r10 + r14*4]
movzx r14d, word [r10 + r14*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x18007f50a
nop
dec rdi
add rbx, rsi
cmp rbx, r13
ja 0x18007f50a
mov r8, qword [rbp + 0x57]
lea rax, [r10 + r14*4]
mov r9, qword [rbp - 0x79]
mov rcx, r11
movzx r14d, word [rax + 0x40002]
sub rcx, rbx
movzx esi, word [rax + 0x40000]
and rcx, r8
lea rdx, [r12 + r9]
cmp rdx, r8
ja 0x18007f4fc
lea rax, [rcx + r12]
cmp rax, r8
ja 0x18007f4fc
mov r8, qword [rbp + 0x4f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
jne 0x18007f4fc
mov rax, r8
lea r8, [r9 + rax]
lea r11, [rcx + rax]
mov rdx, r8
mov rcx, qword [rsp]
xor eax, eax
mov r9, rcx
shr r9, 3
test r9, r9
je 0x18007f47e
mov r10, r11
sub r10, r8
nop word [rax + rax]
mov rcx, qword [rdx]
mov r8, qword [r10 + rdx]
cmp rcx, r8
jne 0x18007f4eb
add rdx, 8
add rax, 8
sub r9, 1
jne 0x18007f460
mov rcx, qword [rsp]
mov r8, rcx
and r8d, 7
je 0x18007f4a3
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x18007f4a3
inc rax
sub r8, 1
jne 0x18007f490
mov rdx, rax
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x10]
cmp rdx, 4
jb 0x18007f4fc
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x18007f4fc
mov r15, rax
mov qword [rsp + 0x20], rdx
mov r12, rdx
mov qword [rsp + 0x28], rbx
mov r9, rax
mov qword [rsp + 0x30], rax
jmp 0x18007f501
xor rcx, r8
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18007f4a6
mov r9, qword [rsp + 0x30]
test rdi, rdi
jne 0x18007f3d0
mov r8, qword [rbp - 0x31]
mov esi, 0xffff
mov r12, qword [rbp + 0x6f]
mov rcx, r11
movzx edx, word [r12 + 0x30]
lea eax, [rdx + 1]
mov word [r12 + 0x30], ax
mov eax, dword [r10 + r8*4]
sub rcx, rax
movzx eax, r11w
cmp rcx, rsi
cmova rcx, rsi
mov byte [rax + r10 + 0x30000], r8b
mov word [r10 + rdx*4 + 0x40000], cx
movzx eax, word [r10 + r8*2 + 0x20000]
mov word [r10 + rdx*4 + 0x40002], ax
mov dword [r10 + r8*4], r11d
mov word [r10 + r8*2 + 0x20000], dx
cmp r9, 0x7e4
jne 0x18007f867
mov r13, qword [r12 + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18007f867
mov r12, qword [rbp - 0x79]
lea r15, [rcx + 1]
add r12, qword [rbp + 0x4f]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rsp]
imul ebx, dword [r12], 0x1e35a7bd
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x18007f708
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x18007f708
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor ecx, ecx
test r8, r8
je 0x18007f62e
mov r10, r12
sub r10, rdx
nop
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18007f6f4
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007f610
mov r8, r11
and r8d, 7
je 0x18007f653
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x18007f653
inc rcx
sub r8, 1
jne 0x18007f640
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007f70f
test r9, r9
je 0x18007f70f
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [rdi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rbp - 0x69]
shl rax, cl
inc rdx
add rax, rsi
mov rsi, qword [rsp + 0x30]
add rdx, rax
cmp rdx, qword [rbp - 0x71]
ja 0x18007f714
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x18007f714
mov rsi, rax
mov qword [rsp + 0x30], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x20], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x28], rdx
jmp 0x18007f714
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007f656
mov rsi, qword [rsp + 0x30]
jmp 0x18007f718
mov rsi, qword [rsp + 0x30]
mov rdx, qword [rsp]
lea rax, [r15 + 1]
mov r15, qword [rbp + 0x67]
mov qword [r13 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18007f86d
mov rax, qword [r15 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18007f86d
mov rbx, qword [r15 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor ecx, ecx
test r8, r8
je 0x18007f79e
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18007f853
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18007f780
mov r8, r11
and r8d, 7
je 0x18007f7bc
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18007f7bc
inc rdx
inc rcx
sub r8, 1
jne 0x18007f7a7
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18007f86d
test r9, r9
je 0x18007f86d
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r15 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rbx + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rbp - 0x69]
shl rax, cl
inc rdx
add rax, rdi
add rdx, rax
cmp rdx, qword [rbp - 0x71]
ja 0x18007f86d
mov r12, qword [rbp + 0x6f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x18007f871
sub r11d, r9d
mov qword [rsp + 0x20], r9
inc qword [r13 + 0x10]
mov rcx, rax
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
jmp 0x18007f876
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18007f7bf
mov r15, qword [rbp + 0x67]
jmp 0x18007f871
mov r12, qword [rbp + 0x6f]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 8]
mov r11, qword [rsp + 0x40]
add rax, 0xaf
cmp rcx, rax
jb 0x18007f8ec
mov ecx, dword [rbp + 0x3f]
inc r11
movups xmm0, xmmword [rsp + 0x20]
mov r14, qword [rsp + 0x10]
inc ecx
mov qword [rbp + 0x47], r14
mov qword [rsp + 0x40], r11
mov dword [rbp + 0x3f], ecx
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x61], xmm0
movups xmmword [rbp - 0x51], xmm1
cmp ecx, 4
jge 0x18007f8e6
lea rax, [r14 + 4]
cmp rax, qword [rsp + 0x50]
jae 0x18007f8e6
mov r10, qword [rsp]
mov r13, qword [rbp - 0x51]
dec r10
mov rcx, qword [rbp - 0x61]
xor ebx, ebx
mov qword [rsp + 8], r13
mov qword [rsp + 0x18], rcx
jmp 0x18007ef43
mov r13, qword [rbp - 0x61]
jmp 0x18007f8f5
mov r14, qword [rbp + 0x47]
mov r13, qword [rsp + 0x18]
mov rax, qword [rbp - 0x21]
mov r9, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x59]
mov r10, qword [rbp + 0x77]
lea r15, [rax + r13*2]
mov rax, qword [rbp - 0x39]
add rax, r14
add r15, r14
cmp rax, r9
mov qword [rbp - 0x71], r15
cmovb r9, rax
cmp rbx, r9
ja 0x18007f9a1
movsxd rax, dword [r10]
lea rcx, [rbx + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x18007f941
xor r8d, r8d
jmp 0x18007f9a5
cmp rbx, r8
jne 0x18007f94e
mov r8d, 1
jmp 0x18007f9a5
cmp rdx, 7
jae 0x18007f969
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18007f9a5
cmp rcx, 7
jae 0x18007f981
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18007f9a5
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x18007f992
mov r8d, 2
jmp 0x18007f9a5
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18007f9a5
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18007f9c9
test r8, r8
je 0x18007f9c9
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov eax, dword [r10]
mov dword [r10 + 4], eax
mov dword [r10], ebx
mov rcx, qword [rbp + 0x87]
mov esi, dword [rbp - 0x49]
mov r15, qword [rbp + 0x67]
movzx eax, sil
shl eax, 0x19
or eax, r13d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r14d, dword [r15 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x18007f9f8
xor edi, edi
jmp 0x18007fa71
mov r11d, dword [r15 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x40]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov r14, qword [rbp + 0x87]
lea edx, [rsi + r13]
mov eax, 0x3ff
movsxd r9, edx
mov word [r14 + 0xe], r8w
and r8w, ax
mov dword [r14 + 8], edi
cmp r11, 6
jae 0x18007faa2
movzx r10d, r11w
mov eax, 0x17
jmp 0x18007fb14
cmp r11, 0x82
jae 0x18007facc
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18007fb14
cmp r11, 0x842
jae 0x18007fae9
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18007fb14
mov eax, 0x17
cmp r11, 0x1842
jae 0x18007faff
mov r10d, 0x15
jmp 0x18007fb14
cmp r11, 0x5842
jae 0x18007fb10
mov r10d, 0x16
jmp 0x18007fb14
movzx r10d, ax
cmp r9, 0xa
jae 0x18007fb21
sub r9w, 2
jmp 0x18007fb61
cmp r9, 0x86
jae 0x18007fb46
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18007fb61
cmp r9, 0x846
jae 0x18007fb5d
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18007fb61
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18007fb99
cmp r10w, 8
jae 0x18007fb99
cmp r9w, 0x10
jae 0x18007fb99
cmp r9w, 8
jb 0x18007fbcd
or dx, 0x40
jmp 0x18007fbcd
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x97]
xor edi, edi
mov word [r14 + 0xc], dx
add r14, 0x10
mov qword [rbp + 0x87], r14
mov r14, qword [rbp + 0x47]
add qword [rax], r11
mov r11, qword [rbp - 0x29]
mov qword [rsp + 0x40], rdi
lea rax, [r14 + r13]
cmp rax, r11
lea r10, [r14 + 2]
cmovb r11, rax
mov rax, r13
shr rax, 2
cmp rbx, rax
jae 0x18007fc3a
lea rax, [rbx*4]
mov rcx, r13
sub rcx, rax
lea rax, [rcx + r14]
cmp r10, rax
mov eax, 2
cmova rcx, rax
lea r10, [r14 + rcx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x18007fcc8
mov r14, qword [rbp + 0x4f]
mov esi, 0xffff
mov rbx, qword [rbp + 0x57]
mov r9, qword [r12 + 0x40]
mov rax, r10
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, r10
imul edx, dword [rax + r14], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r10w
cmp rcx, rsi
cmova rcx, rsi
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], r10d
inc r10
mov word [r9 + rdx*2 + 0x20000], r8w
cmp r10, r11
jb 0x18007fc50
mov r14, qword [rbp + 0x47]
add r14, r13
mov qword [rbp + 0x47], r14
jmp 0x18007fe72
mov rdi, qword [rsp + 0x40]
inc r14
mov r15, qword [rbp - 0x71]
inc rdi
mov qword [rsp + 0x40], rdi
mov qword [rbp + 0x47], r14
cmp r14, r15
jbe 0x18007fe6e
mov rax, qword [rbp - 0x21]
mov r10, qword [rsp + 0x50]
lea rax, [r15 + rax*4]
cmp r14, rax
jbe 0x18007fdbd
add r10, 0xfffffffffffffffc
lea rax, [r14 + 0x10]
cmp rax, r10
cmovb r10, rax
cmp r14, r10
jae 0x18007fe6e
mov rbx, qword [rbp + 0x57]
mov rax, r10
sub rax, r14
add rdi, 4
dec rax
and rax, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp + 0x40], rdi
mov r9, qword [r12 + 0x40]
mov rax, r14
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, qword [rbp + 0x4f]
imul edx, dword [rax + rcx], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
mov rcx, r14
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r14w
cmp rcx, rsi
cmova rcx, rsi
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], r14d
add r14, 4
mov word [r9 + rdx*2 + 0x20000], r8w
cmp r14, r10
jb 0x18007fd40
jmp 0x18007fe6a
add r10, 0xfffffffffffffffd
lea rax, [r14 + 8]
cmp rax, r10
cmovb r10, rax
cmp r14, r10
jae 0x18007fe6e
mov rbx, qword [rbp + 0x57]
mov rax, r10
sub rax, r14
add rdi, 2
dec rax
and rax, 0xfffffffffffffffe
add rdi, rax
mov qword [rsp + 0x40], rdi
mov r9, qword [r12 + 0x40]
mov rax, r14
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, qword [rbp + 0x4f]
imul edx, dword [rax + rcx], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
mov rcx, r14
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r14w
cmp rcx, rsi
cmova rcx, rsi
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], r14d
add r14, 2
mov word [r9 + rdx*2 + 0x20000], r8w
cmp r14, r10
jb 0x18007fdf2
mov qword [rbp + 0x47], r14
mov r15, qword [rbp + 0x67]
mov r8, qword [rbp + 0x4f]
lea rax, [r14 + 4]
mov r10, qword [rbp + 0x57]
mov rdx, qword [rbp - 0x41]
mov r11, qword [rbp - 0x39]
cmp rax, qword [rsp + 0x50]
jb 0x18007e630
mov r13, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov r12, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x87]
mov r9, qword [rbp - 0x19]
mov rax, qword [rbp + 0x7f]
sub r12, r14
add r12, rdi
sub rcx, r9
sar rcx, 4
mov qword [rax], r12
mov rax, qword [rbp + 0x8f]
add qword [rax], rcx
add rsp, 0xd8
pop r15
pop r14
pop r12
pop rdi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xf8
mov r15, qword [rbp + 0x67]
mov rax, rcx
mov rsi, qword [rbp + 0x7f]
mov r11d, 1
mov r10, r9
mov rdi, rdx
add rdx, rax
mov r9, r8
mov ecx, dword [r15 + 8]
mov r14, qword [r15 + 0x10]
mov r8, qword [rbp + 0x87]
mov rsi, qword [rsi]
shl r11, cl
sub r11, 0x10
mov qword [rbp - 0x69], r14
mov qword [rbp - 0x71], r11
mov qword [rbp - 0x21], r8
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x68], rdx
cmp rax, 4
jb 0x18007ff5f
lea rax, [rdx - 3]
mov qword [rbp - 0x39], rax
jmp 0x18007ff63
mov qword [rbp - 0x39], rdi
cmp dword [r15 + 4], 9
mov ecx, 0x40
mov rbx, qword [rbp + 0x77]
mov eax, 0x200
cmovl eax, ecx
mov qword [rbp - 0x31], rax
add rax, rdi
mov qword [rsp + 0x60], rax
mov ecx, dword [rbx]
lea eax, [rcx - 1]
mov dword [rbx + 0x10], eax
lea eax, [rcx + 1]
mov dword [rbx + 0x14], eax
lea eax, [rcx - 2]
mov dword [rbx + 0x18], eax
lea eax, [rcx + 2]
mov dword [rbx + 0x1c], eax
lea eax, [rcx - 3]
mov dword [rbx + 0x20], eax
lea eax, [rcx + 3]
mov dword [rbx + 0x24], eax
lea rax, [rdi + 4]
cmp rax, rdx
jae 0x18008167c
mov qword [rsp + 0xf0], r12
lea rax, [rbx + 4]
mov r12, qword [rbp + 0x6f]
mov qword [rbp - 0x79], rax
mov qword [rsp + 0xe8], r13
mov rsi, qword [r12 + 0x40]
lea rax, [r14 + rdi]
mov r8, rdx
mov qword [rbp - 0x51], 0
sub r8, rdi
mov qword [rsp + 8], 0x7e4
cmp rdi, r11
mov qword [rsp], r8
mov rcx, r11
mov qword [rsp + 0x28], rsi
cmovb rcx, rdi
mov qword [rsp + 0x10], 0
cmp rax, r11
mov qword [rbp + 0x3f], rcx
mov rdx, r11
mov dword [rbp - 0x41], 0
mov r11, qword [rbp + 0x47]
cmovb rdx, rax
mov rax, qword [r15 + 0x50]
mov r15d, 0x7e4
mov qword [rsp + 0x58], rax
lea rax, [rsi + 0x40000]
mov qword [rsp + 0x70], rax
mov rax, rdi
and rax, r10
mov qword [rsp + 0x18], rdx
imul r14d, dword [rax + r9], 0x1e35a7bd
lea r12, [rax + r9]
xor edi, edi
mov qword [rsp + 0x50], rax
shr r14, 0x11
mov qword [rbp - 0x61], r14
xor r13d, r13d
jmp 0x180080074
mov r10, qword [rbp + 0x57]
movsxd rbx, dword [rbx + rdi*4]
sub r11, rbx
test rdi, rdi
je 0x180080092
movzx eax, r11w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x180080178
cmp r11, qword [rbp + 0x47]
jae 0x180080178
cmp rbx, rcx
ja 0x180080178
and r11, r10
xor ecx, ecx
add r11, r9
mov rdx, r12
mov r9, r8
shr r9, 3
test r9, r9
je 0x1800800f2
mov r10, r11
sub r10, r12
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r8, rax
jne 0x18008028e
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x1800800d0
mov r8, qword [rsp]
and r8d, 7
je 0x180080113
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180080113
inc rcx
sub r8, 1
jne 0x180080100
mov r8, rcx
cmp r8, 2
jb 0x18008016c
imul r9, r8, 0x87
add r9, 0x78f
cmp r15, r9
jae 0x18008016c
test rdi, rdi
je 0x180080158
movzx ecx, dil
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r15, r9
jae 0x18008016c
mov r15, r9
mov qword [rsp + 0x10], r8
mov r13, r8
mov qword [rbp - 0x51], rbx
mov qword [rsp + 8], r9
mov r9, qword [rbp + 0x4f]
mov r8, qword [rsp]
mov rcx, qword [rbp + 0x3f]
mov rax, qword [rbp - 0x79]
mov r11, qword [rbp + 0x47]
mov r10, r11
movsxd rbx, dword [rax + rdi*4]
lea rax, [rdi + 1]
sub r10, rbx
test rax, rax
je 0x1800801a5
movzx eax, r10w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x1800802ba
cmp r10, r11
jae 0x1800802ba
cmp rbx, rcx
ja 0x1800802ba
and r10, qword [rbp + 0x57]
xor edx, edx
add r10, r9
mov rcx, r12
mov r9, r8
shr r9, 3
test r9, r9
je 0x180080202
mov r11, r10
sub r11, r12
nop word [rax + rax]
mov r8, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r8, rax
jne 0x1800802a2
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x1800801e0
mov r8, qword [rsp]
and r8d, 7
je 0x180080225
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180080225
inc rcx
inc rdx
sub r8, 1
jne 0x180080210
mov r8, rdx
cmp r8, 2
jb 0x1800802b6
imul r9, r8, 0x87
add r9, 0x78f
cmp r15, r9
jae 0x1800802b6
lea rax, [rdi + 1]
test rax, rax
je 0x180080271
lea ecx, [rdi + 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r15, r9
jae 0x1800802b6
mov r11, qword [rbp + 0x47]
mov r15, r9
mov r13, r8
mov qword [rsp + 0x10], r8
mov qword [rbp - 0x51], rbx
mov r10, r9
mov qword [rsp + 8], r9
jmp 0x1800802bf
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180080116
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180080228
mov r11, qword [rbp + 0x47]
mov r10, qword [rsp + 8]
mov rcx, qword [rbp + 0x3f]
add rdi, 2
mov r8, qword [rsp]
mov r9, qword [rbp + 0x4f]
mov rbx, qword [rbp + 0x77]
cmp rdi, 0xa
jb 0x180080070
mov rax, qword [rbp + 0x6f]
xor ebx, ebx
mov r9, qword [rsp + 0x28]
mov rdi, qword [rax + 0x38]
mov eax, dword [rsi + r14*4]
mov rsi, r11
movzx r14d, word [r9 + r14*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x180080438
nop dword [rax + rax]
dec rdi
add rbx, rsi
cmp rbx, qword [rbp + 0x3f]
ja 0x180080433
mov r8, qword [rbp + 0x57]
mov rcx, r11
mov rax, qword [rsp + 0x70]
sub rcx, rbx
mov rdx, qword [rsp + 0x50]
lea rax, [rax + r14*4]
movzx r14d, word [rax + 2]
and rcx, r8
movzx esi, word [rax]
add rdx, r13
cmp rdx, r8
ja 0x18008042a
lea rax, [rcx + r13]
cmp rax, r8
ja 0x18008042a
mov r8, qword [rbp + 0x4f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
jne 0x18008042a
mov rax, qword [rsp]
lea r11, [rcx + r8]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r12
test r8, r8
je 0x1800803ae
mov r10, r11
sub r10, r12
nop
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180080414
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180080390
mov rax, qword [rsp]
mov r8, rax
and r8d, 7
je 0x1800803d3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800803d3
inc rcx
sub r8, 1
jne 0x1800803c0
mov rdx, rcx
mov r11, qword [rbp + 0x47]
cmp rdx, 4
jb 0x180080425
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x180080425
mov r15, rax
mov qword [rsp + 0x10], rdx
mov r13, rdx
mov qword [rbp - 0x51], rbx
mov r10, rax
mov qword [rsp + 8], rax
jmp 0x18008042a
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800803d6
mov r10, qword [rsp + 8]
test rdi, rdi
jne 0x180080310
mov r9, qword [rsp + 0x28]
mov r8, qword [rbp - 0x61]
mov r14d, 0xffff
mov rdi, qword [rbp + 0x47]
mov r12, qword [rbp + 0x6f]
mov rcx, rdi
movzx edx, word [r12 + 0x30]
lea eax, [rdx + 1]
mov word [r12 + 0x30], ax
mov eax, dword [r9 + r8*4]
sub rcx, rax
movzx eax, di
cmp rcx, r14
cmova rcx, r14
mov byte [rax + r9 + 0x30000], r8b
mov word [r9 + rdx*4 + 0x40000], cx
movzx eax, word [r9 + r8*2 + 0x20000]
mov word [r9 + rdx*4 + 0x40002], ax
mov dword [r9 + r8*4], edi
mov word [r9 + r8*2 + 0x20000], dx
mov rdx, qword [rbp + 0x4f]
cmp r10, 0x7e4
jne 0x1800807d8
mov r12, qword [r12 + 0x48]
mov rdi, qword [rsp + 0x50]
add rdi, rdx
mov rcx, qword [r12 + 8]
mov r15, qword [r12 + 0x10]
mov rax, rcx
shr rax, 7
cmp r15, rax
jb 0x1800807d0
imul ebx, dword [rdi], 0x1e35a7bd
lea r13, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rsp]
mov qword [r12 + 8], r13
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180080643
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx r14d, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180080643
mov rsi, qword [r8 + 0x58]
mov eax, ecx
imul rax, r14
mov edx, dword [rsi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rsi + 0xa8]
xor ecx, ecx
test r8, r8
je 0x18008056e
mov r10, rdi
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18008062f
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180080550
mov r8, r11
and r8d, 7
je 0x180080592
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + rdi], al
jne 0x180080592
inc rcx
sub r8, 1
jne 0x180080580
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18008064a
test r9, r9
je 0x18008064a
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [rsi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, r14
mov r14, qword [rsp + 0x18]
lea rdx, [r14 + 1]
add rdx, rax
cmp rdx, qword [rsp + 0x58]
ja 0x18008064f
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 8]
jb 0x18008064f
mov qword [rsp + 8], rax
sub r11d, r9d
lea rax, [r15 + 1]
mov qword [rsp + 0x10], r9
mov qword [r12 + 0x10], rax
mov dword [rbp - 0x41], r11d
mov qword [rbp - 0x51], rdx
jmp 0x18008064f
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180080595
mov r14, qword [rsp + 0x18]
jmp 0x180080653
mov r14, qword [rsp + 0x18]
mov rdx, qword [rsp]
mov r15, qword [rbp + 0x67]
lea rax, [r13 + 1]
mov qword [r12 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x1800807bc
mov rax, qword [r15 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x1800807bc
mov rbx, qword [r15 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor ecx, ecx
test r8, r8
je 0x1800806de
mov r10, rdi
sub r10, rdx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18008079e
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800806c0
mov r8, r11
and r8d, 7
je 0x1800806fb
movzx eax, byte [rdx]
cmp byte [rcx + rdi], al
jne 0x1800806fb
inc rdx
inc rcx
sub r8, 1
jne 0x1800806e7
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800807bc
test r9, r9
je 0x1800807bc
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r15 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rbx + r11]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rsi
add rdx, r14
cmp rdx, qword [rsp + 0x58]
ja 0x1800807bc
mov rdi, qword [rbp + 0x47]
mov r14d, 0xffff
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 8]
jb 0x1800807b2
sub r11d, r9d
mov qword [rbp - 0x51], rdx
inc qword [r12 + 0x10]
mov rcx, r9
mov r12, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x4f]
mov qword [rsp + 0x10], rcx
mov dword [rbp - 0x41], r11d
mov qword [rsp + 8], rax
jmp 0x1800807e1
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800806fe
mov rdx, qword [rbp + 0x4f]
mov r12, qword [rbp + 0x6f]
jmp 0x1800807dc
mov rdi, qword [rbp + 0x47]
mov r14d, 0xffff
mov rdx, qword [rbp + 0x4f]
mov r12, qword [rbp + 0x6f]
jmp 0x1800807dc
mov rdi, qword [rbp + 0x47]
mov r12, qword [rbp + 0x6f]
mov r15, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x10]
cmp qword [rsp + 8], 0x7e4
jbe 0x180081495
mov r10, qword [rsp]
xor r11d, r11d
mov dword [rbp + 0x3f], r11d
dec r10
cmp dword [r15 + 4], 5
mov qword [rsp], r10
jge 0x180080819
lea rax, [rcx - 1]
mov r12, r10
cmp rax, r10
cmovb r12, rax
jmp 0x18008081c
mov r12, r11
mov r8, qword [rbp - 0x71]
lea r13, [rdi + 1]
mov rax, qword [rbp - 0x69]
cmp r13, r8
mov rcx, r8
mov qword [rsp + 0x38], r11
cmovb rcx, r13
mov qword [rsp + 0x30], r11
inc rax
mov qword [rsp + 0x28], rcx
add rax, rdi
mov dword [rsp + 0x48], r11d
cmp rax, r8
mov rdx, r8
mov r9d, 0x7e4
mov rdi, r11
cmovb rdx, rax
mov qword [rsp + 0x40], r9
mov rax, qword [r15 + 0x50]
mov r15d, r9d
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0x6f]
mov qword [rsp + 0x70], rdx
mov rdx, qword [rbp + 0x4f]
mov rsi, qword [rax + 0x40]
mov qword [rsp + 0x58], rsi
lea rax, [rsi + 0x40000]
mov qword [rbp - 0x61], rax
mov rax, r13
and rax, qword [rbp + 0x57]
imul r14d, dword [rax + rdx], 0x1e35a7bd
lea r8, [rax + rdx]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x18], r8
shr r14, 0x11
mov qword [rbp - 0x29], r14
nop word [rax + rax]
mov rax, qword [rbp + 0x77]
mov r11, r13
movsxd rbx, dword [rax + rdi*4]
sub r11, rbx
test rdi, rdi
je 0x1800808e5
movzx eax, r11w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x1800809e7
cmp r11, r13
jae 0x1800809e7
cmp rbx, rcx
ja 0x1800809e7
and r11, qword [rbp + 0x57]
mov r9, r10
add r11, qword [rbp + 0x4f]
xor ecx, ecx
shr r9, 3
mov rdx, r8
test r9, r9
je 0x180080942
mov r10, r11
sub r10, r8
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r8, rax
jne 0x1800809bf
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180080920
mov r10, qword [rsp]
mov r8, r10
and r8d, 7
je 0x180080963
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180080963
inc rcx
sub r8, 1
jne 0x180080950
mov r8, rcx
cmp r8, 2
jb 0x1800809d4
imul r9, r8, 0x87
add r9, 0x78f
cmp r15, r9
jae 0x1800809d4
test rdi, rdi
je 0x1800809a8
movzx ecx, dil
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r15, r9
jae 0x1800809d4
mov r15, r9
mov qword [rsp + 0x30], r8
mov r12, r8
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r9
jmp 0x1800809d9
mov r10, qword [rsp]
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180080966
mov r9, qword [rsp + 0x40]
mov rdx, qword [rbp + 0x4f]
mov rcx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x18]
mov rax, qword [rbp - 0x79]
mov r11, r13
movsxd rbx, dword [rax + rdi*4]
lea rax, [rdi + 1]
sub r11, rbx
test rax, rax
je 0x180080a10
movzx eax, r11w
cmp byte [rax + rsi + 0x30000], r14b
jne 0x180080afe
cmp r11, r13
jae 0x180080afe
cmp rbx, rcx
ja 0x180080afe
and r11, qword [rbp + 0x57]
mov r9, r10
add r11, rdx
shr r9, 3
xor edx, edx
mov rcx, r8
test r9, r9
je 0x180080a62
mov r10, r11
sub r10, r8
mov r8, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r8, rax
jne 0x180080ae4
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x180080a40
mov r10, qword [rsp]
mov r8, r10
and r8d, 7
je 0x180080a85
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180080a85
inc rcx
inc rdx
sub r8, 1
jne 0x180080a70
mov r8, rdx
cmp r8, 2
jb 0x180080af9
imul r9, r8, 0x87
add r9, 0x78f
cmp r15, r9
jae 0x180080af9
lea rax, [rdi + 1]
test rax, rax
je 0x180080acd
lea ecx, [rdi + 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r15, r9
jae 0x180080af9
mov r15, r9
mov qword [rsp + 0x30], r8
mov r12, r8
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r9
jmp 0x180080afe
mov r10, qword [rsp]
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180080a88
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x18]
add rdi, 2
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rbp + 0x4f]
cmp rdi, 0xa
jb 0x1800808c0
mov rax, qword [rbp + 0x6f]
xor ebx, ebx
mov r10, qword [rsp + 0x58]
mov rdi, qword [rax + 0x38]
mov eax, dword [rsi + r14*4]
mov rsi, r13
movzx r14d, word [r10 + r14*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x180080c75
dec rdi
add rbx, rsi
cmp rbx, qword [rsp + 0x28]
ja 0x180080c70
mov r8, qword [rbp + 0x57]
mov rcx, r13
mov rax, qword [rbp - 0x61]
sub rcx, rbx
mov rdx, qword [rsp + 0x50]
lea rax, [rax + r14*4]
movzx r14d, word [rax + 2]
and rcx, r8
movzx esi, word [rax]
add rdx, r12
cmp rdx, r8
ja 0x180080c67
lea rax, [rcx + r12]
cmp rax, r8
ja 0x180080c67
mov r8, qword [rbp + 0x4f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
jne 0x180080c67
mov r9, qword [rsp + 0x18]
lea r11, [rcx + r8]
mov rcx, qword [rsp]
xor eax, eax
mov r8, rcx
mov rdx, r9
shr r8, 3
test r8, r8
je 0x180080bee
mov r10, r11
sub r10, r9
nop dword [rax + rax]
mov rcx, qword [rdx]
mov r9, qword [rdx + r10]
cmp rcx, r9
jne 0x180080c51
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180080bd0
mov rcx, qword [rsp]
mov r8, rcx
and r8d, 7
je 0x180080c13
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r11], cl
jne 0x180080c13
inc rax
sub r8, 1
jne 0x180080c00
mov rdx, rax
cmp rdx, 4
jb 0x180080c62
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x180080c62
mov r15, rax
mov qword [rsp + 0x30], rdx
mov r12, rdx
mov qword [rsp + 0x38], rbx
mov r9, rax
mov qword [rsp + 0x40], rax
jmp 0x180080c67
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180080c16
mov r9, qword [rsp + 0x40]
test rdi, rdi
jne 0x180080b45
mov r10, qword [rsp + 0x58]
mov r8, qword [rbp - 0x29]
mov rcx, r13
mov r12, qword [rbp + 0x6f]
movzx edx, word [r12 + 0x30]
lea eax, [rdx + 1]
mov word [r12 + 0x30], ax
mov eax, dword [r10 + r8*4]
sub rcx, rax
movzx eax, r13w
mov byte [rax + r10 + 0x30000], r8b
mov eax, 0xffff
cmp rcx, rax
cmova rcx, rax
mov word [r10 + rdx*4 + 0x40000], cx
movzx eax, word [r10 + r8*2 + 0x20000]
mov word [r10 + rdx*4 + 0x40002], ax
mov dword [r10 + r8*4], r13d
mov r13, qword [rbp + 0x4f]
mov word [r10 + r8*2 + 0x20000], dx
cmp r9, 0x7e4
jne 0x180080fe4
mov r12, qword [r12 + 0x48]
mov rdi, qword [rsp + 0x50]
add rdi, r13
mov rcx, qword [r12 + 8]
mov r15, qword [r12 + 0x10]
mov rax, rcx
shr rax, 7
cmp r15, rax
jb 0x180080fd9
imul ebx, dword [rdi], 0x1e35a7bd
lea r13, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rsp]
mov qword [r12 + 8], r13
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180080e7a
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx r14d, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180080e7a
mov rsi, qword [r8 + 0x58]
mov eax, ecx
imul rax, r14
mov edx, dword [rsi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rsi + 0xa8]
xor ecx, ecx
test r8, r8
je 0x180080d9e
mov r10, rdi
sub r10, rdx
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180080e66
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180080d80
mov r8, r11
and r8d, 7
je 0x180080dc2
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rdi], al
jne 0x180080dc2
inc rcx
sub r8, 1
jne 0x180080db0
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180080e81
test r9, r9
je 0x180080e81
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [r11 + rsi]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rsp + 0x70]
shl rax, cl
inc rdx
add rax, r14
mov r14, qword [rsp + 0x40]
add rdx, rax
cmp rdx, qword [rsp + 0x60]
ja 0x180080e86
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r14
jb 0x180080e86
mov r14, rax
mov qword [rsp + 0x40], rax
lea rax, [r15 + 1]
mov qword [rsp + 0x30], r9
sub r11d, r9d
mov qword [r12 + 0x10], rax
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], rdx
jmp 0x180080e86
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180080dc5
mov r14, qword [rsp + 0x40]
jmp 0x180080e8a
mov r14, qword [rsp + 0x40]
mov rdx, qword [rsp]
mov r15, qword [rbp + 0x67]
lea rax, [r13 + 1]
mov qword [r12 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x180080fef
mov rax, qword [r15 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180080fef
mov rbx, qword [r15 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor ecx, ecx
test r8, r8
je 0x180080f0e
mov r10, rdi
sub r10, rdx
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180080fc5
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180080ef0
mov r8, r11
and r8d, 7
je 0x180080f2b
movzx eax, byte [rdx]
cmp byte [rcx + rdi], al
jne 0x180080f2b
inc rdx
inc rcx
sub r8, 1
jne 0x180080f17
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180080fef
test r9, r9
je 0x180080fef
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r15 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
lea rax, [rdx + r8*4]
mov rdx, qword [rsp + 0x70]
shl rax, cl
inc rdx
add rax, rsi
add rdx, rax
cmp rdx, qword [rsp + 0x60]
ja 0x180080fef
mov r13, qword [rbp + 0x4f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r14
jb 0x180080ff3
sub r11d, r9d
mov qword [rsp + 0x30], r9
inc qword [r12 + 0x10]
mov r14, rax
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rax
jmp 0x180080ff3
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180080f2e
mov r14, qword [rsp + 0x40]
mov r15, qword [rbp + 0x67]
jmp 0x180080ff3
mov r14, qword [rsp + 0x40]
mov r15, qword [rbp + 0x67]
jmp 0x180080ff7
mov r13, qword [rbp + 0x4f]
mov r12, qword [rbp + 0x6f]
mov rax, qword [rsp + 8]
mov rdi, qword [rbp + 0x47]
add rax, 0xaf
cmp r14, rax
jb 0x18008106d
mov ecx, dword [rbp + 0x3f]
inc rdi
movups xmm0, xmmword [rsp + 0x30]
inc qword [rsp + 0x20]
inc ecx
mov qword [rbp + 0x47], rdi
mov dword [rbp + 0x3f], ecx
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm1
cmp ecx, 4
jge 0x180081062
lea rax, [rdi + 4]
cmp rax, qword [rsp + 0x68]
jae 0x180081062
mov r10, qword [rsp]
mov rax, qword [rbp - 0x49]
dec r10
mov rcx, qword [rbp - 0x59]
xor r11d, r11d
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
jmp 0x1800807fe
mov r10, qword [rbp - 0x59]
mov qword [rsp + 0x10], r10
jmp 0x180081072
mov r10, qword [rsp + 0x10]
mov rax, qword [rbp - 0x31]
mov r9, qword [rbp - 0x71]
mov rbx, qword [rbp - 0x51]
mov r11, qword [rbp + 0x77]
lea r15, [rax + r10*2]
mov rax, qword [rbp - 0x69]
add rax, rdi
add r15, rdi
cmp rax, r9
mov qword [rsp + 0x60], r15
cmovb r9, rax
cmp rbx, r9
ja 0x180081129
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r8, dword [r11 + 4]
lea rdi, [r11 + 4]
mov rdx, rcx
sub rcx, r8
sub rdx, rax
cmp rbx, rax
jne 0x1800810c7
xor r8d, r8d
jmp 0x180081131
cmp rbx, r8
jne 0x1800810d4
mov r8d, 1
jmp 0x180081131
cmp rdx, 7
jae 0x1800810ef
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180081131
cmp rcx, 7
jae 0x180081107
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180081131
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x180081118
mov r8d, 2
jmp 0x180081131
movsxd rax, dword [r11 + 0xc]
cmp rbx, rax
jne 0x18008112d
mov r8d, 3
jmp 0x180081131
mov rdi, qword [rbp - 0x79]
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18008117b
test r8, r8
je 0x18008117b
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [rdi]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [rdi], eax
lea eax, [rbx - 1]
mov dword [r11 + 0x10], eax
lea eax, [rbx + 1]
mov dword [r11 + 0x14], eax
lea eax, [rbx - 2]
mov dword [r11 + 0x18], eax
lea eax, [rbx + 2]
mov dword [r11 + 0x1c], eax
lea eax, [rbx - 3]
mov dword [r11 + 0x20], eax
lea eax, [rbx + 3]
mov dword [r11 + 0x24], eax
mov dword [r11], ebx
mov rcx, qword [rbp + 0x87]
mov esi, dword [rbp - 0x41]
mov r15, qword [rbp + 0x67]
mov r11, qword [rsp + 0x20]
movzx eax, sil
shl eax, 0x19
or eax, r10d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r14d, dword [r15 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x1800811b2
xor edi, edi
jmp 0x180081232
mov r11d, dword [r15 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x20]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
mov rcx, qword [rbp + 0x87]
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [rcx + 0xe], r8w
mov eax, 0x3ff
mov dword [rcx + 8], edi
and r8w, ax
mov r14, qword [rsp + 0x10]
lea edx, [r14 + rsi]
movsxd r9, edx
cmp r11, 6
jae 0x180081260
movzx r10d, r11w
mov eax, 0x17
jmp 0x1800812d2
cmp r11, 0x82
jae 0x18008128a
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x1800812d2
cmp r11, 0x842
jae 0x1800812a7
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x1800812d2
mov eax, 0x17
cmp r11, 0x1842
jae 0x1800812bd
mov r10d, 0x15
jmp 0x1800812d2
cmp r11, 0x5842
jae 0x1800812ce
mov r10d, 0x16
jmp 0x1800812d2
movzx r10d, ax
cmp r9, 0xa
jae 0x1800812df
sub r9w, 2
jmp 0x18008131f
cmp r9, 0x86
jae 0x180081304
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18008131f
cmp r9, 0x846
jae 0x18008131b
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18008131f
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x180081357
cmp r10w, 8
jae 0x180081357
cmp r9w, 0x10
jae 0x180081357
cmp r9w, 8
jb 0x18008138b
or dx, 0x40
jmp 0x18008138b
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x87]
xor esi, esi
mov rdi, qword [rbp + 0x47]
mov qword [rsp + 0x20], rsi
mov word [rax + 0xc], dx
add rax, 0x10
mov qword [rbp + 0x87], rax
lea r10, [rdi + 2]
mov rax, qword [rbp + 0x97]
add qword [rax], r11
lea rax, [r14 + rdi]
mov r11, qword [rbp - 0x39]
cmp rax, r11
cmovb r11, rax
mov rax, r14
shr rax, 2
cmp rbx, rax
jae 0x1800813fe
lea rax, [rbx*4]
mov rcx, r14
sub rcx, rax
lea rax, [rcx + rdi]
cmp r10, rax
mov eax, 2
cmova rcx, rax
lea r10, [rdi + rcx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x180081489
mov rbx, qword [rbp + 0x57]
mov r15d, 0xffff
mov r9, qword [r12 + 0x40]
mov rax, r10
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, r10
imul edx, dword [rax + r13], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r10w
cmp rcx, r15
cmova rcx, r15
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], r10d
inc r10
mov word [r9 + rdx*2 + 0x20000], r8w
cmp r10, r11
jb 0x180081411
mov r15, qword [rbp + 0x67]
add rdi, r14
mov qword [rbp + 0x47], rdi
jmp 0x18008163f
mov rsi, qword [rsp + 0x20]
inc rdi
mov r15, qword [rsp + 0x60]
inc rsi
mov qword [rsp + 0x20], rsi
mov qword [rbp + 0x47], rdi
cmp rdi, r15
jbe 0x18008163b
mov rax, qword [rbp - 0x31]
mov r10, qword [rsp + 0x68]
lea rax, [r15 + rax*4]
cmp rdi, rax
jbe 0x18008157e
add r10, 0xfffffffffffffffc
lea rax, [rdi + 0x10]
cmp rax, r10
cmovb r10, rax
cmp rdi, r10
jae 0x18008163b
mov rbx, qword [rbp + 0x57]
mov rax, r10
sub rax, rdi
add rsi, 4
dec rax
and rax, 0xfffffffffffffffc
add rsi, rax
mov qword [rsp + 0x20], rsi
mov r9, qword [r12 + 0x40]
mov rax, rdi
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, rdi
imul edx, dword [rax + rdx], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, di
cmp rcx, r14
cmova rcx, r14
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], edi
add rdi, 4
mov word [r9 + rdx*2 + 0x20000], r8w
mov rdx, qword [rbp + 0x4f]
cmp rdi, r10
jb 0x180081502
jmp 0x180081637
add r10, 0xfffffffffffffffd
lea rax, [rdi + 8]
cmp rax, r10
cmovb r10, rax
cmp rdi, r10
jae 0x18008163b
mov rbx, qword [rbp + 0x57]
mov rax, r10
sub rax, rdi
add rsi, 2
dec rax
and rax, 0xfffffffffffffffe
add rsi, rax
mov qword [rsp + 0x20], rsi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [r12 + 0x40]
mov rax, rdi
movzx r8d, word [r12 + 0x30]
and rax, rbx
mov rcx, rdi
imul edx, dword [rax + rdx], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r12 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, di
cmp rcx, r14
cmova rcx, r14
mov byte [rax + r9 + 0x30000], dl
mov word [r9 + r8*4 + 0x40000], cx
movzx eax, word [r9 + rdx*2 + 0x20000]
mov word [r9 + r8*4 + 0x40002], ax
mov dword [r9 + rdx*4], edi
add rdi, 2
mov word [r9 + rdx*2 + 0x20000], r8w
mov rdx, qword [rbp + 0x4f]
cmp rdi, r10
jb 0x1800815c0
mov qword [rbp + 0x47], rdi
mov r15, qword [rbp + 0x67]
mov rdx, qword [rsp + 0x68]
lea rax, [rdi + 4]
mov r9, qword [rbp + 0x4f]
mov r10, qword [rbp + 0x57]
mov rbx, qword [rbp + 0x77]
mov r11, qword [rbp - 0x71]
mov r14, qword [rbp - 0x69]
cmp rax, rdx
jb 0x18007ffd4
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov r8, qword [rbp + 0x87]
mov rax, qword [rbp + 0x7f]
sub rdx, rdi
sub r8, qword [rbp - 0x21]
add rdx, rsi
sar r8, 4
mov qword [rax], rdx
mov rax, qword [rbp + 0x8f]
add qword [rax], r8
add rsp, 0xf8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xe0
mov r15, qword [rbp + 0x6f]
mov r10, rcx
mov r14, qword [rbp + 0x87]
mov ebx, 1
mov r9, qword [rbp + 0x77]
mov r13, r8
mov rax, qword [rbp + 0x8f]
add r9, 0x30
mov ecx, dword [r15 + 8]
lea r11, [r10 + rdx]
mov rdi, qword [r15 + 0x10]
mov rsi, rdx
mov r14, qword [r14]
shl rbx, cl
sub rbx, 0x10
mov qword [rsp + 8], r9
mov qword [rbp - 0x41], rbx
mov qword [rbp - 0x39], rdi
mov qword [rbp - 0x11], rax
mov qword [rsp + 0x30], r14
mov qword [rbp - 0x69], r11
cmp r10, 4
jb 0x18008173d
lea rax, [r11 - 3]
mov qword [rbp - 0x29], rax
jmp 0x180081741
mov qword [rbp - 0x29], rsi
mov rdx, qword [rbp + 0x7f]
mov ecx, 0x40
cmp dword [r15 + 4], 9
mov eax, 0x200
cmovl eax, ecx
mov ecx, dword [rdx]
mov qword [rbp - 0x21], rax
add rax, rsi
mov qword [rbp - 0x71], rax
lea eax, [rcx - 1]
mov dword [rdx + 0x10], eax
lea eax, [rcx + 1]
mov dword [rdx + 0x14], eax
lea eax, [rcx - 2]
mov dword [rdx + 0x18], eax
lea eax, [rcx + 2]
mov dword [rdx + 0x1c], eax
lea eax, [rcx - 3]
mov dword [rdx + 0x20], eax
lea eax, [rcx + 3]
mov ecx, dword [rdx + 4]
mov dword [rdx + 0x24], eax
lea eax, [rcx - 1]
mov dword [rdx + 0x28], eax
lea eax, [rcx + 1]
mov dword [rdx + 0x2c], eax
lea eax, [rcx - 2]
mov dword [rdx + 0x30], eax
lea eax, [rcx + 2]
mov dword [rdx + 0x34], eax
lea eax, [rcx - 3]
mov dword [rdx + 0x38], eax
lea eax, [rcx + 3]
mov dword [rdx + 0x3c], eax
lea rax, [rsi + 4]
cmp rax, r11
jae 0x180083440
lea rax, [rdx + 8]
mov qword [rsp + 0xd8], r12
mov qword [rbp - 0x31], rax
nop dword [rax]
xor r14d, r14d
mov qword [rsp + 0x10], 0x7e4
lea rax, [rdi + rsi]
mov qword [rbp - 0x59], r14
mov r8, r11
mov qword [rsp + 0x28], r14
sub r8, rsi
mov dword [rbp - 0x49], r14d
cmp rsi, rbx
mov qword [rsp], r14
mov r14, qword [rbp - 0x31]
mov rcx, rbx
cmovb rcx, rsi
mov qword [rbp + 0x47], r8
cmp rax, rbx
mov qword [rbp + 0x77], rcx
mov rdx, rbx
mov edi, 2
cmovb rdx, rax
mov rax, qword [r15 + 0x50]
mov r15, qword [r9 + 0x408]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp + 0x5f]
lea rax, [r15 + 0x40000]
mov qword [rsp + 0x40], rax
mov rax, rsi
and rax, rdx
imul r12d, dword [rax + r13], 0x1e35a7bd
lea rsi, [rax + r13]
mov qword [rsp + 0x38], rax
mov r13d, 0x7e4
shr r12, 0x11
jmp 0x180081878
mov rcx, qword [rbp + 0x77]
mov r8, qword [rbp + 0x47]
mov r10, qword [rbp + 0x4f]
lea r11, [rdi - 2]
movsxd rbx, dword [r14 - 8]
mov r9, r10
sub r9, rbx
test r11, r11
je 0x1800818a1
movzx eax, r9w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x180081994
cmp r9, r10
jae 0x180081994
cmp rbx, rcx
ja 0x180081994
and r9, qword [rbp + 0x5f]
xor ecx, ecx
add r9, qword [rbp + 0x57]
mov rdx, rsi
shr r8, 3
test r8, r8
je 0x1800818ee
nop dword [rax]
mov r10, qword [rdx]
mov rax, qword [rcx + r9]
cmp r10, rax
jne 0x180081977
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800818d0
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x180081913
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r9], al
jne 0x180081913
inc rcx
sub r8, 1
jne 0x180081900
mov r8, rcx
cmp r8, 2
jb 0x180081988
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x180081988
test r11, r11
je 0x180081953
movzx ecx, r11b
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
mov rcx, qword [rbp + 0x77]
mov rdx, qword [rbp + 0x5f]
cmp r13, r9
jae 0x180081990
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x59], rbx
mov qword [rsp + 0x10], r9
jmp 0x180081990
xor rax, r10
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180081916
mov rdx, qword [rbp + 0x5f]
mov rcx, qword [rbp + 0x77]
mov r8, qword [rbp + 0x47]
mov r9, qword [rbp + 0x4f]
lea rax, [rdi - 1]
movsxd rbx, dword [r14 - 4]
mov r10, r9
sub r10, rbx
test rax, rax
je 0x1800819bd
movzx eax, r10w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x180081a92
cmp r10, r9
jae 0x180081a92
cmp rbx, rcx
ja 0x180081a92
and r10, rdx
mov r9, r8
add r10, qword [rbp + 0x57]
xor edx, edx
shr r9, 3
mov rcx, rsi
test r9, r9
je 0x180081a12
mov r11, r10
sub r11, rsi
nop dword [rax]
mov r8, qword [rcx]
mov rax, qword [rcx + r11]
cmp r8, rax
jne 0x180081cb6
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x1800819f0
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x180081a35
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180081a35
inc rcx
inc rdx
sub r8, 1
jne 0x180081a20
mov r8, rdx
cmp r8, 2
jb 0x180081a92
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x180081a92
lea rax, [rdi - 1]
test rax, rax
je 0x180081a7d
lea ecx, [rdi - 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x180081a92
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x59], rbx
mov qword [rsp + 0x10], r9
mov rcx, qword [rbp + 0x4f]
movsxd rbx, dword [r14]
mov r10, rcx
sub r10, rbx
test rdi, rdi
je 0x180081ab6
movzx eax, r10w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x180081b8f
cmp r10, rcx
mov rcx, qword [rbp + 0x77]
jae 0x180081b93
cmp rbx, rcx
ja 0x180081b93
and r10, qword [rbp + 0x5f]
xor edx, edx
mov rax, qword [rbp + 0x47]
mov rcx, rsi
add r10, qword [rbp + 0x57]
mov r9, rax
shr r9, 3
test r9, r9
je 0x180081b12
mov r11, r10
sub r11, rsi
nop
mov r8, qword [rcx]
mov rax, qword [rcx + r11]
cmp r8, rax
jne 0x180081cca
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x180081af0
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x180081b35
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180081b35
inc rcx
inc rdx
sub r8, 1
jne 0x180081b20
mov r8, rdx
cmp r8, 2
jb 0x180081b8f
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x180081b8f
test rdi, rdi
je 0x180081b7a
movzx ecx, dil
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x180081b8f
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x28], r8
mov qword [rbp - 0x59], rbx
mov qword [rsp + 0x10], r9
mov rcx, qword [rbp + 0x77]
mov r8, qword [rbp + 0x4f]
lea rax, [rdi + 1]
movsxd rbx, dword [r14 + 4]
mov r10, r8
sub r10, rbx
test rax, rax
je 0x180081bbc
movzx eax, r10w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x180081cf6
cmp r10, r8
jae 0x180081cf6
cmp rbx, rcx
ja 0x180081cf6
and r10, qword [rbp + 0x5f]
xor edx, edx
mov rax, qword [rbp + 0x47]
mov rcx, rsi
add r10, qword [rbp + 0x57]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180081c22
mov r11, r10
sub r11, rsi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r11]
cmp r9, rax
jne 0x180081cde
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180081c00
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x180081c45
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180081c45
inc rcx
inc rdx
sub r8, 1
jne 0x180081c30
mov r8, rdx
cmp r8, 2
jb 0x180081cf2
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x180081cf2
lea rax, [rdi + 1]
test rax, rax
je 0x180081c95
lea ecx, [rdi + 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x180081cf2
mov r10, r8
mov qword [rsp], r8
mov qword [rsp + 0x28], r8
mov r13, r9
mov r8, qword [rbp + 0x4f]
mov r11, r9
mov qword [rbp - 0x59], rbx
mov qword [rsp + 0x10], r9
jmp 0x180081cff
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180081a38
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180081b38
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180081c48
mov r8, qword [rbp + 0x4f]
mov r11, qword [rsp + 0x10]
mov r10, qword [rsp]
mov rdx, qword [rbp + 0x5f]
add rdi, 4
add r14, 0x10
lea rax, [rdi - 2]
cmp rax, 0x10
jb 0x180081870
mov rax, qword [rsp + 8]
mov r15, r12
mov rsi, r8
and r15d, 0x1ff
xor ebx, ebx
mov rcx, qword [rax + 0x408]
mov rdi, qword [rax + 0x400]
mov eax, dword [rcx + r12*4]
movzx r12d, word [rcx + r12*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x180081ea4
mov rdx, qword [rsp + 0x38]
mov r9, qword [rbp + 0x57]
lea r14, [rdx + r9]
nop dword [rax]
nop word [rax + rax]
dec rdi
add rbx, rsi
cmp rbx, qword [rbp + 0x77]
ja 0x180081ea4
mov r11, qword [rbp + 0x5f]
mov rcx, r8
mov r8, qword [rsp + 0x40]
sub rcx, rbx
mov rax, r15
and rcx, r11
shl rax, 9
add rdx, r10
add rax, r12
movzx r12d, word [r8 + rax*4 + 2]
movzx esi, word [r8 + rax*4]
cmp rdx, r11
ja 0x180081e8d
lea rax, [rcx + r10]
cmp rax, r11
ja 0x180081e8d
movzx eax, byte [rax + r9]
cmp byte [rdx + r9], al
jne 0x180081e8d
mov rax, qword [rbp + 0x47]
lea r11, [rcx + r9]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r14
test r8, r8
je 0x180081e0e
mov r10, r11
sub r10, r14
nop
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180081e78
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180081df0
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x180081e33
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180081e33
inc rcx
sub r8, 1
jne 0x180081e20
mov rdx, rcx
mov r9, qword [rbp + 0x57]
cmp rdx, 4
jb 0x180081e89
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r13, rax
jae 0x180081e89
mov r13, rax
mov qword [rsp], rdx
mov r10, rdx
mov qword [rsp + 0x28], rdx
mov qword [rbp - 0x59], rbx
mov r11, rax
mov qword [rsp + 0x10], rax
jmp 0x180081e92
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180081e36
mov r10, qword [rsp]
mov r11, qword [rsp + 0x10]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rbp + 0x4f]
test rdi, rdi
jne 0x180081d70
mov rsi, qword [rbp + 0x4f]
mov r12d, 0xffff
mov rdi, qword [rsp + 8]
mov rax, rsi
mov rbx, qword [rbp + 0x5f]
mov rdx, rsi
mov r13, qword [rbp + 0x57]
and rax, rbx
mov r10, qword [rdi + 0x408]
imul eax, dword [rax + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rcx, r9
and ecx, 0x1ff
movzx eax, word [rdi + rcx*2]
mov r8d, eax
inc ax
mov word [rdi + rcx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rdx, rax
movzx eax, si
cmp rdx, r12
cmova rdx, r12
mov byte [rax + r10 + 0x30000], r9b
lea rax, [rcx + 0x80]
shl rax, 9
add rax, r8
mov word [r10 + rax*4], dx
lea rcx, [r10 + rax*4]
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [rcx + 2], ax
mov dword [r10 + r9*4], esi
mov word [r10 + r9*2 + 0x20000], r8w
cmp r11, 0x7e4
jne 0x18008227c
mov r9, qword [rsp + 8]
mov rdi, qword [rsp + 0x38]
add rdi, r13
mov r15, qword [r9 + 0x410]
mov rcx, qword [r15 + 8]
mov rax, rcx
shr rax, 7
cmp qword [r15 + 0x10], rax
jb 0x180082279
imul ebx, dword [rdi], 0x1e35a7bd
lea r14, [rcx + 1]
mov r12, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x47]
mov qword [r15 + 8], r14
mov rax, qword [r12 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x1800820e4
mov rax, qword [r12 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x1800820e4
mov rcx, qword [r12 + 0x58]
mov eax, r11d
imul rax, rsi
mov r8d, dword [rcx + r11*4 + 0x20]
mov edx, r11d
add r8, rax
shr rdx, 3
add r8, qword [rcx + 0xa8]
xor ecx, ecx
test rdx, rdx
je 0x18008200e
mov r10, rdi
sub r10, r8
nop dword [rax]
mov r9, qword [r8]
mov rax, qword [r8 + r10]
cmp r9, rax
jne 0x1800820d0
add r8, 8
add rcx, 8
sub rdx, 1
jne 0x180081ff0
mov rdx, r11
and edx, 7
je 0x180082033
sub r8, rcx
nop dword [rax]
movzx eax, byte [rcx + r8]
cmp byte [rcx + rdi], al
jne 0x180082033
inc rcx
sub rdx, 1
jne 0x180082020
mov r9, rcx
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800820f0
test r9, r9
je 0x1800820f0
mov rdx, qword [r12 + 0x68]
mov r8, r11
sub r8, r9
movzx ecx, r8b
add cl, cl
lea eax, [rcx + r8]
lea ecx, [rax + rax]
shr rdx, cl
mov rcx, qword [r12 + 0x58]
and edx, 0x3f
mov r12, qword [rsp + 0x18]
movzx ecx, byte [r11 + rcx]
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp + 0x20]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, r12
ja 0x1800820fa
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x10]
jb 0x1800820fa
sub r11d, r9d
mov qword [rsp + 0x28], r9
inc qword [r15 + 0x10]
mov dword [rbp - 0x49], r11d
mov qword [rbp - 0x59], rdx
mov qword [rsp + 0x10], rax
jmp 0x1800820fa
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180082036
mov rsi, qword [rsp + 0x20]
mov r12, qword [rsp + 0x18]
jmp 0x1800820fe
mov rsi, qword [rsp + 0x20]
mov r12, qword [rsp + 0x18]
mov rdx, qword [rbp + 0x47]
lea rax, [r14 + 1]
mov r14, qword [rbp + 0x6f]
mov qword [r15 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x180082264
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx ebx, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180082264
mov rcx, qword [r14 + 0x58]
mov eax, r11d
imul rax, rbx
mov edx, dword [rcx + r11*4 + 0x20]
mov r8d, r11d
mov rcx, qword [rcx + 0xa8]
add rdx, rax
add rcx, rdx
shr r8, 3
xor edx, edx
test r8, r8
je 0x18008218e
mov r10, rdi
sub r10, rcx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180082250
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180082170
mov r8, r11
and r8d, 7
je 0x1800821ab
movzx eax, byte [rcx]
cmp byte [rdx + rdi], al
jne 0x1800821ab
inc rcx
inc rdx
sub r8, 1
jne 0x180082197
mov r9, rdx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180082264
test r9, r9
je 0x180082264
mov rdx, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx ecx, r8b
add cl, cl
lea eax, [rcx + r8]
lea ecx, [rax + rax]
shr rdx, cl
mov rcx, qword [r14 + 0x58]
and edx, 0x3f
movzx ecx, byte [r11 + rcx]
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rbx
add rdx, rsi
cmp rdx, r12
ja 0x180082264
mov rbx, qword [rbp + 0x5f]
mov r12d, 0xffff
mov rsi, qword [rbp + 0x4f]
mov rdi, qword [rsp + 8]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x10]
jb 0x180082280
sub r11d, r9d
mov qword [rbp - 0x59], rdx
inc qword [r15 + 0x10]
mov rcx, r9
mov qword [rsp + 0x28], rcx
mov dword [rbp - 0x49], r11d
mov qword [rsp + 0x10], rax
jmp 0x180082285
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x1800821ae
mov rbx, qword [rbp + 0x5f]
mov r12d, 0xffff
mov rsi, qword [rbp + 0x4f]
mov rdi, qword [rsp + 8]
jmp 0x180082280
mov rdi, r9
mov r14, qword [rbp + 0x6f]
mov rcx, qword [rsp + 0x28]
cmp qword [rsp + 0x10], 0x7e4
jbe 0x18008323a
mov dword [rbp + 0x77], 0
mov r8, qword [rbp + 0x47]
dec r8
cmp dword [r14 + 4], 5
mov qword [rbp + 0x47], r8
jge 0x1800822c1
lea rax, [rcx - 1]
mov r10, r8
cmp rax, r8
cmovb r10, rax
mov qword [rsp], r10
jmp 0x1800822c7
xor eax, eax
mov qword [rsp], rax
mov r9, qword [rbp - 0x41]
lea r11, [rsi + 1]
mov r15, qword [rdi + 0x408]
cmp r11, r9
mov rax, qword [rbp - 0x39]
mov r12d, 0x7e4
mov rcx, r9
mov qword [rsp + 0x58], r12
cmovb rcx, r11
mov qword [rsp + 0x50], 0
inc rax
mov qword [rsp + 0x18], r11
add rax, rsi
mov qword [rsp + 0x20], rcx
cmp rax, r9
mov qword [rsp + 0x48], 0
mov rdx, r9
mov dword [rbp - 0x79], 0
mov r9, qword [rbp + 0x57]
cmovb rdx, rax
mov rax, qword [r14 + 0x50]
mov edi, 2
mov r14, qword [rbp - 0x31]
mov r13d, 0x7e4
mov qword [rsp + 0x38], rax
lea rax, [r15 + 0x40000]
mov qword [rbp - 0x19], rax
mov rax, r11
mov qword [rsp + 0x40], rdx
mov rdx, qword [rbp + 0x5f]
and rax, rdx
imul r12d, dword [rax + r9], 0x1e35a7bd
lea rsi, [rax + r9]
mov qword [rbp - 0x71], rax
shr r12, 0x11
jmp 0x180082381
mov rcx, qword [rsp + 0x20]
mov r8, qword [rbp + 0x47]
mov r9, qword [rbp + 0x57]
mov rdx, qword [rbp + 0x5f]
movsxd rbx, dword [r14 - 8]
lea rax, [rdi - 2]
sub r11, rbx
test rax, rax
je 0x1800823a3
movzx eax, r11w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x1800824ae
cmp r11, qword [rsp + 0x18]
jae 0x1800824ae
cmp rbx, rcx
ja 0x1800824ae
and r11, qword [rbp + 0x5f]
xor ecx, ecx
add r11, r9
mov rdx, rsi
mov r9, r8
shr r9, 3
test r9, r9
je 0x180082402
mov r10, r11
sub r10, rsi
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r8, rax
jne 0x18008248c
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x1800823e0
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x180082423
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180082423
inc rcx
sub r8, 1
jne 0x180082410
mov r8, rcx
cmp r8, 2
jb 0x18008249d
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x18008249d
lea rax, [rdi - 2]
test rax, rax
je 0x180082466
lea ecx, [rdi - 2]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rbp + 0x5f]
cmp r13, r9
jae 0x1800824a6
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], r9
jmp 0x1800824a6
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180082426
mov rdx, qword [rbp + 0x5f]
mov rcx, qword [rsp + 0x20]
mov r9, qword [rbp + 0x57]
mov r8, qword [rbp + 0x47]
movsxd rbx, dword [r14 - 4]
lea rax, [rdi - 1]
mov r11, qword [rsp + 0x18]
sub r11, rbx
test rax, rax
je 0x1800824d5
movzx eax, r11w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x1800825b3
cmp r11, qword [rsp + 0x18]
jae 0x1800825b3
cmp rbx, rcx
ja 0x1800825b3
and r11, rdx
mov rcx, rsi
add r11, r9
xor edx, edx
mov r9, r8
shr r9, 3
test r9, r9
je 0x180082532
mov r10, r11
sub r10, rsi
nop word [rax + rax]
mov r8, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r8, rax
jne 0x1800827e5
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x180082510
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x180082555
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180082555
inc rcx
inc rdx
sub r8, 1
jne 0x180082540
mov r8, rdx
cmp r8, 2
jb 0x1800825b3
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x1800825b3
lea rax, [rdi - 1]
test rax, rax
je 0x18008259d
lea ecx, [rdi - 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x1800825b3
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], r9
mov r11, qword [rsp + 0x18]
movsxd rbx, dword [r14]
mov r10, r11
sub r10, rbx
test rdi, rdi
je 0x1800825d8
movzx eax, r10w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x1800826c5
mov rcx, qword [rsp + 0x20]
cmp r10, r11
jae 0x1800826ca
cmp rbx, rcx
ja 0x1800826ca
and r10, qword [rbp + 0x5f]
xor edx, edx
mov rax, qword [rbp + 0x47]
mov rcx, rsi
add r10, qword [rbp + 0x57]
mov r9, rax
shr r9, 3
test r9, r9
je 0x180082642
mov r11, r10
sub r11, rsi
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r8, rax
jne 0x1800827f9
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x180082620
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x180082665
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180082665
inc rcx
inc rdx
sub r8, 1
jne 0x180082650
mov r8, rdx
cmp r8, 2
jb 0x1800826c0
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x1800826c0
test rdi, rdi
je 0x1800826aa
movzx ecx, dil
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x1800826c0
mov r13, r9
mov qword [rsp], r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], r9
mov r11, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
movsxd rbx, dword [r14 + 4]
lea rax, [rdi + 1]
mov r10, r11
sub r10, rbx
test rax, rax
je 0x1800826ef
movzx eax, r10w
cmp byte [rax + r15 + 0x30000], r12b
jne 0x180082826
cmp r10, r11
jae 0x180082826
cmp rbx, rcx
ja 0x180082826
and r10, qword [rbp + 0x5f]
xor edx, edx
mov rax, qword [rbp + 0x47]
mov rcx, rsi
add r10, qword [rbp + 0x57]
mov r9, rax
shr r9, 3
test r9, r9
je 0x180082752
mov r11, r10
sub r11, rsi
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r8, rax
jne 0x18008280d
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x180082730
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x180082775
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180082775
inc rcx
inc rdx
sub r8, 1
jne 0x180082760
mov r8, rdx
cmp r8, 2
jb 0x180082821
imul r9, r8, 0x87
add r9, 0x78f
cmp r13, r9
jae 0x180082821
lea rax, [rdi + 1]
test rax, rax
je 0x1800827c5
lea ecx, [rdi + 1]
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r13, r9
jae 0x180082821
mov r11, qword [rsp + 0x18]
mov r13, r9
mov r10, r8
mov qword [rsp], r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], r9
jmp 0x18008282a
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180082558
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180082668
xor rax, r8
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180082778
mov r11, qword [rsp + 0x18]
mov r10, qword [rsp]
add rdi, 4
add r14, 0x10
lea rax, [rdi - 2]
cmp rax, 0x10
jb 0x180082370
mov rax, qword [rsp + 8]
mov r15, r12
mov rsi, r11
and r15d, 0x1ff
xor ebx, ebx
mov rcx, qword [rax + 0x408]
mov rdi, qword [rax + 0x400]
mov eax, dword [rcx + r12*4]
movzx r12d, word [rcx + r12*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x1800829bd
mov rdx, qword [rbp - 0x71]
mov r9, qword [rbp + 0x57]
lea r14, [rdx + r9]
nop word [rax + rax]
dec rdi
add rbx, rsi
cmp rbx, qword [rsp + 0x20]
ja 0x1800829bd
mov r8, qword [rbp - 0x19]
mov rax, r15
shl rax, 9
mov rcx, r11
add rax, r12
sub rcx, rbx
and rcx, qword [rbp + 0x5f]
add rdx, r10
movzx r12d, word [r8 + rax*4 + 2]
movzx esi, word [r8 + rax*4]
mov r8, qword [rbp + 0x5f]
cmp rdx, r8
ja 0x1800829b0
lea rax, [rcx + r10]
cmp rax, r8
ja 0x1800829b0
movzx eax, byte [rax + r9]
cmp byte [rdx + r9], al
jne 0x1800829b0
lea r11, [rcx + r9]
xor eax, eax
mov rcx, qword [rbp + 0x47]
mov rdx, r14
mov r8, rcx
shr r8, 3
test r8, r8
je 0x18008292e
mov r10, r11
sub r10, r14
nop
mov rcx, qword [rdx]
mov r9, qword [rdx + r10]
cmp rcx, r9
jne 0x18008299b
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180082910
mov rcx, qword [rbp + 0x47]
mov r8, rcx
and r8d, 7
je 0x180082953
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r11], cl
jne 0x180082953
inc rax
sub r8, 1
jne 0x180082940
mov rdx, rax
mov r11, qword [rsp + 0x18]
mov r9, qword [rbp + 0x57]
cmp rdx, 4
jb 0x1800829ac
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r13, rax
jae 0x1800829ac
mov r13, rax
mov qword [rsp], rdx
mov r10, rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rax
jmp 0x1800829b0
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180082956
mov r10, qword [rsp]
mov rdx, qword [rbp - 0x71]
test rdi, rdi
jne 0x180082890
mov rdi, qword [rsp + 8]
mov rax, r11
and rax, qword [rbp + 0x5f]
mov rdx, r11
mov r13, qword [rbp + 0x57]
mov r12, qword [rsp + 0x58]
mov r10, qword [rdi + 0x408]
imul eax, dword [rax + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rcx, r9
and ecx, 0x1ff
movzx eax, word [rdi + rcx*2]
mov r8d, eax
inc ax
mov word [rdi + rcx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rdx, rax
movzx eax, r11w
mov byte [rax + r10 + 0x30000], r9b
mov eax, 0xffff
cmp rdx, rax
cmova rdx, rax
lea rax, [rcx + 0x80]
shl rax, 9
add rax, r8
mov word [r10 + rax*4], dx
lea rcx, [r10 + rax*4]
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [rcx + 2], ax
mov dword [r10 + r9*4], r11d
mov word [r10 + r9*2 + 0x20000], r8w
cmp r12, 0x7e4
jne 0x180082d67
mov r9, qword [rsp + 8]
mov rdi, qword [rbp - 0x71]
add rdi, r13
mov r15, qword [r9 + 0x410]
mov rcx, qword [r15 + 8]
mov rax, rcx
shr rax, 7
cmp qword [r15 + 0x10], rax
jb 0x180082d64
imul ebx, dword [rdi], 0x1e35a7bd
lea r14, [rcx + 1]
mov r13, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x47]
mov qword [r15 + 8], r14
mov rax, qword [r13 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180082bf3
mov rax, qword [r13 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180082bf3
mov rcx, qword [r13 + 0x58]
mov eax, r11d
imul rax, rsi
mov r8d, dword [rcx + r11*4 + 0x20]
mov edx, r11d
add r8, rax
shr rdx, 3
add r8, qword [rcx + 0xa8]
xor ecx, ecx
test rdx, rdx
je 0x180082b1e
mov r10, rdi
sub r10, r8
mov r9, qword [r8]
mov rax, qword [r8 + r10]
cmp r9, rax
jne 0x180082bdf
add r8, 8
add rcx, 8
sub rdx, 1
jne 0x180082b00
mov rdx, r11
and edx, 7
je 0x180082b43
sub r8, rcx
nop dword [rax]
movzx eax, byte [rcx + r8]
cmp byte [rcx + rdi], al
jne 0x180082b43
inc rcx
sub rdx, 1
jne 0x180082b30
mov r9, rcx
mov eax, dword [r13 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180082bff
test r9, r9
je 0x180082bff
mov rdx, qword [r13 + 0x68]
mov r8, r11
sub r8, r9
movzx ecx, r8b
add cl, cl
lea eax, [rcx + r8]
lea ecx, [rax + rax]
shr rdx, cl
mov rcx, qword [r13 + 0x58]
and edx, 0x3f
mov r13, qword [rsp + 0x38]
movzx ecx, byte [r11 + rcx]
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp + 0x40]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, r13
ja 0x180082c09
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r12
jb 0x180082c09
sub r11d, r9d
mov qword [rsp + 0x48], r9
inc qword [r15 + 0x10]
mov r12, rax
mov dword [rbp - 0x79], r11d
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rax
jmp 0x180082c09
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180082b46
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
jmp 0x180082c0d
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov rdx, qword [rbp + 0x47]
lea rax, [r14 + 1]
mov r14, qword [rbp + 0x6f]
mov qword [r15 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x180082d59
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx ebx, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180082d59
mov rcx, qword [r14 + 0x58]
mov eax, r11d
imul rax, rbx
mov edx, dword [rcx + r11*4 + 0x20]
mov r8d, r11d
mov rcx, qword [rcx + 0xa8]
add rdx, rax
add rcx, rdx
shr r8, 3
xor edx, edx
test r8, r8
je 0x180082c8e
mov r10, rdi
sub r10, rcx
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180082d45
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180082c70
mov r8, r11
and r8d, 7
je 0x180082cab
movzx eax, byte [rcx]
cmp byte [rdx + rdi], al
jne 0x180082cab
inc rcx
inc rdx
sub r8, 1
jne 0x180082c97
mov r9, rdx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180082d59
test r9, r9
je 0x180082d59
mov rdx, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx ecx, r8b
add cl, cl
lea eax, [rcx + r8]
lea ecx, [rax + rax]
shr rdx, cl
mov rcx, qword [r14 + 0x58]
and edx, 0x3f
movzx ecx, byte [r11 + rcx]
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rbx
add rdx, rsi
cmp rdx, r13
ja 0x180082d59
mov r13, qword [rbp + 0x57]
mov rdi, qword [rsp + 8]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r12
jb 0x180082d6b
sub r11d, r9d
mov qword [rsp + 0x48], r9
inc qword [r15 + 0x10]
mov r12, rax
mov dword [rbp - 0x79], r11d
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rax
jmp 0x180082d6b
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x180082cae
mov r13, qword [rbp + 0x57]
mov rdi, qword [rsp + 8]
jmp 0x180082d6b
mov rdi, r9
mov r14, qword [rbp + 0x6f]
mov rax, qword [rsp + 0x10]
mov rsi, qword [rbp + 0x4f]
add rax, 0xaf
mov r11, qword [rsp + 0x30]
cmp r12, rax
jb 0x180082dd9
mov ecx, dword [rbp + 0x77]
inc rsi
movups xmm0, xmmword [rsp + 0x48]
inc ecx
inc r11
mov qword [rbp + 0x4f], rsi
mov qword [rsp + 0x30], r11
mov dword [rbp + 0x77], ecx
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rbp - 0x61], xmm0
movups xmmword [rbp - 0x51], xmm1
cmp ecx, 4
jge 0x180082dd3
lea rax, [rsi + 4]
cmp rax, qword [rbp - 0x69]
jae 0x180082dd3
mov rax, qword [rbp - 0x51]
mov rcx, qword [rbp - 0x61]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x28], rcx
jmp 0x18008229b
mov r12, qword [rbp - 0x61]
jmp 0x180082dde
mov r12, qword [rsp + 0x28]
mov rax, qword [rbp - 0x21]
mov r9, qword [rbp - 0x41]
mov rdi, qword [rbp - 0x59]
mov r10, qword [rbp + 0x7f]
lea r15, [rax + r12*2]
mov rax, qword [rbp - 0x39]
add rax, rsi
add r15, rsi
cmp rax, r9
mov qword [rbp - 0x71], r15
cmovb r9, rax
cmp rdi, r9
ja 0x180082e8a
movsxd rax, dword [r10]
lea rcx, [rdi + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rdi, rax
jne 0x180082e2a
xor r8d, r8d
jmp 0x180082e8e
cmp rdi, r8
jne 0x180082e37
mov r8d, 1
jmp 0x180082e8e
cmp rdx, 7
jae 0x180082e52
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180082e8e
cmp rcx, 7
jae 0x180082e6a
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180082e8e
movsxd rax, dword [r10 + 8]
cmp rdi, rax
jne 0x180082e7b
mov r8d, 2
jmp 0x180082e8e
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rdi, rax
je 0x180082e8e
lea r8, [rdi + 0xf]
cmp rdi, r9
ja 0x180082f06
test r8, r8
je 0x180082f06
mov ecx, dword [r10]
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
lea eax, [rdi - 1]
mov dword [r10 + 0x10], eax
lea eax, [rdi + 1]
mov dword [r10 + 0x14], eax
lea eax, [rdi - 2]
mov dword [r10 + 0x18], eax
lea eax, [rdi + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rdi - 3]
mov dword [r10 + 0x20], eax
lea eax, [rdi + 3]
mov dword [r10 + 0x24], eax
lea eax, [rcx - 1]
mov dword [r10 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x3c], eax
mov dword [r10 + 4], ecx
mov dword [r10], edi
mov rcx, qword [rbp + 0x8f]
mov esi, dword [rbp - 0x49]
mov r15, qword [rbp + 0x6f]
movzx eax, sil
shl eax, 0x19
or eax, r12d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r14d, dword [r14 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x180082f35
xor ebx, ebx
jmp 0x180082fae
mov r11d, dword [r15 + 0x40]
add r8, 0xfffffffffffffff0
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rbx, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x30]
sub rbx, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rbx, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov r14, qword [rbp + 0x8f]
lea edx, [r12 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r14 + 0xe], r8w
and r8w, ax
mov dword [r14 + 8], ebx
cmp r11, 6
jae 0x180082fdf
movzx r10d, r11w
mov eax, 0x17
jmp 0x180083051
cmp r11, 0x82
jae 0x180083009
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x180083051
cmp r11, 0x842
jae 0x180083026
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180083051
mov eax, 0x17
cmp r11, 0x1842
jae 0x18008303c
mov r10d, 0x15
jmp 0x180083051
cmp r11, 0x5842
jae 0x18008304d
mov r10d, 0x16
jmp 0x180083051
movzx r10d, ax
cmp r9, 0xa
jae 0x18008305e
sub r9w, 2
jmp 0x18008309e
cmp r9, 0x86
jae 0x180083083
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18008309e
cmp r9, 0x846
jae 0x18008309a
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18008309e
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x1800830d6
cmp r10w, 8
jae 0x1800830d6
cmp r9w, 0x10
jae 0x1800830d6
cmp r9w, 8
jb 0x18008310a
or dx, 0x40
jmp 0x18008310a
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x9f]
mov rsi, qword [rbp + 0x4f]
mov rbx, qword [rbp - 0x29]
mov word [r14 + 0xc], dx
add r14, 0x10
add qword [rax], r11
lea rax, [r12 + rsi]
mov qword [rbp + 0x8f], r14
xor r14d, r14d
lea r11, [rsi + 2]
cmp rax, rbx
mov qword [rsp + 0x30], r14
cmovb rbx, rax
mov rax, r12
shr rax, 2
cmp rdi, rax
jae 0x180083178
lea rax, [rdi*4]
mov rcx, r12
sub rcx, rax
lea rax, [rcx + rsi]
cmp r11, rax
mov eax, 2
cmova rcx, rax
lea r11, [rsi + rcx]
cmp rbx, r11
cmovb r11, rbx
cmp r11, rbx
jae 0x18008322e
mov r15, qword [rsp + 8]
mov r14d, 0xffff
nop dword [rax]
mov r10, qword [r15 + 0x408]
mov rax, r11
and rax, qword [rbp + 0x5f]
mov rdx, r11
imul eax, dword [rax + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rcx, r9
and ecx, 0x1ff
movzx eax, word [r15 + rcx*2]
mov r8d, eax
inc ax
mov word [r15 + rcx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rdx, rax
movzx eax, r11w
cmp rdx, r14
cmova rdx, r14
mov byte [rax + r10 + 0x30000], r9b
lea rax, [rcx + 0x80]
shl rax, 9
add rax, r8
lea rcx, [r10 + rax*4]
mov word [rcx], dx
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [rcx + 2], ax
mov dword [r10 + r9*4], r11d
inc r11
mov word [r10 + r9*2 + 0x20000], r8w
cmp r11, rbx
jb 0x180083190
mov r15, qword [rbp + 0x6f]
mov r14, qword [rsp + 0x30]
add rsi, r12
mov qword [rbp + 0x4f], rsi
jmp 0x18008341a
mov r14, qword [rsp + 0x30]
inc rsi
mov r15, qword [rbp - 0x71]
inc r14
mov qword [rsp + 0x30], r14
mov qword [rbp + 0x4f], rsi
cmp rsi, r15
jbe 0x180083416
mov rax, qword [rbp - 0x21]
mov r11, qword [rbp - 0x69]
lea rax, [r15 + rax*4]
cmp rsi, rax
jbe 0x180083347
add r11, 0xfffffffffffffffc
lea rax, [rsi + 0x10]
cmp rax, r11
cmovb r11, rax
cmp rsi, r11
jae 0x180083416
mov rax, r11
add r14, 4
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x30], r14
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rdi + 0x408]
mov rax, rsi
and rax, rbx
mov rdx, rsi
imul eax, dword [rax + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rcx, r9
and ecx, 0x1ff
movzx eax, word [rdi + rcx*2]
mov r8d, eax
inc ax
mov word [rdi + rcx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rdx, rax
movzx eax, si
cmp rdx, r12
cmova rdx, r12
mov byte [rax + r10 + 0x30000], r9b
lea rax, [rcx + 0x80]
shl rax, 9
add rax, r8
lea rcx, [r10 + rax*4]
mov word [rcx], dx
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [rcx + 2], ax
mov dword [r10 + r9*4], esi
add rsi, 4
mov word [r10 + r9*2 + 0x20000], r8w
cmp rsi, r11
jb 0x1800832b0
jmp 0x180083412
add r11, 0xfffffffffffffffd
lea rax, [rsi + 8]
cmp rax, r11
cmovb r11, rax
cmp rsi, r11
jae 0x180083416
mov rax, r11
add r14, 2
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x30], r14
nop dword [rax + rax]
mov r10, qword [rdi + 0x408]
mov rax, rsi
and rax, rbx
mov rdx, rsi
imul eax, dword [rax + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rcx, r9
and ecx, 0x1ff
movzx eax, word [rdi + rcx*2]
mov r8d, eax
inc ax
mov word [rdi + rcx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rdx, rax
movzx eax, si
cmp rdx, r12
cmova rdx, r12
mov byte [rax + r10 + 0x30000], r9b
lea rax, [rcx + 0x80]
shl rax, 9
add rax, r8
lea rcx, [r10 + rax*4]
mov word [rcx], dx
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [rcx + 2], ax
mov dword [r10 + r9*4], esi
add rsi, 2
mov word [r10 + r9*2 + 0x20000], r8w
cmp rsi, r11
jb 0x180083380
mov qword [rbp + 0x4f], rsi
mov r15, qword [rbp + 0x6f]
mov r11, qword [rbp - 0x69]
lea rax, [rsi + 4]
mov r9, qword [rsp + 8]
mov rbx, qword [rbp - 0x41]
mov rdi, qword [rbp - 0x39]
cmp rax, r11
jb 0x1800817d0
mov r12, qword [rsp + 0xd8]
mov rax, qword [rbp + 0x87]
sub r11, rsi
mov rcx, qword [rbp + 0x8f]
add r11, r14
sub rcx, qword [rbp - 0x11]
sar rcx, 4
mov qword [rax], r11
mov rax, qword [rbp + 0x97]
add qword [rax], rcx
add rsp, 0xe0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xf8
mov r8, qword [rbp + 0x67]
mov rax, rcx
mov rdi, qword [rbp + 0x7f]
mov r10d, 1
mov rbx, qword [rbp + 0x87]
mov rsi, rdx
add rdx, rax
mov qword [rbp - 0x21], rbx
mov ecx, dword [r8 + 8]
mov r11, r9
mov r14, qword [r8 + 0x10]
mov rdi, qword [rdi]
shl r10, cl
sub r10, 0x10
mov qword [rbp - 0x61], r14
mov qword [rbp - 0x69], r10
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], rdx
cmp rax, 4
jb 0x1800834fc
add rdx, 0xfffffffffffffffd
mov qword [rbp - 0x31], rdx
jmp 0x180083500
mov qword [rbp - 0x31], rsi
cmp dword [r8 + 4], 9
mov eax, 0x200
mov r15, qword [rbp + 0x6f]
mov ecx, 0x40
cmovl eax, ecx
mov qword [rbp - 0x29], rax
add rax, rsi
mov qword [rsp + 0x60], rax
mov edx, dword [r15 + 0x4c]
cmp edx, 4
jle 0x18008358f
mov r9, qword [rbp + 0x77]
mov ecx, dword [r9]
lea eax, [rcx - 1]
mov dword [r9 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r9 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r9 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r9 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r9 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r9 + 0x24], eax
cmp edx, 0xa
jle 0x18008358f
mov ecx, dword [r9 + 4]
lea eax, [rcx - 1]
mov dword [r9 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r9 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r9 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r9 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r9 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r9 + 0x3c], eax
mov rcx, qword [rsp + 0x58]
lea rax, [rsi + 4]
cmp rax, rcx
jae 0x180084875
mov qword [rsp + 0xf0], r12
xor edx, edx
mov qword [rsp + 0xe8], r13
nop dword [rax]
nop word [rax + rax]
mov r13, qword [rbp + 0x6f]
lea rax, [r14 + rsi]
mov r15, qword [r15 + 0x58]
mov r12, rcx
sub r12, rsi
mov qword [rbp - 0x49], rdx
cmp rsi, r10
mov qword [rsp + 8], r12
mov r14, qword [r13 + 0x60]
mov r9, r10
cmovb r9, rsi
mov qword [rsp + 0x30], 0x7e4
cmp rax, r10
mov qword [rsp + 0x18], r9
mov rcx, r10
mov qword [rsp + 0x38], r15
cmovb rcx, rax
mov qword [rsp + 0x50], r14
mov rax, qword [r8 + 0x50]
mov rbx, rdx
mov r8, rsi
mov qword [rsp], rcx
movsxd rsi, dword [r13 + 0x4c]
and r8, r11
mov qword [rsp + 0x48], rax
mov ecx, 0x7e4
mov qword [rsp + 0x10], r8
mov r10, rdx
mov qword [rsp + 0x20], rdx
mov dword [rbp - 0x39], edx
mov qword [rsp + 0x28], rcx
mov qword [rbp + 0x3f], rdx
test rsi, rsi
je 0x1800837d4
mov r14, qword [rbp + 0x4f]
mov r15, r8
mov rax, qword [rbp + 0x47]
mov r13, qword [rbp + 0x77]
mov qword [rsp + 0x28], rcx
mov qword [rbp + 0x3f], rdx
nop dword [rax]
nop dword [rax + rax]
movsxd rdi, dword [r13 + rbx*4]
mov rcx, rax
sub rcx, rdi
cmp rcx, rax
jae 0x1800837b5
cmp rdi, r9
ja 0x1800837b5
and rcx, r11
lea rdx, [r10 + r15]
cmp rdx, r11
ja 0x1800837b5
lea rax, [rcx + r10]
cmp rax, r11
ja 0x1800837b1
movzx eax, byte [rax + r14]
cmp byte [rdx + r14], al
jne 0x1800837b1
mov r8, r12
lea r11, [rcx + r14]
shr r8, 3
lea rdx, [r15 + r14]
xor ecx, ecx
test r8, r8
je 0x1800836fe
mov r10, r11
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180083793
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800836e0
mov r8, r12
and r8d, 7
je 0x180083723
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180083723
inc rcx
sub r8, 1
jne 0x180083710
mov r8, rcx
cmp r8, 3
jae 0x180083737
cmp r8, 2
jne 0x1800837a4
cmp rbx, r8
jae 0x1800837a4
mov r11, qword [rsp + 0x28]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x1800837a4
test rbx, rbx
je 0x180083777
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x1800837a4
mov qword [rsp + 0x28], r9
mov r10, r8
mov qword [rbp + 0x3f], r8
mov qword [rsp + 0x20], r8
mov qword [rbp - 0x49], rdi
mov qword [rsp + 0x30], r9
jmp 0x1800837a8
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180083726
mov r10, qword [rbp + 0x3f]
mov r9, qword [rsp + 0x18]
mov r11, qword [rbp + 0x57]
mov rax, qword [rbp + 0x47]
inc rbx
cmp rbx, rsi
jb 0x180083670
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x50]
mov r8, qword [rsp + 0x10]
mov r13, qword [rbp + 0x6f]
mov ecx, dword [r13 + 0x40]
mov r12, qword [rbp + 0x4f]
add r12, r8
imul edx, dword [r12], 0x1e35a7bd
shr edx, cl
mov ecx, dword [r13 + 0x48]
mov eax, edx
shl eax, cl
lea r13, [r15 + rdx*2]
mov r15, qword [rbp + 0x6f]
movzx edx, word [r13]
mov esi, edx
mov qword [rsp + 0x38], r13
lea r14, [r14 + rax*4]
mov edi, edx
sub rsi, qword [r15 + 0x38]
mov eax, 0
cmp rdx, qword [r15 + 0x38]
cmovbe rsi, rax
cmp rdx, rsi
jbe 0x18008395f
mov r15d, dword [r15 + 0x44]
mov r13, qword [rbp + 0x4f]
nop dword [rax]
mov rbx, qword [rbp + 0x47]
dec rdi
mov rax, r15
and rax, rdi
mov ecx, dword [r14 + rax*4]
sub rbx, rcx
cmp rbx, r9
ja 0x180083951
and rcx, r11
lea rdx, [r10 + r8]
cmp rdx, r11
ja 0x180083948
lea rax, [rcx + r10]
cmp rax, r11
ja 0x180083948
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
jne 0x180083948
xor eax, eax
lea r11, [rcx + r13]
mov ecx, eax
mov rdx, r12
mov rax, qword [rsp + 8]
mov r8, rax
shr r8, 3
test r8, r8
je 0x1800838c3
mov r10, r11
sub r10, r12
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180083933
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800838a0
mov rax, qword [rsp + 8]
mov r8, rax
and r8d, 7
je 0x1800838e3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800838e3
inc rcx
sub r8, 1
jne 0x1800838d0
mov rdx, rcx
mov r8, qword [rsp + 0x10]
mov r9, qword [rsp + 0x18]
mov r11, qword [rbp + 0x57]
cmp rdx, 4
jb 0x180083944
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x28], rax
jae 0x180083944
mov qword [rsp + 0x28], rax
mov r10, rdx
mov qword [rbp + 0x3f], rdx
mov qword [rsp + 0x20], rdx
mov qword [rbp - 0x49], rbx
mov qword [rsp + 0x30], rax
jmp 0x180083948
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800838e6
mov r10, qword [rbp + 0x3f]
cmp rdi, rsi
ja 0x180083830
mov r13, qword [rsp + 0x38]
mov r15, qword [rbp + 0x6f]
movzx edx, word [r13]
mov eax, dword [r15 + 0x44]
mov rsi, qword [rbp + 0x47]
and rax, rdx
mov dword [r14 + rax*4], esi
inc word [r13]
cmp qword [rsp + 0x30], 0x7e4
jne 0x180083c82
mov r13, qword [r15 + 0x50]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180083c82
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rsp + 8]
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180083b12
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180083b12
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180083a3e
mov r10, r12
sub r10, rdx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180083afe
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180083a20
mov r8, r11
and r8d, 7
je 0x180083a63
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180083a63
inc rcx
sub r8, 1
jne 0x180083a50
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180083b18
test r9, r9
je 0x180083b18
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rsp + 0x48]
ja 0x180083b1c
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x30]
jb 0x180083b1c
mov qword [rsp + 0x30], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x20], r9
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x39], r11d
mov qword [rbp - 0x49], rdx
jmp 0x180083b1c
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180083a66
mov rsi, qword [rsp]
jmp 0x180083b21
mov rsi, qword [rsp]
mov rdx, qword [rsp + 8]
mov r14, qword [rbp + 0x67]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x180083c78
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180083c78
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180083bae
mov r10, r12
sub r10, rdx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180083c64
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180083b90
mov r8, r11
and r8d, 7
je 0x180083bcc
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x180083bcc
inc rdx
inc rcx
sub r8, 1
jne 0x180083bb7
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180083c78
test r9, r9
je 0x180083c78
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
cmp rdx, qword [rsp + 0x48]
ja 0x180083c78
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x6f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x30]
jb 0x180083c86
sub r11d, r9d
mov qword [rbp - 0x49], rdx
inc qword [r13 + 0x10]
mov rcx, r9
mov qword [rsp + 0x20], rcx
mov dword [rbp - 0x39], r11d
mov qword [rsp + 0x30], rax
jmp 0x180083c8b
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180083bcf
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x6f]
jmp 0x180083c86
mov r14, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x20]
cmp qword [rsp + 0x30], 0x7e4
jbe 0x1800848a9
mov r12, qword [rsp + 8]
xor ebx, ebx
mov dword [rbp + 0x3f], ebx
dec r12
cmp dword [r14 + 4], 5
mov qword [rsp + 8], r12
jge 0x180083cc3
lea rax, [rcx - 1]
mov r10, r12
cmp rax, r12
cmovb r10, rax
jmp 0x180083cc6
mov r10, rbx
mov r8, qword [rbp - 0x69]
lea rdx, [rsi + 1]
mov rax, qword [rbp - 0x61]
cmp rdx, r8
mov r13, qword [rbp + 0x6f]
mov r11, r8
mov r9, qword [rbp + 0x57]
cmovb r11, rdx
inc rax
mov qword [rsp + 0x18], r10
add rax, rsi
mov qword [rsp + 0x70], rbx
movsxd rsi, dword [r13 + 0x4c]
cmp rax, r8
mov rcx, r8
mov qword [rbp - 0x79], 0x7e4
cmovb rcx, rax
mov qword [rsp], rdx
mov rax, qword [r14 + 0x50]
mov r8, rdx
mov r14, qword [r15 + 0x58]
and r8, r9
mov r15, qword [r15 + 0x60]
mov qword [rsp + 0x48], rcx
mov ecx, 0x7e4
mov qword [rbp - 0x59], r15
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x10], r14
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x68], rbx
mov dword [rbp - 0x71], ebx
test rsi, rsi
je 0x180083ed5
mov r15, qword [rbp + 0x4f]
mov r14, r8
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x50], rcx
nop dword [rax + rax]
movsxd rdi, dword [rax + rbx*4]
mov rcx, rdx
sub rcx, rdi
cmp rcx, rdx
jae 0x180083ebb
cmp rdi, r11
ja 0x180083ebb
and rcx, r9
lea rdx, [r10 + r14]
cmp rdx, r9
ja 0x180083eb7
lea rax, [rcx + r10]
cmp rax, r9
ja 0x180083eb3
movzx eax, byte [rax + r15]
cmp byte [rdx + r15], al
jne 0x180083eb3
mov r8, r12
lea rdx, [r14 + r15]
shr r8, 3
lea r11, [rcx + r15]
xor eax, eax
test r8, r8
je 0x180083dfe
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [r10 + rdx]
cmp r9, rcx
jne 0x180083e94
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180083de0
mov r8, r12
and r8d, 7
je 0x180083e23
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x180083e23
inc rax
sub r8, 1
jne 0x180083e10
mov r8, rax
cmp r8, 3
jae 0x180083e37
cmp r8, 2
jne 0x180083ea5
cmp rbx, r8
jae 0x180083ea5
mov r11, qword [rsp + 0x50]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x180083ea5
test rbx, rbx
je 0x180083e77
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x180083ea5
mov qword [rsp + 0x50], r9
mov r10, r8
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], rdi
mov qword [rbp - 0x79], r9
jmp 0x180083eaa
xor rcx, r9
tzcnt r8, rcx
shr r8, 3
add r8, rax
jmp 0x180083e26
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp + 0x28]
mov r9, qword [rbp + 0x57]
mov rax, qword [rbp + 0x77]
mov rdx, qword [rsp]
inc rbx
cmp rbx, rsi
jb 0x180083d70
mov r14, qword [rsp + 0x10]
mov r15, qword [rbp - 0x59]
mov r8, qword [rsp + 0x38]
mov r9, qword [rbp + 0x4f]
mov rbx, r13
add r9, r8
mov qword [rsp + 0x10], r9
mov ecx, dword [rbx + 0x40]
imul edx, dword [r9], 0x1e35a7bd
shr edx, cl
movzx r13d, word [r14 + rdx*2]
lea r12, [r14 + rdx*2]
mov ecx, dword [rbx + 0x48]
mov eax, edx
shl eax, cl
mov esi, r13d
sub rsi, qword [rbx + 0x38]
mov edi, r13d
cmp r13, qword [rbx + 0x38]
mov qword [rbp - 0x59], r12
lea r15, [r15 + rax*4]
mov eax, 0
cmovbe rsi, rax
cmp r13, rsi
jbe 0x180084071
mov r14d, dword [rbx + 0x44]
mov r13, qword [rsp]
mov r12, qword [rbp + 0x4f]
nop dword [rax]
nop dword [rax + rax]
dec rdi
mov rax, r14
and rax, rdi
mov rbx, r13
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r11
ja 0x180084064
and rcx, qword [rbp + 0x57]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x57]
ja 0x18008405b
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x57]
ja 0x18008405b
movzx eax, byte [rax + r12]
cmp byte [rdx + r12], al
jne 0x18008405b
xor eax, eax
lea r11, [rcx + r12]
mov ecx, eax
mov rdx, r9
mov rax, qword [rsp + 8]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180083fd3
mov r10, r11
sub r10, r9
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180084045
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180083fb0
mov rax, qword [rsp + 8]
mov r8, rax
and r8d, 7
je 0x180083ff3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180083ff3
inc rcx
sub r8, 1
jne 0x180083fe0
mov rdx, rcx
mov r9, qword [rsp + 0x10]
mov r8, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
cmp rdx, 4
jb 0x180084056
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x50], rax
jae 0x180084056
mov qword [rsp + 0x50], rax
mov r10, rdx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rbx
mov qword [rbp - 0x79], rax
jmp 0x18008405b
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180083ff6
mov r10, qword [rsp + 0x18]
cmp rdi, rsi
ja 0x180083f40
mov r12, qword [rbp - 0x59]
mov rbx, qword [rbp + 0x6f]
movzx r13d, word [r12]
mov eax, dword [rbx + 0x44]
mov rcx, qword [rsp]
and rax, r13
mov dword [r15 + rax*4], ecx
inc word [r12]
mov r12, qword [rbp - 0x79]
mov r15, qword [rbp + 0x6f]
cmp r12, 0x7e4
jne 0x18008439d
mov r13, qword [r15 + 0x50]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180084399
imul ebx, dword [r9], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rsp + 8]
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180084238
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180084238
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180084153
mov r10, r9
sub r10, rdx
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18008421a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180084130
mov r9, qword [rsp + 0x10]
mov r8, r11
and r8d, 7
je 0x180084173
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r9], al
jne 0x180084173
inc rcx
sub r8, 1
jne 0x180084160
mov r9, rcx
mov rcx, qword [rbp + 0x67]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18008422e
test r9, r9
je 0x18008422e
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [rdi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp + 0x48]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rsp + 0x60]
ja 0x18008420e
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r12
jb 0x18008420e
mov r12, rax
mov qword [rbp - 0x79], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x68], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x71], r11d
mov qword [rsp + 0x70], rdx
mov r9, qword [rsp + 0x10]
mov rdx, qword [rsp + 8]
jmp 0x18008423d
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180084176
mov rdx, qword [rsp + 8]
mov r9, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x48]
mov r14, qword [rbp + 0x67]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x18008438f
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18008438f
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x1800842be
mov r10, r9
sub r10, rdx
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18008437b
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800842a0
mov r8, r11
and r8d, 7
je 0x1800842e5
mov r9, qword [rsp + 0x10]
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r9], al
jne 0x1800842e5
inc rdx
inc rcx
sub r8, 1
jne 0x1800842d0
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18008438f
test r9, r9
je 0x18008438f
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rbx + r11]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
cmp rdx, qword [rsp + 0x60]
ja 0x18008438f
mov r15, qword [rbp + 0x6f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
mov rcx, qword [rsp]
add rax, 0x780
cmp rax, r12
jb 0x1800843a1
sub r11d, r9d
mov qword [rsp + 0x68], r9
inc qword [r13 + 0x10]
mov r12, rax
mov dword [rbp - 0x71], r11d
mov qword [rsp + 0x70], rdx
mov qword [rbp - 0x79], rax
jmp 0x1800843a1
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800842e8
mov rcx, qword [rsp]
mov r15, qword [rbp + 0x6f]
jmp 0x1800843a1
mov rcx, qword [rsp]
mov r14, qword [rbp + 0x67]
mov rax, qword [rsp + 0x30]
add rax, 0xaf
cmp r12, rax
jb 0x18008440d
movups xmm0, xmmword [rsp + 0x68]
inc qword [rsp + 0x40]
mov rsi, rcx
movups xmm1, xmmword [rbp - 0x79]
mov qword [rbp + 0x47], rcx
mov ecx, dword [rbp + 0x3f]
inc ecx
mov dword [rbp + 0x3f], ecx
movups xmmword [rbp - 0x51], xmm0
movups xmmword [rbp - 0x41], xmm1
cmp ecx, 4
jge 0x180084407
lea rax, [rsi + 4]
cmp rax, qword [rsp + 0x58]
jae 0x180084407
mov r12, qword [rsp + 8]
mov r9, qword [rbp - 0x41]
dec r12
mov rcx, qword [rbp - 0x51]
xor ebx, ebx
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x20], rcx
jmp 0x180083ca7
mov r13, qword [rbp - 0x51]
jmp 0x180084416
mov rsi, qword [rbp + 0x47]
mov r13, qword [rsp + 0x20]
mov rax, qword [rbp - 0x29]
mov r10, qword [rbp - 0x69]
mov r11, qword [rbp + 0x77]
mov rbx, qword [rbp - 0x49]
lea r12, [rax + r13*2]
mov rax, qword [rbp - 0x61]
add rax, rsi
add r12, rsi
cmp rax, r10
mov qword [rsp + 0x60], r12
lea rdx, [r11 + 4]
cmovb r10, rax
cmp rbx, r10
ja 0x1800844ce
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rbx, rax
jne 0x18008446d
xor r9d, r9d
mov r8d, r9d
jmp 0x1800844d5
cmp rbx, r9
jne 0x18008447a
mov r8d, 1
jmp 0x1800844d2
cmp r8, 7
jae 0x180084496
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x1800844d2
cmp rcx, 7
jae 0x1800844ae
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x1800844d2
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x1800844bf
mov r8d, 2
jmp 0x1800844d2
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x1800844d2
lea r8, [rbx + 0xf]
xor r9d, r9d
cmp rbx, r10
ja 0x180084557
test r8, r8
je 0x180084557
mov eax, dword [r11 + 8]
mov ecx, dword [r11]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov dword [rdx], ecx
mov dword [r11], ebx
mov edx, dword [r15 + 0x4c]
cmp edx, 4
jle 0x180084557
lea eax, [rbx - 1]
mov dword [r11 + 0x10], eax
lea eax, [rbx + 1]
mov dword [r11 + 0x14], eax
lea eax, [rbx - 2]
mov dword [r11 + 0x18], eax
lea eax, [rbx + 2]
mov dword [r11 + 0x1c], eax
lea eax, [rbx - 3]
mov dword [r11 + 0x20], eax
lea eax, [rbx + 3]
mov dword [r11 + 0x24], eax
cmp edx, 0xa
jle 0x180084557
lea eax, [rcx - 1]
mov dword [r11 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r11 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r11 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r11 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r11 + 0x3c], eax
mov r11, qword [rbp + 0x87]
mov esi, dword [rbp - 0x39]
mov r12, qword [rsp + 0x40]
movzx eax, sil
shl eax, 0x19
or eax, r13d
mov dword [r11], r12d
mov dword [r11 + 4], eax
mov r14d, dword [r14 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x180084589
mov edi, r9d
jmp 0x180084608
mov rcx, qword [rbp + 0x67]
add r8, 0xfffffffffffffff0
mov r10d, 1
mov r11d, dword [rcx + 0x40]
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rbp + 0x87]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea edx, [rsi + r13]
mov eax, 0x3ff
mov dword [r11 + 8], edi
and r8w, ax
movsxd r9, edx
cmp r12, 6
jae 0x180084632
movzx r10d, r12w
mov eax, 0x17
jmp 0x1800846a7
cmp r12, 0x82
jae 0x18008465e
lea eax, [r12 - 2]
bsr ecx, eax
lea r10, [r12 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x1800846a7
cmp r12, 0x842
jae 0x18008467c
lea eax, [r12 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x1800846a7
mov eax, 0x17
cmp r12, 0x1842
jae 0x180084692
mov r10d, 0x15
jmp 0x1800846a7
cmp r12, 0x5842
jae 0x1800846a3
mov r10d, 0x16
jmp 0x1800846a7
movzx r10d, ax
cmp r9, 0xa
jae 0x1800846b4
sub r9w, 2
jmp 0x1800846f4
cmp r9, 0x86
jae 0x1800846d9
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x1800846f4
cmp r9, 0x846
jae 0x1800846f0
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x1800846f4
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18008472c
cmp r10w, 8
jae 0x18008472c
cmp r9w, 0x10
jae 0x18008472c
cmp r9w, 8
jb 0x180084760
or dx, 0x40
jmp 0x180084760
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x97]
mov rsi, qword [rbp + 0x47]
mov word [r11 + 0xc], dx
add r11, 0x10
mov qword [rbp + 0x87], r11
add qword [rax], r12
xor eax, eax
mov r11, qword [rbp - 0x31]
lea r10, [rsi + 2]
mov edi, eax
mov qword [rsp + 0x40], rax
lea rax, [rsi + r13]
cmp rax, r11
cmovb r11, rax
mov rax, r13
shr rax, 2
cmp rbx, rax
jae 0x1800847cf
lea rax, [rbx*4]
mov rcx, r13
sub rcx, rax
lea rax, [rcx + rsi]
cmp r10, rax
mov eax, 2
cmova rcx, rax
lea r10, [rsi + rcx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x180084830
mov rbx, qword [rbp + 0x4f]
nop dword [rax + rax]
mov ecx, dword [r15 + 0x40]
mov rax, r10
and rax, qword [rbp + 0x57]
imul r8d, dword [rax + rbx], 0x1e35a7bd
mov rax, qword [r15 + 0x58]
shr r8d, cl
mov ecx, dword [r15 + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [r9 + rax]
mov eax, dword [r15 + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [r15 + 0x60]
mov dword [rax + rdx*4], r10d
inc r10
mov rax, qword [r15 + 0x58]
inc word [r9 + rax]
cmp r10, r11
jb 0x1800847e0
add rsi, r13
mov qword [rbp + 0x47], rsi
mov r11, qword [rbp + 0x57]
mov rcx, qword [rsp + 0x58]
lea rax, [rsi + 4]
mov r8, qword [rbp + 0x67]
mov edx, 0
mov r10, qword [rbp - 0x69]
mov r14, qword [rbp - 0x61]
cmp rax, rcx
jb 0x1800835c0
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov rbx, qword [rbp + 0x87]
sub rbx, qword [rbp - 0x21]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rbp + 0x7f]
sub rax, rsi
add rax, rdi
sar rbx, 4
mov qword [rcx], rax
mov rax, qword [rbp + 0x8f]
add qword [rax], rbx
add rsp, 0xf8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, qword [rsp + 0x40]
inc rsi
mov r12, qword [rsp + 0x60]
inc rdi
mov qword [rsp + 0x40], rdi
mov qword [rbp + 0x47], rsi
cmp rsi, r12
jbe 0x180084837
mov rax, qword [rbp - 0x29]
mov r10, qword [rsp + 0x58]
mov r11, qword [rbp + 0x57]
lea rax, [r12 + rax*4]
cmp rsi, rax
jbe 0x180084978
add r10, 0xfffffffffffffffc
lea rax, [rsi + 0x10]
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x18008483b
mov rbx, qword [rbp + 0x4f]
mov rax, r10
sub rax, rsi
add rdi, 4
dec rax
and rax, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp + 0x40], rdi
nop word [rax + rax]
mov ecx, dword [r15 + 0x40]
mov rax, rsi
and rax, r11
imul r8d, dword [rax + rbx], 0x1e35a7bd
mov rax, qword [r15 + 0x58]
shr r8d, cl
mov ecx, dword [r15 + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [r9 + rax]
mov eax, dword [r15 + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [r15 + 0x60]
mov dword [rax + rdx*4], esi
add rsi, 4
mov rax, qword [r15 + 0x58]
inc word [r9 + rax]
cmp rsi, r10
jb 0x180084920
mov qword [rbp + 0x47], rsi
jmp 0x18008483b
add r10, 0xfffffffffffffffd
lea rax, [rsi + 8]
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x18008483b
mov rbx, qword [rbp + 0x4f]
mov rax, r10
sub rax, rsi
add rdi, 2
dec rax
and rax, 0xfffffffffffffffe
add rdi, rax
mov qword [rsp + 0x40], rdi
nop dword [rax]
mov ecx, dword [r15 + 0x40]
mov rax, rsi
and rax, r11
imul r8d, dword [rax + rbx], 0x1e35a7bd
mov rax, qword [r15 + 0x58]
shr r8d, cl
mov ecx, dword [r15 + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [r9 + rax]
mov eax, dword [r15 + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [r15 + 0x60]
mov dword [rax + rdx*4], esi
add rsi, 2
mov rax, qword [r15 + 0x58]
inc word [r9 + rax]
cmp rsi, r10
jb 0x1800849b0
mov qword [rbp + 0x47], rsi
jmp 0x18008483b
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x180c47f80]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rsi, qword [rbp + 0xa8]
mov rax, rcx
mov rcx, qword [rbp + 0xd8]
mov rbx, r9
mov r9, qword [rbp + 0xc0]
mov r15, rdx
mov r10, qword [rbp + 0xc8]
mov edi, 1
mov r14, qword [rbp + 0xd0]
mov r11, r8
mov qword [rbp - 0x40], rcx
mov ecx, dword [rsi + 8]
lea r13, [r15 + rax]
shl rdi, cl
mov rcx, qword [rsi + 0x10]
sub rdi, 0x10
mov qword [rbp - 0x48], rcx
mov rcx, r10
mov qword [rsp], r8
mov r8, qword [rbp + 0xb8]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rbp + 0xb0]
mov qword [rbp - 0x28], r9
mov r9, qword [r9]
mov qword [rbp - 0x30], rcx
mov qword [rsp + 8], rbx
mov qword [rbp - 0x68], rsi
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x70], r10
mov qword [rbp - 0x38], r14
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x60], r13
cmp rax, 8
jb 0x180084ae5
lea rax, [r13 - 7]
mov qword [rbp - 0x60], rax
jmp 0x180084ae9
mov qword [rbp - 0x60], r15
cmp dword [rsi + 4], 9
mov eax, 0x200
mov r12d, 0x40
cmovl eax, r12d
mov qword [rbp - 0x58], rax
add rax, r15
mov qword [rsp + 0x48], rax
lea rax, [r15 + 8]
cmp rax, r13
jae 0x180085ac8
movdqa xmm2, xmmword [0x180b80a40]
movabs rcx, 0x35a7bd1e35a7bd00
movdqa xmm3, xmmword [0x180b80a70]
nop
mov r9, r13
mov qword [rsp + 0x20], 0x7e4
mov r13, qword [rsp + 0x28]
sub r9, r15
cmp r15, rdi
mov qword [rsp + 0x10], r9
mov r12, rdi
mov edi, 0x7e4
cmovb r12, r15
xor r10d, r10d
mov r15, rbx
mov qword [rsp + 0x18], r10
and r15, r13
mov qword [rbp - 0x80], r10
mov r10, qword [rdx + 0x38]
lea rbx, [r11 + r15]
movsxd r11, dword [r8]
xor r14d, r14d
mov rax, qword [rbx]
movzx esi, byte [rbx]
mov r8, qword [rsp + 8]
mov rdx, qword [rsp]
imul rax, rcx
mov rcx, r13
mov qword [rsp + 0x38], r10
shr rax, 0x2c
sub rcx, r11
mov dword [rbp - 0x70], r14d
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, r13
jae 0x180084c86
mov r10d, r8d
and r10, rcx
add r10, rdx
movzx eax, byte [r10]
cmp esi, eax
jne 0x180084c81
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x180084bff
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180084c6b
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180084be0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180084c23
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180084c23
inc rcx
sub r8, 1
jne 0x180084c10
mov rax, rcx
mov rdx, qword [rsp]
mov r10, qword [rsp + 0x38]
mov r8, qword [rsp + 8]
cmp rax, 4
jb 0x180084c86
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x180084c86
mov qword [rsp + 0x18], rax
mov r14, rax
add rax, rdx
mov qword [rbp - 0x80], r11
mov qword [rsp + 0x20], rcx
mov rdi, rcx
movzx esi, byte [rax + r15]
jmp 0x180084c86
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x180084c26
mov r10, qword [rsp + 0x38]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8 - 0x20], xmm0
add rax, 2
cmp rax, 4
jb 0x180084c90
mov r11, qword [rsp + 0x28]
mov rax, r13
shr rax, 3
and eax, 3
mov r13, qword [rbp + rax*8 - 0x20]
mov rax, qword [rbp - 0x20]
mov ecx, dword [r10 + rax*4]
mov r10d, r8d
sub r11, rcx
and r10, rcx
add r10, rdx
movzx eax, byte [r10 + r14]
cmp esi, eax
jne 0x180084da9
test r11, r11
je 0x180084da9
cmp r11, r12
ja 0x180084da9
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x180084d43
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180085047
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180084d20
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180084d63
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180084d63
inc rcx
sub r8, 1
jne 0x180084d50
mov rdx, rcx
cmp rdx, 4
jb 0x180084da9
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x180084da9
mov rax, qword [rsp]
mov r14, rdx
add rax, rdx
mov qword [rsp + 0x18], rdx
mov rdi, r8
mov qword [rsp + 0x20], r8
mov qword [rbp - 0x80], r11
movzx esi, byte [rax + r15]
mov rax, qword [rbp - 0x18]
mov rcx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 8]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + r14]
cmp esi, eax
jne 0x180084e8b
test r11, r11
je 0x180084e8b
cmp r11, r12
ja 0x180084e8b
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x180084e23
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180085060
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180084e00
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180084e45
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180084e45
inc rdx
inc rcx
sub r8, 1
jne 0x180084e30
mov rdx, rcx
cmp rdx, 4
jb 0x180084e8b
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x180084e8b
mov rax, qword [rsp]
mov r14, rdx
add rax, rdx
mov qword [rsp + 0x18], rdx
mov rdi, r8
mov qword [rsp + 0x20], r8
mov qword [rbp - 0x80], r11
movzx esi, byte [rax + r15]
mov rax, qword [rbp - 0x10]
mov rcx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 8]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + r14]
cmp esi, eax
jne 0x180084f6b
test r11, r11
je 0x180084f6b
cmp r11, r12
ja 0x180084f6b
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x180084f03
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180085079
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180084ee0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180084f25
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180084f25
inc rdx
inc rcx
sub r8, 1
jne 0x180084f10
mov rdx, rcx
cmp rdx, 4
jb 0x180084f6b
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x180084f6b
mov rax, qword [rsp]
mov r14, rdx
add rax, rdx
mov qword [rsp + 0x18], rdx
mov rdi, r8
mov qword [rsp + 0x20], r8
mov qword [rbp - 0x80], r11
movzx esi, byte [rax + r15]
mov rax, qword [rbp - 8]
mov r11, qword [rsp + 0x38]
mov r15, qword [rsp + 0x28]
mov r9, qword [rsp]
mov r10, r15
mov ecx, dword [r11 + rax*4]
mov eax, dword [rsp + 8]
sub r10, rcx
and rcx, rax
add r9, rcx
movzx eax, byte [r9 + r14]
cmp esi, eax
jne 0x1800850a1
test r10, r10
je 0x1800850a1
cmp r10, r12
ja 0x1800850a1
mov r14, qword [rsp + 0x10]
xor ecx, ecx
mov rax, r14
shr rax, 3
test rax, rax
je 0x180084fee
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rbx]
mov rdx, qword [rcx + r9]
cmp r8, rdx
jne 0x18008508d
add rbx, 8
add rcx, 8
sub rax, 1
jne 0x180084fd0
mov rdx, r14
and edx, 7
je 0x18008500b
movzx eax, byte [rbx]
cmp byte [rcx + r9], al
jne 0x18008500b
inc rbx
inc rcx
sub rdx, 1
jne 0x180084ff6
mov r8, rcx
cmp r8, 4
jb 0x1800850a1
bsr eax, r10d
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x1800850a1
mov rcx, r8
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x18], rcx
mov qword [rbp - 0x80], r10
jmp 0x1800850ab
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180084d66
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180084e48
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180084f28
xor rdx, r8
tzcnt r8, rdx
shr r8, 3
add r8, rcx
jmp 0x18008500e
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
mov dword [r11 + r13*4], r15d
cmp rax, 0x7e4
jbe 0x180085aff
mov dword [rsp + 0x38], 0
mov r9, qword [rsp + 0x10]
mov rax, qword [rbp - 0x68]
dec r9
mov qword [rsp + 0x10], r9
cmp dword [rax + 4], 5
jge 0x1800850ea
lea rax, [rcx - 1]
mov rdi, r9
cmp rax, r9
cmovb rdi, rax
jmp 0x1800850ec
xor edi, edi
mov r12, qword [rsp + 0x68]
lea r10, [r15 + 1]
mov rdx, qword [rsp + 8]
cmp r10, r12
mov rax, qword [rsp + 0x50]
movabs rcx, 0x35a7bd1e35a7bd00
mov rbx, qword [rsp]
cmovb r12, r10
mov r15, rdx
mov qword [rbp - 0x20], rdi
and r15, r10
mov qword [rbp - 0x18], 0
mov rax, qword [rax + 0x38]
add rbx, r15
mov qword [rsp + 0x48], rax
mov r13d, 0x7e4
mov qword [rbp - 0x10], r13
mov esi, r13d
mov qword [rsp + 0x40], r10
mov rax, qword [rbx]
movzx r14d, byte [rbx + rdi]
imul rax, rcx
mov rcx, r10
mov dword [rbp - 8], 0
shr rax, 0x2c
movq xmm1, rax
mov rax, qword [rsp + 0x58]
punpcklqdq xmm1, xmm1
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, r10
jae 0x180085256
mov r10, qword [rsp]
mov eax, edx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rdi]
cmp r14d, eax
jne 0x180085251
mov rcx, r9
xor eax, eax
shr rcx, 3
mov rdx, rbx
test rcx, rcx
je 0x1800851cf
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rax + r10]
cmp r9, r8
jne 0x18008523b
add rdx, 8
add rax, 8
sub rcx, 1
jne 0x1800851b0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x1800851f3
sub rdx, rax
nop dword [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r10], cl
jne 0x1800851f3
inc rax
sub r8, 1
jne 0x1800851e0
mov rcx, rax
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 8]
cmp rcx, 4
jb 0x180085256
imul rax, rcx, 0x87
add rax, 0x78f
cmp rax, rsi
jbe 0x180085256
mov r13, rax
mov qword [rbp - 0x10], rax
mov rsi, rax
mov qword [rbp - 0x20], rcx
mov rax, qword [rsp]
mov rdi, rcx
add rax, rcx
mov qword [rbp - 0x18], r11
movzx r14d, byte [rax + r15]
jmp 0x180085256
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rcx, r8
shr rcx, 3
add rcx, rax
jmp 0x1800851f6
mov r10, qword [rsp + 0x40]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8], xmm0
add rax, 2
cmp rax, 4
jb 0x180085260
mov rax, r10
mov r11, r10
mov r10, qword [rsp]
shr rax, 3
and eax, 3
mov rcx, qword [rbp + rax*8]
mov rax, qword [rbp]
mov qword [rbp - 0x50], rcx
mov rcx, qword [rsp + 0x48]
mov ecx, dword [rcx + rax*4]
mov eax, edx
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rdi]
cmp r14d, eax
jne 0x18008537a
test r11, r11
je 0x18008537a
cmp r11, r12
ja 0x18008537a
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x180085313
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180085683
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800852f0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180085333
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180085333
inc rcx
sub r8, 1
jne 0x180085320
mov rdx, rcx
cmp rdx, 4
jb 0x18008537a
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18008537a
mov rax, qword [rsp]
mov rdi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov rsi, r8
mov qword [rbp - 0x10], r8
mov r13, r8
mov qword [rbp - 0x18], r11
movzx r14d, byte [rax + r15]
mov rax, qword [rbp + 8]
mov rcx, qword [rsp + 0x48]
mov r10, qword [rsp]
mov r11, qword [rsp + 0x40]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 8]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rdi]
cmp r14d, eax
jne 0x18008545c
test r11, r11
je 0x18008545c
cmp r11, r12
ja 0x18008545c
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x1800853f3
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18008569c
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800853d0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x180085415
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180085415
inc rdx
inc rcx
sub r8, 1
jne 0x180085400
mov rdx, rcx
cmp rdx, 4
jb 0x18008545c
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18008545c
mov rax, qword [rsp]
mov rdi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov rsi, r8
mov qword [rbp - 0x10], r8
mov r13, r8
mov qword [rbp - 0x18], r11
movzx r14d, byte [rax + r15]
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
mov r10, qword [rsp]
mov r11, qword [rsp + 0x40]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 8]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rdi]
cmp r14d, eax
jne 0x18008553c
test r11, r11
je 0x18008553c
cmp r11, r12
ja 0x18008553c
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, rbx
test rax, rax
je 0x1800854d3
nop
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x1800856b5
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800854b0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x1800854f5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x1800854f5
inc rdx
inc rcx
sub r8, 1
jne 0x1800854e0
mov rdx, rcx
cmp rdx, 4
jb 0x18008553c
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18008553c
mov rax, qword [rsp]
mov rdi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov rsi, r8
mov qword [rbp - 0x10], r8
mov r13, r8
mov qword [rbp - 0x18], r11
movzx r14d, byte [rax + r15]
mov rax, qword [rbp + 0x18]
mov r15, qword [rsp + 0x48]
mov r9, qword [rsp]
mov r11, qword [rsp + 0x40]
mov r10, r11
mov ecx, dword [r15 + rax*4]
mov eax, dword [rsp + 8]
sub r10, rcx
and rax, rcx
add r9, rax
movzx eax, byte [r9 + rdi]
cmp r14d, eax
jne 0x18008560f
test r10, r10
je 0x18008560f
cmp r10, r12
ja 0x18008560f
mov r14, qword [rsp + 0x10]
xor ecx, ecx
mov rax, r14
shr rax, 3
test rax, rax
je 0x1800855be
nop word [rax + rax]
mov r8, qword [rbx]
mov rdx, qword [rcx + r9]
cmp r8, rdx
jne 0x1800856c9
add rbx, 8
add rcx, 8
sub rax, 1
jne 0x1800855a0
mov rdx, r14
and edx, 7
je 0x1800855db
movzx eax, byte [rbx]
cmp byte [rcx + r9], al
jne 0x1800855db
inc rbx
inc rcx
sub rdx, 1
jne 0x1800855c6
mov r8, rcx
cmp r8, 4
jb 0x18008560f
bsr eax, r10d
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x18008560f
mov qword [rbp - 0x20], r8
mov r13, rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], r10
mov rax, qword [rbp - 0x50]
mov r12, qword [rsp + 0x30]
mov dword [r15 + rax*4], r11d
mov rax, qword [rsp + 0x20]
add rax, 0xaf
cmp r13, rax
jb 0x1800856e9
mov ecx, dword [rsp + 0x38]
inc r12
movups xmm0, xmmword [rbp - 0x20]
inc ecx
mov r15, r11
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x38], ecx
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rbp - 0x78], xmm1
cmp ecx, 4
jge 0x1800856dd
lea rax, [r11 + 8]
cmp rax, qword [rsp + 0x60]
jae 0x1800856dd
mov r10, qword [rbp - 0x78]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x18], rcx
jmp 0x1800850c3
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180085336
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180085418
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x1800854f8
xor rdx, r8
tzcnt r8, rdx
shr r8, 3
add r8, rcx
jmp 0x1800855de
mov r11, qword [rsp + 0x78]
mov qword [rsp + 0x18], r11
jmp 0x1800856f3
mov r15, qword [rsp + 0x28]
mov r11, qword [rsp + 0x18]
mov r9, qword [rsp + 0x68]
lea r13, [r15 + r11*2]
add r13, qword [rbp - 0x58]
mov rax, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x80]
add rax, r15
mov r10, qword [rsp + 0x58]
cmp rax, r9
mov qword [rsp + 0x48], r13
cmovb r9, rax
cmp rbx, r9
ja 0x18008579f
movsxd rax, dword [r10]
lea rcx, [rbx + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x18008573f
xor r8d, r8d
jmp 0x1800857a3
cmp rbx, r8
jne 0x18008574c
mov r8d, 1
jmp 0x1800857a3
cmp rdx, 7
jae 0x180085767
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x1800857a3
cmp rcx, 7
jae 0x18008577f
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x1800857a3
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x180085790
mov r8d, 2
jmp 0x1800857a3
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x1800857a3
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x1800857c7
test r8, r8
je 0x1800857c7
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov eax, dword [r10]
mov dword [r10 + 4], eax
mov dword [r10], ebx
mov r13, qword [rsp + 0x70]
mov esi, dword [rbp - 0x70]
mov rcx, qword [rbp - 0x68]
movzx eax, sil
shl eax, 0x19
or eax, r11d
mov dword [r13], r12d
mov dword [r13 + 4], eax
mov r14d, dword [rcx + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x1800857f6
xor edi, edi
jmp 0x18008586f
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x18]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r13 + 0xe], r8w
lea edx, [rsi + r11]
mov eax, 0x3ff
mov dword [r13 + 8], edi
and r8w, ax
movsxd r9, edx
cmp r12, 6
jae 0x180085899
movzx r10d, r12w
mov eax, 0x17
jmp 0x18008590e
cmp r12, 0x82
jae 0x1800858c5
lea eax, [r12 - 2]
bsr ecx, eax
lea r10, [r12 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18008590e
cmp r12, 0x842
jae 0x1800858e3
lea eax, [r12 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18008590e
mov eax, 0x17
cmp r12, 0x1842
jae 0x1800858f9
mov r10d, 0x15
jmp 0x18008590e
cmp r12, 0x5842
jae 0x18008590a
mov r10d, 0x16
jmp 0x18008590e
movzx r10d, ax
cmp r9, 0xa
jae 0x18008591b
sub r9w, 2
jmp 0x18008595b
cmp r9, 0x86
jae 0x180085940
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x18008595b
cmp r9, 0x846
jae 0x180085957
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18008595b
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x180085993
cmp r10w, 8
jae 0x180085993
cmp r9w, 0x10
jae 0x180085993
cmp r9w, 8
jb 0x1800859c7
or dx, 0x40
jmp 0x1800859c7
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp - 0x40]
xor r9d, r9d
mov r8, qword [rbp - 0x60]
mov word [r13 + 0xc], dx
add r13, 0x10
mov qword [rsp + 0x70], r13
lea rdx, [r15 + 2]
add qword [rax], r12
lea rax, [r15 + r11]
cmp rax, r8
mov qword [rsp + 0x30], r9
cmovb r8, rax
mov rax, r11
shr rax, 2
cmp rbx, rax
jae 0x180085a25
lea rax, [rbx*4]
mov rcx, r15
sub rcx, rax
add rcx, r11
cmp rdx, rcx
cmova rcx, rdx
cmp r8, rcx
mov rdx, rcx
cmovb rdx, r8
cmp rdx, r8
jae 0x180085a7f
mov r15, qword [rsp]
movabs r11, 0x35a7bd1e35a7bd00
mov r9, qword [rsp + 0x50]
nop dword [rax]
mov rax, qword [rsp + 8]
and rax, rdx
mov rcx, qword [rax + r15]
mov eax, edx
imul rcx, r11
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [r9 + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x180085a40
mov r15, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
mov r11, qword [rsp + 0x18]
add r15, r11
mov qword [rsp + 0x28], r15
mov rbx, qword [rsp + 8]
mov r11, qword [rsp]
mov r13, qword [rsp + 0x60]
lea rax, [r15 + 8]
mov rdx, qword [rsp + 0x50]
movabs rcx, 0x35a7bd1e35a7bd00
mov r8, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
cmp rax, r13
jb 0x180084b30
mov r10, qword [rsp + 0x70]
mov r14, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
sub r13, r15
sub r10, rcx
add r13, r9
sar r10, 4
mov qword [rax], r13
add qword [r14], r10
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1800b22c0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r9, qword [rsp + 0x30]
inc r15
mov r13, qword [rsp + 0x48]
inc r9
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r15
cmp r15, r13
jbe 0x180085a87
mov rax, qword [rbp - 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp]
add rdx, 0xfffffffffffffff9
mov rbx, qword [rsp + 8]
lea rax, [rax*4]
add rax, r13
cmp r15, rax
jbe 0x180085bca
lea rax, [r15 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x180085a90
add r9, 4
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffc
add r9, rax
mov qword [rsp + 0x30], r9
mov r9, qword [rsp + 0x50]
nop
mov rax, rbx
and rax, r15
mov rcx, qword [rax + r11]
movabs rax, 0x35a7bd1e35a7bd00
imul rcx, rax
mov eax, r15d
shr rcx, 0x2c
and eax, 0x18
add ecx, eax
mov rax, qword [r9 + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r15d
add r15, 4
cmp r15, rdx
jb 0x180085b80
mov r9, qword [rsp + 0x30]
mov qword [rsp + 0x28], r15
jmp 0x180085a90
lea rax, [r15 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x180085a90
add r9, 2
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffe
add r9, rax
mov qword [rsp + 0x30], r9
mov r9, qword [rsp + 0x50]
nop dword [rax]
mov rax, rbx
and rax, r15
mov rcx, qword [rax + r11]
movabs rax, 0x35a7bd1e35a7bd00
imul rcx, rax
mov eax, r15d
shr rcx, 0x2c
and eax, 0x18
add ecx, eax
mov rax, qword [r9 + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r15d
add r15, 2
cmp r15, rdx
jb 0x180085c00
mov r9, qword [rsp + 0x30]
mov qword [rsp + 0x28], r15
jmp 0x180085a90
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x180c47f80]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rsi, qword [rbp + 0xa8]
mov rax, rcx
mov rcx, qword [rbp + 0xd8]
mov r14, rdx
mov rbx, qword [rbp + 0xc8]
mov edi, 1
mov r10, qword [rbp + 0xb0]
mov r11, r9
mov r12, qword [rbp + 0xd0]
mov r15, r8
mov qword [rbp - 0x40], rcx
mov ecx, dword [rsi + 8]
shl rdi, cl
mov rcx, qword [rsi + 0x10]
sub rdi, 0x10
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rsp], r9
mov qword [rsp + 8], r8
mov r8, qword [rbp + 0xb8]
mov r9, qword [rdx]
mov qword [rbp - 0x28], rdx
lea rdx, [r14 + rax]
mov qword [rbp - 0x48], rcx
mov rcx, rbx
mov qword [rbp - 0x60], rsi
mov qword [rsp + 0x10], r10
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x38], r12
mov qword [rsp + 0x70], rdi
mov qword [rbp - 0x30], rbx
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x68], rdx
cmp rax, 8
jb 0x180085d25
lea rax, [rdx - 7]
mov qword [rbp - 0x58], rax
jmp 0x180085d29
mov qword [rbp - 0x58], r14
cmp dword [rsi + 4], 9
mov eax, 0x200
mov r13d, 0x40
cmovl eax, r13d
mov qword [rbp - 0x50], rax
add rax, r14
mov qword [rsp + 0x50], rax
lea rax, [r14 + 8]
cmp rax, rdx
jae 0x18008717a
movdqa xmm2, xmmword [0x180b80a40]
movabs rcx, 0x35a7bd1e35a7bd00
movdqa xmm3, xmmword [0x180b80a70]
nop
mov r12, qword [r10 + 0x38]
mov r9, rdx
mov r10, qword [rsp + 0x20]
sub r9, r14
cmp r14, rdi
mov qword [rsp + 0x18], r9
mov rdx, rdi
mov qword [rsp + 0x40], 0x7e4
cmovb rdx, r14
xor ebx, ebx
mov r14, r11
mov qword [rsp + 0x48], rbx
movsxd r11, dword [r8]
and r14, r10
mov rax, qword [r15 + r14]
lea r13, [r15 + r14]
movzx edi, byte [r13]
xor esi, esi
mov r8, qword [rsp]
imul rax, rcx
mov rcx, r10
mov qword [rbp - 0x78], rbx
shr rax, 0x2c
sub rcx, r11
mov dword [rbp - 0x68], ebx
mov ebx, 0x7e4
mov qword [rsp + 0x28], rdx
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, r10
jae 0x180085ec6
mov r10d, r8d
and r10, rcx
add r10, r15
movzx eax, byte [r10]
cmp edi, eax
jne 0x180085ec1
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180085e43
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180085eab
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180085e20
mov r9, qword [rsp + 0x18]
mov r8, r9
and r8d, 7
je 0x180085e63
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180085e63
inc rcx
sub r8, 1
jne 0x180085e50
mov rax, rcx
mov rdx, qword [rsp + 0x28]
mov r10, qword [rsp + 0x20]
mov r8, qword [rsp]
cmp rax, 4
jb 0x180085ec6
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rbx
jbe 0x180085ec6
mov qword [rsp + 0x48], rax
mov rsi, rax
add rax, r15
mov qword [rbp - 0x78], r11
mov qword [rsp + 0x40], rcx
mov rbx, rcx
movzx edi, byte [rax + r14]
jmp 0x180085ec6
xor r8, r9
mov r9, qword [rsp + 0x18]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x180085e66
mov r10, qword [rsp + 0x20]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8 - 0x20], xmm0
add rax, 2
cmp rax, 4
jb 0x180085ed0
mov rax, r10
mov r11, r10
mov r10, qword [rsp + 8]
shr rax, 3
and eax, 3
mov r15, qword [rbp + rax*8 - 0x20]
mov rax, qword [rbp - 0x20]
mov ecx, dword [r12 + rax*4]
mov eax, r8d
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x180085fea
test r11, r11
je 0x180085fea
cmp r11, rdx
ja 0x180085fea
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180085f83
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086448
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180085f60
mov r9, qword [rsp + 0x18]
mov r8, r9
and r8d, 7
je 0x180085fa3
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x180085fa3
inc rcx
sub r8, 1
jne 0x180085f90
mov rdx, rcx
cmp rdx, 4
jb 0x180085fea
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x180085fea
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x48], rdx
mov rbx, r8
mov qword [rsp + 0x40], r8
mov qword [rbp - 0x78], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp - 0x18]
mov r11, qword [rsp + 0x20]
mov r10, qword [rsp + 8]
mov rdx, qword [rsp + 0x28]
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x1800860d1
test r11, r11
je 0x1800860d1
cmp r11, rdx
ja 0x1800860d1
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180086063
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086461
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086040
mov r9, qword [rsp + 0x18]
mov r8, r9
and r8d, 7
je 0x180086085
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180086085
inc rdx
inc rcx
sub r8, 1
jne 0x180086070
mov rdx, rcx
cmp rdx, 4
jb 0x1800860cc
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x1800860cc
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x48], rdx
mov rbx, r8
mov qword [rsp + 0x40], r8
mov qword [rbp - 0x78], r11
movzx edi, byte [rax + r14]
mov rdx, qword [rsp + 0x28]
mov rax, qword [rbp - 0x10]
mov r11, qword [rsp + 0x20]
mov r10, qword [rsp + 8]
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
cmp edi, eax
jne 0x1800861ac
test r11, r11
je 0x1800861ac
cmp r11, rdx
ja 0x1800861ac
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180086143
nop
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18008647a
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086120
mov r9, qword [rsp + 0x18]
mov r8, r9
and r8d, 7
je 0x180086165
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180086165
inc rdx
inc rcx
sub r8, 1
jne 0x180086150
mov rdx, rcx
cmp rdx, 4
jb 0x1800861ac
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x1800861ac
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rsp + 0x48], rdx
mov rbx, r8
mov qword [rsp + 0x40], r8
mov qword [rbp - 0x78], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp - 8]
mov r14, qword [rsp + 0x20]
mov r10, qword [rsp + 8]
mov r11, r14
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [rsi + r10]
mov rsi, qword [rsp + 0x28]
cmp edi, eax
jne 0x180086288
test r11, r11
je 0x180086288
cmp r11, rsi
ja 0x180086288
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180086233
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086493
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086210
mov r9, qword [rsp + 0x18]
mov r8, r9
and r8d, 7
je 0x180086255
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x180086255
inc rdx
inc rcx
sub r8, 1
jne 0x180086240
mov rdx, rcx
cmp rdx, 4
jb 0x180086288
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rbx, rax
jae 0x180086288
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov qword [rbp - 0x78], r11
mov rbx, qword [rsp + 0x10]
mov dword [r12 + r15*4], r14d
mov r15, qword [rsp + 0x18]
test r14b, 3
jne 0x180086407
cmp r15, 0x20
jb 0x180086407
mov r11, qword [rbx + 0x50]
cmp r11, r14
ja 0x1800863ff
mov r12, qword [rsp + 8]
lea rdi, [r11 + 0x20]
mov r10, qword [rsp]
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rbx + 0x40]
mov rax, r10
and rax, r11
mov r9d, r8d
imul r8d, dword [rbx + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r12]
mov rax, r10
and rax, rdi
inc edx
imul edx, dword [rbx + 0x60]
movzx ecx, byte [rax + r12]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rbx + 0x40], eax
cmp r9d, 0x1000000
jae 0x1800863ee
mov rax, qword [rbx + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], r11d
cmp r11, r14
jne 0x1800863ee
mov eax, 0xffffffff
cmp r8, rax
je 0x1800863ee
mov ebx, r14d
sub ebx, r8d
cmp rbx, rsi
ja 0x1800863e9
and r10, r8
xor ecx, ecx
mov r8, r15
add r10, r12
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18008637e
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x1800864a7
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180086360
mov r8, r15
and r8d, 7
je 0x1800863a3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x1800863a3
inc rcx
sub r8, 1
jne 0x180086390
mov rdx, rcx
mov r10, qword [rsp]
cmp rdx, 4
jb 0x1800863e9
cmp rdx, qword [rsp + 0x48]
jbe 0x1800863e9
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x40]
jbe 0x1800863e9
mov qword [rsp + 0x48], rdx
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x40], rax
mov dword [rbp - 0x68], 0
mov rbx, qword [rsp + 0x10]
add r11, 4
add rdi, 4
cmp r11, r14
jbe 0x1800862d0
lea rax, [r14 + 4]
mov qword [rbx + 0x50], rax
cmp qword [rsp + 0x40], 0x7e4
jbe 0x180086ff6
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x28], 0
mov rcx, qword [rbp - 0x60]
dec r15
mov qword [rsp + 0x18], r15
cmp dword [rcx + 4], 5
jge 0x1800864bb
dec rax
mov r13, r15
cmp rax, r15
cmovb r13, rax
jmp 0x1800864be
xor r8, r9
mov r9, qword [rsp + 0x18]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180085fa6
xor r8, r9
mov r9, qword [rsp + 0x18]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180086088
xor r8, r9
mov r9, qword [rsp + 0x18]
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180086168
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x180086258
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800863a6
xor r13d, r13d
mov rdx, qword [rsp + 0x70]
lea r10, [r14 + 1]
mov r14, qword [rsp]
cmp r10, rdx
mov r9, qword [rsp + 8]
mov r8d, 0x7e4
mov r12, qword [rbx + 0x38]
cmovb rdx, r10
and r14, r10
mov qword [rbp - 0x10], r8
mov rax, qword [r9 + r14]
lea r8, [r9 + r14]
movzx edi, byte [r8 + r13]
movabs rcx, 0x35a7bd1e35a7bd00
imul rax, rcx
mov rcx, r10
mov qword [rbp - 0x20], r13
shr rax, 0x2c
mov rsi, r13
mov qword [rbp - 0x18], 0
mov ebx, 0x7e4
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x30], rdx
movq xmm1, rax
mov qword [rsp + 0x50], r8
mov rax, qword [rsp + 0x60]
punpcklqdq xmm1, xmm1
mov dword [rbp - 8], 0
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, r10
jae 0x18008661b
mov r10d, dword [rsp]
and r10, rcx
add r10, r9
movzx eax, byte [r10 + r13]
cmp edi, eax
jne 0x180086616
mov rax, r15
xor ecx, ecx
shr rax, 3
mov rdx, r8
test rax, rax
je 0x18008659a
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086605
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086580
mov r8, r15
and r8d, 7
je 0x1800865b9
sub rdx, rcx
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x1800865b9
inc rcx
sub r8, 1
jne 0x1800865a6
mov rax, rcx
mov r10, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
cmp rax, 4
jb 0x18008661b
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rbx
jbe 0x18008661b
mov r13, rax
mov qword [rbp - 0x20], rax
mov rsi, rax
mov qword [rbp - 0x18], r11
add rax, qword [rsp + 8]
mov rbx, rcx
mov qword [rbp - 0x10], rcx
movzx edi, byte [rax + r14]
jmp 0x18008661b
xor r8, r9
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x1800865bc
mov r10, qword [rsp + 0x58]
xor eax, eax
nop dword [rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, 3
paddq xmm0, xmm1
andps xmm0, xmm3
movdqu xmmword [rbp + rax*8], xmm0
add rax, 2
cmp rax, 4
jb 0x180086620
mov rax, r10
mov r11, r10
mov r10, qword [rsp + 8]
shr rax, 3
and eax, 3
mov r15, qword [rbp + rax*8]
mov rax, qword [rbp]
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rsi]
cmp edi, eax
jne 0x18008673b
test r11, r11
je 0x18008673b
cmp r11, rdx
ja 0x18008673b
mov rax, qword [rsp + 0x18]
xor ecx, ecx
shr rax, 3
mov rdx, r8
test rax, rax
je 0x1800866ce
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x1800869f9
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800866b0
mov r8, qword [rsp + 0x18]
and r8d, 7
je 0x1800866f3
sub rdx, rcx
nop dword [rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x1800866f3
inc rcx
sub r8, 1
jne 0x1800866e0
mov rdx, rcx
cmp rdx, 4
jb 0x18008673b
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18008673b
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov r13, rdx
mov qword [rbp - 0x10], r8
mov rbx, r8
mov qword [rbp - 0x18], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp + 8]
mov r10, qword [rsp + 8]
mov r11, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x30]
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rsi]
cmp edi, eax
jne 0x180086832
test r11, r11
je 0x180086832
cmp r11, rdx
ja 0x180086832
mov rax, qword [rsp + 0x18]
xor ecx, ecx
mov rdx, qword [rsp + 0x50]
shr rax, 3
test rax, rax
je 0x1800867be
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086a0d
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800867a0
mov r8, qword [rsp + 0x18]
and r8d, 7
je 0x1800867e5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x1800867e5
inc rdx
inc rcx
sub r8, 1
jne 0x1800867d0
mov rdx, rcx
cmp rdx, 4
jb 0x18008682d
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18008682d
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov r13, rdx
mov qword [rbp - 0x10], r8
mov rbx, r8
mov qword [rbp - 0x18], r11
movzx edi, byte [rax + r14]
mov rdx, qword [rsp + 0x30]
mov rax, qword [rbp + 0x10]
mov r10, qword [rsp + 8]
mov r11, qword [rsp + 0x58]
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rsi]
cmp edi, eax
jne 0x18008691d
test r11, r11
je 0x18008691d
cmp r11, rdx
ja 0x18008691d
mov rax, qword [rsp + 0x18]
xor ecx, ecx
mov rdx, qword [rsp + 0x50]
shr rax, 3
test rax, rax
je 0x1800868ae
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086a21
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086890
mov r8, qword [rsp + 0x18]
and r8d, 7
je 0x1800868d5
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x1800868d5
inc rdx
inc rcx
sub r8, 1
jne 0x1800868c0
mov rdx, rcx
cmp rdx, 4
jb 0x18008691d
bsr eax, r11d
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rbx, r8
jae 0x18008691d
mov rax, qword [rsp + 8]
mov rsi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov r13, rdx
mov qword [rbp - 0x10], r8
mov rbx, r8
mov qword [rbp - 0x18], r11
movzx edi, byte [rax + r14]
mov rax, qword [rbp + 0x18]
mov r14, qword [rsp + 0x58]
mov r10, qword [rsp + 8]
mov r11, r14
mov ecx, dword [r12 + rax*4]
mov eax, dword [rsp]
sub r11, rcx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rsi]
cmp edi, eax
jne 0x180086a49
test r11, r11
je 0x180086a49
cmp r11, qword [rsp + 0x30]
ja 0x180086a49
mov rdi, qword [rsp + 0x18]
xor ecx, ecx
mov rdx, qword [rsp + 0x50]
mov rax, rdi
shr rax, 3
test rax, rax
je 0x18008699e
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180086a35
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180086980
mov r8, rdi
and r8d, 7
je 0x1800869bc
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x1800869bc
inc rdx
inc rcx
sub r8, 1
jne 0x1800869a7
mov rdx, rcx
cmp rdx, 4
jb 0x180086a49
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rbx, rax
jae 0x180086a49
mov r13, rdx
mov qword [rbp - 0x20], rdx
mov rsi, rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], r11
jmp 0x180086a4d
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x1800866f6
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x1800867e8
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x1800868d8
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x1800869bf
mov rsi, qword [rbp - 0x10]
mov rbx, qword [rsp + 0x10]
mov dword [r12 + r15*4], r14d
mov r15, qword [rsp + 0x18]
test r14b, 3
jne 0x180086bd7
cmp r15, 0x20
jb 0x180086bd7
mov r11, qword [rbx + 0x50]
cmp r11, r14
ja 0x180086bcf
mov r12, qword [rsp + 8]
lea rdi, [r11 + 0x20]
mov r10, qword [rsp]
nop dword [rax]
mov r8d, dword [rbx + 0x40]
mov rax, r10
and rax, r11
mov r9d, r8d
imul r8d, dword [rbx + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r12]
mov rax, rdi
and rax, r10
inc edx
imul edx, dword [rbx + 0x60]
movzx ecx, byte [rax + r12]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rbx + 0x40], eax
cmp r9d, 0x1000000
jae 0x180086bba
mov rax, qword [rbx + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], r11d
cmp r11, r14
jne 0x180086bba
mov eax, 0xffffffff
cmp r8, rax
je 0x180086bba
mov ebx, r14d
sub ebx, r8d
cmp rbx, qword [rsp + 0x30]
ja 0x180086bb5
mov rdx, qword [rsp + 0x50]
and r10, r8
mov r8, r15
add r10, r12
shr r8, 3
xor eax, eax
test r8, r8
je 0x180086b4e
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rax + r10]
cmp r9, rcx
jne 0x180086c3a
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180086b30
mov r8, r15
and r8d, 7
je 0x180086b73
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r10], cl
jne 0x180086b73
inc rax
sub r8, 1
jne 0x180086b60
mov rdx, rax
mov r10, qword [rsp]
cmp rdx, 4
jb 0x180086bb5
cmp rdx, r13
jbe 0x180086bb5
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jbe 0x180086bb5
mov r13, rdx
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], rbx
mov rsi, rax
mov dword [rbp - 8], 0
mov rbx, qword [rsp + 0x10]
add r11, 4
add rdi, 4
cmp r11, r14
jbe 0x180086a90
mov qword [rbp - 0x10], rsi
lea rax, [r14 + 4]
mov qword [rbx + 0x50], rax
mov rax, qword [rsp + 0x40]
mov r12, qword [rsp + 0x38]
add rax, 0xaf
cmp rsi, rax
jb 0x180086c54
mov ecx, dword [rsp + 0x28]
inc r12
movups xmm0, xmmword [rbp - 0x20]
inc ecx
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x28], ecx
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm1
cmp ecx, 4
jge 0x180086c4e
lea rax, [r14 + 8]
cmp rax, qword [rsp + 0x68]
jae 0x180086c4e
mov rax, qword [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x48], rax
jmp 0x180086423
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180086b76
mov r13, qword [rbp - 0x80]
jmp 0x180086c5e
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x48]
mov r9, qword [rsp + 0x70]
lea r15, [r14 + r13*2]
add r15, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x78]
add rax, r14
mov r10, qword [rsp + 0x60]
cmp rax, r9
mov qword [rsp + 0x50], r15
cmovb r9, rax
cmp rbx, r9
ja 0x180086d0a
movsxd rax, dword [r10]
lea rcx, [rbx + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x180086caa
xor r8d, r8d
jmp 0x180086d0e
cmp rbx, r8
jne 0x180086cb7
mov r8d, 1
jmp 0x180086d0e
cmp rdx, 7
jae 0x180086cd2
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180086d0e
cmp rcx, 7
jae 0x180086cea
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180086d0e
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x180086cfb
mov r8d, 2
jmp 0x180086d0e
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x180086d0e
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x180086d32
test r8, r8
je 0x180086d32
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov eax, dword [r10]
mov dword [r10 + 4], eax
mov dword [r10], ebx
mov r15, qword [rsp + 0x78]
mov esi, dword [rbp - 0x68]
mov rcx, qword [rbp - 0x60]
movzx eax, sil
shl eax, 0x19
or eax, r13d
mov dword [r15], r12d
mov dword [r15 + 4], eax
mov r14d, dword [rcx + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x180086d60
xor edi, edi
jmp 0x180086dd4
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rdi, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
sub rdi, rax
shl r8, cl
add r8w, 0x10
shr rdi, cl
mov eax, 1
shl ax, cl
dec ax
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r15 + 0xe], r8w
lea edx, [rsi + r13]
mov eax, 0x3ff
mov dword [r15 + 8], edi
and r8w, ax
movsxd r9, edx
cmp r12, 6
jae 0x180086dfe
movzx r10d, r12w
mov eax, 0x17
jmp 0x180086e73
cmp r12, 0x82
jae 0x180086e2a
lea eax, [r12 - 2]
bsr ecx, eax
lea r10, [r12 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x180086e73
cmp r12, 0x842
jae 0x180086e48
lea eax, [r12 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180086e73
mov eax, 0x17
cmp r12, 0x1842
jae 0x180086e5e
mov r10d, 0x15
jmp 0x180086e73
cmp r12, 0x5842
jae 0x180086e6f
mov r10d, 0x16
jmp 0x180086e73
movzx r10d, ax
cmp r9, 0xa
jae 0x180086e80
sub r9w, 2
jmp 0x180086ec0
cmp r9, 0x86
jae 0x180086ea5
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x180086ec0
cmp r9, 0x846
jae 0x180086ebc
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x180086ec0
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x180086ef8
cmp r10w, 8
jae 0x180086ef8
cmp r9w, 0x10
jae 0x180086ef8
cmp r9w, 8
jb 0x180086f2c
or dx, 0x40
jmp 0x180086f2c
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp - 0x40]
xor r9d, r9d
mov r14, qword [rsp + 0x20]
mov r8, qword [rbp - 0x58]
mov word [r15 + 0xc], dx
add r15, 0x10
add qword [rax], r12
lea rax, [r14 + r13]
mov qword [rsp + 0x78], r15
cmp rax, r8
mov qword [rsp + 0x38], r9
lea rdx, [r14 + 2]
cmovb r8, rax
mov rax, r13
shr rax, 2
cmp rbx, rax
jae 0x180086f8f
lea rax, [rbx*4]
mov rcx, r14
sub rcx, rax
add rcx, r13
cmp rdx, rcx
cmova rcx, rdx
cmp r8, rcx
mov rdx, rcx
cmovb rdx, r8
mov r10, qword [rsp + 0x10]
cmp rdx, r8
jae 0x180086fe9
mov r14, qword [rsp + 8]
movabs r9, 0x35a7bd1e35a7bd00
nop dword [rax + rax]
mov rax, qword [rsp]
and rax, rdx
mov rcx, qword [rax + r14]
mov eax, edx
imul rcx, r9
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [r10 + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x180086fb0
mov r14, qword [rsp + 0x20]
mov r9, qword [rsp + 0x38]
add r14, r13
mov qword [rsp + 0x20], r14
jmp 0x18008713e
mov r9, qword [rsp + 0x38]
inc r14
mov r15, qword [rsp + 0x50]
inc r9
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x20], r14
cmp r14, r15
jbe 0x180087139
mov rax, qword [rbp - 0x50]
mov rdx, qword [rsp + 0x68]
mov r11, qword [rsp]
add rdx, 0xfffffffffffffff9
lea rax, [r15 + rax*4]
mov r15, qword [rsp + 8]
cmp r14, rax
jbe 0x1800870b5
lea rax, [r14 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r14, rdx
jae 0x180087132
add r9, 4
mov rax, rdx
sub rax, r14
dec rax
and rax, 0xfffffffffffffffc
add r9, rax
mov qword [rsp + 0x38], r9
movabs r9, 0x35a7bd1e35a7bd00
nop
mov rax, r11
and rax, r14
mov rcx, qword [rax + r15]
mov eax, r14d
imul rcx, r9
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rbx + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r14d
add r14, 4
cmp r14, rdx
jb 0x180087070
mov r10, qword [rsp + 0x10]
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x20], r14
jmp 0x180087147
lea rax, [r14 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r14, rdx
jae 0x180087132
add r9, 2
mov rax, rdx
sub rax, r14
dec rax
and rax, 0xfffffffffffffffe
add r9, rax
mov qword [rsp + 0x38], r9
movabs r9, 0x35a7bd1e35a7bd00
nop dword [rax + rax]
mov rax, r11
and rax, r14
mov rcx, qword [rax + r15]
mov eax, r14d
imul rcx, r9
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rbx + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r14d
add r14, 2
cmp r14, rdx
jb 0x1800870f0
mov r10, qword [rsp + 0x10]
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x20], r14
jmp 0x180087147
mov r10, qword [rsp + 0x10]
jmp 0x180087147
mov r10, qword [rsp + 0x10]
mov r11, qword [rsp]
mov r15, qword [rsp + 8]
mov rdx, qword [rsp + 0x68]
lea rax, [r14 + 8]
mov r8, qword [rsp + 0x60]
movabs rcx, 0x35a7bd1e35a7bd00
mov rdi, qword [rsp + 0x70]
cmp rax, rdx
jb 0x180085d70
mov rbx, qword [rsp + 0x78]
mov r12, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
sub rdx, r14
sub rbx, rcx
add rdx, r9
sar rbx, 4
mov qword [rax], rdx
add qword [r12], rbx
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1800b22c0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xf0
mov r14, qword [rbp + 0x87]
mov rax, rcx
mov rsi, qword [rbp + 0x8f]
mov r11, r8
mov r8, qword [rbp + 0x6f]
mov r10d, 1
mov r13, r9
mov qword [rbp - 0x19], rsi
mov r14, qword [r14]
lea rbx, [rax + rdx]
mov r15, rdx
mov qword [rsp + 0x30], r14
mov ecx, dword [r8 + 8]
shl r10, cl
mov rcx, qword [r8 + 0x10]
sub r10, 0x10
mov qword [rbp - 0x59], r10
mov qword [rsp + 0x58], rcx
mov qword [rbp - 0x61], rbx
cmp rax, 8
jb 0x180087245
lea rax, [rbx - 7]
mov qword [rbp - 0x29], rax
jmp 0x180087249
mov qword [rbp - 0x29], r15
cmp dword [r8 + 4], 9
mov edx, 0x40
mov rdi, qword [rbp + 0x77]
mov eax, 0x200
cmovl eax, edx
mov qword [rbp - 0x21], rax
add rax, r15
mov qword [rsp + 0x60], rax
mov edx, dword [rdi + 0x58]
cmp edx, 4
jle 0x1800874bb
mov r9, qword [rbp + 0x7f]
cmp edx, 0xa
mov rdx, r9
mov ecx, dword [r9]
lea eax, [rcx - 1]
mov dword [r9 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r9 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r9 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r9 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r9 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r9 + 0x24], eax
jle 0x1800872d7
mov ecx, dword [rdx + 4]
lea eax, [rcx - 1]
mov dword [rdx + 0x28], eax
lea eax, [rcx + 1]
mov dword [rdx + 0x2c], eax
lea eax, [rcx - 2]
mov dword [rdx + 0x30], eax
lea eax, [rcx + 2]
mov dword [rdx + 0x34], eax
lea eax, [rcx - 3]
mov dword [rdx + 0x38], eax
lea eax, [rcx + 3]
mov dword [rdx + 0x3c], eax
mov rcx, qword [rsp + 0x58]
lea rax, [r15 + 8]
cmp rax, rbx
jae 0x1800885e1
mov qword [rsp + 0xe8], r12
movsxd rsi, dword [rdi + 0x58]
lea rax, [rcx + r15]
mov r14, qword [rdi + 0x70]
mov r12, rbx
sub r12, r15
mov qword [rsp + 0x38], 0x7e4
cmp r15, r10
mov qword [rsp + 8], r12
mov r9, r10
mov qword [rsp + 0x50], r14
cmovb r9, r15
mov rcx, r10
mov r15, qword [rdi + 0x68]
cmp rax, r10
mov qword [rsp + 0x18], r9
cmovb rcx, rax
mov qword [rsp + 0x40], r15
mov rax, qword [r8 + 0x50]
xor r10d, r10d
mov qword [rsp + 0x48], rax
mov ebx, r10d
mov rax, qword [rbp + 0x4f]
mov r8, rax
mov qword [rsp], rcx
and r8, r13
mov qword [rbp - 0x41], r10
mov qword [rsp + 0x10], r8
mov ecx, 0x7e4
mov qword [rsp + 0x20], r10
mov dword [rbp - 0x31], r10d
mov qword [rsp + 0x28], rcx
mov qword [rbp + 0x47], r10
test rsi, rsi
je 0x18008750f
mov r15, qword [rsp + 0x10]
xor r8d, r8d
mov r14, qword [rbp + 0x57]
mov qword [rbp + 0x47], r8
mov qword [rsp + 0x28], rcx
movsxd rdi, dword [rdx + rbx*4]
mov rcx, rax
sub rcx, rdi
cmp rcx, rax
jae 0x1800874ec
cmp rdi, r9
ja 0x1800874ec
and rcx, r13
lea rdx, [r10 + r15]
cmp rdx, r13
ja 0x1800874e8
lea rax, [rcx + r10]
cmp rax, r13
ja 0x1800874e4
movzx eax, byte [rax + r14]
cmp byte [rdx + r14], al
jne 0x1800874e4
lea r11, [rcx + r14]
mov rcx, r8
mov r8, r12
lea rdx, [r15 + r14]
shr r8, 3
test r8, r8
je 0x18008741e
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x1800874c4
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180087400
mov r8, r12
and r8d, 7
je 0x180087443
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180087443
inc rcx
sub r8, 1
jne 0x180087430
mov r8, rcx
cmp r8, 3
jae 0x18008745f
cmp r8, 2
jne 0x1800874d8
cmp rbx, r8
jae 0x1800874d8
mov r11, qword [rsp + 0x28]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x1800874d8
test rbx, rbx
je 0x18008749f
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x1800874d8
mov qword [rsp + 0x28], r9
mov r10, r8
mov qword [rbp + 0x47], r8
mov qword [rsp + 0x20], r8
mov qword [rbp - 0x41], rdi
mov qword [rsp + 0x38], r9
jmp 0x1800874dc
mov rdx, qword [rbp + 0x7f]
jmp 0x1800872dc
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180087446
mov r10, qword [rbp + 0x47]
mov r9, qword [rsp + 0x18]
xor r8d, r8d
mov rax, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x7f]
inc rbx
cmp rbx, rsi
jb 0x180087393
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
mov r8, qword [rsp + 0x10]
mov r11, qword [rbp + 0x57]
mov rdi, qword [rbp + 0x77]
mov ecx, dword [rdi + 0x40]
lea r12, [r8 + r11]
mov rdx, qword [r12]
movabs rax, 0x1fe35a7bd3579bd3
and rdx, qword [rdi + 0x48]
imul rdx, rax
shr rdx, cl
mov ecx, dword [rdi + 0x54]
mov eax, edx
shl eax, cl
lea r14, [r14 + rax*4]
mov eax, edx
movzx edx, word [r15 + rax*2]
mov esi, edx
sub rsi, qword [rdi + 0x38]
cmp rdx, qword [rdi + 0x38]
lea r13, [r15 + rax*2]
mov eax, 0
mov qword [rsp + 0x40], r13
cmovbe rsi, rax
mov edi, edx
cmp rdx, rsi
jbe 0x1800876a1
mov rax, qword [rbp + 0x77]
mov r13, qword [rsp + 8]
mov r15d, dword [rax + 0x50]
nop word [rax + rax]
mov rbx, qword [rbp + 0x4f]
dec rdi
mov rax, r15
and rax, rdi
mov ecx, dword [r14 + rax*4]
sub rbx, rcx
cmp rbx, r9
ja 0x180087697
and rcx, qword [rbp + 0x5f]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x5f]
ja 0x18008768e
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x5f]
ja 0x18008768e
movzx eax, byte [rax + r11]
cmp byte [rdx + r11], al
jne 0x18008768e
add r11, rcx
xor eax, eax
mov r8, r13
mov rdx, r12
shr r8, 3
mov ecx, eax
test r8, r8
je 0x18008760a
mov r10, r11
sub r10, r12
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180087679
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800875f0
mov r8, r13
and r8d, 7
je 0x180087629
sub rdx, rcx
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180087629
inc rcx
sub r8, 1
jne 0x180087616
mov rdx, rcx
mov r8, qword [rsp + 0x10]
mov r9, qword [rsp + 0x18]
mov r11, qword [rbp + 0x57]
cmp rdx, 4
jb 0x18008768a
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x28], rax
jae 0x18008768a
mov qword [rsp + 0x28], rax
mov r10, rdx
mov qword [rbp + 0x47], rdx
mov qword [rsp + 0x20], rdx
mov qword [rbp - 0x41], rbx
mov qword [rsp + 0x38], rax
jmp 0x18008768e
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18008762c
mov r10, qword [rbp + 0x47]
cmp rdi, rsi
ja 0x180087580
mov r13, qword [rsp + 0x40]
movzx edx, word [r13]
mov rsi, qword [rbp + 0x77]
mov r15, qword [rbp + 0x4f]
mov eax, dword [rsi + 0x50]
and rax, rdx
mov dword [r14 + rax*4], r15d
inc word [r13]
cmp qword [rsp + 0x38], 0x7e4
jne 0x1800879c2
mov r13, qword [rsi + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x1800879c2
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rsp + 8]
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180087852
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180087852
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x18008777e
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18008783e
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180087760
mov r8, r11
and r8d, 7
je 0x1800877a3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x1800877a3
inc rcx
sub r8, 1
jne 0x180087790
mov r9, rcx
mov rcx, qword [rbp + 0x6f]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180087858
test r9, r9
je 0x180087858
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rsp + 0x48]
ja 0x18008785c
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x38]
jb 0x18008785c
mov qword [rsp + 0x38], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x20], r9
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x31], r11d
mov qword [rbp - 0x41], rdx
jmp 0x18008785c
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800877a6
mov rsi, qword [rsp]
jmp 0x180087861
mov rsi, qword [rsp]
mov rdx, qword [rsp + 8]
mov r14, qword [rbp + 0x6f]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x1800879b8
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x1800879b8
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x1800878ee
mov r10, r12
sub r10, rdx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x1800879a4
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800878d0
mov r8, r11
and r8d, 7
je 0x18008790c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18008790c
inc rdx
inc rcx
sub r8, 1
jne 0x1800878f7
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800879b8
test r9, r9
je 0x1800879b8
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
cmp rdx, qword [rsp + 0x48]
ja 0x1800879b8
mov r15, qword [rbp + 0x4f]
mov rsi, qword [rbp + 0x77]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x38]
jb 0x1800879c6
sub r11d, r9d
mov qword [rbp - 0x41], rdx
inc qword [r13 + 0x10]
mov rcx, r9
mov qword [rsp + 0x20], rcx
mov dword [rbp - 0x31], r11d
mov qword [rsp + 0x38], rax
jmp 0x1800879cb
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18008790f
mov r15, qword [rbp + 0x4f]
mov rsi, qword [rbp + 0x77]
jmp 0x1800879c6
mov r14, qword [rbp + 0x6f]
mov rcx, qword [rsp + 0x20]
cmp qword [rsp + 0x38], 0x7e4
jbe 0x180088615
mov r12, qword [rsp + 8]
xor r13d, r13d
mov dword [rbp + 0x47], r13d
dec r12
cmp dword [r14 + 4], 5
mov qword [rsp + 8], r12
jge 0x180087a05
lea rax, [rcx - 1]
mov r10, r12
cmp rax, r12
cmovb r10, rax
jmp 0x180087a08
mov r10, r13
mov r8, qword [rbp - 0x59]
lea rdx, [r15 + 1]
mov rax, qword [rsp + 0x58]
cmp rdx, r8
mov r9, qword [rbp + 0x5f]
mov r11, r8
cmovb r11, rdx
mov qword [rsp + 0x18], r10
inc rax
mov qword [rbp - 0x79], r13
add rax, r15
mov qword [rbp - 0x71], 0x7e4
mov r15, qword [rsi + 0x70]
cmp rax, r8
mov rcx, r8
mov qword [rsp], rdx
cmovb rcx, rax
mov qword [rsp + 0x28], r11
mov rax, qword [r14 + 0x50]
mov r8, rdx
mov r14, qword [rsi + 0x68]
and r8, r9
movsxd rsi, dword [rsi + 0x58]
mov rbx, r13
mov qword [rsp + 0x48], rcx
mov ecx, 0x7e4
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x10], r14
mov qword [rbp - 0x51], r15
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x68], r13
mov dword [rbp - 0x69], r13d
mov qword [rsp + 0x50], rcx
test rsi, rsi
je 0x180087c14
mov r15, qword [rbp + 0x57]
mov r14, r8
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x50], rcx
nop word [rax + rax]
movsxd rdi, dword [rax + rbx*4]
mov rcx, rdx
sub rcx, rdi
cmp rcx, rdx
jae 0x180087bfa
cmp rdi, r11
ja 0x180087bfa
and rcx, r9
lea rdx, [r10 + r14]
cmp rdx, r9
ja 0x180087bf6
lea rax, [rcx + r10]
cmp rax, r9
ja 0x180087bf2
movzx eax, byte [rax + r15]
cmp byte [rdx + r15], al
jne 0x180087bf2
mov r8, r12
lea rdx, [r14 + r15]
shr r8, 3
lea r11, [rcx + r15]
mov rax, r13
test r8, r8
je 0x180087b3e
mov r10, r11
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [r10 + rdx]
cmp r9, rcx
jne 0x180087bd3
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180087b20
mov r8, r12
and r8d, 7
je 0x180087b63
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x180087b63
inc rax
sub r8, 1
jne 0x180087b50
mov r8, rax
cmp r8, 3
jae 0x180087b77
cmp r8, 2
jne 0x180087be4
cmp rbx, r8
jae 0x180087be4
mov r11, qword [rsp + 0x50]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x180087be4
test rbx, rbx
je 0x180087bb7
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x180087be4
mov qword [rsp + 0x50], r9
mov r10, r8
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x68], r8
mov qword [rbp - 0x79], rdi
mov qword [rbp - 0x71], r9
jmp 0x180087be9
xor rcx, r9
tzcnt r8, rcx
shr r8, 3
add r8, rax
jmp 0x180087b66
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp + 0x28]
mov r9, qword [rbp + 0x5f]
mov rax, qword [rbp + 0x7f]
mov rdx, qword [rsp]
inc rbx
cmp rbx, rsi
jb 0x180087ab0
mov r14, qword [rsp + 0x10]
mov r15, qword [rbp - 0x51]
mov r8, qword [rsp + 0x40]
mov rbx, qword [rbp + 0x77]
movabs rax, 0x1fe35a7bd3579bd3
mov r9, qword [rbp + 0x57]
add r9, r8
mov qword [rsp + 0x10], r9
mov ecx, dword [rbx + 0x40]
mov rdx, qword [r9]
and rdx, qword [rbx + 0x48]
imul rdx, rax
shr rdx, cl
mov ecx, dword [rbx + 0x54]
mov eax, edx
shl eax, cl
lea r15, [r15 + rax*4]
mov eax, edx
movzx r13d, word [r14 + rax*2]
lea r12, [r14 + rax*2]
mov esi, r13d
mov qword [rbp - 0x51], r12
sub rsi, qword [rbx + 0x38]
mov eax, 0
cmp r13, qword [rbx + 0x38]
mov edi, r13d
cmovbe rsi, rax
cmp r13, rsi
jbe 0x180087dcc
mov r14d, dword [rbx + 0x50]
mov r13, qword [rsp]
mov r12, qword [rsp + 8]
nop word [rax + rax]
dec rdi
mov rax, r14
and rax, rdi
mov rbx, r13
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r11
ja 0x180087dc3
and rcx, qword [rbp + 0x5f]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x5f]
ja 0x180087dba
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x5f]
ja 0x180087dba
mov r13, qword [rbp + 0x57]
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
mov r13, qword [rsp]
jne 0x180087dba
mov r11, qword [rbp + 0x57]
xor eax, eax
add r11, rcx
mov r8, r12
shr r8, 3
mov rdx, r9
mov ecx, eax
test r8, r8
je 0x180087d2e
mov r10, r11
sub r10, r9
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180087da4
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180087d10
mov r8, r12
and r8d, 7
je 0x180087d53
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180087d53
inc rcx
sub r8, 1
jne 0x180087d40
mov rdx, rcx
mov r9, qword [rsp + 0x10]
mov r8, qword [rsp + 0x40]
mov r11, qword [rsp + 0x28]
cmp rdx, 4
jb 0x180087db5
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x50], rax
jae 0x180087db5
mov qword [rsp + 0x50], rax
mov r10, rdx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x68], rdx
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rax
jmp 0x180087dba
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180087d56
mov r10, qword [rsp + 0x18]
cmp rdi, rsi
ja 0x180087c90
mov r12, qword [rbp - 0x51]
movzx r13d, word [r12]
mov rsi, qword [rbp + 0x77]
mov rcx, qword [rsp]
mov eax, dword [rsi + 0x50]
and rax, r13
mov dword [r15 + rax*4], ecx
inc word [r12]
mov r12, qword [rbp - 0x71]
cmp r12, 0x7e4
jne 0x1800880fc
mov r13, qword [rsi + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x1800880f8
imul ebx, dword [r9], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rsp + 8]
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180087f97
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180087f97
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180087eb3
mov r10, r9
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180087f79
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180087e90
mov r9, qword [rsp + 0x10]
mov r8, r11
and r8d, 7
je 0x180087ed3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r9], al
jne 0x180087ed3
inc rcx
sub r8, 1
jne 0x180087ec0
mov r9, rcx
mov rcx, qword [rbp + 0x6f]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180087f8d
test r9, r9
je 0x180087f8d
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [rdi + r11]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp + 0x48]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rsp + 0x60]
ja 0x180087f6d
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r12
jb 0x180087f6d
mov r12, rax
mov qword [rbp - 0x71], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x68], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x69], r11d
mov qword [rbp - 0x79], rdx
mov r9, qword [rsp + 0x10]
mov rdx, qword [rsp + 8]
jmp 0x180087f9c
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180087ed6
mov rdx, qword [rsp + 8]
mov r9, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x48]
mov r14, qword [rbp + 0x6f]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x1800880ee
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x1800880ee
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x18008801e
mov r10, r9
sub r10, rdx
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x1800880da
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180088000
mov r8, r11
and r8d, 7
je 0x180088045
mov r9, qword [rsp + 0x10]
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r9], al
jne 0x180088045
inc rdx
inc rcx
sub r8, 1
jne 0x180088030
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800880ee
test r9, r9
je 0x1800880ee
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [rbx + r11]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
cmp rdx, qword [rsp + 0x60]
ja 0x1800880ee
mov rsi, qword [rbp + 0x77]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
mov rcx, qword [rsp]
add rax, 0x780
cmp rax, r12
jb 0x180088100
sub r11d, r9d
mov qword [rsp + 0x68], r9
inc qword [r13 + 0x10]
mov r12, rax
mov dword [rbp - 0x69], r11d
mov qword [rbp - 0x79], rdx
mov qword [rbp - 0x71], rax
jmp 0x180088100
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180088048
mov rcx, qword [rsp]
mov rsi, qword [rbp + 0x77]
jmp 0x180088100
mov rcx, qword [rsp]
mov r14, qword [rbp + 0x6f]
mov rax, qword [rsp + 0x38]
add rax, 0xaf
cmp r12, rax
jb 0x18008816c
movups xmm0, xmmword [rsp + 0x68]
inc qword [rsp + 0x30]
mov r15, rcx
movups xmm1, xmmword [rbp - 0x71]
mov qword [rbp + 0x4f], rcx
mov ecx, dword [rbp + 0x47]
inc ecx
mov dword [rbp + 0x47], ecx
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm1
cmp ecx, 4
jge 0x180088166
lea rax, [r15 + 8]
cmp rax, qword [rbp - 0x61]
jae 0x180088166
mov r12, qword [rsp + 8]
mov r9, qword [rbp - 0x39]
dec r12
mov rcx, qword [rbp - 0x49]
xor r13d, r13d
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x20], rcx
jmp 0x1800879e9
mov r13, qword [rbp - 0x49]
jmp 0x180088175
mov r15, qword [rbp + 0x4f]
mov r13, qword [rsp + 0x20]
mov rax, qword [rbp - 0x21]
mov r10, qword [rbp - 0x59]
mov r11, qword [rbp + 0x7f]
mov rdi, qword [rbp - 0x41]
lea r12, [rax + r13*2]
mov rax, qword [rsp + 0x58]
add rax, r15
add r12, r15
cmp rax, r10
mov qword [rsp + 0x60], r12
lea rdx, [r11 + 4]
cmovb r10, rax
cmp rdi, r10
ja 0x18008822e
movsxd rax, dword [r11]
lea rcx, [rdi + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rdi, rax
jne 0x1800881cd
xor r9d, r9d
mov r8d, r9d
jmp 0x180088235
cmp rdi, r9
jne 0x1800881da
mov r8d, 1
jmp 0x180088232
cmp r8, 7
jae 0x1800881f6
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180088232
cmp rcx, 7
jae 0x18008820e
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180088232
movsxd rax, dword [r11 + 8]
cmp rdi, rax
jne 0x18008821f
mov r8d, 2
jmp 0x180088232
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rdi, rax
je 0x180088232
lea r8, [rdi + 0xf]
xor r9d, r9d
cmp rdi, r10
ja 0x1800882b6
test r8, r8
je 0x1800882b6
mov eax, dword [r11 + 8]
mov ecx, dword [r11]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov dword [rdx], ecx
mov dword [r11], edi
mov edx, dword [rsi + 0x58]
cmp edx, 4
jle 0x1800882b6
lea eax, [rdi - 1]
mov dword [r11 + 0x10], eax
lea eax, [rdi + 1]
mov dword [r11 + 0x14], eax
lea eax, [rdi - 2]
mov dword [r11 + 0x18], eax
lea eax, [rdi + 2]
mov dword [r11 + 0x1c], eax
lea eax, [rdi - 3]
mov dword [r11 + 0x20], eax
lea eax, [rdi + 3]
mov dword [r11 + 0x24], eax
cmp edx, 0xa
jle 0x1800882b6
lea eax, [rcx - 1]
mov dword [r11 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r11 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r11 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r11 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r11 + 0x3c], eax
mov r11, qword [rbp + 0x8f]
mov esi, dword [rbp - 0x31]
mov r12, qword [rsp + 0x30]
movzx eax, sil
shl eax, 0x19
or eax, r13d
mov dword [r11], r12d
mov dword [r11 + 4], eax
mov r14d, dword [r14 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x1800882e8
mov ebx, r9d
jmp 0x180088367
mov rcx, qword [rbp + 0x6f]
add r8, 0xfffffffffffffff0
mov r10d, 1
mov r11d, dword [rcx + 0x40]
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rbx, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rbp + 0x8f]
sub rbx, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rbx, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea edx, [rsi + r13]
mov eax, 0x3ff
mov dword [r11 + 8], ebx
and r8w, ax
movsxd r9, edx
cmp r12, 6
jae 0x180088391
movzx r10d, r12w
mov eax, 0x17
jmp 0x180088406
cmp r12, 0x82
jae 0x1800883bd
lea eax, [r12 - 2]
bsr ecx, eax
lea r10, [r12 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x180088406
cmp r12, 0x842
jae 0x1800883db
lea eax, [r12 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180088406
mov eax, 0x17
cmp r12, 0x1842
jae 0x1800883f1
mov r10d, 0x15
jmp 0x180088406
cmp r12, 0x5842
jae 0x180088402
mov r10d, 0x16
jmp 0x180088406
movzx r10d, ax
cmp r9, 0xa
jae 0x180088413
sub r9w, 2
jmp 0x180088453
cmp r9, 0x86
jae 0x180088438
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x180088453
cmp r9, 0x846
jae 0x18008844f
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x180088453
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x18008848b
cmp r10w, 8
jae 0x18008848b
cmp r9w, 0x10
jae 0x18008848b
cmp r9w, 8
jb 0x1800884bf
or dx, 0x40
jmp 0x1800884bf
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x9f]
lea rbx, [r15 + 2]
mov rsi, qword [rbp - 0x29]
mov word [r11 + 0xc], dx
add r11, 0x10
mov qword [rbp + 0x8f], r11
add qword [rax], r12
xor eax, eax
mov r14d, eax
mov qword [rsp + 0x30], rax
lea rax, [r15 + r13]
cmp rax, rsi
cmovb rsi, rax
mov rax, r13
shr rax, 2
cmp rdi, rax
jae 0x18008852b
lea rax, [rdi*4]
mov rcx, r13
sub rcx, rax
lea rax, [rcx + r15]
cmp rbx, rax
mov eax, 2
cmova rcx, rax
lea rbx, [r15 + rcx]
cmp rsi, rbx
cmovb rbx, rsi
cmp rbx, rsi
jae 0x18008859d
mov rdi, qword [rbp + 0x77]
movabs r14, 0x1fe35a7bd3579bd3
nop
mov rdx, qword [rdi + 0x68]
mov rax, rbx
and rax, qword [rbp + 0x5f]
mov rcx, qword [rbp + 0x57]
mov r11, qword [rdi + 0x70]
mov r10, qword [rax + rcx]
and r10, qword [rdi + 0x48]
mov ecx, dword [rdi + 0x40]
imul r10, r14
shr r10, cl
mov ecx, dword [rdi + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
mov eax, dword [rdi + 0x50]
mov r8d, edx
and r8, rax
inc dx
mov eax, r10d
add r8, rax
mov word [r9], dx
mov dword [r11 + r8*4], ebx
inc rbx
cmp rbx, rsi
jb 0x180088540
mov r14, qword [rsp + 0x30]
add r15, r13
mov qword [rbp + 0x4f], r15
mov r13, qword [rbp + 0x5f]
mov rbx, qword [rbp - 0x61]
lea rax, [r15 + 8]
mov r11, qword [rbp + 0x57]
mov rdi, qword [rbp + 0x77]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x7f]
mov r10, qword [rbp - 0x59]
mov rcx, qword [rsp + 0x58]
cmp rax, rbx
jb 0x1800872f1
mov r12, qword [rsp + 0xe8]
mov rsi, qword [rbp + 0x8f]
mov rax, qword [rbp + 0x87]
sub rbx, r15
sub rsi, qword [rbp - 0x19]
add rbx, r14
sar rsi, 4
mov qword [rax], rbx
mov rax, qword [rbp + 0x97]
add qword [rax], rsi
add rsp, 0xf0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r14, qword [rsp + 0x30]
inc r15
mov r12, qword [rsp + 0x60]
inc r14
mov qword [rsp + 0x30], r14
mov qword [rbp + 0x4f], r15
cmp r15, r12
jbe 0x1800885a4
mov rax, qword [rbp - 0x21]
mov rbx, qword [rbp - 0x61]
mov r13, qword [rbp + 0x5f]
add rbx, 0xfffffffffffffff9
lea rax, [r12 + rax*4]
cmp r15, rax
jbe 0x1800886f6
lea rax, [r15 + 0x10]
cmp rax, rbx
cmovb rbx, rax
cmp r15, rbx
jae 0x1800885a8
add r14, 4
mov rax, rbx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x30], r14
movabs r14, 0x1fe35a7bd3579bd3
nop dword [rax + rax]
mov rdx, qword [rsi + 0x68]
mov rax, r15
mov rcx, qword [rbp + 0x57]
and rax, r13
mov r11, qword [rsi + 0x70]
mov r10, qword [rax + rcx]
and r10, qword [rsi + 0x48]
mov ecx, dword [rsi + 0x40]
imul r10, r14
shr r10, cl
mov ecx, dword [rsi + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
mov eax, dword [rsi + 0x50]
mov r8d, edx
and r8, rax
inc dx
mov eax, r10d
add r8, rax
mov word [r9], dx
mov dword [r11 + r8*4], r15d
add r15, 4
cmp r15, rbx
jb 0x180088690
mov r14, qword [rsp + 0x30]
mov qword [rbp + 0x4f], r15
jmp 0x1800885a8
lea rax, [r15 + 8]
cmp rax, rbx
cmovb rbx, rax
cmp r15, rbx
jae 0x1800885a8
add r14, 2
mov rax, rbx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x30], r14
movabs r14, 0x1fe35a7bd3579bd3
nop dword [rax]
mov rdx, qword [rsi + 0x68]
mov rax, r15
mov rcx, qword [rbp + 0x57]
and rax, r13
mov r11, qword [rsi + 0x70]
mov r10, qword [rax + rcx]
and r10, qword [rsi + 0x48]
mov ecx, dword [rsi + 0x40]
imul r10, r14
shr r10, cl
mov ecx, dword [rsi + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
mov eax, dword [rsi + 0x50]
mov r8d, edx
and r8, rax
inc dx
mov eax, r10d
add r8, rax
mov word [r9], dx
mov dword [r11 + r8*4], r15d
add r15, 2
cmp r15, rbx
jb 0x180088730
mov r14, qword [rsp + 0x30]
mov qword [rbp + 0x4f], r15
jmp 0x1800885a8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0x100
mov r15, qword [rbp + 0x5f]
mov rax, rcx
mov r10, qword [rbp + 0x77]
mov r9, r8
mov r14, rdx
mov r8d, 1
mov rdx, qword [rbp + 0x7f]
mov ecx, dword [r15 + 8]
mov r10, qword [r10]
shl r8, cl
lea rbx, [rax + r14]
mov rcx, qword [r15 + 0x10]
sub r8, 0x10
mov qword [rsp + 0x78], r8
mov qword [rbp - 0x79], rcx
mov qword [rbp - 0x29], rdx
mov qword [rsp + 0x28], r10
mov qword [rbp - 0x49], rbx
cmp rax, 8
jb 0x18008881a
lea rax, [rbx - 7]
mov qword [rbp - 0x41], rax
jmp 0x18008881e
mov qword [rbp - 0x41], r14
cmp dword [r15 + 4], 9
mov edx, 0x40
mov r13, qword [rbp + 0x67]
mov eax, 0x200
cmovl eax, edx
mov qword [rbp - 0x39], rax
add rax, r14
mov qword [rbp - 0x71], rax
mov edx, dword [r13 + 0x58]
cmp edx, 4
jle 0x1800888b5
mov r8, qword [rbp + 0x6f]
mov ecx, dword [r8]
lea eax, [rcx - 1]
mov dword [r8 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r8 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r8 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r8 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r8 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r8 + 0x24], eax
cmp edx, 0xa
jle 0x1800888ac
mov ecx, dword [r8 + 4]
lea eax, [rcx - 1]
mov dword [r8 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r8 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r8 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r8 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r8 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r8 + 0x3c], eax
mov rcx, qword [rbp - 0x79]
mov r8, qword [rsp + 0x78]
lea rax, [r14 + 8]
cmp rax, rbx
jae 0x18008a06b
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0xf0], rdi
xor edi, edi
mov qword [rsp + 0xe8], r12
nop dword [rax]
mov rdx, qword [rbp + 0x3f]
lea rax, [rcx + r14]
movsxd rsi, dword [r13 + 0x58]
mov r11, r8
mov rcx, r8
mov qword [rbp - 0x61], rdi
mov r12, rbx
mov qword [rsp + 0x30], rdi
sub r12, r14
mov dword [rbp - 0x51], edi
cmp r14, r8
mov qword [rsp], r12
mov rbx, rdi
mov qword [rsp + 0x18], rdi
cmovb r11, r14
mov r10, rdi
mov r14, qword [r13 + 0x68]
cmp rax, r8
mov r8, rdx
mov qword [rsp + 8], r11
cmovb rcx, rax
mov qword [rbp + 0x37], r14
mov rax, qword [r15 + 0x50]
mov r15, qword [r13 + 0x70]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x4f]
and r8, rax
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], r8
mov ecx, 0x7e4
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x20], rcx
test rsi, rsi
je 0x180088ae6
mov r15, qword [rbp + 0x6f]
mov r14, r8
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x18], rdi
nop dword [rax + rax]
movsxd rdi, dword [r15 + rbx*4]
mov rcx, rdx
sub rcx, rdi
cmp rcx, rdx
jae 0x180088acb
cmp rdi, r11
ja 0x180088acb
and rcx, rax
lea rdx, [r10 + r14]
cmp rdx, rax
ja 0x180088ac7
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x4f]
ja 0x180088ac3
movzx eax, byte [rax + r9]
cmp byte [rdx + r9], al
jne 0x180088ac3
mov r8, r12
lea r11, [rcx + r9]
shr r8, 3
lea rdx, [r14 + r9]
xor ecx, ecx
test r8, r8
je 0x180088a0e
mov r10, r11
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180088aa4
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800889f0
mov r8, r12
and r8d, 7
je 0x180088a33
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180088a33
inc rcx
sub r8, 1
jne 0x180088a20
mov r8, rcx
cmp r8, 3
jae 0x180088a47
cmp r8, 2
jne 0x180088ab5
cmp rbx, r8
jae 0x180088ab5
mov r11, qword [rsp + 0x20]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x180088ab5
test rbx, rbx
je 0x180088a87
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x180088ab5
mov qword [rsp + 0x20], r9
mov r10, r8
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x30], r8
mov qword [rbp - 0x61], rdi
mov qword [rsp + 0x10], r9
jmp 0x180088aba
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180088a36
mov r10, qword [rsp + 0x18]
mov r9, qword [rbp + 0x47]
mov r11, qword [rsp + 8]
mov rax, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x3f]
inc rbx
cmp rbx, rsi
jb 0x180088980
mov r14, qword [rbp + 0x37]
xor edi, edi
mov r15, qword [r13 + 0x70]
mov r8, qword [rsp + 0x38]
mov ecx, dword [r13 + 0x40]
add r9, r8
mov rdx, qword [r13 + 0x48]
movabs rax, 0x1fe35a7bd3579bd3
mov qword [rbp + 0x37], r9
and rdx, qword [r9]
imul rdx, rax
shr rdx, cl
mov ecx, dword [r13 + 0x54]
mov eax, edx
shl eax, cl
lea r15, [r15 + rax*4]
mov eax, edx
movzx r13d, word [r14 + rax*2]
lea r12, [r14 + rax*2]
mov rdx, qword [rbp + 0x67]
mov esi, r13d
mov qword [rsp + 0x70], r12
sub rsi, qword [rdx + 0x38]
cmp r13, qword [rdx + 0x38]
cmovbe rsi, rdi
mov edi, r13d
cmp r13, rsi
jbe 0x180088c77
mov r14d, dword [rdx + 0x50]
mov r13, qword [rbp + 0x47]
mov r12, qword [rsp]
mov rbx, qword [rbp + 0x3f]
dec rdi
mov rax, rdi
and rax, r14
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r11
ja 0x180088c69
and rcx, qword [rbp + 0x4f]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x4f]
ja 0x180088c60
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x4f]
ja 0x180088c60
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
jne 0x180088c60
xor eax, eax
lea r11, [rcx + r13]
mov r8, r12
mov rdx, r9
shr r8, 3
mov ecx, eax
test r8, r8
je 0x180088bda
mov r10, r11
sub r10, r9
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180088c4a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180088bc0
mov r8, r12
and r8d, 7
je 0x180088bf9
sub rdx, rcx
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180088bf9
inc rcx
sub r8, 1
jne 0x180088be6
mov rdx, rcx
mov r8, qword [rsp + 0x38]
mov r9, qword [rbp + 0x37]
mov r11, qword [rsp + 8]
cmp rdx, 4
jb 0x180088c5b
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x20], rax
jae 0x180088c5b
mov qword [rsp + 0x20], rax
mov r10, rdx
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x30], rdx
mov qword [rbp - 0x61], rbx
mov qword [rsp + 0x10], rax
jmp 0x180088c60
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180088bfc
mov r10, qword [rsp + 0x18]
cmp rdi, rsi
ja 0x180088b50
mov r12, qword [rsp + 0x70]
mov rdx, qword [rbp + 0x67]
movzx r13d, word [r12]
mov eax, dword [rdx + 0x50]
mov r14, qword [rbp + 0x3f]
and rax, r13
mov rbx, qword [rsp + 0x10]
mov dword [r15 + rax*4], r14d
inc word [r12]
cmp rbx, 0x7e4
jne 0x180088f99
mov r13, qword [rdx + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180088f93
imul ebx, dword [r9], 0x1e35a7bd
lea r15, [rcx + 1]
mov r12, qword [rbp + 0x5f]
mov rdx, qword [rsp]
mov qword [r13 + 8], r15
mov rax, qword [r12 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x180088e31
mov rax, qword [r12 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180088e31
mov rdi, qword [r12 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180088d52
mov r10, r9
sub r10, rdx
nop
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180088e15
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180088d30
mov r9, qword [rbp + 0x37]
mov r8, r11
and r8d, 7
je 0x180088d73
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r9], al
jne 0x180088d73
inc rcx
sub r8, 1
jne 0x180088d60
mov r9, rcx
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180088e29
test r9, r9
je 0x180088e29
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r12 + 0x68]
mov r12, qword [rsp + 0x40]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
lea rdx, [r12 + 1]
add rax, rsi
add rdx, rax
cmp rdx, qword [rsp + 0x68]
ja 0x180088e0b
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x10]
jb 0x180088e0b
mov qword [rsp + 0x10], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x30], r9
mov qword [r13 + 0x10], rax
mov dword [rbp - 0x51], r11d
mov qword [rbp - 0x61], rdx
mov r9, qword [rbp + 0x37]
mov rdx, qword [rsp]
jmp 0x180088e36
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180088d76
mov rdx, qword [rsp]
mov r9, qword [rbp + 0x37]
mov r12, qword [rsp + 0x40]
mov r14, qword [rbp + 0x5f]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x180088f9f
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180088f9f
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x180088ebe
mov r10, r9
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180088f7b
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180088ea0
mov rsi, qword [rbp + 0x37]
mov r8, r11
and r8d, 7
je 0x180088ee4
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + rsi], al
jne 0x180088ee4
inc rdx
inc rcx
sub r8, 1
jne 0x180088ed0
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180088fa3
test r9, r9
je 0x180088fa3
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
mov rbx, qword [rsp + 0x10]
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, r12
cmp rdx, qword [rsp + 0x68]
ja 0x180088fa8
mov r14, qword [rbp + 0x3f]
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rbx
jb 0x180088fac
sub r11d, r9d
mov qword [rsp + 0x30], r9
inc qword [r13 + 0x10]
mov rbx, rax
mov dword [rbp - 0x51], r11d
mov qword [rbp - 0x61], rdx
mov qword [rsp + 0x10], rax
jmp 0x180088fac
mov rsi, qword [rbp + 0x37]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180088ee7
mov rsi, qword [rbp + 0x37]
jmp 0x180088fa8
mov rsi, qword [rbp + 0x37]
jmp 0x180088fac
mov rsi, qword [rbp + 0x37]
mov rbx, qword [rsp + 0x10]
mov r14, qword [rbp + 0x3f]
mov r12, qword [rsp]
mov r13, qword [rbp + 0x67]
cmp r12, 0x20
jb 0x180089141
mov r11, qword [r13 + 0x88]
cmp r11, r14
ja 0x180089136
mov r14, qword [rsp + 8]
lea rdi, [r11 + 0x20]
mov r10, qword [rbp + 0x47]
mov r15, qword [rbp + 0x4f]
nop
mov r8d, dword [r13 + 0x78]
mov rax, r11
and rax, r15
mov r9d, r8d
imul r8d, dword [r13 + 0x94]
and r9d, 0x3fffffff
movzx edx, byte [rax + r10]
mov rax, rdi
and rax, r15
inc edx
imul edx, dword [r13 + 0x98]
movzx ecx, byte [rax + r10]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [r13 + 0x78], eax
cmp r9d, 0x1000000
jae 0x180089122
mov rax, qword [r13 + 0x80]
mov ecx, r9d
mov r9d, dword [rax + r9*4]
mov dword [rax + rcx*4], r11d
mov rax, qword [rbp + 0x3f]
cmp r11, rax
jne 0x180089122
mov ecx, 0xffffffff
cmp r9, rcx
je 0x180089122
sub eax, r9d
mov ebx, eax
cmp rbx, r14
ja 0x18008911d
and r9, r15
xor eax, eax
mov r8, r12
add r9, r10
shr r8, 3
mov rdx, rsi
mov ecx, eax
test r8, r8
je 0x18008909d
mov r10, qword [rdx]
mov rax, qword [rcx + r9]
cmp r10, rax
jne 0x18008910c
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180089083
mov r8, r12
and r8d, 7
je 0x1800890c3
sub rdx, rcx
nop dword [rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r9], al
jne 0x1800890c3
inc rcx
sub r8, 1
jne 0x1800890b0
mov rdx, rcx
mov r10, qword [rbp + 0x47]
cmp rdx, 4
jb 0x18008911d
cmp rdx, qword [rsp + 0x30]
jbe 0x18008911d
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x10]
jbe 0x18008911d
mov qword [rbp - 0x61], rbx
mov rbx, rax
mov qword [rsp + 0x10], rax
xor eax, eax
mov dword [rbp - 0x51], eax
mov qword [rsp + 0x30], rdx
jmp 0x180089122
xor rax, r10
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800890c6
mov rbx, qword [rsp + 0x10]
inc r11
inc rdi
cmp r11, qword [rbp + 0x3f]
jbe 0x180088fe0
mov r14, qword [rbp + 0x3f]
lea rax, [r14 + 1]
mov qword [r13 + 0x88], rax
cmp rbx, 0x7e4
jbe 0x180089ead
mov rax, qword [rsp + 0x30]
xor edi, edi
mov dword [rbp + 0x37], edi
dec r12
mov r8, qword [rbp + 0x5f]
mov qword [rsp], r12
cmp dword [r8 + 4], 5
jge 0x180089179
dec rax
mov r10, r12
cmp rax, r12
cmovb r10, rax
jmp 0x18008917c
mov r10, rdi
mov rbx, qword [rsp + 0x78]
lea r11, [r14 + 1]
mov rax, qword [rbp - 0x79]
cmp r11, rbx
movsxd rsi, dword [r13 + 0x58]
mov rdx, rbx
mov r15, qword [r13 + 0x70]
cmovb rdx, r11
inc rax
mov qword [rsp + 0x20], r10
add rax, r14
mov qword [rsp + 0x50], rdi
mov r14, qword [r13 + 0x68]
cmp rax, rbx
mov rcx, rbx
mov qword [rsp + 0x18], r11
cmovb rcx, rax
mov qword [rsp + 8], rdx
mov rax, qword [r8 + 0x50]
mov r9d, 0x7e4
mov qword [rbp - 0x71], rax
mov r8, r11
mov rax, qword [rbp + 0x4f]
mov rbx, rdi
and r8, rax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x58], r9
mov ecx, r9d
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x40], rcx
test rsi, rsi
je 0x18008938e
mov r15, qword [rbp + 0x47]
mov r14, r8
mov qword [rsp + 0x40], rcx
nop dword [rax + rax]
mov rcx, qword [rbp + 0x6f]
movsxd rdi, dword [rcx + rbx*4]
mov rcx, r11
sub rcx, rdi
cmp rcx, r11
jae 0x18008936e
cmp rdi, rdx
ja 0x18008936e
and rcx, rax
lea rdx, [r10 + r14]
cmp rdx, rax
ja 0x180089369
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x4f]
ja 0x180089365
movzx eax, byte [rax + r15]
cmp byte [rdx + r15], al
jne 0x180089365
xor eax, eax
lea r11, [rcx + r15]
mov r8, r12
lea rdx, [r14 + r15]
shr r8, 3
mov ecx, eax
test r8, r8
je 0x1800892ae
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180089345
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180089290
mov r8, r12
and r8d, 7
je 0x1800892d3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800892d3
inc rcx
sub r8, 1
jne 0x1800892c0
mov r8, rcx
cmp r8, 3
jae 0x1800892e7
cmp r8, 2
jne 0x180089356
cmp rbx, r8
jae 0x180089356
mov r11, qword [rsp + 0x40]
imul r9, r8, 0x87
add r9, 0x78f
cmp r11, r9
jae 0x180089356
test rbx, rbx
je 0x180089327
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
mov rax, 0xffffffffffffffd9
sar rdx, cl
and edx, 0xe
sub rax, rdx
add r9, rax
cmp r11, r9
jae 0x180089356
mov qword [rsp + 0x40], r9
mov r10, r8
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r9
jmp 0x180089360
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x1800892d6
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x20]
mov r11, qword [rsp + 0x18]
mov rax, qword [rbp + 0x4f]
mov rdx, qword [rsp + 8]
inc rbx
cmp rbx, rsi
jb 0x180089220
mov r13, qword [rbp + 0x67]
xor edi, edi
mov r14, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
mov r15, qword [r13 + 0x70]
mov rcx, qword [rbp + 0x47]
mov rdx, qword [r8 + rcx]
lea rax, [r8 + rcx]
and rdx, qword [r13 + 0x48]
mov ecx, dword [r13 + 0x40]
mov qword [rsp + 0x68], rax
movabs rax, 0x1fe35a7bd3579bd3
imul rdx, rax
shr rdx, cl
mov ecx, dword [r13 + 0x54]
mov eax, edx
shl eax, cl
lea r15, [r15 + rax*4]
mov eax, edx
movzx r13d, word [r14 + rax*2]
lea r12, [r14 + rax*2]
mov rdx, qword [rbp + 0x67]
mov esi, r13d
mov qword [rbp - 0x31], r12
sub rsi, qword [rdx + 0x38]
cmp r13, qword [rdx + 0x38]
cmovbe rsi, rdi
mov edi, r13d
cmp r13, rsi
jbe 0x180089545
mov r14d, dword [rdx + 0x50]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 8]
dec rdi
mov rax, r14
and rax, rdi
mov rbx, r11
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r12
ja 0x180089538
and rcx, qword [rbp + 0x4f]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x4f]
ja 0x18008952f
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x4f]
ja 0x18008952f
mov r12, qword [rbp + 0x47]
movzx eax, byte [rax + r12]
cmp byte [rdx + r12], al
mov r12, qword [rsp + 8]
jne 0x18008952f
mov r11, qword [rbp + 0x47]
xor eax, eax
add r11, rcx
mov rdx, r13
mov ecx, eax
mov rax, qword [rsp]
mov r9, rax
shr r9, 3
test r9, r9
je 0x1800894a2
mov r10, r11
sub r10, r13
nop dword [rax + rax]
mov rax, qword [rdx]
mov r8, qword [rdx + r10]
cmp rax, r8
jne 0x180089514
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180089480
mov rax, qword [rsp]
mov r8, rax
and r8d, 7
je 0x1800894c3
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x1800894c3
inc rcx
sub r8, 1
jne 0x1800894b0
mov rdx, rcx
mov r8, qword [rsp + 0x38]
mov r11, qword [rsp + 0x18]
cmp rdx, 4
jb 0x180089525
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x40], rax
jae 0x180089525
mov qword [rsp + 0x40], rax
mov r10, rdx
mov qword [rsp + 0x20], rdx
mov r9, rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rax
jmp 0x18008952f
xor rax, r8
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800894c6
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x20]
cmp rdi, rsi
ja 0x180089400
mov r12, qword [rbp - 0x31]
mov rdx, qword [rbp + 0x67]
movzx r13d, word [r12]
mov eax, dword [rdx + 0x50]
and rax, r13
mov dword [r15 + rax*4], r11d
inc word [r12]
mov r12, qword [rsp + 0x68]
cmp r9, 0x7e4
jne 0x180089857
mov r13, qword [rdx + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180089857
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x5f]
mov rdx, qword [rsp]
mov qword [r13 + 8], r15
mov rax, qword [r8 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x1800896f4
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x1800896f4
mov rdi, qword [r8 + 0x58]
mov eax, ecx
imul rax, rsi
mov edx, dword [rdi + rcx*4 + 0x20]
mov r9d, r11d
add rdx, rax
shr r9, 3
add rdx, qword [rdi + 0xa8]
xor eax, eax
mov ecx, eax
test r9, r9
je 0x18008961e
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [rdx + r10]
cmp r8, rax
jne 0x1800896e0
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180089600
mov r8, r11
and r8d, 7
je 0x180089643
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180089643
inc rcx
sub r8, 1
jne 0x180089630
mov r9, rcx
mov rcx, qword [rbp + 0x5f]
mov eax, dword [rcx + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800896fb
test r9, r9
je 0x1800896fb
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [rcx + 0x68]
add al, al
movzx ecx, al
shr rdx, cl
movzx ecx, byte [r11 + rdi]
and edx, 0x3f
lea rax, [rdx + r8*4]
shl rax, cl
add rax, rsi
mov rsi, qword [rsp + 0x70]
lea rdx, [rsi + 1]
add rdx, rax
cmp rdx, qword [rbp - 0x71]
ja 0x180089700
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x58]
jb 0x180089700
mov qword [rsp + 0x58], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x48], r9
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x60], r11d
mov qword [rsp + 0x50], rdx
jmp 0x180089700
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180089646
mov rsi, qword [rsp + 0x70]
jmp 0x180089704
mov rsi, qword [rsp + 0x70]
mov rdx, qword [rsp]
mov r14, qword [rbp + 0x5f]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x180089857
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180089857
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r11d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor eax, eax
mov ecx, eax
test r8, r8
je 0x18008978e
mov r10, r12
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180089843
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180089770
mov r8, r11
and r8d, 7
je 0x1800897ac
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x1800897ac
inc rdx
inc rcx
sub r8, 1
jne 0x180089797
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180089857
test r9, r9
je 0x180089857
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea eax, [rdx + r8]
mov rdx, qword [r14 + 0x68]
lea ecx, [rax + rax]
shr rdx, cl
movzx ecx, byte [r11 + rbx]
and edx, 0x3f
lea rdx, [rdx + r8*4]
shl rdx, cl
inc rdx
add rdx, rdi
add rdx, rsi
mov rsi, qword [rsp + 0x58]
cmp rdx, qword [rbp - 0x71]
ja 0x18008985c
bsr eax, edx
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x18008985c
sub r11d, r9d
mov qword [rsp + 0x48], r9
inc qword [r13 + 0x10]
mov r15, r9
mov dword [rsp + 0x60], r11d
mov rsi, rax
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rax
jmp 0x180089861
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800897af
mov rsi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x48]
cmp qword [rsp], 0x20
mov r13, qword [rbp + 0x67]
mov r14, qword [rsp + 0x18]
jb 0x1800899fc
mov r11, qword [r13 + 0x88]
cmp r11, r14
ja 0x1800899f1
mov r10, qword [rbp + 0x4f]
lea rdi, [r11 + 0x20]
nop dword [rax]
mov r8d, dword [r13 + 0x78]
mov rax, r11
mov rcx, qword [rbp + 0x47]
and rax, r10
mov r9d, r8d
imul r8d, dword [r13 + 0x94]
and r9d, 0x3fffffff
movzx edx, byte [rax + rcx]
mov rax, rdi
and rax, r10
inc edx
imul edx, dword [r13 + 0x98]
movzx ecx, byte [rax + rcx]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [r13 + 0x78], eax
cmp r9d, 0x1000000
jae 0x1800899d8
mov rax, qword [r13 + 0x80]
mov r10d, dword [rax + r9*4]
mov dword [rax + r9*4], r11d
cmp r11, r14
jne 0x1800899d4
mov eax, 0xffffffff
cmp r10, rax
je 0x1800899d4
mov ebx, r14d
sub ebx, r10d
cmp rbx, qword [rsp + 8]
ja 0x1800899d4
and r10, qword [rbp + 0x4f]
xor eax, eax
mov rcx, qword [rsp]
mov rdx, r12
add r10, qword [rbp + 0x47]
mov r8, rcx
shr r8, 3
test r8, r8
je 0x18008995e
nop word [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rax + r10]
cmp r9, rcx
jne 0x1800899c3
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180089940
mov rcx, qword [rsp]
mov r8, rcx
and r8d, 7
je 0x180089983
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r10], cl
jne 0x180089983
inc rax
sub r8, 1
jne 0x180089970
mov rdx, rax
cmp rdx, 4
jb 0x1800899d4
cmp rdx, r15
jbe 0x1800899d4
mov r10, qword [rbp + 0x4f]
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jbe 0x1800899d8
mov rsi, rax
mov qword [rsp + 0x50], rbx
xor eax, eax
mov r15, rdx
mov dword [rsp + 0x60], eax
jmp 0x1800899d8
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180089986
mov r10, qword [rbp + 0x4f]
inc r11
inc rdi
cmp r11, r14
jbe 0x180089890
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x48], r15
lea rax, [r14 + 1]
mov qword [r13 + 0x88], rax
mov rax, qword [rsp + 0x10]
add rax, 0xaf
cmp rsi, rax
jb 0x180089a69
mov ecx, dword [rbp + 0x37]
movups xmm0, xmmword [rsp + 0x48]
inc qword [rsp + 0x28]
inc ecx
mov qword [rbp + 0x3f], r14
mov dword [rbp + 0x37], ecx
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm1
cmp ecx, 4
jge 0x180089a5e
lea rax, [r14 + 8]
cmp rax, qword [rbp - 0x49]
jae 0x180089a5e
mov rax, qword [rbp - 0x59]
mov r12, qword [rsp]
mov qword [rsp + 0x10], rax
dec r12
mov rax, qword [rbp - 0x69]
xor edi, edi
mov qword [rsp + 0x30], rax
jmp 0x18008915b
mov rcx, qword [rbp - 0x69]
mov qword [rsp + 0x30], rcx
jmp 0x180089a72
mov r14, qword [rbp + 0x3f]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rbp - 0x39]
mov r10, qword [rsp + 0x78]
mov r11, qword [rbp + 0x6f]
mov rdi, qword [rbp - 0x61]
lea r12, [rax + rcx*2]
mov rax, qword [rbp - 0x79]
add rax, r14
add r12, r14
cmp rax, r10
mov qword [rbp - 0x71], r12
lea rdx, [r11 + 4]
cmovb r10, rax
cmp rdi, r10
ja 0x180089b2a
movsxd rax, dword [r11]
lea rcx, [rdi + 3]
movsxd r9, dword [rdx]
mov r8, rcx
sub r8, rax
sub rcx, r9
cmp rdi, rax
jne 0x180089ac9
xor r9d, r9d
mov r8d, r9d
jmp 0x180089b31
cmp rdi, r9
jne 0x180089ad6
mov r8d, 1
jmp 0x180089b2e
cmp r8, 7
jae 0x180089af2
movzx ecx, r8b
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180089b2e
cmp rcx, 7
jae 0x180089b0a
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180089b2e
movsxd rax, dword [r11 + 8]
cmp rdi, rax
jne 0x180089b1b
mov r8d, 2
jmp 0x180089b2e
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rdi, rax
je 0x180089b2e
lea r8, [rdi + 0xf]
xor r9d, r9d
cmp rdi, r10
ja 0x180089bb3
test r8, r8
je 0x180089bb3
mov eax, dword [r11 + 8]
mov ecx, dword [r11]
mov dword [r11 + 0xc], eax
mov eax, dword [rdx]
mov dword [r11 + 8], eax
mov dword [rdx], ecx
mov dword [r11], edi
mov edx, dword [r13 + 0x58]
cmp edx, 4
jle 0x180089bb3
lea eax, [rdi - 1]
mov dword [r11 + 0x10], eax
lea eax, [rdi + 1]
mov dword [r11 + 0x14], eax
lea eax, [rdi - 2]
mov dword [r11 + 0x18], eax
lea eax, [rdi + 2]
mov dword [r11 + 0x1c], eax
lea eax, [rdi - 3]
mov dword [r11 + 0x20], eax
lea eax, [rdi + 3]
mov dword [r11 + 0x24], eax
cmp edx, 0xa
jle 0x180089bb3
lea eax, [rcx - 1]
mov dword [r11 + 0x28], eax
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
lea eax, [rcx - 2]
mov dword [r11 + 0x30], eax
lea eax, [rcx + 2]
mov dword [r11 + 0x34], eax
lea eax, [rcx - 3]
mov dword [r11 + 0x38], eax
lea eax, [rcx + 3]
mov dword [r11 + 0x3c], eax
mov rcx, qword [rbp + 0x7f]
mov esi, dword [rbp - 0x51]
mov r12, qword [rsp + 0x30]
mov r15, qword [rbp + 0x5f]
mov r11, qword [rsp + 0x28]
movzx eax, sil
shl eax, 0x19
or eax, r12d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r14d, dword [r15 + 0x44]
lea rax, [r14 + 0x10]
cmp r8, rax
jae 0x180089bea
mov ebx, r9d
jmp 0x180089c63
mov r11d, dword [r15 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r14
add r10, 0xfffffffffffffff0
add r10, r8
bsr eax, r10d
mov rdx, r10
mov rbx, r10
dec eax
mov ecx, eax
mov r9d, eax
shr rdx, cl
sub r9, r11
and edx, 1
lea r8, [r9 - 1]
shl r9, 0xa
lea r8, [rdx + r8*2]
lea rax, [rdx + 2]
shl rax, cl
mov ecx, r11d
mov r11, qword [rsp + 0x28]
sub rbx, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rbx, cl
and ax, r10w
add r8w, ax
add r8w, r14w
or r8w, r9w
mov r14, qword [rbp + 0x7f]
lea edx, [r12 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r14 + 0xe], r8w
and r8w, ax
mov dword [r14 + 8], ebx
cmp r11, 6
jae 0x180089c91
movzx r10d, r11w
mov eax, 0x17
jmp 0x180089d03
cmp r11, 0x82
jae 0x180089cbb
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x180089d03
cmp r11, 0x842
jae 0x180089cd8
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180089d03
mov eax, 0x17
cmp r11, 0x1842
jae 0x180089cee
mov r10d, 0x15
jmp 0x180089d03
cmp r11, 0x5842
jae 0x180089cff
mov r10d, 0x16
jmp 0x180089d03
movzx r10d, ax
cmp r9, 0xa
jae 0x180089d10
sub r9w, 2
jmp 0x180089d50
cmp r9, 0x86
jae 0x180089d35
add r9, 0xfffffffffffffffa
lea eax, [rdx - 6]
bsr ecx, eax
dec ecx
shr r9, cl
add cx, 2
add cx, cx
add r9w, cx
jmp 0x180089d50
cmp r9, 0x846
jae 0x180089d4c
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x180089d50
movzx r9d, ax
movzx edx, r10w
movzx eax, r9w
and dx, 7
and ax, 7
shl dx, 3
or dx, ax
test r8w, r8w
jne 0x180089d88
cmp r10w, 8
jae 0x180089d88
cmp r9w, 0x10
jae 0x180089d88
cmp r9w, 8
jb 0x180089dbc
or dx, 0x40
jmp 0x180089dbc
movzx eax, r10w
mov r8d, 0xc0
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, r9w
shr eax, 3
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, r8w
add ax, cx
or dx, ax
mov rax, qword [rbp + 0x8f]
mov rsi, qword [rbp - 0x41]
mov word [r14 + 0xc], dx
add r14, 0x10
mov qword [rbp + 0x7f], r14
add qword [rax], r11
xor eax, eax
mov r14, qword [rbp + 0x3f]
mov qword [rsp + 0x28], rax
lea rax, [r12 + r14]
cmp rax, rsi
lea rbx, [r14 + 2]
cmovb rsi, rax
mov rax, r12
shr rax, 2
cmp rdi, rax
jae 0x180089e26
lea rax, [rdi*4]
mov rcx, r12
sub rcx, rax
lea rax, [rcx + r14]
cmp rbx, rax
mov eax, 2
cmova rcx, rax
lea rbx, [r14 + rcx]
cmp rsi, rbx
cmovb rbx, rsi
cmp rbx, rsi
jae 0x180089e9c
movabs r15, 0x1fe35a7bd3579bd3
nop word [rax + rax]
mov rdx, qword [r13 + 0x68]
mov rax, rbx
and rax, qword [rbp + 0x4f]
mov r8d, dword [r13 + 0x50]
mov rcx, qword [rbp + 0x47]
mov r11, qword [r13 + 0x70]
mov r10, qword [rax + rcx]
and r10, qword [r13 + 0x48]
mov ecx, dword [r13 + 0x40]
imul r10, r15
shr r10, cl
mov ecx, dword [r13 + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
and r8, rdx
mov eax, r10d
add r8, rax
inc dx
mov word [r9], dx
mov dword [r11 + r8*4], ebx
inc rbx
cmp rbx, rsi
jb 0x180089e40
mov r15, qword [rbp + 0x5f]
mov r10, qword [rsp + 0x28]
add r14, r12
mov qword [rbp + 0x3f], r14
jmp 0x18008a030
mov r10, qword [rsp + 0x28]
inc r14
mov r12, qword [rbp - 0x71]
inc r10
mov qword [rsp + 0x28], r10
mov qword [rbp + 0x3f], r14
cmp r14, r12
jbe 0x18008a02c
mov rax, qword [rbp - 0x39]
mov rbx, qword [rbp - 0x49]
add rbx, 0xfffffffffffffff9
lea rax, [r12 + rax*4]
cmp r14, rax
jbe 0x180089f88
lea rax, [r14 + 0x10]
cmp rax, rbx
cmovb rbx, rax
cmp r14, rbx
jae 0x18008a02c
mov rax, rbx
add r10, 4
sub rax, r14
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x28], r10
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [r13 + 0x68]
mov rax, r14
and rax, qword [rbp + 0x4f]
mov r8d, dword [r13 + 0x50]
mov rcx, qword [rbp + 0x47]
mov r11, qword [r13 + 0x70]
mov r10, qword [rax + rcx]
movabs rax, 0x1fe35a7bd3579bd3
and r10, qword [r13 + 0x48]
mov ecx, dword [r13 + 0x40]
imul r10, rax
shr r10, cl
mov ecx, dword [r13 + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
and r8, rdx
mov eax, r10d
add r8, rax
inc dx
mov word [r9], dx
mov dword [r11 + r8*4], r14d
add r14, 4
cmp r14, rbx
jb 0x180089f20
jmp 0x18008a023
lea rax, [r14 + 8]
cmp rax, rbx
cmovb rbx, rax
cmp r14, rbx
jae 0x18008a02c
mov rax, rbx
add r10, 2
sub rax, r14
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x28], r10
nop word [rax + rax]
mov rdx, qword [r13 + 0x68]
mov rax, r14
and rax, qword [rbp + 0x4f]
mov r8d, dword [r13 + 0x50]
mov rcx, qword [rbp + 0x47]
mov r11, qword [r13 + 0x70]
mov r10, qword [rax + rcx]
movabs rax, 0x1fe35a7bd3579bd3
and r10, qword [r13 + 0x48]
mov ecx, dword [r13 + 0x40]
imul r10, rax
shr r10, cl
mov ecx, dword [r13 + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
and r8, rdx
mov eax, r10d
add r8, rax
inc dx
mov word [r9], dx
mov dword [r11 + r8*4], r14d
add r14, 2
cmp r14, rbx
jb 0x180089fc0
mov r10, qword [rsp + 0x28]
mov qword [rbp + 0x3f], r14
mov r15, qword [rbp + 0x5f]
mov rbx, qword [rbp - 0x49]
lea rax, [r14 + 8]
mov r9, qword [rbp + 0x47]
mov edi, 0
mov r8, qword [rsp + 0x78]
mov rcx, qword [rbp - 0x79]
cmp rax, rbx
jb 0x1800888e0
mov r12, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xf8]
mov rax, qword [rbp + 0x77]
sub rbx, r14
mov rcx, qword [rbp + 0x7f]
add rbx, r10
sub rcx, qword [rbp - 0x29]
sar rcx, 4
mov qword [rax], rbx
mov rax, qword [rbp + 0x87]
add qword [rax], rcx
add rsp, 0x100
pop r15
pop r14
pop r13
pop rbx
pop rbp
ret