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

Disassembly:
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, 0xb8
mov r10, qword [rbp + 0x6f]
mov rax, rcx
mov r15, rdx
mov qword [rbp + 0x3f], r10
mov rdx, qword [rbp + 0x67]
mov r11, r9
mov r9, r8
mov ebx, 1
mov r8, qword [rbp + 0x7f]
mov ecx, dword [rdx + 8]
mov rsi, qword [rdx + 0x10]
mov rdi, qword [r8]
lea r8, [rax + r15]
shl rbx, cl
mov rcx, qword [rbp + 0x87]
sub rbx, 0x10
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x41], rsi
mov qword [rsp + 0x18], rcx
mov qword [rbp - 0x19], rcx
mov qword [rsp], rdi
mov qword [rbp - 0x51], r8
cmp rax, 8
jb 0x180011109
lea rax, [r8 - 7]
mov qword [rbp - 0x39], rax
jmp 0x18001110d
mov qword [rbp - 0x39], r15
cmp dword [rdx + 4], 9
mov eax, 0x200
mov r14d, 0x40
cmovl eax, r14d
mov qword [rbp - 0x31], rax
add rax, r15
mov qword [rbp + 0x6f], rax
lea rax, [r15 + 8]
cmp rax, r8
jae 0x180011eed
mov rcx, qword [rbp + 0x77]
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], r13
nop dword [rax]
sub r8, r15
mov dword [rbp - 0x59], 0
cmp r15, rbx
mov qword [rbp + 0x87], r8
lea rax, [rsi + r15]
mov r14, rbx
mov rsi, qword [r10 + 0x38]
cmovb r14, r15
cmp rax, rbx
mov r13, rbx
cmovb r13, rax
mov rax, qword [rdx + 0x50]
mov qword [rbp + 0x5f], rax
mov rax, r15
movsxd r15, dword [rcx]
and rax, r11
mov rbx, qword [rax + r9]
lea r12, [rax + r9]
mov rcx, qword [rbp + 0x47]
sub rcx, r15
movzx edi, byte [rax + r9]
movabs rax, 0xbd1e35a7bd000000
imul rbx, rax
shr rbx, 0x30
cmp rcx, qword [rbp + 0x47]
jae 0x18001128c
mov r11d, r11d
and r11, rcx
add r11, r9
cmp dil, byte [r11]
jne 0x18001128c
mov rax, r8
xor ecx, ecx
shr rax, 3
mov rdx, r12
test rax, rax
je 0x180011211
mov r10, r11
sub r10, r12
nop word [rax + rax]
mov r8, qword [rdx]
mov r9, qword [r10 + rdx]
cmp r8, r9
jne 0x180011272
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800111f0
mov r8, qword [rbp + 0x87]
and r8d, 7
je 0x180011233
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180011233
inc rcx
sub r8, 1
jne 0x180011220
mov qword [rsp + 8], rcx
mov r9, rcx
cmp r9, 4
jb 0x180011288
imul r11, r9, 0x87
add r11, 0x78f
mov qword [rsp + 0x10], r11
cmp r11, 0x7e4
jbe 0x180011288
mov r12, qword [rbp + 0x67]
mov qword [rbp - 0x69], r15
mov r15, qword [rbp + 0x47]
mov dword [rsi + rbx*4], r15d
jmp 0x1800114f2
xor r8, r9
tzcnt r9, r8
shr r9, 3
add r9, rcx
mov qword [rsp + 8], r9
jmp 0x18001123b
mov r9, qword [rbp + 0x4f]
mov edx, dword [rsi + rbx*4]
mov r15, qword [rbp + 0x47]
mov r8, qword [rbp + 0x57]
mov dword [rsi + rbx*4], r15d
mov rbx, r15
mov r11d, r8d
sub rbx, rdx
and r11, rdx
add r11, r9
cmp dil, byte [r11]
jne 0x180011da7
test rbx, rbx
je 0x180011da7
cmp rbx, r14
ja 0x180011da7
mov rdi, qword [rbp + 0x87]
xor ecx, ecx
mov rax, rdi
mov rdx, r12
shr rax, 3
test rax, rax
je 0x1800112fd
mov r10, r11
sub r10, r12
mov r9, qword [rdx]
mov r8, qword [r10 + rdx]
cmp r9, r8
jne 0x180011363
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800112e3
mov r8, rdi
and r8d, 7
je 0x180011323
sub rdx, rcx
nop dword [rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180011323
inc rcx
sub r8, 1
jne 0x180011310
mov qword [rsp + 8], rcx
mov r9, rcx
cmp r9, 4
jb 0x180011379
bsr eax, ebx
imul r11, r9, 0x87
imul ecx, eax, 0x1e
sub r11, rcx
add r11, 0x780
mov qword [rsp + 0x10], r11
cmp r11, 0x7e4
jbe 0x180011379
mov r12, qword [rbp + 0x67]
mov qword [rbp - 0x69], rbx
jmp 0x1800114f9
xor r8, r9
tzcnt r9, r8
shr r9, 3
add r9, rcx
mov qword [rsp + 8], r9
jmp 0x18001132b
mov r10, qword [rbp + 0x3f]
mov rbx, qword [r10 + 0x30]
mov rdx, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
mov rax, rdx
shr rax, 7
cmp r14, rax
jb 0x180011d95
imul ecx, dword [r12], 0x1e35a7bd
lea rax, [rdx + 1]
mov r9, qword [rbp + 0x67]
mov qword [rbx + 8], rax
mov rax, qword [r9 + 0x78]
shr rcx, 0x11
and ecx, 0x7ffe
movzx edx, byte [rcx + rax]
test dl, dl
je 0x180011d95
mov rax, qword [r9 + 0x70]
mov r10d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, rdi
ja 0x180011d9f
mov rdi, qword [r9 + 0x58]
mov eax, r10d
imul rax, rsi
mov edx, dword [rdi + rdx*4 + 0x20]
mov r8d, r10d
xor ecx, ecx
shr r8, 3
add rdx, rax
add rdx, qword [rdi + 0xa8]
test r8, r8
je 0x18001142e
mov r11, r12
sub r11, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r11]
cmp r9, rax
jne 0x18001153b
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180011410
mov r8, r10
and r8d, 7
je 0x180011453
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x180011453
inc rcx
sub r8, 1
jne 0x180011440
mov qword [rsp + 8], rcx
mov r9, rcx
mov r12, qword [rbp + 0x67]
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r10
jbe 0x180011d9f
test r9, r9
je 0x180011d9f
mov rax, qword [r12 + 0x68]
mov r8, r10
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r10 + rdi]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rsi
add r8, r13
cmp r8, qword [rbp + 0x5f]
ja 0x180011d9f
bsr eax, r8d
imul r11, r9, 0x87
imul ecx, eax, 0x1e
sub r11, rcx
add r11, 0x780
mov qword [rsp + 0x10], r11
cmp r11, 0x7e4
jb 0x180011d9f
sub r10d, r9d
mov qword [rbp - 0x69], r8
lea rax, [r14 + 1]
mov dword [rbp - 0x59], r10d
mov qword [rbx + 0x10], rax
mov rdi, qword [rbp + 0x87]
mov qword [rbp - 0x71], r9
cmp r11, 0x7e4
jbe 0x180011d9f
lea rdx, [r15 + 1]
mov dword [rbp + 0x6f], 0
mov qword [rbp + 0x5f], rdx
dec rdi
cmp dword [r12 + 4], 5
mov qword [rbp + 0x87], rdi
jge 0x180011554
lea rax, [r9 - 1]
mov r11, rdi
cmp rax, rdi
cmovb r11, rax
jmp 0x180011557
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
mov qword [rsp + 8], r9
jmp 0x18001145b
xor r11d, r11d
mov r8, qword [rbp - 0x49]
mov rax, qword [rbp - 0x41]
cmp rdx, r8
mov r9, qword [rbp + 0x67]
mov r12, r8
mov rbx, qword [rbp + 0x57]
cmovb r12, rdx
add rax, rdx
mov qword [rsp + 0x20], r11
cmp rax, r8
mov qword [rsp + 0x28], 0
mov rcx, r8
mov qword [rsp + 0x30], 0x7e4
mov r8, qword [rbp + 0x4f]
cmovb rcx, rax
mov rax, qword [r9 + 0x50]
mov qword [rbp - 0x29], rcx
mov rcx, rdx
and rcx, rbx
mov qword [rbp - 0x21], rax
mov rax, qword [rbp + 0x3f]
lea r13, [rcx + r8]
mov rdi, qword [r13]
mov dword [rbp - 0x79], 0
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 + 0x77]
shr rdi, 0x30
movsxd r15, dword [rax]
sub rcx, r15
cmp rcx, rdx
jae 0x18001174b
mov eax, ebx
and rcx, rax
lea rax, [rcx + r11]
cmp r14b, byte [rax + r8]
jne 0x18001174b
mov rax, qword [rbp + 0x87]
lea rbx, [rcx + r8]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x180011655
mov r10, rbx
sub r10, r13
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180011737
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180011630
mov rax, qword [rbp + 0x87]
mov r8, rax
and r8d, 7
je 0x180011673
sub rdx, rcx
movzx eax, byte [rdx + rcx]
cmp byte [rcx + rbx], al
jne 0x180011673
inc rcx
sub r8, 1
jne 0x180011661
mov rax, rcx
mov rdx, qword [rbp + 0x5f]
cmp rax, 4
jb 0x18001174b
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, 0x7e4
jbe 0x18001174b
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rcx
mov dword [rsi + rdi*4], edx
mov rdi, qword [rbp + 0x87]
mov r12, qword [rbp + 0x67]
mov rax, qword [rsp + 0x10]
mov r15, qword [rbp + 0x47]
add rax, 0xaf
mov r13, qword [rsp]
cmp qword [rsp + 0x30], rax
jb 0x1800119f0
mov ecx, dword [rbp + 0x6f]
inc r15
movups xmm0, xmmword [rsp + 0x20]
inc ecx
inc rdx
movups xmm1, xmmword [rsp + 0x30]
inc r13
mov qword [rbp + 0x47], r15
mov qword [rbp + 0x5f], rdx
mov qword [rsp], r13
mov dword [rbp + 0x6f], ecx
movups xmmword [rbp - 0x71], xmm0
movups xmmword [rbp - 0x61], xmm1
cmp ecx, 4
jge 0x1800119ea
lea rax, [rdx + 7]
cmp rax, qword [rbp - 0x51]
jae 0x1800119ea
mov rax, qword [rbp - 0x61]
mov r9, qword [rbp - 0x71]
mov qword [rsp + 0x10], rax
mov qword [rsp + 8], r9
jmp 0x180011519
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x180011676
mov ecx, dword [rsi + rdi*4]
mov rbx, rdx
mov eax, dword [rbp + 0x57]
mov r8d, ecx
and r8, rax
mov dword [rsi + rdi*4], edx
sub rbx, rcx
mov rcx, qword [rbp + 0x4f]
lea rax, [r8 + r11]
cmp r14b, byte [rax + rcx]
jne 0x1800116b1
test rbx, rbx
je 0x1800116b1
mov rdi, qword [rbp + 0x87]
cmp rbx, r12
ja 0x1800116b8
lea r11, [r8 + rcx]
xor eax, eax
mov rcx, rdi
mov rdx, r13
shr rcx, 3
test rcx, rcx
je 0x1800117ca
mov r10, r11
sub r10, r13
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [r10 + rdx]
cmp r9, r8
jne 0x180011828
add rdx, 8
add rax, 8
sub rcx, 1
jne 0x1800117b0
mov r8, rdi
and r8d, 7
je 0x1800117e9
sub rdx, rax
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x1800117e9
inc rax
sub r8, 1
jne 0x1800117d6
mov rdx, rax
cmp rdx, 4
jb 0x180011839
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jbe 0x180011839
mov qword [rsp + 0x20], rdx
mov rdx, qword [rbp + 0x5f]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
jmp 0x1800116b8
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rax
jmp 0x1800117ec
mov rax, qword [rbp + 0x3f]
mov r12, qword [rbp + 0x67]
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 0x1800119e1
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 0x1800119e1
mov rax, qword [r12 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, rdi
ja 0x1800119e1
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 0x1800118ee
mov r10, r13
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x1800119bd
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800118d0
mov r8, r11
and r8d, 7
je 0x180011913
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r13], al
jne 0x180011913
inc rcx
sub r8, 1
jne 0x180011900
mov r9, rcx
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800119d1
test r9, r9
je 0x1800119d1
mov rax, qword [r12 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x29]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x21]
ja 0x1800119d1
mov rdx, qword [rbp + 0x5f]
mov rdi, qword [rbp + 0x87]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x1800116bc
mov qword [rsp + 0x30], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp + 0x20], r9
mov qword [rbx + 0x10], rax
mov dword [rbp - 0x79], r11d
mov qword [rsp + 0x28], r8
jmp 0x1800116bc
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180011916
mov rdx, qword [rbp + 0x5f]
mov rdi, qword [rbp + 0x87]
jmp 0x1800116bc
mov rdx, qword [rbp + 0x5f]
jmp 0x1800116bc
mov r12, qword [rbp - 0x71]
jmp 0x1800119f5
mov r12, qword [rsp + 8]
mov rax, qword [rbp - 0x31]
mov r9, qword [rbp - 0x49]
mov rbx, qword [rbp - 0x69]
mov r10, qword [rbp + 0x77]
lea r11, [rax + r12*2]
mov rax, qword [rbp - 0x41]
add rax, r15
add r11, r15
cmp rax, r9
mov qword [rbp + 0x6f], r11
cmovb r9, rax
cmp rbx, r9
ja 0x180011aa1
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 0x180011a41
xor r8d, r8d
jmp 0x180011aa5
cmp rbx, r8
jne 0x180011a4e
mov r8d, 1
jmp 0x180011aa5
cmp rdx, 7
jae 0x180011a69
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180011aa5
cmp rcx, 7
jae 0x180011a81
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180011aa5
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x180011a92
mov r8d, 2
jmp 0x180011aa5
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x180011aa5
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x180011acc
test r8, r8
je 0x180011acc
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 eax, dword [rbp - 0x69]
mov dword [r10], eax
mov r11, qword [rsp + 0x18]
mov esi, dword [rbp - 0x59]
mov r9, qword [rbp + 0x67]
mov r14d, dword [rbp - 0x71]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [r11], r13d
mov dword [r11 + 4], eax
mov r15d, dword [r9 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x180011afe
xor edi, edi
jmp 0x180011b77
mov r11d, dword [r9 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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, r15w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea r9d, [r14 + rsi]
mov eax, 0x3ff
mov dword [r11 + 8], edi
and r8w, ax
movsxd rdx, r9d
cmp r13, 6
jae 0x180011ba1
movzx r10d, r13w
mov ecx, 0x17
jmp 0x180011c12
cmp r13, 0x82
jae 0x180011bcb
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 0x180011c12
mov ecx, 0x17
cmp r13, 0x842
jae 0x180011be8
lea eax, [r13 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x180011c12
cmp r13, 0x1842
jae 0x180011bf9
mov r10d, 0x15
jmp 0x180011c12
mov r10d, 0x16
cmp r13, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x180011c1e
sub dx, 2
jmp 0x180011c5c
cmp rdx, 0x86
jae 0x180011c43
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x180011c5c
cmp rdx, 0x846
jae 0x180011c59
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x180011c5c
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180011c9b
cmp r10w, 8
jae 0x180011c9b
cmp dx, 0x10
jae 0x180011c9b
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180011ccd
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov r10, qword [rbp + 0x47]
xor edi, edi
mov rax, qword [rbp + 0x97]
mov r8, qword [rbp - 0x39]
mov word [r11 + 0xc], r9w
add r11, 0x10
lea r9, [r12 + r10]
mov qword [rsp + 0x18], r11
add qword [rax], r13
lea rdx, [r10 + 2]
cmp r9, r8
mov qword [rsp], rdi
mov rax, r12
mov qword [rbp + 0x47], r9
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x180011d38
lea rax, [rbx*4]
sub r12, rax
lea rax, [r12 + r10]
cmp rdx, rax
mov eax, 2
cmova r12, rax
lea rdx, [r10 + r12]
cmp r8, rdx
cmovb rdx, r8
cmp rdx, r8
jae 0x180011d89
mov r10, qword [rbp + 0x4f]
movabs r9, 0xbd1e35a7bd000000
mov r11, qword [rbp + 0x57]
mov rdi, qword [rbp + 0x3f]
nop dword [rax]
nop word [rax + rax]
mov rax, rdx
and rax, r11
mov rcx, qword [rax + r10]
mov rax, qword [rdi + 0x38]
imul rcx, r9
shr rcx, 0x30
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x180011d60
mov r9, qword [rbp + 0x47]
mov rdi, qword [rsp]
mov r15, r9
mov qword [rbp + 0x47], r9
jmp 0x180011eab
mov r9, qword [rbp + 0x4f]
mov r8, qword [rbp + 0x57]
jmp 0x180011dab
mov r8, qword [rbp + 0x57]
mov r9, qword [rbp + 0x4f]
mov r10, qword [rbp + 0x3f]
mov rdi, qword [rsp]
inc r15
mov r11, qword [rbp + 0x6f]
inc rdi
mov qword [rsp], rdi
mov qword [rbp + 0x47], r15
cmp r15, r11
jbe 0x180011eab
mov rax, qword [rbp - 0x31]
mov rdx, qword [rbp - 0x51]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
cmp r15, rax
jbe 0x180011e45
lea rax, [r15 + 0x10]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x180011eab
add rdi, 4
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp], rdi
movabs rdi, 0xbd1e35a7bd000000
nop word [rax + rax]
mov rax, r15
and rax, r8
mov rcx, qword [rax + r9]
mov rax, qword [r10 + 0x38]
imul rcx, rdi
shr rcx, 0x30
mov dword [rax + rcx*4], r15d
add r15, 4
cmp r15, rdx
jb 0x180011e20
jmp 0x180011ea3
lea rax, [r15 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r15, rdx
jae 0x180011eab
add rdi, 2
mov rax, rdx
sub rax, r15
dec rax
and rax, 0xfffffffffffffffe
add rdi, rax
mov qword [rsp], rdi
movabs rdi, 0xbd1e35a7bd000000
nop word [rax + rax]
mov rax, r15
and rax, r8
mov rcx, qword [rax + r9]
mov rax, qword [r10 + 0x38]
imul rcx, rdi
shr rcx, 0x30
mov dword [rax + rcx*4], r15d
add r15, 2
cmp r15, rdx
jb 0x180011e80
mov rdi, qword [rsp]
mov qword [rbp + 0x47], r15
mov r8, qword [rbp - 0x51]
lea rax, [r15 + 8]
mov r9, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x67]
mov r11, qword [rbp + 0x57]
mov r10, qword [rbp + 0x3f]
mov rcx, qword [rbp + 0x77]
mov rbx, qword [rbp - 0x49]
mov rsi, qword [rbp - 0x41]
cmp rax, r8
jb 0x180011150
mov rcx, qword [rsp + 0x18]
mov r13, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
mov rax, qword [rbp + 0x7f]
sub r8, r15
sub rcx, qword [rbp - 0x19]
add r8, rdi
sar rcx, 4
mov qword [rax], r8
mov rax, qword [rbp + 0x8f]
add qword [rax], rcx
add rsp, 0xb8
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 r14
lea rbp, [rsp - 7]
sub rsp, 0xe0
mov rbx, qword [rbp + 0x5f]
mov rax, rcx
mov r11, qword [rbp + 0x7f]
mov rdi, r9
mov r9, r8
mov qword [rsp + 8], r11
mov r8d, 1
mov qword [rbp - 0x39], r11
mov ecx, dword [rbx + 8]
mov r10, rdx
shl r8, cl
add rdx, rax
mov rcx, qword [rbx + 0x10]
sub r8, 0x10
mov qword [rbp - 0x41], rcx
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 0x69], r8
mov qword [rbp - 0x71], rdx
mov rsi, qword [rcx]
mov qword [rbp + 0x57], rsi
cmp rax, 8
jb 0x180011f9c
lea rax, [rdx - 7]
mov qword [rbp - 0x61], rax
jmp 0x180011fa0
mov qword [rbp - 0x61], r10
cmp dword [rbx + 4], 9
mov eax, 0x200
mov r14d, 0x40
cmovl eax, r14d
mov qword [rbp - 0x59], rax
add rax, r10
mov qword [rsp + 0x20], rax
lea rax, [r10 + 8]
cmp rax, rdx
jae 0x180012d0d
movdqa xmm2, xmmword [0x1800c1d20]
mov ecx, 3
mov rax, qword [rbp + 0x67]
movdqa xmm3, xmmword [0x1800c1d30]
mov qword [rsp + 0xd8], r12
movabs r12, 0xbd1e35a7bd000000
movd xmm4, ecx
mov rcx, qword [rbp + 0x6f]
mov qword [rsp + 0xd0], r13
psllq xmm2, xmm4
mov qword [rsp + 0xc8], r15
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rax + 0x38]
xor esi, esi
mov qword [rbp + 0x7f], rax
mov r11, rdx
sub r11, r10
mov qword [rsp + 0x50], rsi
mov ebx, esi
mov dword [rbp - 0x79], esi
cmp r10, r8
mov qword [rbp + 0x37], r11
mov r13, r8
mov qword [rsp], rbx
cmovb r13, r10
mov qword [rsp + 0x48], rbx
mov r15, r10
mov qword [rsp + 0x10], 0x7e4
and r15, rdi
movsxd rdi, dword [rcx]
mov rax, qword [r15 + r9]
lea rdx, [r15 + r9]
imul rax, r12
movzx r14d, byte [r15 + r9]
mov rcx, r10
shr rax, 0x30
mov r12d, esi
sub rcx, rdi
mov esi, 0x7e4
movq xmm0, rax
punpcklqdq xmm0, xmm0
cmp rcx, r10
jae 0x180012160
mov ebx, dword [rbp + 0x4f]
and rbx, rcx
add rbx, r9
movzx eax, byte [rbx]
cmp r14d, eax
jne 0x180012160
mov rax, r11
xor ecx, ecx
shr rax, 3
mov r8, rdx
test rax, rax
je 0x1800120e2
mov r11, rbx
sub r11, rdx
mov r9, qword [r8]
mov r10, qword [r11 + r8]
cmp r9, r10
jne 0x18001214a
add r8, 8
add rcx, 8
sub rax, 1
jne 0x1800120c4
mov r11, qword [rbp + 0x37]
mov r9, r11
and r9d, 7
je 0x180012103
sub r8, rcx
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx + rbx], al
jne 0x180012103
inc rcx
sub r9, 1
jne 0x1800120f0
mov rax, rcx
mov r10, qword [rbp + 0x3f]
cmp rax, 4
jb 0x180012160
mov rbx, qword [rbp + 0x47]
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x180012164
mov qword [rsp], rax
mov r12, rax
mov qword [rsp + 0x48], rax
mov rsi, rcx
add rax, r15
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x10], rcx
movzx r14d, byte [rax + rbx]
jmp 0x180012164
mov r11, qword [rbp + 0x37]
xor r9, r10
tzcnt rax, r9
shr rax, 3
add rax, rcx
jmp 0x180012106
mov rbx, qword [rbp + 0x47]
mov rcx, qword [rbp + 0x7f]
mov rax, r10
mov r9d, dword [rbp + 0x4f]
paddq xmm0, xmm2
shr rax, 3
pand xmm0, xmm3
and eax, 1
mov rdi, r10
movdqu xmmword [rbp - 0x51], xmm0
mov rax, qword [rbp + rax*8 - 0x51]
mov qword [rsp + 0x18], rax
movq rax, xmm0
mov ecx, dword [rcx + rax*4]
and r9, rcx
sub rdi, rcx
lea rax, [r9 + r12]
movzx ecx, byte [rax + rbx]
cmp r14d, ecx
jne 0x180012275
test rdi, rdi
je 0x180012275
cmp rdi, r13
ja 0x180012275
mov rbx, qword [rbp + 0x47]
xor ecx, ecx
add rbx, r9
mov r8, rdx
mov r9, r11
shr r9, 3
test r9, r9
je 0x180012202
mov r11, rbx
sub r11, rdx
nop
mov r10, qword [r8]
mov rax, qword [r11 + r8]
cmp r10, rax
jne 0x180012360
add r8, 8
add rcx, 8
sub r9, 1
jne 0x1800121e0
mov r11, qword [rbp + 0x37]
mov r9, r11
and r9d, 7
je 0x180012223
sub r8, rcx
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx + rbx], al
jne 0x180012223
inc rcx
sub r9, 1
jne 0x180012210
mov r8, rcx
mov r10, qword [rbp + 0x3f]
cmp r8, 4
jb 0x180012275
bsr eax, edi
imul r9, r8, 0x87
imul ecx, eax, 0x1e
sub r9, rcx
add r9, 0x780
cmp rsi, r9
jae 0x180012275
mov rbx, r8
mov qword [rsp + 0x10], r9
mov qword [rsp], rbx
lea rax, [r8 + r15]
mov qword [rsp + 0x48], rbx
mov r12, r8
mov rbx, qword [rbp + 0x47]
mov rsi, r9
mov qword [rsp + 0x50], rdi
movzx r14d, byte [rax + rbx]
mov rax, qword [rbp - 0x49]
mov rbx, r10
mov rdi, qword [rbp + 0x7f]
mov r15, qword [rbp + 0x4f]
mov r9, qword [rbp + 0x47]
mov r8d, r15d
mov ecx, dword [rdi + rax*4]
and r8, rcx
sub rbx, rcx
lea rax, [r8 + r12]
movzx ecx, byte [rax + r9]
cmp r14d, ecx
jne 0x180012385
test rbx, rbx
je 0x180012385
cmp rbx, r13
ja 0x180012385
mov r14, qword [rbp + 0x37]
lea r11, [r8 + r9]
mov rax, r14
xor ecx, ecx
shr rax, 3
test rax, rax
je 0x1800122fe
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov r8, qword [r10 + rdx]
cmp r9, r8
jne 0x180012374
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x1800122e0
mov r8, r14
and r8d, 7
je 0x18001231c
movzx eax, byte [rdx]
cmp byte [rcx + r11], al
jne 0x18001231c
inc rdx
inc rcx
sub r8, 1
jne 0x180012307
mov rdx, rcx
mov r10, qword [rbp + 0x3f]
mov r9, qword [rbp + 0x47]
cmp rdx, 4
jb 0x180012385
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x180012385
mov rcx, rdx
mov qword [rsp], rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x50], rbx
jmp 0x180012389
xor rax, r10
tzcnt r8, rax
shr r8, 3
add r8, rcx
jmp 0x180012226
xor r8, r9
tzcnt rdx, r8
shr rdx, 3
add rdx, rcx
jmp 0x18001231f
mov rcx, qword [rsp]
cmp qword [rsp + 0x10], 0x7e4
mov rax, qword [rsp + 0x18]
mov dword [rdi + rax*4], r10d
lea rdi, [r10 + 1]
mov qword [rsp + 0x18], rdi
jbe 0x180012b90
movdqa xmm2, xmmword [0x1800c1d20]
psllq xmm2, xmm4
mov dword [rbp + 0x7f], 0
mov r10, qword [rbp + 0x37]
mov rax, qword [rbp + 0x5f]
dec r10
mov qword [rbp + 0x37], r10
cmp dword [rax + 4], 5
jge 0x1800123e2
lea rax, [rcx - 1]
mov rsi, r10
cmp rax, r10
cmovb rsi, rax
jmp 0x1800123e4
xor esi, esi
mov r13, qword [rbp - 0x69]
mov r12, rdi
mov rax, qword [rbp + 0x67]
cmp rdi, r13
mov rbx, qword [rbp + 0x47]
mov edx, 0x7e4
cmovb r13, rdi
mov qword [rsp + 0x28], rsi
and r12, r15
mov qword [rsp + 0x30], 0
mov rax, qword [rax + 0x38]
lea r8, [r12 + r9]
mov qword [rsp + 0x20], rax
movabs rcx, 0xbd1e35a7bd000000
mov qword [rsp + 0x38], rdx
mov r14d, edx
lea rax, [r12 + rsi]
mov dword [rsp + 0x40], 0
movzx r15d, byte [rax + r9]
mov rax, qword [r8]
mov r9, qword [rsp + 0x18]
imul rax, rcx
shr rax, 0x30
movq xmm1, rax
mov rax, qword [rbp + 0x6f]
punpcklqdq xmm1, xmm1
movsxd rdi, dword [rax]
sub r9, rdi
cmp r9, qword [rsp + 0x18]
jae 0x18001251f
mov eax, dword [rbp + 0x4f]
and r9, rax
lea rax, [r9 + rsi]
movzx ecx, byte [rax + rbx]
cmp r15d, ecx
jne 0x18001251f
add rbx, r9
xor eax, eax
mov r9, r10
mov rdx, r8
shr r9, 3
test r9, r9
je 0x1800124c2
mov r11, rbx
sub r11, r8
nop
mov r10, qword [rdx]
mov rcx, qword [r11 + rdx]
cmp r10, rcx
jne 0x18001263e
add rdx, 8
add rax, 8
sub r9, 1
jne 0x1800124a0
mov r10, qword [rbp + 0x37]
mov r9, r10
and r9d, 7
je 0x1800124e2
sub rdx, rax
nop
movzx ecx, byte [rdx + rax]
cmp byte [rax + rbx], cl
jne 0x1800124e2
inc rax
sub r9, 1
jne 0x1800124d0
mov rcx, rax
mov rbx, qword [rbp + 0x47]
cmp rcx, 4
jb 0x18001251f
imul rax, rcx, 0x87
add rax, 0x78f
cmp rax, r14
jbe 0x18001251f
mov qword [rsp + 0x38], rax
mov r14, rax
lea rax, [rcx + r12]
mov qword [rsp + 0x28], rcx
movzx r15d, byte [rax + rbx]
mov rsi, rcx
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x18]
movdqa xmm0, xmm2
mov rcx, qword [rsp + 0x20]
paddq xmm0, xmm1
mov r9d, dword [rbp + 0x4f]
pand xmm0, xmm3
mov rdi, qword [rsp + 0x18]
shr rax, 3
and eax, 1
movdqu xmmword [rbp - 0x31], xmm0
mov rax, qword [rbp + rax*8 - 0x31]
mov qword [rbp - 0x51], rax
movq rax, xmm0
mov ecx, dword [rcx + rax*4]
and r9, rcx
sub rdi, rcx
lea rax, [rsi + r9]
movzx ecx, byte [rax + rbx]
cmp r15d, ecx
jne 0x18001266b
test rdi, rdi
je 0x18001266b
cmp rdi, r13
ja 0x18001266b
mov rbx, qword [rbp + 0x47]
xor ecx, ecx
add rbx, r9
mov rdx, r8
mov r9, r10
shr r9, 3
test r9, r9
je 0x1800125d2
mov r11, rbx
sub r11, r8
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rdx]
mov rax, qword [r11 + rdx]
cmp r10, rax
jne 0x180012656
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x1800125b0
mov r10, qword [rbp + 0x37]
mov r9, r10
and r9d, 7
je 0x1800125f2
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + rbx], al
jne 0x1800125f2
inc rcx
sub r9, 1
jne 0x1800125e0
mov rdx, rcx
cmp rdx, 4
jb 0x18001266b
bsr eax, edi
imul r9, rdx, 0x87
imul ecx, eax, 0x1e
sub r9, rcx
add r9, 0x780
cmp r14, r9
jae 0x18001266b
mov rbx, qword [rbp + 0x47]
lea rax, [rdx + r12]
mov rsi, rdx
mov qword [rsp + 0x28], rdx
mov r14, r9
mov qword [rsp + 0x38], r9
mov r12, r9
mov qword [rsp + 0x30], rdi
movzx r15d, byte [rax + rbx]
jmp 0x180012670
xor rcx, r10
mov r10, qword [rbp + 0x37]
tzcnt rcx, rcx
shr rcx, 3
add rcx, rax
jmp 0x1800124e5
xor rax, r10
mov r10, qword [rbp + 0x37]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800125f5
mov r12, qword [rsp + 0x38]
mov rax, qword [rbp - 0x29]
mov rcx, qword [rsp + 0x20]
mov edx, dword [rbp + 0x4f]
mov rdi, qword [rsp + 0x18]
mov r9, qword [rbp + 0x47]
mov rbx, rdi
mov ecx, dword [rcx + rax*4]
and rdx, rcx
sub rbx, rcx
lea rax, [rsi + rdx]
movzx ecx, byte [rax + r9]
cmp r15d, ecx
jne 0x180012750
test rbx, rbx
je 0x180012750
cmp rbx, r13
ja 0x180012750
lea r11, [rdx + r9]
xor ecx, ecx
mov rdx, r10
shr rdx, 3
test rdx, rdx
je 0x1800126f2
mov r10, r11
sub r10, r8
nop dword [rax]
mov r9, qword [r8]
mov rax, qword [r10 + r8]
cmp r9, rax
jne 0x1800127d1
add r8, 8
add rcx, 8
sub rdx, 1
jne 0x1800126d0
mov r10, qword [rbp + 0x37]
mov rdx, r10
and edx, 7
je 0x180012716
nop word [rax + rax]
movzx eax, byte [r8]
cmp byte [rcx + r11], al
jne 0x180012716
inc r8
inc rcx
sub rdx, 1
jne 0x180012700
mov rdx, rcx
mov r9, qword [rbp + 0x47]
cmp rdx, 4
jb 0x180012750
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r14, rax
jae 0x180012750
mov qword [rsp + 0x28], rdx
mov r12, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov rax, qword [rbp - 0x51]
mov rcx, qword [rsp + 0x20]
mov r10, qword [rbp + 0x3f]
mov r13, qword [rbp + 0x57]
mov dword [rcx + rax*4], edi
mov rax, qword [rsp + 0x10]
add rax, 0xaf
cmp r12, rax
jb 0x1800127ec
mov ecx, dword [rbp + 0x7f]
inc r10
movups xmm0, xmmword [rsp + 0x28]
inc ecx
inc rdi
movups xmm1, xmmword [rsp + 0x38]
inc r13
mov qword [rbp + 0x3f], r10
mov qword [rsp + 0x18], rdi
mov qword [rbp + 0x57], r13
mov dword [rbp + 0x7f], ecx
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x58], xmm1
cmp ecx, 4
jge 0x1800127e5
lea rax, [rdi + 7]
cmp rax, qword [rbp - 0x71]
jae 0x1800127e5
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov r15, qword [rbp + 0x4f]
mov qword [rsp + 0x10], rax
mov qword [rsp], rcx
jmp 0x1800123bd
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180012719
mov r12, qword [rsp + 0x48]
jmp 0x1800127f0
mov r12, qword [rsp]
mov rax, qword [rbp - 0x59]
mov r9, qword [rbp - 0x69]
mov rbx, qword [rsp + 0x50]
lea r11, [rax + r12*2]
mov rax, qword [rbp - 0x41]
add rax, r10
add r11, r10
mov r10, qword [rbp + 0x6f]
cmp rax, r9
mov qword [rsp + 0x20], r11
cmovb r9, rax
cmp rbx, r9
ja 0x18001289e
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 0x18001283e
xor r8d, r8d
jmp 0x1800128a2
cmp rbx, r8
jne 0x18001284b
mov r8d, 1
jmp 0x1800128a2
cmp rdx, 7
jae 0x180012866
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x1800128a2
cmp rcx, 7
jae 0x18001287e
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x1800128a2
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x18001288f
mov r8d, 2
jmp 0x1800128a2
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x1800128a2
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x1800128ca
test r8, r8
je 0x1800128ca
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 eax, dword [rsp + 0x50]
mov dword [r10], eax
mov r11, qword [rsp + 8]
mov esi, dword [rbp - 0x79]
mov rcx, qword [rbp + 0x5f]
mov r14d, dword [rsp + 0x48]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [r11], r13d
mov dword [r11 + 4], eax
mov r15d, dword [rcx + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x1800128fd
xor edi, edi
jmp 0x180012976
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 8]
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, r15w
or r8w, r9w
mov word [r11 + 0xe], r8w
lea r9d, [r14 + rsi]
mov eax, 0x3ff
mov dword [r11 + 8], edi
and r8w, ax
movsxd rdx, r9d
cmp r13, 6
jae 0x1800129a0
movzx r10d, r13w
mov eax, 0x17
jmp 0x180012a10
cmp r13, 0x82
jae 0x1800129ca
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 0x180012a10
cmp r13, 0x842
jae 0x1800129e7
lea eax, [r13 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180012a10
mov eax, 0x17
cmp r13, 0x1842
jae 0x1800129fb
lea r10d, [rax - 2]
jmp 0x180012a10
cmp r13, 0x5842
jae 0x180012a0c
mov r10d, 0x16
jmp 0x180012a10
movzx r10d, ax
cmp rdx, 0xa
jae 0x180012a1c
sub dx, 2
jmp 0x180012a5a
cmp rdx, 0x86
jae 0x180012a41
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x180012a5a
cmp rdx, 0x846
jae 0x180012a57
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x180012a5a
movzx edx, ax
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180012a99
cmp r10w, 8
jae 0x180012a99
cmp dx, 0x10
jae 0x180012a99
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180012acb
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rax, qword [rbp + 0x8f]
xor esi, esi
mov rcx, qword [rbp + 0x3f]
mov r8, qword [rbp - 0x61]
mov word [r11 + 0xc], r9w
add r11, 0x10
add qword [rax], r13
mov rax, r12
lea r9, [r12 + rcx]
mov qword [rsp + 8], r11
cmp r9, r8
mov qword [rbp + 0x57], rsi
lea rdx, [rcx + 2]
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x180012b32
lea rax, [rbx*4]
sub r12, rax
lea rax, [r12 + rcx]
cmp rdx, rax
mov eax, 2
cmova r12, rax
lea rdx, [rcx + r12]
cmp r8, rdx
cmovb rdx, r8
cmp rdx, r8
jae 0x180012b84
mov rbx, qword [rbp + 0x47]
movabs r11, 0xbd1e35a7bd000000
mov r15, qword [rbp + 0x4f]
mov rsi, qword [rbp + 0x67]
nop dword [rax]
mov rax, rdx
and rax, r15
mov rcx, qword [rax + rbx]
mov eax, edx
imul rcx, r11
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rsi + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x180012b50
mov rsi, qword [rbp + 0x57]
mov r11, qword [rsp + 8]
mov r10, r9
mov qword [rbp + 0x3f], r9
jmp 0x180012cc2
mov rsi, qword [rbp + 0x57]
mov r10, rdi
mov r11, qword [rsp + 0x20]
inc rsi
mov qword [rbp + 0x57], rsi
mov qword [rbp + 0x3f], rdi
cmp rdi, r11
jbe 0x180012cbd
mov rax, qword [rbp - 0x59]
mov rdx, qword [rbp - 0x71]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
cmp rdi, rax
jbe 0x180012c40
lea rax, [rdi + 0x10]
movabs r12, 0xbd1e35a7bd000000
cmp rax, rdx
cmovb rdx, rax
cmp rdi, rdx
jae 0x180012c36
add rsi, 4
mov rax, rdx
sub rax, rdi
dec rax
and rax, 0xfffffffffffffffc
add rsi, rax
mov qword [rbp + 0x57], rsi
mov rsi, qword [rbp + 0x67]
nop dword [rax + rax]
mov rax, r10
and rax, r15
mov rcx, qword [rax + r9]
mov eax, r10d
imul rcx, r12
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rsi + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r10d
add r10, 4
cmp r10, rdx
jb 0x180012c00
mov rsi, qword [rbp + 0x57]
mov qword [rbp + 0x3f], r10
mov r11, qword [rsp + 8]
jmp 0x180012ccc
lea rax, [rdi + 8]
cmp rax, rdx
cmovb rdx, rax
cmp rdi, rdx
jae 0x180012cbd
add rsi, 2
mov rax, rdx
sub rax, rdi
movabs r12, 0xbd1e35a7bd000000
dec rax
and rax, 0xfffffffffffffffe
add rsi, rax
mov qword [rbp + 0x57], rsi
mov rsi, qword [rbp + 0x67]
nop word [rax + rax]
mov rax, r10
and rax, r15
mov rcx, qword [rax + r9]
mov eax, r10d
imul rcx, r12
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [rsi + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], r10d
add r10, 2
cmp r10, rdx
jb 0x180012c80
mov rsi, qword [rbp + 0x57]
mov r11, qword [rsp + 8]
mov qword [rbp + 0x3f], r10
jmp 0x180012ccc
mov r11, qword [rsp + 8]
movabs r12, 0xbd1e35a7bd000000
mov rdx, qword [rbp - 0x71]
lea rax, [r10 + 8]
mov r9, qword [rbp + 0x47]
cmp rax, rdx
mov rax, qword [rbp + 0x67]
mov rdi, qword [rbp + 0x4f]
mov rcx, qword [rbp + 0x6f]
mov r8, qword [rbp - 0x69]
jb 0x180012020
mov rcx, qword [rbp + 0x77]
mov r15, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
sub r11, qword [rbp - 0x39]
sub rdx, r10
mov rax, qword [rbp + 0x87]
add rdx, rsi
sar r11, 4
mov qword [rcx], rdx
add qword [rax], r11
add rsp, 0xe0
pop r14
pop rdi
pop rsi
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 [0x1800c6008]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r15, qword [rbp + 0xd8]
mov rax, rcx
mov rcx, qword [rbp + 0xe8]
mov r13, rdx
mov rbx, qword [rbp + 0xc0]
mov rdi, r9
mov r14, qword [rbp + 0xe0]
mov esi, 1
mov qword [rsp + 0x10], r9
mov r11, r8
mov r9, qword [rbp + 0xd0]
mov qword [rbp - 0x30], rcx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rbp + 0xb8]
mov r10, qword [r9]
mov qword [rsp], r8
mov r8, qword [rbp + 0xc8]
mov ecx, dword [rdx + 8]
shl rsi, cl
mov rcx, qword [rdx + 0x10]
sub rsi, 0x10
mov qword [rbp - 0x20], r9
lea r9, [rax + r13]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x18], rbx
mov qword [rbp - 0x70], r8
mov qword [rsp + 0x48], r15
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x18], r15
mov qword [rsp + 0x40], r10
mov qword [rbp - 0x78], r9
cmp rax, 8
jb 0x180012e10
lea rax, [r9 - 7]
mov qword [rbp - 0x40], rax
jmp 0x180012e14
mov qword [rbp - 0x40], r13
cmp dword [rdx + 4], 9
mov eax, 0x200
mov r12d, 0x40
cmovl eax, r12d
mov qword [rbp - 0x38], rax
add rax, r13
mov qword [rsp + 0x50], rax
lea rax, [r13 + 8]
cmp rax, r9
jae 0x180014334
movdqa xmm2, xmmword [0x1800c1d20]
mov eax, 3
movdqa xmm4, xmmword [0x1800c1d40]
movabs r14, 0xbd1e35a7bd000000
movd xmm3, eax
mov rbx, qword [rbx + 0x38]
lea rax, [rcx + r13]
sub r9, r13
mov qword [rsp + 0x28], 0x7e4
cmp r13, rsi
mov qword [rsp + 8], r9
mov r12, rsi
mov qword [rsp + 0x58], rbx
cmovb r12, r13
mov rcx, rsi
cmp rax, rsi
mov r15, rdi
mov edi, 0x7e4
cmovb rcx, rax
mov rax, qword [rdx + 0x50]
xor r10d, r10d
mov qword [rbp - 0x58], rax
and r15, r13
mov qword [rbp - 0x80], rcx
mov rax, qword [r11 + r15]
lea r13, [r11 + r15]
movsxd r11, dword [r8]
mov rcx, qword [rsp + 0x30]
movzx esi, byte [r13]
sub rcx, r11
mov r8, qword [rsp + 0x10]
imul rax, r14
xor r14d, r14d
mov qword [rsp + 0x20], r10
shr rax, 0x2f
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x68], r10
mov dword [rsp + 0x78], r10d
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, qword [rsp + 0x30]
jae 0x180012fd2
mov r10, qword [rsp]
mov eax, r8d
and rcx, rax
add r10, rcx
movzx eax, byte [r10]
cmp esi, eax
jne 0x180012fd2
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r13
test rax, rax
je 0x180012f53
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x180012fbc
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x180012f30
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180012f73
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180012f73
inc rcx
sub r8, 1
jne 0x180012f60
mov rax, rcx
mov rdx, qword [rsp]
mov r8, qword [rsp + 0x10]
cmp rax, 4
jb 0x180012fd6
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x180012fd6
mov qword [rsp + 0x20], rax
mov r14, rax
mov qword [rsp + 0x60], rax
mov rdi, rcx
add rax, rdx
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x28], rcx
movzx esi, byte [rax + r15]
jmp 0x180012fd6
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x180012f76
mov rdx, qword [rsp]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8 - 0x10], xmm0
add rax, 2
cmp rax, 4
jb 0x180012fe0
mov rax, qword [rsp + 0x30]
shr rax, 3
and eax, 3
mov r11d, r8d
mov rcx, qword [rbp + rax*8 - 0x10]
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x50], rcx
mov ecx, dword [rbx + rax*4]
mov rbx, qword [rsp + 0x30]
and r11, rcx
add r11, rdx
sub rbx, rcx
movzx eax, byte [r11 + r14]
cmp esi, eax
jne 0x1800130fe
test rbx, rbx
je 0x1800130fe
cmp rbx, r12
ja 0x1800130fe
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x180013093
mov r10, r11
sub r10, r13
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x1800133c6
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180013070
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x1800130b3
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x1800130b3
inc rcx
sub r8, 1
jne 0x1800130a0
mov rdx, rcx
cmp rdx, 4
jb 0x1800130fe
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x1800130fe
mov rax, qword [rsp]
mov r14, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x60], rdx
mov rdi, r8
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x68], rbx
movzx esi, byte [rax + r15]
mov rax, qword [rbp - 8]
mov rcx, qword [rsp + 0x58]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x30]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r11 + r14]
cmp esi, eax
jne 0x1800131f0
test rbx, rbx
je 0x1800131f0
cmp rbx, r12
ja 0x1800131f0
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013183
mov r10, r11
sub r10, r13
nop word [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x1800133df
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013160
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x1800131a5
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x1800131a5
inc rcx
inc rdx
sub r8, 1
jne 0x180013190
mov r8, rdx
cmp r8, 4
jb 0x1800131f0
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rdi, rdx
jae 0x1800131f0
mov rax, qword [rsp]
mov r14, r8
add rax, r8
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x60], r8
mov rdi, rdx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x68], rbx
movzx esi, byte [rax + r15]
mov rax, qword [rbp]
mov rcx, qword [rsp + 0x58]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x30]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r11 + r14]
cmp esi, eax
jne 0x1800132e0
test rbx, rbx
je 0x1800132e0
cmp rbx, r12
ja 0x1800132e0
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013273
mov r10, r11
sub r10, r13
nop dword [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x1800133f8
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013250
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013295
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180013295
inc rcx
inc rdx
sub r8, 1
jne 0x180013280
mov r8, rdx
cmp r8, 4
jb 0x1800132e0
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rdi, rdx
jae 0x1800132e0
mov rax, qword [rsp]
mov r14, r8
add rax, r8
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x60], r8
mov rdi, rdx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x68], rbx
movzx esi, byte [rax + r15]
mov rax, qword [rbp + 8]
mov r15, qword [rsp + 0x58]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x30]
mov ecx, dword [r15 + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r11 + r14]
cmp esi, eax
jne 0x18001342a
test rbx, rbx
je 0x18001342a
cmp rbx, r12
ja 0x18001342a
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013363
mov r10, r11
sub r10, r13
nop dword [rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x180013411
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013340
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013385
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180013385
inc rcx
inc rdx
sub r8, 1
jne 0x180013370
mov r8, rdx
cmp r8, 4
jb 0x18001342a
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x18001342a
mov qword [rsp + 0x20], r8
mov r12, rax
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x68], rbx
jmp 0x18001342f
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800130b6
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x1800131a8
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180013298
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180013388
mov r12, qword [rsp + 0x28]
mov r8, qword [rsp + 0x18]
mov r10, qword [rsp + 0x38]
cmp r12, 0x7e4
jne 0x1800135da
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 0x1800135da
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 0x1800135da
mov rax, qword [r10 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, r9
ja 0x1800135da
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 0x1800134f3
mov r10, r13
sub r10, rdx
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x1800135bc
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800134d0
mov r10, qword [rsp + 0x38]
mov r8, r11
and r8d, 7
je 0x180013513
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r13], al
jne 0x180013513
inc rcx
sub r8, 1
jne 0x180013500
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800135d5
test r9, r9
je 0x1800135d5
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x80]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x58]
ja 0x1800135d5
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x1800135d5
mov qword [rsp + 0x28], rax
mov rcx, r9
mov r12, qword [rsp + 0x28]
lea rax, [r14 + 1]
sub r11d, r9d
mov qword [rsp + 0x68], r8
mov r8, qword [rsp + 0x18]
mov qword [rbx + 0x10], rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x78], r11d
jmp 0x1800135df
mov r10, qword [rsp + 0x38]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180013516
mov r8, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rbp - 0x50]
mov r13, qword [rsp + 0x30]
mov dword [r15 + rax*4], r13d
cmp r12, 0x7e4
jbe 0x1800141ba
mov r9, qword [rsp + 8]
xor esi, esi
mov dword [rbp - 0x80], esi
dec r9
cmp dword [r10 + 4], 5
mov qword [rsp + 8], r9
jge 0x180013626
lea rax, [rcx - 1]
mov rdi, r9
cmp rax, r9
cmovb rdi, rax
mov qword [rbp - 0x10], rdi
jmp 0x18001362d
mov rdi, rsi
mov qword [rbp - 0x10], rsi
mov rax, qword [rbp - 0x60]
lea rbx, [r13 + 1]
mov edx, 0x7e4
mov qword [rbp - 8], rsi
mov qword [rbp], rdx
mov rdx, qword [rbp - 0x68]
cmp rbx, rdx
mov dword [rbp + 8], esi
mov r12, rdx
mov qword [rsp + 0x58], rbx
cmovb r12, rbx
mov rcx, rdx
inc rax
mov esi, 0x7e4
add rax, r13
cmp rax, rdx
mov rdx, qword [rsp]
cmovb rcx, rax
mov rax, qword [r10 + 0x50]
mov qword [rbp - 0x58], rax
mov rax, qword [r8 + 0x38]
mov r8, qword [rsp + 0x10]
mov qword [rsp + 0x50], rax
mov r15, r8
mov qword [rbp - 0x50], rcx
and r15, rbx
mov rax, qword [rdx + r15]
lea r13, [rdx + r15]
movzx r14d, byte [rdi + r13]
movabs rcx, 0xbd1e35a7bd000000
imul rax, rcx
mov rcx, rbx
shr rax, 0x2f
movq xmm1, rax
mov rax, qword [rbp - 0x70]
punpcklqdq xmm1, xmm1
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, rbx
jae 0x18001379a
mov r10d, r8d
and r10, rcx
add r10, rdx
movzx eax, byte [r10 + rdi]
cmp r14d, eax
jne 0x18001379a
mov r8, r9
xor eax, eax
shr r8, 3
mov rdx, r13
test r8, r8
je 0x18001371f
nop word [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rax + r10]
cmp r9, rcx
jne 0x180013784
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180013700
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013743
sub rdx, rax
nop dword [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r10], cl
jne 0x180013743
inc rax
sub r8, 1
jne 0x180013730
mov rcx, rax
mov r8, qword [rsp + 0x10]
cmp rcx, 4
jb 0x18001379f
imul rax, rcx, 0x87
add rax, 0x78f
cmp rax, rsi
jbe 0x18001379f
mov qword [rbp - 8], r11
mov rsi, rax
mov r11, qword [rsp]
mov rdi, rcx
mov qword [rbp], rax
mov qword [rbp - 0x10], rcx
lea rax, [r11 + rcx]
movzx r14d, byte [rax + r15]
jmp 0x1800137a3
xor rcx, r9
mov r9, qword [rsp + 8]
tzcnt rcx, rcx
shr rcx, 3
add rcx, rax
jmp 0x180013746
mov r11, rdx
jmp 0x1800137a3
mov r11, qword [rsp]
xor eax, eax
nop word [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8 + 0x10], xmm0
add rax, 2
cmp rax, 4
jb 0x1800137b0
mov rdx, qword [rsp + 0x50]
mov rax, rbx
shr rax, 3
and eax, 3
mov rcx, qword [rbp + rax*8 + 0x10]
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x48], rcx
mov ecx, dword [rdx + rax*4]
mov eax, r8d
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [rdi + r11]
cmp r14d, eax
jne 0x1800138c6
test rbx, rbx
je 0x1800138c6
cmp rbx, r12
ja 0x1800138c6
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x180013863
mov r10, r11
sub r10, r13
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180013aa1
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180013840
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013883
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x180013883
inc rcx
sub r8, 1
jne 0x180013870
mov rdx, rcx
cmp rdx, 4
jb 0x1800138c6
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x1800138c6
mov rax, qword [rsp]
mov rdi, rdx
add rax, rdx
mov qword [rbp - 0x10], rdx
mov rsi, r8
mov qword [rbp], r8
mov qword [rbp - 8], rbx
movzx r14d, byte [rax + r15]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rsp + 0x50]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x58]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [rdi + r11]
cmp r14d, eax
jne 0x1800139a8
test rbx, rbx
je 0x1800139a8
cmp rbx, r12
ja 0x1800139a8
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013943
mov r10, r11
sub r10, r13
nop
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180013aba
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013920
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013965
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180013965
inc rcx
inc rdx
sub r8, 1
jne 0x180013950
mov r8, rdx
cmp r8, 4
jb 0x1800139a8
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x1800139a8
mov rax, qword [rsp]
mov rdi, r8
add rax, r8
mov qword [rbp - 0x10], r8
mov rsi, rdx
mov qword [rbp], rdx
mov qword [rbp - 8], rbx
movzx r14d, byte [rax + r15]
mov rax, qword [rbp + 0x20]
mov rcx, qword [rsp + 0x50]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x58]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [rdi + r11]
cmp r14d, eax
jne 0x180013aec
test rbx, rbx
je 0x180013aec
cmp rbx, r12
ja 0x180013aec
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013a33
mov r10, r11
sub r10, r13
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180013ad3
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013a10
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013a55
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180013a55
inc rcx
inc rdx
sub r8, 1
jne 0x180013a40
mov r8, rdx
cmp r8, 4
jb 0x180013aec
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x180013aec
mov rax, qword [rsp]
mov rdi, r8
add rax, r8
mov qword [rbp - 0x10], r8
mov rsi, rdx
mov qword [rbp], rdx
mov qword [rbp - 8], rbx
movzx r14d, byte [rax + r15]
mov r15, rdx
jmp 0x180013af0
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180013886
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180013968
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180013a58
mov r15, qword [rbp]
mov rax, qword [rbp + 0x28]
mov rcx, qword [rsp + 0x50]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x58]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [rdi + r11]
cmp r14d, eax
jne 0x180013bc8
test rbx, rbx
je 0x180013bc8
cmp rbx, r12
ja 0x180013bc8
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180013b73
mov r10, r11
sub r10, r13
nop dword [rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180013dc2
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180013b50
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x180013b95
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180013b95
inc rcx
inc rdx
sub r8, 1
jne 0x180013b80
mov r8, rdx
cmp r8, 4
jb 0x180013bc8
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x180013bc8
mov qword [rbp - 0x10], r8
mov r15, rax
mov qword [rbp], rax
mov qword [rbp - 8], rbx
mov r8, qword [rsp + 0x18]
mov r10, qword [rsp + 0x38]
cmp r15, 0x7e4
jne 0x180013d44
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 0x180013d44
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 0x180013d44
mov rax, qword [r10 + 0x70]
mov r11d, edx
movzx esi, word [rax + rcx*2]
cmp rdx, r9
ja 0x180013d44
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 0x180013c93
mov r10, r13
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180013ddb
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180013c70
mov r10, qword [rsp + 0x38]
mov r8, r11
and r8d, 7
je 0x180013cb3
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r13], al
jne 0x180013cb3
inc rcx
sub r8, 1
jne 0x180013ca0
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180013d3f
test r9, r9
je 0x180013d3f
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x50]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x58]
ja 0x180013d3f
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x180013d3f
mov r15, 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], r8
mov r8, qword [rsp + 0x18]
mov rax, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov dword [rdx + rax*4], ecx
mov rax, qword [rsp + 0x28]
add rax, 0xaf
cmp r15, rax
jb 0x180013dfb
movups xmm0, xmmword [rbp - 0x10]
inc qword [rsp + 0x40]
mov r13, rcx
movups xmm1, xmmword [rbp]
mov qword [rsp + 0x30], rcx
mov ecx, dword [rbp - 0x80]
inc ecx
mov dword [rbp - 0x80], ecx
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm1
cmp ecx, 4
jge 0x180013df4
lea rax, [r13 + 8]
cmp rax, qword [rbp - 0x78]
jae 0x180013df4
mov r9, qword [rsp + 8]
mov rax, qword [rsp + 0x70]
dec r9
mov rcx, qword [rsp + 0x60]
xor esi, esi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
jmp 0x180013606
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x180013b98
mov r10, qword [rsp + 0x38]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180013cb6
mov r12, qword [rsp + 0x60]
jmp 0x180013e05
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x20]
mov r9, qword [rbp - 0x68]
lea r11, [r12*2]
mov rax, qword [rbp - 0x60]
add r11, r13
add r11, qword [rbp - 0x38]
add rax, r13
mov rbx, qword [rsp + 0x68]
cmp rax, r9
mov qword [rsp + 0x50], r11
mov r11, qword [rbp - 0x70]
cmovb r9, rax
cmp rbx, r9
ja 0x180013eb7
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r8, dword [r11 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x180013e57
xor r8d, r8d
jmp 0x180013ebb
cmp rbx, r8
jne 0x180013e64
mov r8d, 1
jmp 0x180013ebb
cmp rdx, 7
jae 0x180013e7f
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180013ebb
cmp rcx, 7
jae 0x180013e97
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180013ebb
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x180013ea8
mov r8d, 2
jmp 0x180013ebb
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x180013ebb
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x180013ee3
test r8, r8
je 0x180013ee3
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [r11 + 4]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [r11 + 4], eax
mov eax, dword [rsp + 0x68]
mov dword [r11], eax
mov rcx, qword [rsp + 0x48]
mov esi, dword [rsp + 0x78]
mov r14d, dword [rsp + 0x60]
mov r11, qword [rsp + 0x40]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r15d, dword [r10 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x180013f17
xor edi, edi
jmp 0x180013f8f
mov r11d, dword [r10 + 0x40]
mov edx, 1
lea r10, [r8 - 0x10]
lea ecx, [r11 + 2]
shl rdx, cl
sub rdx, r15
add r10, rdx
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, r15w
or r8w, r9w
mov r15, qword [rsp + 0x48]
lea edx, [r14 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], edi
cmp r11, 6
jae 0x180013fbe
movzx r10d, r11w
mov eax, 0x17
jmp 0x18001402e
cmp r11, 0x82
jae 0x180013fe8
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 0x18001402e
cmp r11, 0x842
jae 0x180014005
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18001402e
mov eax, 0x17
cmp r11, 0x1842
jae 0x180014019
lea r10d, [rax - 2]
jmp 0x18001402e
cmp r11, 0x5842
jae 0x18001402a
mov r10d, 0x16
jmp 0x18001402e
movzx r10d, ax
cmp r9, 0xa
jae 0x18001403b
sub r9w, 2
jmp 0x18001407b
cmp r9, 0x86
jae 0x180014060
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 0x18001407b
cmp r9, 0x846
jae 0x180014077
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18001407b
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 0x1800140b8
cmp r10w, 8
jae 0x1800140b8
cmp r9w, 0x10
jae 0x1800140b8
movzx eax, dx
or ax, 0x40
cmp r9w, 8
cmovae dx, ax
jmp 0x1800140ec
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]
lea r9, [r12 + r13]
mov r8, qword [rbp - 0x40]
xor r10d, r10d
mov word [r15 + 0xc], dx
add r15, 0x10
mov qword [rsp + 0x48], r15
lea rdx, [r13 + 2]
add qword [rax], r11
mov rax, r12
cmp r9, r8
mov qword [rsp + 0x40], r10
mov qword [rbp - 0x48], r9
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x18001414b
lea rax, [rbx*4]
sub r13, rax
add r13, r12
cmp rdx, r13
cmova r13, rdx
cmp r8, r13
mov rdx, r13
cmovb rdx, r8
mov rbx, qword [rsp + 0x18]
cmp rdx, r8
jae 0x1800141a9
mov r9, qword [rsp]
movabs r15, 0xbd1e35a7bd000000
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsp + 0x10]
and rax, rdx
mov rcx, qword [rax + r9]
mov eax, edx
imul rcx, r15
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [rbx + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x180014170
mov r9, qword [rbp - 0x48]
mov r15, qword [rsp + 0x48]
mov r13, r9
mov qword [rsp + 0x30], r9
mov r9, qword [rbp - 0x78]
jmp 0x1800142ff
mov r10, qword [rsp + 0x40]
inc r13
mov r11, qword [rsp + 0x50]
inc r10
mov r9, qword [rbp - 0x78]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x30], r13
cmp r13, r11
jbe 0x1800142f5
mov rax, qword [rbp - 0x38]
lea rdx, [r9 - 7]
lea rax, [r11 + rax*4]
cmp r13, rax
jbe 0x180014277
mov r11, qword [rsp]
lea rax, [r13 + 0x10]
mov rdi, qword [rsp + 0x10]
cmp rax, rdx
movabs r14, 0xbd1e35a7bd000000
cmovb rdx, rax
cmp r13, rdx
jae 0x180014268
mov rax, rdx
add r10, 4
sub rax, r13
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x40], r10
mov rax, rdi
and rax, r13
mov rcx, qword [rax + r11]
mov eax, r13d
imul rcx, r14
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [r8 + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], r13d
add r13, 4
cmp r13, rdx
jb 0x180014232
mov qword [rsp + 0x30], r13
mov rbx, qword [rsp + 0x18]
mov r15, qword [rsp + 0x48]
jmp 0x180014312
lea rax, [r13 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r13, rdx
jae 0x1800142f5
mov r11, qword [rsp]
mov rax, rdx
mov rdi, qword [rsp + 0x10]
sub rax, r13
dec rax
add r10, 2
and rax, 0xfffffffffffffffe
movabs r14, 0xbd1e35a7bd000000
add r10, rax
mov qword [rsp + 0x40], r10
mov rax, rdi
and rax, r13
mov rcx, qword [rax + r11]
mov eax, r13d
imul rcx, r14
and eax, 0x18
shr rcx, 0x2f
add ecx, eax
mov rax, qword [r8 + 0x38]
and ecx, 0x1ffff
mov dword [rax + rcx*4], r13d
add r13, 2
cmp r13, rdx
jb 0x1800142b3
mov rbx, qword [rsp + 0x18]
mov r15, qword [rsp + 0x48]
mov qword [rsp + 0x30], r13
jmp 0x180014312
mov r15, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x18]
mov r11, qword [rsp]
movabs r14, 0xbd1e35a7bd000000
mov rdi, qword [rsp + 0x10]
mov rdx, qword [rsp + 0x38]
lea rax, [r13 + 8]
mov r8, qword [rbp - 0x70]
mov rsi, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x60]
cmp rax, r9
jb 0x180012e63
mov r14, qword [rbp - 0x28]
sub r15, qword [rbp - 0x18]
sub r9, r13
mov rax, qword [rbp - 0x20]
add r9, r10
sar r15, 4
mov qword [rax], r9
add qword [r14], r15
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.18004ccd0
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 rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 7]
sub rsp, 0xe0
mov r8, qword [rbp + 0x6f]
mov rax, rcx
mov r12, qword [rbp + 0x8f]
mov rsi, rdx
mov rdx, qword [rbp + 0x87]
mov r10d, 1
mov r13, qword [rbp + 0x77]
mov r11, r9
mov ecx, dword [r8 + 8]
shl r10, cl
lea rbx, [rax + rsi]
mov rcx, qword [r8 + 0x10]
sub r10, 0x10
mov r14, qword [rdx]
mov qword [rbp + 0x47], r13
mov qword [rbp - 0x31], r10
mov qword [rbp - 0x79], rcx
mov qword [rsp + 0x58], r12
mov qword [rbp - 0x11], r12
mov qword [rsp + 0x28], r14
mov qword [rbp - 0x41], rbx
cmp rax, 4
jb 0x1800143fe
lea rax, [rbx - 3]
mov qword [rbp - 0x21], rax
jmp 0x180014402
mov qword [rbp - 0x21], rsi
cmp dword [r8 + 4], 9
mov edx, 0x40
mov rdi, qword [rbp + 0x7f]
mov eax, 0x200
cmovl eax, edx
mov edx, dword [r13 + 0x4c]
mov qword [rbp - 0x19], rax
add rax, rsi
mov qword [rbp - 0x71], rax
cmp edx, 4
jle 0x180014482
mov ecx, dword [rdi]
lea eax, [rcx - 1]
mov dword [rdi + 0x10], eax
lea eax, [rcx + 1]
mov dword [rdi + 0x14], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x18], eax
lea eax, [rcx + 2]
mov dword [rdi + 0x1c], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x20], eax
lea eax, [rcx + 3]
mov dword [rdi + 0x24], eax
cmp edx, 0xa
jle 0x18001447e
mov ecx, dword [rdi + 4]
lea eax, [rcx - 1]
mov dword [rdi + 0x28], eax
lea eax, [rcx + 1]
mov dword [rdi + 0x2c], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x30], eax
lea eax, [rcx + 2]
mov dword [rdi + 0x34], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x38], eax
lea eax, [rcx + 3]
mov dword [rdi + 0x3c], eax
mov rcx, qword [rbp - 0x79]
lea rax, [rsi + 4]
cmp rax, rbx
jae 0x1800158dd
mov qword [rsp + 0xd8], r15
xor edx, edx
nop dword [rax]
mov r15, qword [r13 + 0x58]
lea rax, [rcx + rsi]
mov r14, qword [r13 + 0x60]
mov r12, rbx
sub r12, rsi
mov qword [rbp - 0x59], rdx
cmp rsi, r10
mov qword [rbp + 0x8f], r12
mov r9, r10
mov qword [rsp + 0x20], 0x7e4
cmovb r9, rsi
mov qword [rbp - 0x39], r15
cmp rax, r10
mov qword [rbp + 0x67], r9
mov rcx, r10
mov qword [rbp - 0x69], r14
cmovb rcx, rax
mov qword [rsp], rdx
mov rax, qword [r8 + 0x50]
mov rbx, rdx
mov r8, rsi
mov qword [rsp + 0x18], rcx
movsxd rsi, dword [r13 + 0x4c]
and r8, r11
mov qword [rsp + 0x30], rax
mov ecx, 0x7e4
mov qword [rsp + 8], r8
mov r10, rdx
mov qword [rbp - 0x61], rdx
mov dword [rbp - 0x49], edx
mov qword [rsp + 0x10], rcx
mov qword [rbp + 0x77], rdx
test rsi, rsi
je 0x1800146a1
mov r14, qword [rbp + 0x57]
mov r15, r8
mov rax, qword [rbp + 0x4f]
mov qword [rsp + 0x10], rcx
mov qword [rbp + 0x77], rdx
nop
movsxd rdi, dword [rdi + rbx*4]
mov rcx, rax
sub rcx, rdi
cmp rcx, rax
jae 0x180014684
cmp rdi, r9
ja 0x180014684
and rcx, r11
lea rdx, [r10 + r15]
cmp rdx, r11
ja 0x180014684
lea rax, [rcx + r10]
cmp rax, r11
ja 0x180014680
movzx eax, byte [rax + r14]
cmp byte [rdx + r14], al
jne 0x180014680
mov r8, r12
lea r11, [rcx + r14]
shr r8, 3
lea rdx, [r15 + r14]
xor ecx, ecx
test r8, r8
je 0x1800145ce
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x180014663
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800145b0
mov r8, r12
and r8d, 7
je 0x1800145f3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x1800145f3
inc rcx
sub r8, 1
jne 0x1800145e0
mov r9, rcx
cmp r9, 3
jae 0x180014607
cmp r9, 2
jne 0x180014674
cmp rbx, r9
jae 0x180014674
mov r11, qword [rsp + 0x10]
imul r8, r9, 0x87
add r8, 0x78f
cmp r11, r8
jae 0x180014674
test rbx, rbx
je 0x180014641
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r11, r8
jae 0x180014674
mov rax, r9
mov qword [rsp + 0x10], r8
mov qword [rsp], rax
mov r10, r9
mov qword [rbp - 0x61], rax
mov qword [rbp + 0x77], r9
mov qword [rbp - 0x59], rdi
mov qword [rsp + 0x20], r8
jmp 0x180014678
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800145f6
mov r10, qword [rbp + 0x77]
mov r9, qword [rbp + 0x67]
mov r11, qword [rbp + 0x5f]
mov rax, qword [rbp + 0x4f]
mov rdi, qword [rbp + 0x7f]
inc rbx
cmp rbx, rsi
jb 0x180014540
mov r15, qword [rbp - 0x39]
mov r14, qword [rbp - 0x69]
mov r8, qword [rsp + 8]
mov rbx, qword [rbp + 0x47]
mov r12, qword [rbp + 0x57]
add r12, r8
mov ecx, dword [rbx + 0x40]
imul edx, dword [r12], 0x1e35a7bd
shr edx, cl
mov ecx, dword [rbx + 0x48]
mov eax, edx
shl eax, cl
lea r13, [r15 + rdx*2]
movzx edx, word [r15 + rdx*2]
mov esi, edx
mov qword [rbp - 0x69], r13
sub rsi, qword [rbx + 0x38]
lea r14, [r14 + rax*4]
cmp rdx, qword [rbx + 0x38]
mov eax, 0
mov edi, edx
cmovbe rsi, rax
cmp rdx, rsi
jbe 0x180014831
mov r15d, dword [rbx + 0x44]
mov r13, qword [rbp + 0x57]
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 0x180014824
and rcx, r11
lea rdx, [r10 + r8]
cmp rdx, r11
ja 0x18001481b
lea rax, [rcx + r10]
cmp rax, r11
ja 0x18001481b
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
jne 0x18001481b
xor eax, eax
lea r11, [rcx + r13]
mov ecx, eax
mov rdx, r12
mov rax, qword [rbp + 0x8f]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180014795
mov r10, r11
sub r10, r12
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180014806
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180014770
mov rax, qword [rbp + 0x8f]
mov r8, rax
and r8d, 7
je 0x1800147b4
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x1800147b4
inc rcx
sub r8, 1
jne 0x1800147a1
mov rdx, rcx
mov r8, qword [rsp + 8]
mov r9, qword [rbp + 0x67]
mov r11, qword [rbp + 0x5f]
cmp rdx, 4
jb 0x180014817
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x10], rax
jae 0x180014817
mov qword [rsp + 0x10], rax
mov r10, rdx
mov qword [rbp + 0x77], rdx
mov qword [rsp], rdx
mov qword [rbp - 0x61], rdx
mov qword [rbp - 0x59], rbx
mov qword [rsp + 0x20], rax
jmp 0x18001481b
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800147b7
mov r10, qword [rbp + 0x77]
cmp rdi, rsi
ja 0x180014700
mov r13, qword [rbp - 0x69]
mov rbx, qword [rbp + 0x47]
movzx edx, word [r13]
mov eax, dword [rbx + 0x44]
mov rsi, qword [rbp + 0x4f]
and rax, rdx
mov dword [r14 + rax*4], esi
inc word [r13]
cmp qword [rsp + 0x20], 0x7e4
jne 0x180014b65
mov r13, qword [rbx + 0x50]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180015740
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x8f]
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 0x1800149f0
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x1800149f0
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 0x18001490e
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x1800149dc
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800148f0
mov r8, r11
and r8d, 7
je 0x180014933
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180014933
inc rcx
sub r8, 1
jne 0x180014920
mov r9, rcx
mov r10, qword [rbp + 0x6f]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800149f7
test r9, r9
je 0x1800149f7
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rsp + 0x18]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rsp + 0x30]
ja 0x1800149fc
mov rdx, qword [rbp + 0x8f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x180014a03
mov rcx, r9
mov qword [rsp + 0x20], rax
lea rax, [r14 + 1]
mov qword [rsp], rcx
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov qword [rbp - 0x61], rcx
mov dword [rbp - 0x49], r11d
mov qword [rbp - 0x59], r8
jmp 0x180014a03
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180014936
mov rsi, qword [rsp + 0x18]
jmp 0x180014a03
mov rsi, qword [rsp + 0x18]
mov rdx, qword [rbp + 0x8f]
lea rax, [r15 + 1]
mov r15, qword [rbp + 0x6f]
mov qword [r13 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x180014b5b
mov rax, qword [r15 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180014b5b
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 eax, eax
mov ecx, eax
test r8, r8
je 0x180014a8e
mov r10, r12
sub r10, rdx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180014b47
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180014a70
mov r8, r11
and r8d, 7
je 0x180014aac
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x180014aac
inc rdx
inc rcx
sub r8, 1
jne 0x180014a97
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180014b5b
test r9, r9
je 0x180014b5b
mov rax, qword [r15 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, qword [rsp + 0x30]
ja 0x180014b5b
mov rbx, qword [rbp + 0x47]
mov rsi, qword [rbp + 0x4f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x20]
jb 0x180014b69
mov rcx, r9
mov qword [rbp - 0x59], r8
sub r11d, r9d
mov qword [rsp], rcx
inc qword [r13 + 0x10]
mov qword [rbp - 0x61], rcx
mov dword [rbp - 0x49], r11d
mov qword [rsp + 0x20], rax
jmp 0x180014b6d
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180014aaf
mov rbx, qword [rbp + 0x47]
mov rsi, qword [rbp + 0x4f]
jmp 0x180014b69
mov r15, qword [rbp + 0x6f]
mov rcx, qword [rsp]
cmp qword [rsp + 0x20], 0x7e4
jbe 0x180015740
mov r13, qword [rbp + 0x8f]
xor edi, edi
mov dword [rbp + 0x77], edi
dec r13
cmp dword [r15 + 4], 5
mov qword [rbp + 0x8f], r13
jge 0x180014ba9
lea rax, [rcx - 1]
mov r10, r13
cmp rax, r13
cmovb r10, rax
jmp 0x180014bac
mov r10, rdi
mov r8, qword [rbp - 0x31]
lea rdx, [rsi + 1]
mov r14, qword [rbx + 0x60]
cmp rdx, r8
mov rax, qword [rbp - 0x79]
mov r9, r8
mov r12, qword [rbp + 0x5f]
cmovb r9, rdx
inc rax
mov qword [rsp + 8], r10
add rax, rsi
mov qword [rsp + 0x40], rdi
movsxd rsi, dword [rbx + 0x4c]
cmp rax, r8
mov rcx, r8
mov qword [rbp + 0x67], rdx
cmovb rcx, rax
mov qword [rsp + 0x10], r9
mov rax, qword [r15 + 0x50]
mov r11d, 0x7e4
mov r15, qword [rbx + 0x58]
mov r8, rdx
and r8, r12
mov qword [rbp - 0x39], rcx
mov qword [rsp + 0x48], r11
mov ecx, r11d
mov qword [rsp + 0x18], rcx
mov rbx, rdi
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x69], r15
mov qword [rbp - 0x29], r14
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x50], edi
test rsi, rsi
je 0x180014db5
mov r14, qword [rbp + 0x57]
mov r15, r8
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x18], rcx
nop dword [rax]
movsxd rdi, dword [rax + rbx*4]
mov rcx, rdx
sub rcx, rdi
cmp rcx, rdx
jae 0x180014d9a
cmp rdi, r9
ja 0x180014d9a
and rcx, r12
lea rdx, [r10 + r15]
cmp rdx, r12
ja 0x180014d96
lea rax, [rcx + r10]
cmp rax, r12
ja 0x180014d92
movzx eax, byte [rax + r14]
cmp byte [rdx + r14], al
jne 0x180014d92
mov r8, r13
lea rdx, [r15 + r14]
shr r8, 3
lea r11, [rcx + r14]
xor eax, eax
test r8, r8
je 0x180014cde
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rdx + r10]
cmp r9, rcx
jne 0x180014d72
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180014cc0
mov r8, r13
and r8d, 7
je 0x180014d03
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r11], cl
jne 0x180014d03
inc rax
sub r8, 1
jne 0x180014cf0
mov r9, rax
cmp r9, 3
jae 0x180014d17
cmp r9, 2
jne 0x180014d83
cmp rbx, r9
jae 0x180014d83
mov r11, qword [rsp + 0x18]
imul r8, r9, 0x87
add r8, 0x78f
cmp r11, r8
jae 0x180014d83
test rbx, rbx
je 0x180014d51
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r11, r8
jae 0x180014d83
mov qword [rsp + 0x18], r8
mov r10, r9
mov qword [rsp + 8], r9
mov r11, r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], r8
jmp 0x180014d8d
xor rcx, r9
tzcnt r9, rcx
shr r9, 3
add r9, rax
jmp 0x180014d06
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 8]
mov r9, qword [rsp + 0x10]
mov rax, qword [rbp + 0x7f]
mov rdx, qword [rbp + 0x67]
inc rbx
cmp rbx, rsi
jb 0x180014c50
mov r15, qword [rbp - 0x69]
xor edi, edi
mov r14, qword [rbp - 0x29]
mov r8, qword [rsp + 0x30]
mov rbx, qword [rbp + 0x47]
mov r12, qword [rbp + 0x57]
add r12, r8
mov ecx, dword [rbx + 0x40]
imul edx, dword [r12], 0x1e35a7bd
shr edx, cl
mov ecx, dword [rbx + 0x48]
mov eax, edx
shl eax, cl
lea r13, [r15 + rdx*2]
movzx edx, word [r15 + rdx*2]
mov esi, edx
mov qword [rbp - 0x29], r13
sub rsi, qword [rbx + 0x38]
lea r14, [r14 + rax*4]
cmp rdx, qword [rbx + 0x38]
cmovbe rsi, rdi
mov edi, edx
cmp rdx, rsi
jbe 0x180014f56
mov r15d, dword [rbx + 0x44]
mov r13, qword [rbp + 0x67]
nop word [rax + rax]
dec rdi
mov rax, r15
and rax, rdi
mov rbx, r13
mov ecx, dword [r14 + rax*4]
sub rbx, rcx
cmp rbx, r9
ja 0x180014f49
and rcx, qword [rbp + 0x5f]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x5f]
ja 0x180014f40
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x5f]
ja 0x180014f40
mov r13, qword [rbp + 0x57]
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
mov r13, qword [rbp + 0x67]
jne 0x180014f40
mov r11, qword [rbp + 0x57]
xor eax, eax
add r11, rcx
mov rdx, r12
mov ecx, eax
mov rax, qword [rbp + 0x8f]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180014eb5
mov r10, r11
sub r10, r12
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180014f25
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180014e90
mov rax, qword [rbp + 0x8f]
mov r8, rax
and r8d, 7
je 0x180014ed4
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x180014ed4
inc rcx
sub r8, 1
jne 0x180014ec1
mov rdx, rcx
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x10]
cmp rdx, 4
jb 0x180014f36
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x18], rax
jae 0x180014f36
mov qword [rsp + 0x18], rax
mov r10, rdx
mov qword [rsp + 8], rdx
mov r11, rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rax
jmp 0x180014f40
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180014ed7
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 8]
cmp rdi, rsi
ja 0x180014e10
mov r13, qword [rbp - 0x29]
mov rbx, qword [rbp + 0x47]
movzx edx, word [r13]
mov eax, dword [rbx + 0x44]
mov rcx, qword [rbp + 0x67]
and rax, rdx
mov dword [r14 + rax*4], ecx
inc word [r13]
cmp r11, 0x7e4
jne 0x180015276
mov r13, qword [rbx + 0x50]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18001526b
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x8f]
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 0x180015113
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180015113
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 0x18001502e
mov r10, r12
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x1800150f8
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180015010
mov r8, r11
and r8d, 7
je 0x180015053
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180015053
inc rcx
sub r8, 1
jne 0x180015040
mov r9, rcx
mov r10, qword [rbp + 0x6f]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001510c
test r9, r9
je 0x18001510c
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x39]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x71]
ja 0x18001510c
mov rdx, qword [rbp + 0x8f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x180015113
mov rsi, rax
mov qword [rsp + 0x48], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x38], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x40], r8
jmp 0x180015118
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180015056
mov rdx, qword [rbp + 0x8f]
mov rsi, qword [rsp + 0x48]
lea rax, [r15 + 1]
mov r15, qword [rbp + 0x6f]
mov qword [r13 + 8], rax
mov rax, qword [r15 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x180015281
mov rax, qword [r15 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180015281
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 eax, eax
mov ecx, eax
test r8, r8
je 0x18001519e
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x180015257
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180015180
mov r8, r11
and r8d, 7
je 0x1800151bc
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x1800151bc
inc rdx
inc rcx
sub r8, 1
jne 0x1800151a7
mov r9, rcx
mov eax, dword [r15 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180015281
test r9, r9
je 0x180015281
mov rax, qword [r15 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rbx]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x39]
shl rdx, cl
inc r8
add rdx, rdi
add r8, rdx
cmp r8, qword [rbp - 0x71]
ja 0x180015281
mov rbx, qword [rbp + 0x47]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
mov rcx, qword [rbp + 0x67]
add rax, 0x780
cmp rax, rsi
jb 0x180015289
sub r11d, r9d
mov qword [rsp + 0x38], r9
inc qword [r13 + 0x10]
mov rsi, rax
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x48], rax
jmp 0x180015289
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800151bf
mov rsi, qword [rsp + 0x48]
mov r15, qword [rbp + 0x6f]
jmp 0x180015285
mov rsi, qword [rsp + 0x48]
mov r15, qword [rbp + 0x6f]
jmp 0x180015289
mov rbx, qword [rbp + 0x47]
mov rcx, qword [rbp + 0x67]
mov rax, qword [rsp + 0x20]
mov r11, qword [rsp + 0x28]
add rax, 0xaf
cmp rsi, rax
jb 0x180015302
movups xmm0, xmmword [rsp + 0x38]
mov rsi, rcx
mov qword [rbp + 0x4f], rcx
mov ecx, dword [rbp + 0x77]
inc r11
movups xmm1, xmmword [rsp + 0x48]
inc ecx
mov qword [rsp + 0x28], r11
mov dword [rbp + 0x77], ecx
movups xmmword [rbp - 0x61], xmm0
movups xmmword [rbp - 0x51], xmm1
cmp ecx, 4
jge 0x1800152f8
lea rax, [rsi + 4]
cmp rax, qword [rbp - 0x41]
jae 0x1800152f8
mov rcx, qword [rbp - 0x51]
mov r13, qword [rbp + 0x8f]
mov qword [rsp + 0x20], rcx
dec r13
mov rcx, qword [rbp - 0x61]
xor edi, edi
mov qword [rsp], rcx
jmp 0x180014b8b
mov rcx, qword [rbp - 0x61]
mov qword [rsp], rcx
jmp 0x18001530a
mov rsi, qword [rbp + 0x4f]
mov rcx, qword [rsp]
mov rax, qword [rbp - 0x19]
mov r9, qword [rbp - 0x31]
mov rbx, qword [rbp - 0x59]
mov r10, qword [rbp + 0x7f]
lea r12, [rax + rcx*2]
mov rax, qword [rbp - 0x79]
add rax, rsi
add r12, rsi
cmp rax, r9
mov qword [rbp - 0x71], r12
cmovb r9, rax
cmp rbx, r9
ja 0x1800153bc
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 0x18001535c
xor edi, edi
mov r8d, edi
jmp 0x1800153c2
cmp rbx, r8
jne 0x180015369
mov r8d, 1
jmp 0x1800153c0
cmp rdx, 7
jae 0x180015384
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x1800153c0
cmp rcx, 7
jae 0x18001539c
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x1800153c0
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x1800153ad
mov r8d, 2
jmp 0x1800153c0
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x1800153c0
lea r8, [rbx + 0xf]
xor edi, edi
mov r13, qword [rbp + 0x47]
cmp rbx, r9
ja 0x180015459
test r8, r8
je 0x180015459
mov eax, dword [r10 + 8]
mov edx, dword [r10]
mov ecx, dword [rbp - 0x59]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov dword [r10 + 4], edx
mov dword [r10], ecx
mov r9d, dword [r13 + 0x4c]
cmp r9d, 4
jle 0x180015459
lea eax, [rcx - 1]
mov dword [r10 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x24], eax
cmp r9d, 0xa
jle 0x180015459
lea eax, [rdx - 1]
mov dword [r10 + 0x28], eax
lea eax, [rdx + 1]
mov dword [r10 + 0x2c], eax
lea eax, [rdx - 2]
mov dword [r10 + 0x30], eax
lea eax, [rdx + 2]
mov dword [r10 + 0x34], eax
lea eax, [rdx - 3]
mov dword [r10 + 0x38], eax
lea eax, [rdx + 3]
mov dword [r10 + 0x3c], eax
mov r12, qword [rsp + 0x58]
mov esi, dword [rbp - 0x49]
mov r14d, dword [rbp - 0x61]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [r12], r11d
mov dword [r12 + 4], eax
mov r15d, dword [r15 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jb 0x180015501
mov r10, qword [rbp + 0x6f]
mov edx, 1
mov r11d, dword [r10 + 0x40]
lea r10, [r8 - 0x10]
lea ecx, [r11 + 2]
shl rdx, cl
sub rdx, r15
add r10, rdx
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 + 0x28]
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, r15w
or r8w, r9w
mov word [r12 + 0xe], r8w
lea r9d, [r14 + rsi]
mov eax, 0x3ff
mov dword [r12 + 8], edi
and r8w, ax
movsxd rdx, r9d
cmp r11, 6
jae 0x18001552d
movzx r10d, r11w
mov ecx, 0x17
jmp 0x18001559e
cmp r11, 0x82
jae 0x180015557
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
mov ecx, 0x17
jmp 0x18001559e
mov ecx, 0x17
cmp r11, 0x842
jae 0x180015574
lea eax, [r11 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x18001559e
cmp r11, 0x1842
jae 0x180015585
mov r10d, 0x15
jmp 0x18001559e
mov r10d, 0x16
cmp r11, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x1800155aa
sub dx, 2
jmp 0x1800155e8
cmp rdx, 0x86
jae 0x1800155cf
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x1800155e8
cmp rdx, 0x846
jae 0x1800155e5
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x1800155e8
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180015627
cmp r10w, 8
jae 0x180015627
cmp dx, 0x10
jae 0x180015627
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180015659
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rcx, qword [rbp + 0x4f]
mov rax, qword [rbp + 0x9f]
mov rdx, qword [rsp]
mov word [r12 + 0xc], r9w
add r12, 0x10
mov qword [rsp + 0x58], r12
lea r10, [rcx + 2]
add qword [rax], r11
xor eax, eax
mov r11, qword [rbp - 0x21]
lea rdi, [rdx + rcx]
cmp rdi, r11
mov qword [rsp + 0x28], rax
mov r14d, eax
mov qword [rbp + 0x4f], rdi
cmovb r11, rdi
mov rax, rdx
shr rax, 2
cmp rbx, rax
jae 0x1800156cd
lea rax, [rbx*4]
sub rdx, rax
lea rax, [rdx + rcx]
cmp r10, rax
mov eax, 2
cmova rdx, rax
lea r10, [rcx + rdx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x180015734
mov rdi, qword [rbp + 0x57]
nop word [rax + rax]
mov ecx, dword [r13 + 0x40]
mov rax, r10
and rax, qword [rbp + 0x5f]
imul r8d, dword [rax + rdi], 0x1e35a7bd
mov rax, qword [r13 + 0x58]
shr r8d, cl
mov ecx, dword [r13 + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [rax + r9]
mov eax, dword [r13 + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [r13 + 0x60]
mov dword [rax + rdx*4], r10d
inc r10
mov rax, qword [r13 + 0x58]
inc word [rax + r9]
cmp r10, r11
jb 0x1800156e0
mov rdi, qword [rbp + 0x4f]
mov rsi, rdi
mov qword [rbp + 0x4f], rdi
jmp 0x1800158ab
mov r14, qword [rsp + 0x28]
inc rsi
mov r12, qword [rbp - 0x71]
inc r14
mov qword [rsp + 0x28], r14
mov qword [rbp + 0x4f], rsi
cmp rsi, r12
jbe 0x1800158a2
mov rax, qword [rbp - 0x19]
mov r10, qword [rbp - 0x41]
lea rax, [r12 + rax*4]
cmp rsi, rax
jbe 0x180015812
mov r11, qword [rbp + 0x5f]
lea rax, [rsi + 0x10]
add r10, 0xfffffffffffffffc
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x180015804
mov rax, r10
add r14, 4
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x28], r14
nop word [rax + rax]
mov rcx, qword [rbp + 0x57]
mov rax, rsi
and rax, r11
imul r8d, dword [rax + rcx], 0x1e35a7bd
mov ecx, dword [rbx + 0x40]
mov rax, qword [rbx + 0x58]
shr r8d, cl
mov ecx, dword [rbx + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [rax + r9]
mov eax, dword [rbx + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [rbx + 0x60]
mov dword [rax + rdx*4], esi
add rsi, 4
mov rax, qword [rbx + 0x58]
inc word [rax + r9]
cmp rsi, r10
jb 0x1800157b0
mov qword [rbp + 0x4f], rsi
mov r13, qword [rbp + 0x47]
mov r12, qword [rsp + 0x58]
jmp 0x1800158af
add r10, 0xfffffffffffffffd
lea rax, [rsi + 8]
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x1800158a2
mov r11, qword [rbp + 0x5f]
mov rax, r10
sub rax, rsi
add r14, 2
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x28], r14
mov rcx, qword [rbp + 0x57]
mov rax, rsi
and rax, r11
imul r8d, dword [rax + rcx], 0x1e35a7bd
mov ecx, dword [rbx + 0x40]
mov rax, qword [rbx + 0x58]
shr r8d, cl
mov ecx, dword [rbx + 0x48]
lea r9, [r8 + r8]
shl r8d, cl
movzx edx, word [rax + r9]
mov eax, dword [rbx + 0x44]
and rdx, rax
mov eax, r8d
add rdx, rax
mov rax, qword [rbx + 0x60]
mov dword [rax + rdx*4], esi
add rsi, 2
mov rax, qword [rbx + 0x58]
inc word [rax + r9]
cmp rsi, r10
jb 0x180015843
mov r13, qword [rbp + 0x47]
mov r12, qword [rsp + 0x58]
mov qword [rbp + 0x4f], rsi
jmp 0x1800158af
mov r12, qword [rsp + 0x58]
mov r13, qword [rbp + 0x47]
mov r11, qword [rbp + 0x5f]
mov rbx, qword [rbp - 0x41]
lea rax, [rsi + 4]
mov r8, qword [rbp + 0x6f]
mov edx, 0
mov rdi, qword [rbp + 0x7f]
mov r10, qword [rbp - 0x31]
mov rcx, qword [rbp - 0x79]
cmp rax, rbx
jb 0x1800144a0
mov r15, qword [rsp + 0xd8]
mov rax, qword [rbp + 0x87]
sub rbx, rsi
sub r12, qword [rbp - 0x11]
add rbx, r14
sar r12, 4
mov qword [rax], rbx
mov rax, qword [rbp + 0x97]
add qword [rax], r12
add rsp, 0xe0
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 r12
push r13
push r15
lea rbp, [rsp - 7]
sub rsp, 0xe8
mov r8, qword [rbp + 0x67]
mov rax, rcx
mov r12, qword [rbp + 0x87]
mov rsi, rdx
mov rdx, qword [rbp + 0x7f]
mov ebx, 1
mov r13, qword [rbp + 0x6f]
mov r11, r9
mov ecx, dword [r8 + 8]
shl rbx, cl
lea r15, [rax + rsi]
mov rcx, qword [r8 + 0x10]
sub rbx, 0x10
mov r10, qword [rdx]
mov qword [rbp + 0x3f], r13
mov qword [rbp - 0x39], rbx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x30], r12
mov qword [rbp - 0x19], r12
mov qword [rsp + 0x18], r10
mov qword [rbp - 0x41], r15
cmp rax, 8
jb 0x1800159aa
lea rax, [r15 - 7]
mov qword [rbp - 0x29], rax
jmp 0x1800159ae
mov qword [rbp - 0x29], rsi
cmp dword [r8 + 4], 9
mov edx, 0x40
mov r9, qword [rbp + 0x77]
mov eax, 0x200
cmovl eax, edx
mov edx, dword [r13 + 0x58]
mov qword [rbp - 0x21], rax
add rax, rsi
mov qword [rbp - 0x79], rax
cmp edx, 4
jle 0x180015a3d
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 0x180015a38
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 + 0x60]
lea rax, [rsi + 8]
cmp rax, r15
jae 0x180016eef
mov qword [rsp + 0xe0], rdi
xor edi, edi
mov qword [rsp + 0xd8], r14
nop dword [rax]
mov r14, qword [r13 + 0x70]
lea rax, [rcx + rsi]
mov r12, r15
mov qword [rbp - 0x61], rdi
mov r15, qword [r13 + 0x68]
sub r12, rsi
cmp rsi, rbx
mov qword [rbp + 0x87], r12
mov r9, rbx
mov qword [rsp + 0x28], 0x7e4
cmovb r9, rsi
mov qword [rbp - 0x49], r15
cmp rax, rbx
mov qword [rbp + 0x5f], r9
mov rcx, rbx
mov qword [rbp - 0x71], r14
cmovb rcx, rax
mov dword [rbp - 0x51], edi
mov rax, qword [r8 + 0x50]
mov rdx, rdi
mov r8, rsi
mov qword [rsp + 0x20], rcx
movsxd rsi, dword [r13 + 0x58]
and r8, r11
mov qword [rsp + 0x38], rax
mov ecx, 0x7e4
mov qword [rsp + 8], r8
mov rbx, rdi
mov qword [rsp], rdx
mov r10, rdi
mov qword [rbp - 0x69], rdx
mov qword [rsp + 0x10], rcx
mov qword [rbp + 0x6f], rdi
test rsi, rsi
je 0x180015c73
mov r14, qword [rbp + 0x4f]
mov r15, r8
mov rax, qword [rbp + 0x47]
mov r13, qword [rbp + 0x77]
mov qword [rsp + 0x10], rcx
mov qword [rbp + 0x6f], rdi
nop word [rax + rax]
movsxd rdi, dword [r13 + rbx*4]
mov rcx, rax
sub rcx, rdi
cmp rcx, rax
jae 0x180015c54
cmp rdi, r9
ja 0x180015c54
and rcx, r11
lea rdx, [r10 + r15]
cmp rdx, r11
ja 0x180015c54
lea rax, [rcx + r10]
cmp rax, r11
ja 0x180015c50
movzx eax, byte [rax + r14]
cmp byte [rdx + r14], al
jne 0x180015c50
mov r8, r12
lea r11, [rcx + r14]
shr r8, 3
lea rdx, [r15 + r14]
xor ecx, ecx
test r8, r8
je 0x180015b9e
mov r10, r11
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180015c33
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180015b80
mov r8, r12
and r8d, 7
je 0x180015bc3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180015bc3
inc rcx
sub r8, 1
jne 0x180015bb0
mov r9, rcx
cmp r9, 3
jae 0x180015bd7
cmp r9, 2
jne 0x180015c44
cmp rbx, r9
jae 0x180015c44
mov r11, qword [rsp + 0x10]
imul r8, r9, 0x87
add r8, 0x78f
cmp r11, r8
jae 0x180015c44
test rbx, rbx
je 0x180015c11
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r11, r8
jae 0x180015c44
mov rdx, r9
mov qword [rsp + 0x10], r8
mov qword [rsp], rdx
mov r10, r9
mov qword [rbp - 0x69], rdx
mov qword [rbp + 0x6f], r9
mov qword [rbp - 0x61], rdi
mov qword [rsp + 0x28], r8
jmp 0x180015c48
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180015bc6
mov r10, qword [rbp + 0x6f]
mov r9, qword [rbp + 0x5f]
mov r11, qword [rbp + 0x57]
mov rax, qword [rbp + 0x47]
inc rbx
cmp rbx, rsi
jb 0x180015b10
mov r15, qword [rbp - 0x49]
xor edi, edi
mov r14, qword [rbp - 0x71]
mov r8, qword [rsp + 8]
mov r13, qword [rbp + 0x3f]
mov ecx, dword [r13 + 0x40]
movabs rax, 0x1fe35a7bd3579bd3
mov r12, qword [rbp + 0x4f]
add r12, r8
mov rdx, qword [r12]
and rdx, qword [r13 + 0x48]
imul rdx, rax
shr rdx, cl
mov ecx, dword [r13 + 0x54]
mov eax, edx
shl eax, cl
lea r14, [r14 + rax*4]
mov eax, edx
movzx edx, word [r15 + rax*2]
mov esi, edx
lea r13, [r15 + rax*2]
mov r15, qword [rbp + 0x3f]
mov qword [rbp - 0x71], r13
sub rsi, qword [r15 + 0x38]
cmp rdx, qword [r15 + 0x38]
cmovbe rsi, rdi
mov edi, edx
cmp rdx, rsi
jbe 0x180015e11
mov r15d, dword [r15 + 0x50]
mov r13, qword [rbp + 0x4f]
nop word [rax + 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 0x180015e04
and rcx, r11
lea rdx, [r10 + r8]
cmp rdx, r11
ja 0x180015dfb
lea rax, [rcx + r10]
cmp rax, r11
ja 0x180015dfb
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
jne 0x180015dfb
xor eax, eax
lea r11, [rcx + r13]
mov ecx, eax
mov rdx, r12
mov rax, qword [rbp + 0x87]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180015d75
mov r10, r11
sub r10, r12
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180015de6
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180015d50
mov rax, qword [rbp + 0x87]
mov r8, rax
and r8d, 7
je 0x180015d94
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x180015d94
inc rcx
sub r8, 1
jne 0x180015d81
mov rdx, rcx
mov r8, qword [rsp + 8]
mov r9, qword [rbp + 0x5f]
mov r11, qword [rbp + 0x57]
cmp rdx, 4
jb 0x180015df7
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x10], rax
jae 0x180015df7
mov qword [rsp + 0x10], rax
mov r10, rdx
mov qword [rbp + 0x6f], rdx
mov qword [rsp], rdx
mov qword [rbp - 0x69], rdx
mov qword [rbp - 0x61], rbx
mov qword [rsp + 0x28], rax
jmp 0x180015dfb
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180015d97
mov r10, qword [rbp + 0x6f]
cmp rdi, rsi
ja 0x180015ce0
mov r13, qword [rbp - 0x71]
mov r15, qword [rbp + 0x3f]
movzx edx, word [r13]
mov eax, dword [r15 + 0x50]
mov rsi, qword [rbp + 0x47]
and rax, rdx
mov dword [r14 + rax*4], esi
inc word [r13]
cmp qword [rsp + 0x28], 0x7e4
jne 0x180016135
mov r13, qword [r15 + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180016d2e
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rbp + 0x87]
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 0x180015fc9
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180015fc9
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 0x180015eee
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180015fb5
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180015ed0
mov r8, r11
and r8d, 7
je 0x180015f13
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180015f13
inc rcx
sub r8, 1
jne 0x180015f00
mov r9, rcx
mov r10, qword [rbp + 0x67]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180015fd0
test r9, r9
je 0x180015fd0
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rsp + 0x20]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rsp + 0x38]
ja 0x180015fd5
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x180015fd5
mov rdx, r9
mov qword [rsp + 0x28], rax
lea rax, [r14 + 1]
mov qword [rsp], rdx
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov qword [rbp - 0x69], rdx
mov dword [rbp - 0x51], r11d
mov qword [rbp - 0x61], r8
jmp 0x180015fd5
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180015f16
mov rsi, qword [rsp + 0x20]
jmp 0x180015fdc
mov rsi, qword [rsp + 0x20]
mov rdx, qword [rbp + 0x87]
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 0x18001612b
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18001612b
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 0x18001605e
mov r10, r12
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180016117
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180016040
mov r8, r11
and r8d, 7
je 0x18001607c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001607c
inc rdx
inc rcx
sub r8, 1
jne 0x180016067
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001612b
test r9, r9
je 0x18001612b
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, qword [rsp + 0x38]
ja 0x18001612b
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x3f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x28]
jb 0x180016139
mov rcx, r9
mov qword [rbp - 0x61], r8
sub r11d, r9d
mov qword [rsp], rcx
inc qword [r13 + 0x10]
mov qword [rbp - 0x69], rcx
mov dword [rbp - 0x51], r11d
mov qword [rsp + 0x28], rax
jmp 0x18001613d
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001607f
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x3f]
jmp 0x180016139
mov r14, qword [rbp + 0x67]
mov rcx, qword [rsp]
cmp qword [rsp + 0x28], 0x7e4
jbe 0x180016d2e
mov r13, qword [rbp + 0x87]
xor ebx, ebx
mov dword [rbp + 0x6f], ebx
dec r13
cmp dword [r14 + 4], 5
mov qword [rbp + 0x87], r13
jge 0x180016179
lea rax, [rcx - 1]
mov r10, r13
cmp rax, r13
cmovb r10, rax
jmp 0x18001617c
mov r10, rbx
mov r8, qword [rbp - 0x39]
lea rdx, [rsi + 1]
mov rax, qword [rsp + 0x60]
cmp rdx, r8
mov r12, qword [rbp + 0x57]
mov r9, r8
cmovb r9, rdx
mov qword [rsp + 8], r10
inc rax
mov qword [rsp + 0x48], rbx
add rax, rsi
mov qword [rbp + 0x5f], rdx
cmp rax, r8
mov qword [rsp + 0x10], r9
mov rcx, r8
mov qword [rsp + 0x40], rbx
cmovb rcx, rax
mov dword [rsp + 0x58], ebx
mov rax, qword [r14 + 0x50]
mov r11d, 0x7e4
mov r14, qword [r15 + 0x68]
mov r8, rdx
mov r15, qword [r15 + 0x70]
and r8, r12
mov qword [rbp - 0x79], rax
mov rax, qword [rbp + 0x3f]
mov qword [rbp - 0x49], rcx
mov ecx, r11d
mov qword [rsp + 0x50], r11
mov qword [rbp - 0x71], r14
movsxd rsi, dword [rax + 0x58]
mov qword [rbp - 0x31], r15
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x20], rcx
test rsi, rsi
je 0x180016383
mov r15, qword [rbp + 0x4f]
mov r14, r8
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x20], rcx
nop
movsxd rdi, dword [rax + rbx*4]
mov rcx, rdx
sub rcx, rdi
cmp rcx, rdx
jae 0x18001636a
cmp rdi, r9
ja 0x18001636a
and rcx, r12
lea rdx, [r10 + r14]
cmp rdx, r12
ja 0x180016366
lea rax, [rcx + r10]
cmp rax, r12
ja 0x180016362
movzx eax, byte [rax + r15]
cmp byte [rdx + r15], al
jne 0x180016362
mov r8, r13
lea rdx, [r14 + r15]
shr r8, 3
lea r11, [rcx + r15]
xor eax, eax
test r8, r8
je 0x1800162ae
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rdx + r10]
cmp r9, rcx
jne 0x180016342
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180016290
mov r8, r13
and r8d, 7
je 0x1800162d3
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x1800162d3
inc rax
sub r8, 1
jne 0x1800162c0
mov r9, rax
cmp r9, 3
jae 0x1800162e7
cmp r9, 2
jne 0x180016353
cmp rbx, r9
jae 0x180016353
mov r11, qword [rsp + 0x20]
imul r8, r9, 0x87
add r8, 0x78f
cmp r11, r8
jae 0x180016353
test rbx, rbx
je 0x180016321
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r11, r8
jae 0x180016353
mov qword [rsp + 0x20], r8
mov r10, r9
mov qword [rsp + 8], r9
mov r11, r8
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r8
jmp 0x18001635d
xor rcx, r9
tzcnt r9, rcx
shr r9, 3
add r9, rax
jmp 0x1800162d6
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp + 8]
mov r9, qword [rsp + 0x10]
mov rax, qword [rbp + 0x77]
mov rdx, qword [rbp + 0x5f]
inc rbx
cmp rbx, rsi
jb 0x180016220
mov r14, qword [rbp - 0x71]
mov r15, qword [rbp - 0x31]
mov r8, qword [rsp + 0x38]
mov rbx, qword [rbp + 0x3f]
movabs rax, 0x1fe35a7bd3579bd3
mov r12, qword [rbp + 0x4f]
add r12, r8
mov ecx, dword [rbx + 0x40]
mov rdx, qword [r12]
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 edx, word [r14 + rax*2]
mov esi, edx
mov edi, edx
sub rsi, qword [rbx + 0x38]
cmp rdx, qword [rbx + 0x38]
lea r13, [r14 + rax*2]
mov eax, 0
mov qword [rbp - 0x31], r13
cmovbe rsi, rax
cmp rdx, rsi
jbe 0x180016536
mov r14d, dword [rbx + 0x50]
mov r13, qword [rbp + 0x5f]
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, r9
ja 0x180016529
and rcx, qword [rbp + 0x57]
lea rdx, [r10 + r8]
cmp rdx, qword [rbp + 0x57]
ja 0x180016520
lea rax, [rcx + r10]
cmp rax, qword [rbp + 0x57]
ja 0x180016520
mov r13, qword [rbp + 0x4f]
movzx eax, byte [rax + r13]
cmp byte [rdx + r13], al
mov r13, qword [rbp + 0x5f]
jne 0x180016520
mov r11, qword [rbp + 0x4f]
xor eax, eax
add r11, rcx
mov rdx, r12
mov ecx, eax
mov rax, qword [rbp + 0x87]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180016495
mov r10, r11
sub r10, r12
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x180016505
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180016470
mov rax, qword [rbp + 0x87]
mov r8, rax
and r8d, 7
je 0x1800164b4
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x1800164b4
inc rcx
sub r8, 1
jne 0x1800164a1
mov rdx, rcx
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x10]
cmp rdx, 4
jb 0x180016516
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x20], rax
jae 0x180016516
mov qword [rsp + 0x20], rax
mov r10, rdx
mov qword [rsp + 8], rdx
mov r11, rax
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rax
jmp 0x180016520
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800164b7
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp + 8]
cmp rdi, rsi
ja 0x1800163f0
mov r13, qword [rbp - 0x31]
mov rbx, qword [rbp + 0x3f]
movzx edx, word [r13]
mov eax, dword [rbx + 0x50]
mov rcx, qword [rbp + 0x5f]
and rax, rdx
mov dword [r15 + rax*4], ecx
inc word [r13]
mov r15, qword [rbp + 0x3f]
cmp r11, 0x7e4
jne 0x180016856
mov r13, qword [r15 + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18001684b
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rbp + 0x87]
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 0x1800166f3
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x1800166f3
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 0x18001660e
mov r10, r12
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x1800166d8
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800165f0
mov r8, r11
and r8d, 7
je 0x180016633
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180016633
inc rcx
sub r8, 1
jne 0x180016620
mov r9, rcx
mov r10, qword [rbp + 0x67]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800166ec
test r9, r9
je 0x1800166ec
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x49]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x79]
ja 0x1800166ec
mov rdx, qword [rbp + 0x87]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x1800166f3
mov rsi, rax
mov qword [rsp + 0x50], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x40], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x58], r11d
mov qword [rsp + 0x48], r8
jmp 0x1800166f8
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180016636
mov rdx, qword [rbp + 0x87]
mov rsi, qword [rsp + 0x50]
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 0x180016861
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180016861
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 0x18001677e
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x180016837
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180016760
mov r8, r11
and r8d, 7
je 0x18001679c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001679c
inc rdx
inc rcx
sub r8, 1
jne 0x180016787
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180016861
test r9, r9
je 0x180016861
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rbx]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x49]
shl rdx, cl
inc r8
add rdx, rdi
add r8, rdx
cmp r8, qword [rbp - 0x79]
ja 0x180016861
mov r15, qword [rbp + 0x3f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
mov rcx, qword [rbp + 0x5f]
add rax, 0x780
cmp rax, rsi
jb 0x180016869
sub r11d, r9d
mov qword [rsp + 0x40], r9
inc qword [r13 + 0x10]
mov rsi, rax
mov dword [rsp + 0x58], r11d
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x50], rax
jmp 0x180016869
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001679f
mov rsi, qword [rsp + 0x50]
mov r14, qword [rbp + 0x67]
jmp 0x180016865
mov rsi, qword [rsp + 0x50]
mov r14, qword [rbp + 0x67]
jmp 0x180016869
mov r15, qword [rbp + 0x3f]
mov rcx, qword [rbp + 0x5f]
mov rax, qword [rsp + 0x28]
mov r13, qword [rsp + 0x18]
add rax, 0xaf
cmp rsi, rax
jb 0x1800168e2
movups xmm0, xmmword [rsp + 0x40]
mov rsi, rcx
mov qword [rbp + 0x47], rcx
mov ecx, dword [rbp + 0x6f]
inc r13
movups xmm1, xmmword [rsp + 0x50]
inc ecx
mov qword [rsp + 0x18], r13
mov dword [rbp + 0x6f], ecx
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm1
cmp ecx, 4
jge 0x1800168d8
lea rax, [rsi + 8]
cmp rax, qword [rbp - 0x41]
jae 0x1800168d8
mov rcx, qword [rbp - 0x59]
mov r13, qword [rbp + 0x87]
mov qword [rsp + 0x28], rcx
dec r13
mov rcx, qword [rbp - 0x69]
xor ebx, ebx
mov qword [rsp], rcx
jmp 0x18001615b
mov r11, qword [rbp - 0x69]
mov qword [rsp], r11
jmp 0x1800168ea
mov rsi, qword [rbp + 0x47]
mov r11, qword [rsp]
mov rax, qword [rbp - 0x21]
mov r9, qword [rbp - 0x39]
mov r10, qword [rbp + 0x77]
lea r12, [rax + r11*2]
mov rax, qword [rsp + 0x60]
add rax, rsi
add r12, rsi
mov rsi, qword [rbp - 0x61]
cmp rax, r9
mov qword [rbp - 0x79], r12
cmovb r9, rax
cmp rsi, r9
ja 0x18001699d
movsxd rax, dword [r10]
lea rcx, [rsi + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rsi, rax
jne 0x18001693d
xor ebx, ebx
mov r8d, ebx
jmp 0x1800169a3
cmp rsi, r8
jne 0x18001694a
mov r8d, 1
jmp 0x1800169a1
cmp rdx, 7
jae 0x180016965
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x1800169a1
cmp rcx, 7
jae 0x18001697d
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x1800169a1
movsxd rax, dword [r10 + 8]
cmp rsi, rax
jne 0x18001698e
mov r8d, 2
jmp 0x1800169a1
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rsi, rax
je 0x1800169a1
lea r8, [rsi + 0xf]
xor ebx, ebx
cmp rsi, r9
ja 0x180016a36
test r8, r8
je 0x180016a36
mov eax, dword [r10 + 8]
mov edx, dword [r10]
mov ecx, dword [rbp - 0x61]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov dword [r10 + 4], edx
mov dword [r10], ecx
mov r9d, dword [r15 + 0x58]
cmp r9d, 4
jle 0x180016a36
lea eax, [rcx - 1]
mov dword [r10 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x24], eax
cmp r9d, 0xa
jle 0x180016a36
lea eax, [rdx - 1]
mov dword [r10 + 0x28], eax
lea eax, [rdx + 1]
mov dword [r10 + 0x2c], eax
lea eax, [rdx - 2]
mov dword [r10 + 0x30], eax
lea eax, [rdx + 2]
mov dword [r10 + 0x34], eax
lea eax, [rdx - 3]
mov dword [r10 + 0x38], eax
lea eax, [rdx + 3]
mov dword [r10 + 0x3c], eax
mov r12, qword [rsp + 0x30]
mov edi, dword [rbp - 0x51]
mov r10, qword [rbp + 0x67]
mov r14d, dword [rbp - 0x69]
movzx eax, dil
shl eax, 0x19
or eax, r14d
mov dword [r12], r13d
mov dword [r12 + 4], eax
mov r15d, dword [r10 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jb 0x180016ade
mov r11d, dword [r10 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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]
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, r15w
or r8w, r9w
mov word [r12 + 0xe], r8w
lea r9d, [r14 + rdi]
mov eax, 0x3ff
mov dword [r12 + 8], ebx
and r8w, ax
movsxd rdx, r9d
cmp r13, 6
jae 0x180016b0a
movzx r10d, r13w
mov ecx, 0x17
jmp 0x180016b7b
cmp r13, 0x82
jae 0x180016b34
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 0x180016b7b
mov ecx, 0x17
cmp r13, 0x842
jae 0x180016b51
lea eax, [r13 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x180016b7b
cmp r13, 0x1842
jae 0x180016b62
mov r10d, 0x15
jmp 0x180016b7b
mov r10d, 0x16
cmp r13, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x180016b87
sub dx, 2
jmp 0x180016bc5
cmp rdx, 0x86
jae 0x180016bac
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x180016bc5
cmp rdx, 0x846
jae 0x180016bc2
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x180016bc5
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180016c04
cmp r10w, 8
jae 0x180016c04
cmp dx, 0x10
jae 0x180016c04
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180016c36
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rcx, qword [rbp + 0x47]
mov rax, qword [rbp + 0x97]
mov rdi, qword [rbp - 0x29]
mov word [r12 + 0xc], r9w
add r12, 0x10
lea r14, [r11 + rcx]
mov qword [rsp + 0x30], r12
add qword [rax], r13
lea rbx, [rcx + 2]
xor eax, eax
mov qword [rbp + 0x47], r14
cmp r14, rdi
mov qword [rsp + 0x18], rax
mov rax, r11
cmovb rdi, r14
shr rax, 2
cmp rsi, rax
jae 0x180016ca3
lea rax, [rsi*4]
sub r11, rax
lea rax, [r11 + rcx]
cmp rbx, rax
mov eax, 2
cmova r11, rax
lea rbx, [rcx + r11]
cmp rdi, rbx
cmovb rbx, rdi
cmp rbx, rdi
jae 0x180016d1d
mov r14, qword [rbp + 0x4f]
movabs r12, 0x1fe35a7bd3579bd3
mov rsi, qword [rbp + 0x3f]
nop word [rax + rax]
mov ecx, dword [rsi + 0x40]
mov rax, rbx
and rax, qword [rbp + 0x57]
mov rdx, qword [rsi + 0x68]
mov r11, qword [rsi + 0x70]
mov r10, qword [rax + r14]
and r10, qword [rsi + 0x48]
imul r10, r12
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], ebx
inc rbx
cmp rbx, rdi
jb 0x180016cc0
mov r14, qword [rbp + 0x47]
mov r12, qword [rsp + 0x30]
mov r10, qword [rsp + 0x18]
mov rsi, r14
mov qword [rbp + 0x47], r14
jmp 0x180016eb4
mov r10, qword [rsp + 0x18]
inc rsi
mov r12, qword [rbp - 0x79]
inc r10
mov qword [rsp + 0x18], r10
mov qword [rbp + 0x47], rsi
cmp rsi, r12
jbe 0x180016eaf
mov rax, qword [rbp - 0x21]
mov rbx, qword [rbp - 0x41]
add rbx, 0xfffffffffffffff9
lea rax, [r12 + rax*4]
cmp rsi, rax
jbe 0x180016e0b
lea rax, [rsi + 0x10]
cmp rax, rbx
cmovb rbx, rax
cmp rsi, rbx
jae 0x180016eaf
mov rax, rbx
add r10, 4
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x18], r10
nop word [rax + rax]
mov rdx, qword [r15 + 0x68]
mov rax, rsi
and rax, qword [rbp + 0x57]
mov rcx, qword [rbp + 0x4f]
mov r11, qword [r15 + 0x70]
mov r10, qword [rax + rcx]
movabs rax, 0x1fe35a7bd3579bd3
and r10, qword [r15 + 0x48]
mov ecx, dword [r15 + 0x40]
imul r10, rax
shr r10, cl
mov ecx, dword [r15 + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
mov eax, dword [r15 + 0x50]
mov r8d, edx
and r8, rax
inc dx
mov eax, r10d
add r8, rax
mov word [r9], dx
mov dword [r11 + r8*4], esi
add rsi, 4
cmp rsi, rbx
jb 0x180016da0
jmp 0x180016ea6
lea rax, [rsi + 8]
cmp rax, rbx
cmovb rbx, rax
cmp rsi, rbx
jae 0x180016eaf
mov rax, rbx
add r10, 2
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x18], r10
nop dword [rax + rax]
mov rdx, qword [r15 + 0x68]
mov rax, rsi
and rax, qword [rbp + 0x57]
mov rcx, qword [rbp + 0x4f]
mov r11, qword [r15 + 0x70]
mov r10, qword [rax + rcx]
movabs rax, 0x1fe35a7bd3579bd3
and r10, qword [r15 + 0x48]
mov ecx, dword [r15 + 0x40]
imul r10, rax
shr r10, cl
mov ecx, dword [r15 + 0x54]
mov eax, r10d
lea r9, [rdx + rax*2]
shl r10d, cl
movzx edx, word [r9]
mov eax, dword [r15 + 0x50]
mov r8d, edx
and r8, rax
inc dx
mov eax, r10d
add r8, rax
mov word [r9], dx
mov dword [r11 + r8*4], esi
add rsi, 2
cmp rsi, rbx
jb 0x180016e40
mov r10, qword [rsp + 0x18]
mov qword [rbp + 0x47], rsi
mov r12, qword [rsp + 0x30]
mov r15, qword [rbp - 0x41]
lea rax, [rsi + 8]
mov r11, qword [rbp + 0x57]
mov edi, 0
mov r13, qword [rbp + 0x3f]
mov r8, qword [rbp + 0x67]
mov rbx, qword [rbp - 0x39]
mov rcx, qword [rsp + 0x60]
cmp rax, r15
jb 0x180015a60
mov r14, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
mov rax, qword [rbp + 0x7f]
sub r15, rsi
sub r12, qword [rbp - 0x19]
add r15, r10
sar r12, 4
mov qword [rax], r15
mov rax, qword [rbp + 0x8f]
add qword [rax], r12
add rsp, 0xe8
pop r15
pop r13
pop r12
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 r12
push r13
push r14
lea rbp, [rsp - 7]
sub rsp, 0xc8
mov r13, qword [rbp + 0x67]
mov rax, rcx
mov r12, qword [rbp + 0x87]
mov r9, r8
mov r10, qword [rbp + 0x7f]
mov rsi, rdx
mov rdx, qword [rbp + 0x6f]
mov r8d, 1
mov ecx, dword [r13 + 8]
shl r8, cl
mov rcx, qword [r13 + 0x10]
lea rbx, [rax + rsi]
mov r14, qword [r10]
sub r8, 0x10
mov qword [rbp - 0x41], r8
mov qword [rbp - 0x39], rcx
mov qword [rsp + 0x38], r12
mov qword [rbp - 0x19], r12
mov qword [rsp + 0x30], r14
mov qword [rbp - 0x49], rbx
cmp rax, 4
jb 0x180016fa6
lea rax, [rbx - 3]
mov qword [rbp - 0x29], rax
jmp 0x180016faa
mov qword [rbp - 0x29], rsi
cmp dword [r13 + 4], 9
mov eax, 0x200
mov r11d, 0x40
cmovl eax, r11d
mov qword [rbp - 0x21], rax
add rax, rsi
mov qword [rbp - 0x51], rax
lea rax, [rsi + 4]
cmp rax, rbx
jae 0x180018867
mov r10, qword [rbp + 0x77]
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xb8], r15
nop word [rax + rax]
movsxd r11, dword [r10]
lea rax, [rcx + rsi]
mov rdi, qword [rdx + 0x40]
sub rbx, rsi
mov r10, qword [rbp + 0x47]
cmp rsi, r8
mov r12, r8
mov qword [rbp + 0x3f], rbx
cmovb r12, rsi
mov qword [rbp - 0x71], 0
cmp rax, r8
mov qword [rsp + 8], 0x7e4
mov rcx, r8
mov qword [rbp + 0x5f], rdi
cmovb rcx, rax
mov r14d, 0x7e4
mov rax, qword [r13 + 0x50]
xor edx, edx
mov qword [rbp - 0x59], rax
xor r15d, r15d
mov rax, rsi
mov qword [rbp + 0x87], rcx
mov rcx, qword [rbp + 0x57]
sub r10, r11
and rax, rcx
mov qword [rsp], rdx
imul esi, dword [rax + r9], 0x1e35a7bd
lea r13, [rax + r9]
mov qword [rsp + 0x40], rax
mov qword [rbp - 0x79], rdx
mov dword [rbp - 0x61], edx
shr rsi, 0x11
cmp r10, qword [rbp + 0x47]
jae 0x18001711e
cmp r11, r12
ja 0x18001711e
and r10, rcx
mov r8, rbx
add r10, r9
shr r8, 3
xor ecx, ecx
mov rdx, r13
test r8, r8
je 0x1800170be
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x1800173a2
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800170a0
mov r8, rbx
and r8d, 7
je 0x1800170e3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x1800170e3
inc rcx
sub r8, 1
jne 0x1800170d0
mov rax, rcx
mov r9, qword [rbp + 0x4f]
cmp rax, 2
jb 0x18001711a
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, r14
jbe 0x18001711a
mov r14, rcx
mov qword [rsp], rax
mov r15, rax
mov qword [rbp - 0x79], rax
mov qword [rbp - 0x71], r11
mov qword [rsp + 8], rcx
mov rcx, qword [rbp + 0x57]
mov rax, qword [rbp + 0x77]
mov r10, qword [rbp + 0x47]
mov r8, r10
movsxd r11, dword [rax + 4]
sub r8, r11
movzx eax, r8w
cmp byte [rax + rdi + 0x30000], sil
jne 0x1800171e7
cmp r8, r10
jae 0x1800171e7
cmp r11, r12
ja 0x1800171e7
and r8, rcx
mov rdx, r13
add r8, r9
xor ecx, ecx
mov r9, rbx
shr r9, 3
test r9, r9
je 0x18001718e
nop dword [rax + rax]
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x1800173b6
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180017170
mov r9, rbx
and r9d, 7
je 0x1800171ac
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x1800171ac
inc rdx
inc rcx
sub r9, 1
jne 0x180017197
mov rdx, rcx
cmp rdx, 2
jb 0x1800171e7
imul rax, rdx, 0x87
add rax, 0x78f
cmp r14, rax
jae 0x1800171e7
add rax, 0xffffffffffffffd9
cmp r14, rax
jae 0x1800171e7
mov r14, rax
mov qword [rsp], rdx
mov r15, rdx
mov qword [rbp - 0x79], rdx
mov qword [rbp - 0x71], r11
mov qword [rsp + 8], rax
mov rax, qword [rbp + 0x77]
mov r8, qword [rbp + 0x47]
movsxd r11, dword [rax + 8]
sub r8, r11
movzx eax, r8w
cmp byte [rax + rdi + 0x30000], sil
jne 0x1800172b8
cmp r8, qword [rbp + 0x47]
jae 0x1800172b8
cmp r11, r12
ja 0x1800172b8
and r8, qword [rbp + 0x57]
mov r9, rbx
add r8, qword [rbp + 0x4f]
xor ecx, ecx
shr r9, 3
mov rdx, r13
test r9, r9
je 0x18001725e
nop dword [rax]
nop dword [rax + rax]
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x1800173ca
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180017240
mov r9, rbx
and r9d, 7
je 0x18001727c
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x18001727c
inc rdx
inc rcx
sub r9, 1
jne 0x180017267
mov rax, rcx
cmp rax, 2
jb 0x1800172b8
imul rcx, rax, 0x87
add rcx, 0x78f
cmp r14, rcx
jae 0x1800172b8
add rcx, 0xffffffffffffffd5
cmp r14, rcx
jae 0x1800172b8
mov r14, rcx
mov qword [rsp], rax
mov r15, rax
mov qword [rbp - 0x79], rax
mov qword [rbp - 0x71], r11
mov qword [rsp + 8], rcx
mov rax, qword [rbp + 0x77]
mov r8, qword [rbp + 0x47]
mov r10, r8
movsxd rbx, dword [rax + 0xc]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rdi + 0x30000], sil
jne 0x1800173f6
cmp r10, r8
jae 0x1800173f6
cmp rbx, r12
ja 0x1800173f6
and r10, qword [rbp + 0x57]
xor edx, edx
mov rdi, qword [rbp + 0x3f]
mov rcx, r13
add r10, qword [rbp + 0x4f]
mov r8, rdi
shr r8, 3
test r8, r8
je 0x18001733e
mov r11, r10
sub r11, r13
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r9, rax
jne 0x1800173de
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180017320
mov r8, rdi
and r8d, 7
je 0x18001735c
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18001735c
inc rcx
inc rdx
sub r8, 1
jne 0x180017347
mov rax, rdx
cmp rax, 2
jb 0x1800173f2
imul rcx, rax, 0x87
add rcx, 0x78f
cmp r14, rcx
jae 0x1800173f2
mov r8, qword [rbp + 0x47]
add rcx, 0xffffffffffffffd5
cmp r14, rcx
jae 0x1800173f6
mov r14, rcx
mov qword [rsp], rax
mov r15, rax
mov qword [rbp - 0x79], rax
mov qword [rbp - 0x71], rbx
mov qword [rsp + 8], rcx
jmp 0x1800173f6
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x1800170e6
xor rax, r10
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800171af
xor rax, r10
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18001727f
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rdx
jmp 0x18001735f
mov r8, qword [rbp + 0x47]
mov rax, qword [rbp + 0x6f]
mov rdi, r8
mov r10, qword [rbp + 0x5f]
xor r11d, r11d
mov rbx, qword [rax + 0x38]
mov eax, dword [r10 + rsi*4]
movzx esi, word [r10 + rsi*2 + 0x20000]
sub rdi, rax
test rbx, rbx
je 0x180017540
dec rbx
add r11, rdi
cmp r11, r12
ja 0x180017540
mov r9, qword [rbp + 0x57]
lea rax, [rsi*4]
mov rdx, qword [rsp + 0x40]
mov rcx, r8
movzx esi, word [rax + r10 + 0x40002]
sub rcx, r11
movzx edi, word [rax + r10 + 0x40000]
and rcx, r9
add rdx, r15
cmp rdx, r9
ja 0x180017537
lea rax, [rcx + r15]
cmp rax, r9
ja 0x180017537
mov r9, qword [rbp + 0x4f]
movzx eax, byte [rax + r9]
cmp byte [rdx + r9], al
jne 0x180017537
mov rax, qword [rbp + 0x3f]
lea r10, [rcx + r9]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x1800174d2
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180017746
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800174b0
mov rax, qword [rbp + 0x3f]
mov r8, rax
and r8d, 7
je 0x1800174f3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x1800174f3
inc rcx
sub r8, 1
jne 0x1800174e0
mov rdx, rcx
mov r10, qword [rbp + 0x5f]
mov r8, qword [rbp + 0x47]
cmp rdx, 4
jb 0x180017537
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r14, rax
jae 0x180017537
mov r14, rax
mov qword [rsp], rdx
mov r15, rdx
mov qword [rbp - 0x79], rdx
mov qword [rbp - 0x71], r11
mov qword [rsp + 8], rax
test rbx, rbx
jne 0x180017421
mov rsi, qword [rbp + 0x47]
mov r11d, 0xffff
mov rbx, qword [rbp + 0x6f]
mov rcx, rsi
mov r9, qword [rsp + 0x40]
mov r15, qword [rbp + 0x4f]
movzx r8d, word [rbx + 0x30]
imul edx, dword [r9 + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rbx + 0x30], ax
shr rdx, 0x11
mov eax, dword [r10 + rdx*4]
sub rcx, rax
movzx eax, si
cmp rcx, r11
cmova rcx, r11
cmp qword [rsp + 8], 0x7e4
mov byte [rax + r10 + 0x30000], dl
mov word [r10 + r8*4 + 0x40000], cx
movzx eax, word [r10 + rdx*2 + 0x20000]
mov word [r10 + r8*4 + 0x40002], ax
mov dword [r10 + rdx*4], esi
mov word [r10 + rdx*2 + 0x20000], r8w
jne 0x1800178dc
mov r13, qword [rbx + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180018690
imul ebx, dword [r9 + r15], 0x1e35a7bd
lea r12, [r9 + r15]
mov r8, qword [rbp + 0x67]
lea r15, [rcx + 1]
mov rdx, qword [rbp + 0x3f]
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 0x18001776e
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x18001776e
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 0x18001767e
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x18001775a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180017660
mov r8, r11
and r8d, 7
je 0x1800176a3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x1800176a3
inc rcx
sub r8, 1
jne 0x180017690
mov r9, rcx
mov r10, qword [rbp + 0x67]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180017777
test r9, r9
je 0x180017777
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rbp + 0x87]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rbp - 0x59]
ja 0x18001777e
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001777e
mov rdx, r9
mov qword [rsp + 8], rax
lea rax, [r14 + 1]
mov qword [rsp], rdx
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov qword [rbp - 0x79], rdx
mov dword [rbp - 0x61], r11d
mov qword [rbp - 0x71], r8
jmp 0x18001777e
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800174f6
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800176a6
mov rsi, qword [rbp + 0x87]
jmp 0x180017782
mov rsi, qword [rbp + 0x87]
mov rdx, qword [rbp + 0x3f]
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 0x1800178ce
mov rax, qword [r14 + 0x70]
mov r10d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x1800178ce
mov rbx, qword [r14 + 0x58]
mov eax, ecx
imul rax, rdi
mov edx, dword [rbx + rcx*4 + 0x20]
mov r8d, r10d
add rdx, rax
shr r8, 3
add rdx, qword [rbx + 0xa8]
xor ecx, ecx
test r8, r8
je 0x1800177fe
mov r11, r12
sub r11, rdx
mov rax, qword [rdx]
mov r9, qword [rdx + r11]
cmp rax, r9
jne 0x1800178ba
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800177e0
mov r8, r10
and r8d, 7
je 0x18001781c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001781c
inc rdx
inc rcx
sub r8, 1
jne 0x180017807
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r10
jbe 0x1800178ce
test r9, r9
je 0x1800178ce
mov rax, qword [r14 + 0x68]
mov r8, r10
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r10]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, qword [rbp - 0x59]
ja 0x1800178ce
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x4f]
mov rbx, qword [rbp + 0x6f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 8]
jb 0x1800178e0
mov rcx, r9
mov qword [rbp - 0x71], r8
sub r10d, r9d
mov qword [rsp], rcx
inc qword [r13 + 0x10]
mov qword [rbp - 0x79], rcx
mov dword [rbp - 0x61], r10d
mov qword [rsp + 8], rax
jmp 0x1800178e4
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001781f
mov rsi, qword [rbp + 0x47]
mov r15, qword [rbp + 0x4f]
mov rbx, qword [rbp + 0x6f]
jmp 0x1800178e0
mov r14, qword [rbp + 0x67]
mov rcx, qword [rsp]
cmp qword [rsp + 8], 0x7e4
jbe 0x18001868a
mov r9, qword [rbp + 0x3f]
xor r8d, r8d
mov dword [rbp + 0x87], r8d
dec r9
cmp dword [r14 + 4], 5
mov qword [rbp + 0x3f], r9
jge 0x18001791f
lea rax, [rcx - 1]
mov r14, r9
cmp rax, r9
cmovb r14, rax
jmp 0x180017922
mov r14, r8
mov rdx, qword [rbp - 0x41]
lea r10, [rsi + 1]
mov rax, qword [rbp - 0x39]
cmp r10, rdx
mov rbx, qword [rbx + 0x40]
mov ecx, 0x7e4
mov qword [rsp + 0x20], rcx
mov r13, r10
mov qword [rbp + 0x5f], r10
mov r12, rdx
cmovb r12, r10
mov qword [rsp + 0x18], r8
inc rax
mov qword [rsp + 0x40], rbx
add rax, rsi
mov qword [rsp + 0x10], r8
cmp rax, rdx
mov dword [rsp + 0x28], r8d
mov rcx, rdx
cmovb rcx, rax
mov rax, qword [rbp + 0x67]
mov qword [rbp - 0x31], rcx
mov rcx, qword [rbp + 0x57]
and r13, rcx
mov rax, qword [rax + 0x50]
lea rdi, [r15 + r13]
imul esi, dword [rdi], 0x1e35a7bd
mov r15d, 0x7e4
mov qword [rbp - 0x51], rax
mov rax, qword [rbp + 0x77]
mov qword [rbp - 0x59], rdi
shr rsi, 0x11
movsxd r11, dword [rax]
sub r10, r11
cmp r10, qword [rbp + 0x5f]
jae 0x180017a58
cmp r11, r12
ja 0x180017a58
and r10, rcx
mov rdx, rdi
add r10, qword [rbp + 0x4f]
mov rcx, r8
mov r8, r9
shr r8, 3
test r8, r8
je 0x180017a02
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x180017cec
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800179e0
mov r9, qword [rbp + 0x3f]
mov r8, r9
and r8d, 7
je 0x180017a23
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180017a23
inc rcx
sub r8, 1
jne 0x180017a10
mov rax, rcx
cmp rax, 2
jb 0x180017a54
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, r15
jbe 0x180017a54
mov r15, rcx
mov qword [rsp + 0x10], rax
mov r14, rax
mov qword [rsp + 0x18], r11
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp + 0x57]
mov r10, qword [rbp + 0x77]
movsxd r11, dword [r10 + 4]
mov r10, qword [rbp + 0x5f]
mov r8, r10
sub r8, r11
movzx eax, r8w
cmp byte [rax + rbx + 0x30000], sil
jne 0x180017b2e
cmp r8, r10
jae 0x180017b2e
cmp r11, r12
ja 0x180017b2e
and r8, rcx
shr r9, 3
add r8, qword [rbp + 0x4f]
xor ecx, ecx
mov rdx, rdi
test r9, r9
je 0x180017ace
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x180017d04
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180017ab0
mov r9, qword [rbp + 0x3f]
and r9d, 7
je 0x180017af5
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x180017af5
inc rdx
inc rcx
sub r9, 1
jne 0x180017ae0
mov rdx, rcx
cmp rdx, 2
jb 0x180017b2e
imul rax, rdx, 0x87
add rax, 0x78f
cmp r15, rax
jae 0x180017b2e
add rax, 0xffffffffffffffd9
cmp r15, rax
jae 0x180017b2e
mov r15, rax
mov qword [rsp + 0x10], rdx
mov r14, rdx
mov qword [rsp + 0x18], r11
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x77]
mov r8, qword [rbp + 0x5f]
movsxd r11, dword [rax + 8]
sub r8, r11
movzx eax, r8w
cmp byte [rax + rbx + 0x30000], sil
jne 0x180017bf6
cmp r8, qword [rbp + 0x5f]
jae 0x180017bf6
cmp r11, r12
ja 0x180017bf6
and r8, qword [rbp + 0x57]
xor ecx, ecx
mov rbx, qword [rbp + 0x3f]
mov rdx, rdi
add r8, qword [rbp + 0x4f]
mov r9, rbx
shr r9, 3
test r9, r9
je 0x180017b9e
nop
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x180017d18
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180017b80
mov r9, rbx
and r9d, 7
je 0x180017bbc
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x180017bbc
inc rdx
inc rcx
sub r9, 1
jne 0x180017ba7
mov rax, rcx
cmp rax, 2
jb 0x180017bf6
imul rcx, rax, 0x87
add rcx, 0x78f
cmp r15, rcx
jae 0x180017bf6
add rcx, 0xffffffffffffffd5
cmp r15, rcx
jae 0x180017bf6
mov r15, rcx
mov qword [rsp + 0x10], rax
mov r14, rax
mov qword [rsp + 0x18], r11
mov qword [rsp + 0x20], rcx
mov rax, qword [rbp + 0x77]
mov r8, qword [rbp + 0x5f]
mov rcx, qword [rsp + 0x40]
mov r10, r8
movsxd rbx, dword [rax + 0xc]
sub r10, rbx
movzx eax, r10w
cmp byte [rax + rcx + 0x30000], sil
jne 0x180017d40
cmp r10, r8
jae 0x180017d40
cmp rbx, r12
ja 0x180017d40
and r10, qword [rbp + 0x57]
xor edx, edx
mov rax, qword [rbp + 0x3f]
mov rcx, rdi
add r10, qword [rbp + 0x4f]
mov r8, rax
shr r8, 3
test r8, r8
je 0x180017c82
mov r11, r10
sub r11, rdi
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rcx]
mov rax, qword [r11 + rcx]
cmp r9, rax
jne 0x180017d2c
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180017c60
mov rax, qword [rbp + 0x3f]
mov r8, rax
and r8d, 7
je 0x180017ca5
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180017ca5
inc rcx
inc rdx
sub r8, 1
jne 0x180017c90
mov rax, rdx
mov r8, qword [rbp + 0x5f]
cmp rax, 2
jb 0x180017d40
imul rcx, rax, 0x87
add rcx, 0x78f
cmp r15, rcx
jae 0x180017d40
add rcx, 0xffffffffffffffd5
cmp r15, rcx
jae 0x180017d40
mov r15, rcx
mov qword [rsp + 0x10], rax
mov r14, rax
mov qword [rsp + 0x18], rbx
mov r9, rcx
mov qword [rsp + 0x20], rcx
jmp 0x180017d45
xor rax, r9
mov r9, qword [rbp + 0x3f]
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x180017a26
xor rax, r10
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180017af8
xor rax, r10
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x180017bbf
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rdx
jmp 0x180017ca8
mov r9, qword [rsp + 0x20]
mov r10, qword [rsp + 0x40]
mov rdi, r8
mov rcx, qword [rbp + 0x6f]
xor r11d, r11d
mov eax, dword [r10 + rsi*4]
mov rbx, qword [rcx + 0x38]
sub rdi, rax
movzx esi, word [r10 + rsi*2 + 0x20000]
test rbx, rbx
je 0x180017e9e
dec rbx
add r11, rdi
cmp r11, r12
ja 0x180017e9a
movzx edi, word [r10 + rsi*4 + 0x40000]
lea rax, [rsi*4]
movzx esi, word [r10 + rsi*4 + 0x40002]
lea rdx, [r14 + r13]
mov rcx, r8
sub rcx, r11
and rcx, qword [rbp + 0x57]
cmp rdx, qword [rbp + 0x57]
ja 0x180017e91
lea rax, [rcx + r14]
cmp rax, qword [rbp + 0x57]
ja 0x180017e91
mov r8, qword [rbp + 0x4f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
mov r8, qword [rbp + 0x5f]
jne 0x180017e91
mov r10, qword [rbp + 0x4f]
xor eax, eax
mov rdx, qword [rbp - 0x59]
add r10, rcx
mov rcx, qword [rbp + 0x3f]
mov r8, rcx
shr r8, 3
test r8, r8
je 0x180017e12
mov r9, qword [rdx]
mov rcx, qword [rax + r10]
cmp r9, rcx
jne 0x180017e7b
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180017df4
mov rcx, qword [rbp + 0x3f]
mov r8, rcx
and r8d, 7
je 0x180017e33
sub rdx, rax
nop
movzx ecx, byte [rax + rdx]
cmp byte [rax + r10], cl
jne 0x180017e33
inc rax
sub r8, 1
jne 0x180017e20
mov rdx, rax
mov r10, qword [rsp + 0x40]
mov r8, qword [rbp + 0x5f]
cmp rdx, 4
jb 0x180017e8c
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x180017e8c
mov r15, rax
mov qword [rsp + 0x10], rdx
mov r14, rdx
mov qword [rsp + 0x18], r11
mov r9, rax
mov qword [rsp + 0x20], rax
jmp 0x180017e91
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180017e36
mov r9, qword [rsp + 0x20]
test rbx, rbx
jne 0x180017d71
mov rcx, qword [rbp + 0x6f]
movzx r8d, word [rcx + 0x30]
mov rbx, qword [rbp + 0x5f]
mov r15, qword [rbp + 0x4f]
lea eax, [r8 + 1]
imul edx, dword [r15 + r13], 0x1e35a7bd
mov word [rcx + 0x30], ax
mov rcx, rbx
shr rdx, 0x11
mov eax, dword [r10 + rdx*4]
sub rcx, rax
movzx eax, bx
mov byte [rax + r10 + 0x30000], dl
mov eax, 0xffff
cmp rcx, rax
cmova rcx, rax
mov word [r10 + r8*4 + 0x40000], cx
movzx eax, word [r10 + rdx*2 + 0x20000]
mov word [r10 + r8*4 + 0x40002], ax
mov dword [r10 + rdx*4], ebx
mov word [r10 + rdx*2 + 0x20000], r8w
cmp r9, 0x7e4
jne 0x1800181fb
mov rax, qword [rbp + 0x6f]
mov r13, qword [rax + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x1800181fb
mov r12, qword [rbp - 0x59]
lea r15, [rcx + 1]
mov r8, qword [rbp + 0x67]
mov rdx, qword [rbp + 0x3f]
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 0x1800180ad
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x1800180ad
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 0x180017fce
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x180018095
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180017fb0
mov r8, r11
and r8d, 7
je 0x180017ff3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r12], al
jne 0x180017ff3
inc rcx
sub r8, 1
jne 0x180017fe0
mov r9, rcx
mov r10, qword [rbp + 0x67]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800180a9
test r9, r9
je 0x1800180a9
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x31]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x51]
ja 0x1800180a9
mov rdx, qword [rbp + 0x3f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x1800180ad
mov rsi, rax
mov qword [rsp + 0x20], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x10], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x18], r8
jmp 0x1800180b2
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180017ff6
mov rdx, qword [rbp + 0x3f]
mov rsi, qword [rsp + 0x20]
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 0x180018201
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180018201
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 ecx, ecx
test r8, r8
je 0x18001812e
mov r10, r12
sub r10, rdx
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x1800181e7
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180018110
mov r8, r11
and r8d, 7
je 0x18001814c
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001814c
inc rdx
inc rcx
sub r8, 1
jne 0x180018137
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180018201
test r9, r9
je 0x180018201
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rbx]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x31]
shl rdx, cl
inc r8
add rdx, rdi
add r8, rdx
cmp r8, qword [rbp - 0x51]
ja 0x180018201
mov rbx, qword [rbp + 0x5f]
mov r15, qword [rbp + 0x4f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x180018209
sub r11d, r9d
mov qword [rsp + 0x10], r9
inc qword [r13 + 0x10]
mov rcx, rax
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], rax
jmp 0x18001820e
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001814f
mov r14, qword [rbp + 0x67]
jmp 0x180018209
mov rbx, qword [rbp + 0x5f]
mov r15, qword [rbp + 0x4f]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 8]
mov r11, qword [rsp + 0x30]
add rax, 0xaf
cmp rcx, rax
jb 0x18001828f
mov ecx, dword [rbp + 0x87]
inc r11
movups xmm0, xmmword [rsp + 0x10]
inc ecx
mov rsi, rbx
mov qword [rbp + 0x47], rbx
mov qword [rsp + 0x30], r11
mov dword [rbp + 0x87], ecx
movups xmm1, xmmword [rsp + 0x20]
movups xmmword [rbp - 0x79], xmm0
movups xmmword [rbp - 0x69], xmm1
cmp ecx, 4
jge 0x180018285
lea rax, [rbx + 4]
cmp rax, qword [rbp - 0x49]
jae 0x180018285
mov rcx, qword [rbp - 0x69]
mov r9, qword [rbp + 0x3f]
mov rbx, qword [rbp + 0x6f]
dec r9
mov qword [rsp + 8], rcx
xor r8d, r8d
mov rcx, qword [rbp - 0x79]
mov qword [rsp], rcx
jmp 0x180017904
mov rdx, qword [rbp - 0x79]
mov qword [rsp], rdx
jmp 0x180018297
mov rsi, qword [rbp + 0x47]
mov rdx, qword [rsp]
mov rax, qword [rbp - 0x21]
mov r9, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x71]
mov r10, qword [rbp + 0x77]
lea r12, [rax + rdx*2]
mov rax, qword [rbp - 0x39]
add rax, rsi
add r12, rsi
cmp rax, r9
mov qword [rbp - 0x51], r12
cmovb r9, rax
cmp rbx, r9
ja 0x180018343
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 0x1800182e3
xor r8d, r8d
jmp 0x180018347
cmp rbx, r8
jne 0x1800182f0
mov r8d, 1
jmp 0x180018347
cmp rdx, 7
jae 0x18001830b
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180018347
cmp rcx, 7
jae 0x180018323
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180018347
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x180018334
mov r8d, 2
jmp 0x180018347
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x180018347
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18001836e
test r8, r8
je 0x18001836e
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 eax, dword [rbp - 0x71]
mov dword [r10], eax
mov r12, qword [rsp + 0x38]
mov esi, dword [rbp - 0x61]
mov r13, qword [rbp + 0x67]
mov r14d, dword [rbp - 0x79]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [r12], r11d
mov dword [r12 + 4], eax
mov r15d, dword [r13 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x1800183a2
xor edi, edi
jmp 0x18001841b
mov r11d, dword [r13 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 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, r15w
or r8w, r9w
mov word [r12 + 0xe], r8w
lea r9d, [r14 + rsi]
mov eax, 0x3ff
mov dword [r12 + 8], edi
and r8w, ax
movsxd rdx, r9d
cmp r11, 6
jae 0x180018447
movzx r10d, r11w
mov ecx, 0x17
jmp 0x1800184b8
cmp r11, 0x82
jae 0x180018471
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
mov ecx, 0x17
jmp 0x1800184b8
mov ecx, 0x17
cmp r11, 0x842
jae 0x18001848e
lea eax, [r11 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x1800184b8
cmp r11, 0x1842
jae 0x18001849f
mov r10d, 0x15
jmp 0x1800184b8
mov r10d, 0x16
cmp r11, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x1800184c4
sub dx, 2
jmp 0x180018502
cmp rdx, 0x86
jae 0x1800184e9
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x180018502
cmp rdx, 0x846
jae 0x1800184ff
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x180018502
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180018541
cmp r10w, 8
jae 0x180018541
cmp dx, 0x10
jae 0x180018541
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180018573
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rcx, qword [rbp + 0x47]
xor r14d, r14d
mov rax, qword [rbp + 0x97]
mov rdx, qword [rsp]
mov word [r12 + 0xc], r9w
add r12, 0x10
mov qword [rsp + 0x38], r12
lea r10, [rcx + 2]
add qword [rax], r11
mov rax, rdx
mov r11, qword [rbp - 0x29]
lea rdi, [rdx + rcx]
cmp rdi, r11
mov qword [rsp + 0x30], r14
mov qword [rbp + 0x47], rdi
cmovb r11, rdi
shr rax, 2
cmp rbx, rax
jae 0x1800185e5
lea rax, [rbx*4]
sub rdx, rax
lea rax, [rdx + rcx]
cmp r10, rax
mov eax, 2
cmova rdx, rax
lea r10, [rcx + rdx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x18001867e
mov rdi, qword [rbp + 0x4f]
mov r12d, 0xffff
mov r13, qword [rbp + 0x6f]
nop dword [rax]
mov r9, qword [r13 + 0x40]
mov rax, r10
and rax, qword [rbp + 0x57]
mov rcx, r10
movzx r8d, word [r13 + 0x30]
imul edx, dword [rax + rdi], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r13 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r10w
cmp rcx, r12
cmova rcx, r12
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 0x180018600
mov rdi, qword [rbp + 0x47]
mov r13, qword [rbp + 0x67]
mov r12, qword [rsp + 0x38]
mov rsi, rdi
mov qword [rbp + 0x47], rdi
jmp 0x18001882e
mov r11d, 0xffff
mov r14, qword [rsp + 0x30]
inc rsi
mov r12, qword [rbp - 0x51]
inc r14
mov qword [rsp + 0x30], r14
mov qword [rbp + 0x47], rsi
cmp rsi, r12
jbe 0x180018825
mov rax, qword [rbp - 0x21]
mov r10, qword [rbp - 0x49]
lea rax, [r12 + rax*4]
cmp rsi, rax
jbe 0x180018776
add r10, 0xfffffffffffffffc
lea rax, [rsi + 0x10]
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x180018825
mov rax, r10
add r14, 4
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x30], r14
nop word [rax + rax]
mov r9, qword [rbx + 0x40]
mov rax, rsi
and rax, qword [rbp + 0x57]
mov rcx, rsi
movzx r8d, word [rbx + 0x30]
imul edx, dword [rax + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rbx + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, si
cmp rcx, r11
cmova rcx, r11
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], esi
add rsi, 4
mov word [r9 + rdx*2 + 0x20000], r8w
cmp rsi, r10
jb 0x180018700
jmp 0x180018821
add r10, 0xfffffffffffffffd
lea rax, [rsi + 8]
cmp rax, r10
cmovb r10, rax
cmp rsi, r10
jae 0x180018825
mov rax, r10
add r14, 2
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x30], r14
nop word [rax + rax]
mov r9, qword [rbx + 0x40]
mov rax, rsi
and rax, qword [rbp + 0x57]
mov rcx, rsi
movzx r8d, word [rbx + 0x30]
imul edx, dword [rax + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rbx + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, si
cmp rcx, r11
cmova rcx, r11
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], esi
add rsi, 2
mov word [r9 + rdx*2 + 0x20000], r8w
cmp rsi, r10
jb 0x1800187b0
mov qword [rbp + 0x47], rsi
mov r13, qword [rbp + 0x67]
mov r12, qword [rsp + 0x38]
mov rbx, qword [rbp - 0x49]
lea rax, [rsi + 4]
mov r9, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x6f]
mov r10, qword [rbp + 0x77]
mov r8, qword [rbp - 0x41]
mov rcx, qword [rbp - 0x39]
cmp rax, rbx
jb 0x180016ff0
mov r10, qword [rbp + 0x7f]
mov r15, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xc0]
sub r12, qword [rbp - 0x19]
sub rbx, rsi
mov rax, qword [rbp + 0x8f]
add rbx, r14
sar r12, 4
mov qword [r10], rbx
add qword [rax], r12
add rsp, 0xc8
pop r14
pop r13
pop r12
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 r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xc8
mov r13, qword [rbp + 0x77]
mov rax, rcx
mov r15, qword [rbp + 0x97]
mov rbx, rdx
mov r10, qword [rbp + 0x7f]
mov r12d, 1
mov r11, r8
mov qword [rbp - 0x71], r15
mov ecx, dword [r13 + 8]
mov rdx, qword [r13 + 0x10]
lea rsi, [rax + rbx]
shl r12, cl
mov rcx, qword [rbp + 0x8f]
sub r12, 0x10
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x29], rdx
mov qword [rbp - 9], r15
mov r14, qword [rcx]
mov qword [rsp + 0x20], r14
mov qword [rbp - 0x39], rsi
cmp rax, 4
jb 0x18001892b
lea rax, [rsi - 3]
mov qword [rbp - 0x19], rax
jmp 0x18001892f
mov qword [rbp - 0x19], rbx
cmp dword [r13 + 4], 9
mov ecx, 0x40
mov rdi, qword [rbp + 0x87]
mov eax, 0x200
cmovl eax, ecx
mov qword [rbp - 0x11], rax
add rax, rbx
mov qword [rbp - 0x61], rax
mov ecx, dword [rdi]
lea eax, [rcx - 1]
mov dword [rdi + 0x10], eax
lea eax, [rcx + 1]
mov dword [rdi + 0x14], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x18], eax
lea eax, [rcx + 2]
mov dword [rdi + 0x1c], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x20], eax
lea eax, [rcx + 3]
mov dword [rdi + 0x24], eax
lea rax, [rbx + 4]
cmp rax, rsi
jae 0x180019fe9
lea rax, [rdi + 4]
mov qword [rbp - 0x31], rax
nop
lea rax, [rdx + rbx]
mov qword [rbp - 0x51], 0
mov r8, rsi
mov qword [rsp + 0x18], 0x7e4
sub r8, rbx
mov rcx, r12
cmp rbx, r12
mov qword [rbp + 0x4f], r8
mov rdx, r12
mov r15d, 0x7e4
cmovb rcx, rbx
cmp rax, r12
mov qword [rbp + 0x6f], rcx
cmovb rdx, rax
mov rax, qword [r13 + 0x50]
mov qword [rbp - 0x69], rax
xor esi, esi
mov rax, rbx
mov qword [rsp + 0x10], rdx
mov rdx, qword [r10 + 0x40]
and rax, r9
imul r14d, dword [rax + r11], 0x1e35a7bd
lea r13, [rax + r11]
xor r10d, r10d
mov qword [rbp + 0x97], rdx
mov qword [rsp + 8], rax
mov qword [rsp], r10
mov qword [rbp - 0x59], r10
shr r14, 0x11
xor r12d, r12d
mov dword [rbp - 0x41], r10d
jmp 0x180018a28
mov r8, qword [rbp + 0x4f]
mov r9, qword [rbp + 0x67]
movsxd rbx, dword [rdi + rsi*4]
mov rdi, qword [rbp + 0x57]
mov r10, rdi
sub r10, rbx
test rsi, rsi
je 0x180018a4d
movzx eax, r10w
cmp byte [rax + rdx + 0x30000], r14b
jne 0x180018b2f
cmp r10, rdi
jae 0x180018b2f
cmp rbx, rcx
ja 0x180018b2f
and r10, r9
shr r8, 3
add r10, r11
xor ecx, ecx
mov rdx, r13
test r8, r8
je 0x180018a9e
mov r11, r10
sub r11, r13
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [r11 + rdx]
cmp rax, r9
jne 0x180018fad
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180018a80
mov r8, qword [rbp + 0x4f]
and r8d, 7
je 0x180018ac3
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180018ac3
inc rcx
sub r8, 1
jne 0x180018ab0
mov r9, rcx
cmp r9, 2
jb 0x180018b1c
imul r8, r9, 0x87
add r8, 0x78f
cmp r15, r8
jae 0x180018b1c
test rsi, rsi
je 0x180018b02
movzx ecx, sil
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r15, r8
jae 0x180018b1c
mov rax, r9
mov qword [rbp - 0x51], rbx
mov qword [rsp], rax
mov r15, r8
mov qword [rbp - 0x59], rax
mov r12, r9
mov qword [rsp + 0x18], r8
mov r11, qword [rbp + 0x5f]
mov r8, qword [rbp + 0x4f]
mov rdx, qword [rbp + 0x97]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp - 0x31]
lea rbx, [rsi + 1]
mov r9, qword [rbp + 0x57]
mov r10, r9
movsxd rdi, dword [rax + rsi*4]
sub r10, rdi
test rbx, rbx
je 0x180018b5c
movzx eax, r10w
cmp byte [rax + rdx + 0x30000], r14b
jne 0x180018c2a
cmp r10, r9
jae 0x180018c2a
cmp rdi, rcx
ja 0x180018c2a
and r10, qword [rbp + 0x67]
xor edx, edx
add r10, r11
shr r8, 3
mov rcx, r13
test r8, r8
je 0x180018bae
mov r11, r10
sub r11, r13
nop dword [rax]
mov rax, qword [rcx]
mov r9, qword [r11 + rcx]
cmp rax, r9
jne 0x180018fc1
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x180018b90
mov r8, qword [rbp + 0x4f]
and r8d, 7
je 0x180018bd5
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x180018bd5
inc rcx
inc rdx
sub r8, 1
jne 0x180018bc0
mov r9, rdx
cmp r9, 2
jb 0x180018c2a
imul r8, r9, 0x87
add r8, 0x78f
cmp r15, r8
jae 0x180018c2a
test rbx, rbx
je 0x180018c13
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r15, r8
jae 0x180018c2a
mov r15, r8
mov qword [rsp], r9
mov r12, r9
mov qword [rbp - 0x59], r9
mov qword [rbp - 0x51], rdi
mov qword [rsp + 0x18], r8
mov rcx, qword [rbp + 0x6f]
add rsi, 2
mov rdx, qword [rbp + 0x97]
mov r11, qword [rbp + 0x5f]
mov rdi, qword [rbp + 0x87]
cmp rsi, 0xa
jb 0x180018a20
mov rax, qword [rbp + 0x7f]
xor ebx, ebx
mov rcx, qword [rbp + 0x57]
mov r10, rdx
mov rsi, rcx
mov rdi, qword [rax + 0x38]
mov eax, dword [rdx + r14*4]
movzx r14d, word [rdx + r14*2 + 0x20000]
sub rsi, rax
test rdi, rdi
je 0x180018da2
nop dword [rax + rax]
dec rdi
add rbx, rsi
cmp rbx, qword [rbp + 0x6f]
ja 0x180018da2
mov r8, qword [rbp + 0x67]
lea rax, [r14*4]
mov rdx, qword [rsp + 8]
sub rcx, rbx
movzx r14d, word [rax + r10 + 0x40002]
and rcx, r8
movzx esi, word [rax + r10 + 0x40000]
add rdx, r12
cmp rdx, r8
ja 0x180018d95
lea rax, [rcx + r12]
cmp rax, r8
ja 0x180018d95
mov r8, qword [rbp + 0x5f]
movzx eax, byte [rax + r8]
cmp byte [rdx + r8], al
jne 0x180018d95
mov rax, qword [rbp + 0x4f]
lea r11, [rcx + r8]
mov r8, rax
xor ecx, ecx
shr r8, 3
mov rdx, r13
test r8, r8
je 0x180018d32
mov r10, r11
sub r10, r13
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180018fd5
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180018d10
mov rax, qword [rbp + 0x4f]
mov r8, rax
and r8d, 7
je 0x180018d53
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x180018d53
inc rcx
sub r8, 1
jne 0x180018d40
mov rdx, rcx
mov r10, qword [rbp + 0x97]
cmp rdx, 4
jb 0x180018d95
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x180018d95
mov r15, rax
mov qword [rsp], rdx
mov r12, rdx
mov qword [rbp - 0x59], rdx
mov qword [rbp - 0x51], rbx
mov qword [rsp + 0x18], rax
mov rcx, qword [rbp + 0x57]
test rdi, rdi
jne 0x180018c80
mov rbx, qword [rbp + 0x57]
mov r11d, 0xffff
mov rsi, qword [rbp + 0x7f]
mov rcx, rbx
mov r9, qword [rsp + 8]
mov r15, qword [rbp + 0x5f]
movzx r8d, word [rsi + 0x30]
imul edx, dword [r9 + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rsi + 0x30], ax
shr rdx, 0x11
mov eax, dword [r10 + rdx*4]
sub rcx, rax
movzx eax, bx
cmp rcx, r11
cmova rcx, r11
cmp qword [rsp + 0x18], 0x7e4
mov byte [rax + r10 + 0x30000], dl
mov word [r10 + r8*4 + 0x40000], cx
movzx eax, word [r10 + rdx*2 + 0x20000]
mov word [r10 + r8*4 + 0x40002], ax
mov dword [r10 + rdx*4], ebx
mov word [r10 + rdx*2 + 0x20000], r8w
jne 0x18001916c
mov r13, qword [rsi + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x180019e1f
imul ebx, dword [r9 + r15], 0x1e35a7bd
lea r12, [r9 + r15]
mov r8, qword [rbp + 0x77]
lea r15, [rcx + 1]
mov rdx, qword [rbp + 0x4f]
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 0x180018ffd
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180018ffd
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 0x180018ede
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180018fe9
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180018ec0
mov r8, r11
and r8d, 7
je 0x180018f03
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x180018f03
inc rcx
sub r8, 1
jne 0x180018ef0
mov r9, rcx
mov r10, qword [rbp + 0x77]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180019004
test r9, r9
je 0x180019004
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rsp + 0x10]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rbp - 0x69]
ja 0x180019009
mov rdx, qword [rbp + 0x4f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001900d
mov qword [rsp + 0x18], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rsp], r9
mov qword [r13 + 0x10], rax
mov qword [rbp - 0x59], r9
mov dword [rbp - 0x41], r11d
mov qword [rbp - 0x51], r8
jmp 0x18001900d
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180018ac6
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x180018bd8
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x180018d56
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180018f06
mov rsi, qword [rsp + 0x10]
jmp 0x18001900d
mov rsi, qword [rsp + 0x10]
mov rdx, qword [rbp + 0x4f]
mov r14, qword [rbp + 0x77]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18001915e
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18001915e
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 ecx, ecx
test r8, r8
je 0x18001908e
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x18001914a
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180019070
mov r8, r11
and r8d, 7
je 0x1800190ac
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x1800190ac
inc rdx
inc rcx
sub r8, 1
jne 0x180019097
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001915e
test r9, r9
je 0x18001915e
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, qword [rbp - 0x69]
ja 0x18001915e
mov rbx, qword [rbp + 0x57]
mov r15, qword [rbp + 0x5f]
mov rsi, qword [rbp + 0x7f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x18]
jb 0x180019170
mov rcx, r9
mov qword [rbp - 0x51], r8
sub r11d, r9d
mov qword [rsp], rcx
inc qword [r13 + 0x10]
mov qword [rbp - 0x59], rcx
mov dword [rbp - 0x41], r11d
mov qword [rsp + 0x18], rax
jmp 0x180019174
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800190af
mov rbx, qword [rbp + 0x57]
mov r15, qword [rbp + 0x5f]
mov rsi, qword [rbp + 0x7f]
jmp 0x180019170
mov r14, qword [rbp + 0x77]
mov rcx, qword [rsp]
cmp qword [rsp + 0x18], 0x7e4
jbe 0x180019e19
mov r10, qword [rbp + 0x4f]
xor r11d, r11d
mov dword [rbp + 0x97], r11d
dec r10
cmp dword [r14 + 4], 5
mov qword [rbp + 0x4f], r10
jge 0x1800191af
lea rax, [rcx - 1]
mov r12, r10
cmp rax, r10
cmovb r12, rax
jmp 0x1800191b2
mov r12, r11
mov r8, qword [rbp - 0x79]
lea rdi, [rbx + 1]
mov rax, qword [rbp - 0x29]
cmp rdi, r8
mov rcx, r8
mov qword [rsp + 0x30], r11
cmovb rcx, rdi
mov qword [rbp + 0x6f], rdi
inc rax
mov qword [rsp + 0x10], rcx
add rax, rbx
mov qword [rsp + 0x28], r11
cmp rax, r8
mov dword [rsp + 0x40], r11d
mov rdx, r8
mov r9d, 0x7e4
mov r8, qword [rbp + 0x67]
cmovb rdx, rax
mov rax, qword [r14 + 0x50]
mov qword [rbp - 0x61], rax
mov rax, rdi
and rax, r8
mov qword [rbp - 0x21], rdx
mov rdx, qword [rsi + 0x40]
lea r13, [rax + r15]
imul r14d, dword [r13], 0x1e35a7bd
mov rsi, r11
mov qword [rsp + 0x38], r9
mov r15d, r9d
mov qword [rsp + 8], rdx
mov qword [rbp - 0x69], rax
shr r14, 0x11
jmp 0x180019248
mov rdi, qword [rbp + 0x6f]
mov r8, qword [rbp + 0x67]
mov rax, qword [rbp + 0x87]
mov r11, rdi
movsxd rbx, dword [rax + rsi*4]
sub r11, rbx
test rsi, rsi
je 0x180019270
movzx eax, r11w
cmp byte [rax + rdx + 0x30000], r14b
jne 0x180019360
cmp r11, rdi
jae 0x180019360
cmp rbx, rcx
ja 0x180019360
and r11, r8
mov r9, r10
add r11, qword [rbp + 0x5f]
xor ecx, ecx
shr r9, 3
mov rdx, r13
test r9, r9
je 0x1800192c2
mov r10, r11
sub r10, r13
mov rax, qword [rdx]
mov r8, qword [r10 + rdx]
cmp rax, r8
jne 0x18001933c
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x1800192a0
mov r10, qword [rbp + 0x4f]
mov r8, r10
and r8d, 7
je 0x1800192e3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800192e3
inc rcx
sub r8, 1
jne 0x1800192d0
mov r9, rcx
cmp r9, 2
jb 0x180019351
imul r8, r9, 0x87
add r8, 0x78f
cmp r15, r8
jae 0x180019351
test rsi, rsi
je 0x180019322
movzx ecx, sil
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r15, r8
jae 0x180019351
mov r12, r9
mov qword [rsp + 0x28], r9
mov r9, r8
mov qword [rsp + 0x30], rbx
mov r15, r8
mov qword [rsp + 0x38], r8
jmp 0x180019356
mov r10, qword [rbp + 0x4f]
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800192e6
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
mov rax, qword [rbp - 0x31]
lea rbx, [rsi + 1]
mov r8, qword [rbp + 0x6f]
mov r11, r8
movsxd rdi, dword [rax + rsi*4]
sub r11, rdi
test rbx, rbx
je 0x18001938d
movzx eax, r11w
cmp byte [rax + rdx + 0x30000], r14b
jne 0x18001947b
cmp r11, r8
jae 0x18001947b
cmp rdi, rcx
ja 0x18001947b
and r11, qword [rbp + 0x67]
mov r9, r10
add r11, qword [rbp + 0x5f]
xor edx, edx
shr r9, 3
mov rcx, r13
test r9, r9
je 0x1800193e2
mov r10, r11
sub r10, r13
nop
mov rax, qword [rcx]
mov r8, qword [r10 + rcx]
cmp rax, r8
jne 0x18001945d
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x1800193c0
mov r10, qword [rbp + 0x4f]
mov r8, r10
and r8d, 7
je 0x180019405
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x180019405
inc rcx
inc rdx
sub r8, 1
jne 0x1800193f0
mov r9, rdx
cmp r9, 2
jb 0x180019472
imul r8, r9, 0x87
add r8, 0x78f
cmp r15, r8
jae 0x180019472
test rbx, rbx
je 0x180019443
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r15, r8
jae 0x180019472
mov r12, r9
mov qword [rsp + 0x28], r9
mov r9, r8
mov qword [rsp + 0x30], rdi
mov r15, r8
mov qword [rsp + 0x38], r8
jmp 0x180019477
mov r10, qword [rbp + 0x4f]
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x180019408
mov r9, qword [rsp + 0x38]
mov r8, qword [rbp + 0x6f]
mov rcx, qword [rsp + 0x10]
add rsi, 2
mov rdx, qword [rsp + 8]
cmp rsi, 0xa
jb 0x180019240
mov eax, dword [rdx + r14*4]
mov rsi, r8
mov rcx, qword [rbp + 0x7f]
xor ebx, ebx
movzx r14d, word [rdx + r14*2 + 0x20000]
sub rsi, rax
mov r11, rdx
mov rdi, qword [rcx + 0x38]
test rdi, rdi
je 0x1800195fd
nop dword [rax]
dec rdi
add rbx, rsi
cmp rbx, qword [rsp + 0x10]
ja 0x1800195f9
mov rdx, qword [rbp - 0x69]
lea rax, [r14*4]
movzx r14d, word [rax + r11 + 0x40002]
mov rcx, r8
movzx esi, word [rax + r11 + 0x40000]
sub rcx, rbx
and rcx, qword [rbp + 0x67]
add rdx, r12
cmp rdx, qword [rbp + 0x67]
ja 0x1800195f0
lea rax, [rcx + r12]
cmp rax, qword [rbp + 0x67]
ja 0x1800195f0
mov r10, qword [rbp + 0x5f]
movzx eax, byte [rax + r10]
cmp byte [rdx + r10], al
mov r10, qword [rbp + 0x4f]
jne 0x1800195f0
mov r11, qword [rbp + 0x5f]
mov r8, r10
add r11, rcx
shr r8, 3
xor eax, eax
mov rdx, r13
test r8, r8
je 0x18001956e
mov r10, r11
sub r10, r13
nop dword [rax]
mov rcx, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rcx, r9
jne 0x1800195da
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180019550
mov r10, qword [rbp + 0x4f]
mov r8, r10
and r8d, 7
je 0x180019593
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x180019593
inc rax
sub r8, 1
jne 0x180019580
mov rdx, rax
mov r11, qword [rsp + 8]
mov r8, qword [rbp + 0x6f]
cmp rdx, 4
jb 0x1800195eb
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r15, rax
jae 0x1800195eb
mov r15, rax
mov qword [rsp + 0x28], rdx
mov r12, rdx
mov qword [rsp + 0x30], rbx
mov r9, rax
mov qword [rsp + 0x38], rax
jmp 0x1800195f0
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180019596
mov r9, qword [rsp + 0x38]
test rdi, rdi
jne 0x1800194c0
mov rcx, qword [rbp + 0x7f]
movzx r8d, word [rcx + 0x30]
mov rbx, qword [rbp + 0x6f]
mov r10, qword [rbp - 0x69]
mov r15, qword [rbp + 0x5f]
lea eax, [r8 + 1]
imul edx, dword [r10 + r15], 0x1e35a7bd
mov word [rcx + 0x30], ax
mov rcx, rbx
shr rdx, 0x11
mov eax, dword [r11 + rdx*4]
sub rcx, rax
movzx eax, bx
mov byte [rax + r11 + 0x30000], dl
mov eax, 0xffff
cmp rcx, rax
cmova rcx, rax
mov word [r11 + r8*4 + 0x40000], cx
movzx eax, word [r11 + rdx*2 + 0x20000]
mov word [r11 + r8*4 + 0x40002], ax
mov dword [r11 + rdx*4], ebx
mov word [r11 + rdx*2 + 0x20000], r8w
cmp r9, 0x7e4
jne 0x18001995b
mov rax, qword [rbp + 0x7f]
mov r13, qword [rax + 0x48]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18001995b
imul ebx, dword [r10 + r15], 0x1e35a7bd
lea r12, [r10 + r15]
mov r8, qword [rbp + 0x77]
lea r15, [rcx + 1]
mov rdx, qword [rbp + 0x4f]
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 0x18001980d
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x18001980d
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 0x18001972e
mov r10, r12
sub r10, rdx
nop
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x1800197f5
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180019710
mov r8, r11
and r8d, 7
je 0x180019753
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x180019753
inc rcx
sub r8, 1
jne 0x180019740
mov r9, rcx
mov r10, qword [rbp + 0x77]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180019809
test r9, r9
je 0x180019809
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x21]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x61]
ja 0x180019809
mov rdx, qword [rbp + 0x4f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001980d
mov rsi, rax
mov qword [rsp + 0x38], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x28], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x30], r8
jmp 0x180019812
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180019756
mov rdx, qword [rbp + 0x4f]
mov rsi, qword [rsp + 0x38]
mov r14, qword [rbp + 0x77]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x180019966
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x180019966
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 ecx, ecx
test r8, r8
je 0x18001988e
mov r10, r12
sub r10, rdx
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x180019947
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180019870
mov r8, r11
and r8d, 7
je 0x1800198ac
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x1800198ac
inc rdx
inc rcx
sub r8, 1
jne 0x180019897
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x180019966
test r9, r9
je 0x180019966
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x21]
shl rdx, cl
inc r8
add rdx, rdi
add r8, rdx
cmp r8, qword [rbp - 0x61]
ja 0x180019966
mov rbx, qword [rbp + 0x6f]
mov r15, qword [rbp + 0x5f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x18001996e
sub r11d, r9d
mov qword [rsp + 0x28], r9
inc qword [r13 + 0x10]
mov rsi, rax
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rax
jmp 0x18001996e
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800198af
mov rsi, qword [rsp + 0x38]
mov r14, qword [rbp + 0x77]
jmp 0x18001996e
mov rbx, qword [rbp + 0x6f]
mov r15, qword [rbp + 0x5f]
mov rax, qword [rsp + 0x18]
mov r11, qword [rsp + 0x20]
add rax, 0xaf
cmp rsi, rax
jb 0x1800199ec
mov ecx, dword [rbp + 0x97]
inc r11
movups xmm0, xmmword [rsp + 0x28]
inc ecx
mov qword [rbp + 0x57], rbx
mov qword [rsp + 0x20], r11
mov dword [rbp + 0x97], ecx
movups xmm1, xmmword [rsp + 0x38]
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm1
cmp ecx, 4
jge 0x1800199e2
lea rax, [rbx + 4]
cmp rax, qword [rbp - 0x39]
jae 0x1800199e2
mov rcx, qword [rbp - 0x49]
mov r10, qword [rbp + 0x4f]
mov rsi, qword [rbp + 0x7f]
dec r10
mov qword [rsp + 0x18], rcx
xor r11d, r11d
mov rcx, qword [rbp - 0x59]
mov qword [rsp], rcx
jmp 0x180019194
mov r10, qword [rbp - 0x59]
mov qword [rsp], r10
jmp 0x1800199f4
mov rbx, qword [rbp + 0x57]
mov r10, qword [rsp]
mov rax, qword [rbp - 0x11]
lea r12, [rax + r10*2]
mov rax, qword [rbp - 0x29]
mov r10, qword [rbp + 0x87]
add r12, rbx
add rax, rbx
mov qword [rbp - 0x61], r12
mov r12, qword [rbp - 0x79]
mov rbx, qword [rbp - 0x51]
cmp rax, r12
mov r9, r12
cmovb r9, rax
cmp rbx, r9
ja 0x180019ab0
movsxd rax, dword [r10]
lea rcx, [rbx + 3]
movsxd r8, dword [r10 + 4]
lea rdi, [r10 + 4]
mov rdx, rcx
sub rcx, r8
sub rdx, rax
cmp rbx, rax
jne 0x180019a4e
xor r8d, r8d
jmp 0x180019ab8
cmp rbx, r8
jne 0x180019a5b
mov r8d, 1
jmp 0x180019ab8
cmp rdx, 7
jae 0x180019a76
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180019ab8
cmp rcx, 7
jae 0x180019a8e
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180019ab8
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x180019a9f
mov r8d, 2
jmp 0x180019ab8
movsxd rax, dword [r10 + 0xc]
cmp rbx, rax
jne 0x180019ab4
mov r8d, 3
jmp 0x180019ab8
mov rdi, qword [rbp - 0x31]
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x180019b05
test r8, r8
je 0x180019b05
mov ecx, dword [rbp - 0x51]
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [rdi]
mov dword [r10 + 8], eax
mov eax, dword [r10]
mov dword [rdi], eax
lea eax, [rcx - 1]
mov dword [r10 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x24], eax
mov dword [r10], ecx
mov rcx, qword [rbp - 0x71]
mov esi, dword [rbp - 0x41]
mov r13, qword [rbp + 0x77]
mov r14d, dword [rbp - 0x59]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r15d, dword [r13 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x180019b35
xor edi, edi
jmp 0x180019bae
mov r11d, dword [r13 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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
and ax, r10w
add r8w, ax
add r8w, r15w
or r8w, r9w
mov r15, qword [rbp - 0x71]
lea r9d, [r14 + rsi]
mov eax, 0x3ff
movsxd rdx, r9d
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], edi
cmp r11, 6
jae 0x180019bdc
movzx r10d, r11w
mov ecx, 0x17
jmp 0x180019c4d
cmp r11, 0x82
jae 0x180019c06
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
mov ecx, 0x17
jmp 0x180019c4d
mov ecx, 0x17
cmp r11, 0x842
jae 0x180019c23
lea eax, [r11 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x180019c4d
cmp r11, 0x1842
jae 0x180019c34
mov r10d, 0x15
jmp 0x180019c4d
mov r10d, 0x16
cmp r11, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x180019c59
sub dx, 2
jmp 0x180019c97
cmp rdx, 0x86
jae 0x180019c7e
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x180019c97
cmp rdx, 0x846
jae 0x180019c94
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x180019c97
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x180019cd6
cmp r10w, 8
jae 0x180019cd6
cmp dx, 0x10
jae 0x180019cd6
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x180019d08
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rax, qword [rbp + 0xa7]
xor r14d, r14d
mov rcx, qword [rsp]
mov word [r15 + 0xc], r9w
add r15, 0x10
mov r9, qword [rbp + 0x57]
add qword [rax], r11
mov rax, rcx
mov r11, qword [rbp - 0x19]
mov qword [rbp - 0x71], r15
lea rdi, [rcx + r9]
mov qword [rsp + 0x20], r14
cmp rdi, r11
mov qword [rbp + 0x57], rdi
lea r10, [r9 + 2]
cmovb r11, rdi
shr rax, 2
cmp rbx, rax
jae 0x180019d78
lea rax, [rbx*4]
sub rcx, rax
lea rax, [rcx + r9]
cmp r10, rax
mov eax, 2
cmova rcx, rax
lea r10, [r9 + rcx]
cmp r11, r10
cmovb r10, r11
cmp r10, r11
jae 0x180019e0d
mov rdi, qword [rbp + 0x5f]
mov r12d, 0xffff
mov r13, qword [rbp + 0x7f]
nop
mov r9, qword [r13 + 0x40]
mov rax, r10
and rax, qword [rbp + 0x67]
mov rcx, r10
movzx r8d, word [r13 + 0x30]
imul edx, dword [rax + rdi], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [r13 + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, r10w
cmp rcx, r12
cmova rcx, r12
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 0x180019d90
mov rdi, qword [rbp + 0x57]
mov r13, qword [rbp + 0x77]
mov r12, qword [rbp - 0x79]
mov rbx, rdi
mov qword [rbp + 0x57], rbx
jmp 0x180019fc1
mov r11d, 0xffff
mov r14, qword [rsp + 0x20]
inc rbx
mov r12, qword [rbp - 0x61]
inc r14
mov qword [rsp + 0x20], r14
mov qword [rbp + 0x57], rbx
cmp rbx, r12
jbe 0x180019fb5
mov rax, qword [rbp - 0x11]
mov r10, qword [rbp - 0x39]
lea rax, [r12 + rax*4]
cmp rbx, rax
jbe 0x180019f06
add r10, 0xfffffffffffffffc
lea rax, [rbx + 0x10]
cmp rax, r10
cmovb r10, rax
cmp rbx, r10
jae 0x180019fb5
mov rax, r10
add r14, 4
sub rax, rbx
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x20], r14
nop word [rax + rax]
mov r9, qword [rsi + 0x40]
mov rax, rbx
and rax, qword [rbp + 0x67]
mov rcx, rbx
movzx r8d, word [rsi + 0x30]
imul edx, dword [rax + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rsi + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, bx
cmp rcx, r11
cmova rcx, r11
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], ebx
add rbx, 4
mov word [r9 + rdx*2 + 0x20000], r8w
cmp rbx, r10
jb 0x180019e90
jmp 0x180019fb1
add r10, 0xfffffffffffffffd
lea rax, [rbx + 8]
cmp rax, r10
cmovb r10, rax
cmp rbx, r10
jae 0x180019fb5
mov rax, r10
add r14, 2
sub rax, rbx
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x20], r14
nop word [rax + rax]
mov r9, qword [rsi + 0x40]
mov rax, rbx
and rax, qword [rbp + 0x67]
mov rcx, rbx
movzx r8d, word [rsi + 0x30]
imul edx, dword [rax + r15], 0x1e35a7bd
lea eax, [r8 + 1]
mov word [rsi + 0x30], ax
shr rdx, 0x11
mov eax, dword [r9 + rdx*4]
sub rcx, rax
movzx eax, bx
cmp rcx, r11
cmova rcx, r11
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], ebx
add rbx, 2
mov word [r9 + rdx*2 + 0x20000], r8w
cmp rbx, r10
jb 0x180019f40
mov qword [rbp + 0x57], rbx
mov r13, qword [rbp + 0x77]
mov r12, qword [rbp - 0x79]
mov r15, qword [rbp - 0x71]
mov rsi, qword [rbp - 0x39]
lea rax, [rbx + 4]
mov r11, qword [rbp + 0x5f]
mov r9, qword [rbp + 0x67]
mov r10, qword [rbp + 0x7f]
mov rdi, qword [rbp + 0x87]
mov rdx, qword [rbp - 0x29]
cmp rax, rsi
jb 0x180018990
mov rax, qword [rbp + 0x8f]
sub rsi, rbx
sub r15, qword [rbp - 9]
add rsi, r14
sar r15, 4
mov qword [rax], rsi
mov rax, qword [rbp + 0x9f]
add qword [rax], r15
add rsp, 0xc8
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 r12
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xe0
mov r12, qword [rbp + 0x6f]
mov rax, rcx
mov rbx, qword [rbp + 0x8f]
mov r10, r9
mov r15, rdx
mov qword [rbp - 0x49], rbx
mov rdx, qword [rbp + 0x77]
mov r9d, 1
mov ecx, dword [r12 + 8]
mov rsi, qword [r12 + 0x10]
shl r9, cl
lea r11, [rax + r15]
mov rcx, qword [rbp + 0x87]
lea rdi, [rdx + 0x30]
sub r9, 0x10
mov qword [rbp - 0x59], rdi
mov qword [rbp - 0x41], r9
mov qword [rbp - 0x39], rsi
mov r14, qword [rcx]
mov qword [rsp + 0x20], r14
mov qword [rbp - 0x11], rbx
mov qword [rbp - 0x51], r11
cmp rax, 4
jb 0x18001a0b3
lea rax, [r11 - 3]
mov qword [rbp - 0x29], rax
jmp 0x18001a0b7
mov qword [rbp - 0x29], r15
mov r8, qword [rbp + 0x7f]
mov ecx, 0x40
cmp dword [r12 + 4], 9
mov eax, 0x200
cmovl eax, ecx
mov ecx, dword [r8]
mov qword [rbp - 0x21], rax
add rax, r15
mov qword [rbp - 0x61], rax
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 ecx, dword [r8 + 4]
mov dword [r8 + 0x24], eax
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
lea rax, [r15 + 4]
cmp rax, r11
jae 0x18001bd47
lea rbx, [r8 + 8]
mov qword [rsp + 0xd8], r13
mov qword [rbp - 0x19], rbx
xor r13d, r13d
lea rax, [rsi + r15]
mov qword [rbp - 0x79], r13
mov rdi, r9
mov qword [rsp + 0x18], 0x7e4
mov rcx, r9
mov qword [rsp + 8], r13
mov r8, r11
mov qword [rsp + 0x58], r13
sub r8, r15
mov dword [rbp - 0x69], r13d
cmp r15, r9
mov qword [rbp + 0x47], r8
mov esi, 2
mov r14, rbx
cmovb rdi, r15
cmp rax, r9
mov r9, qword [rdx + 0x438]
cmovb rcx, rax
mov qword [rbp + 0x67], rdi
mov rax, qword [r12 + 0x50]
mov r12d, 0x7e4
mov qword [rsp + 0x28], rax
mov rax, r15
and rax, r10
mov qword [rsp + 0x10], rcx
mov rcx, qword [rbp + 0x57]
imul r15d, dword [rax + rcx], 0x1e35a7bd
lea rdx, [rax + rcx]
mov qword [rbp + 0x8f], r9
mov qword [rsp + 0x50], rax
mov qword [rsp], rdx
shr r15, 0x11
jmp 0x18001a200
mov rdi, qword [rbp + 0x67]
mov rdx, qword [rsp]
mov r8, qword [rbp + 0x47]
mov rcx, qword [rbp + 0x57]
mov rax, qword [rbp + 0x4f]
lea r11, [rsi - 2]
movsxd rbx, dword [r14 - 8]
mov r10, rax
sub r10, rbx
test r11, r11
je 0x18001a22d
movzx eax, r10w
cmp byte [rax + r9 + 0x30000], r15b
jne 0x18001a309
mov rax, qword [rbp + 0x4f]
cmp r10, rax
jae 0x18001a309
cmp rbx, rdi
ja 0x18001a309
and r10, qword [rbp + 0x5f]
add r10, rcx
shr r8, 3
xor ecx, ecx
test r8, r8
je 0x18001a27e
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18001a9af
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001a260
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x18001a2a3
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x18001a2a3
inc rcx
sub r8, 1
jne 0x18001a290
mov r9, rcx
cmp r9, 2
jb 0x18001a2fe
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001a2fe
test r11, r11
je 0x18001a2e2
movzx ecx, r11b
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001a2fe
mov rax, r9
mov qword [rbp - 0x79], rbx
mov qword [rsp + 8], rax
mov r12, r8
mov qword [rsp + 0x58], rax
mov r13, r9
mov qword [rsp + 0x18], r8
mov r9, qword [rbp + 0x8f]
mov rdx, qword [rsp]
mov rcx, qword [rbp + 0x4f]
lea r11, [rsi - 1]
movsxd rbx, dword [r14 - 4]
mov r8, rcx
sub r8, rbx
test r11, r11
je 0x18001a332
movzx eax, r8w
cmp byte [rax + r9 + 0x30000], r15b
jne 0x18001a400
cmp r8, rcx
jae 0x18001a400
cmp rbx, rdi
ja 0x18001a400
and r8, qword [rbp + 0x5f]
xor ecx, ecx
mov rax, qword [rbp + 0x47]
add r8, qword [rbp + 0x57]
mov r9, rax
shr r9, 3
test r9, r9
je 0x18001a382
nop
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x18001a9c3
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001a360
mov rax, qword [rbp + 0x47]
mov r9, rax
and r9d, 7
je 0x18001a3a5
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x18001a3a5
inc rdx
inc rcx
sub r9, 1
jne 0x18001a390
mov r9, rcx
cmp r9, 2
jb 0x18001a400
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001a400
test r11, r11
je 0x18001a3e4
movzx ecx, r11b
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001a400
mov rax, r9
mov qword [rbp - 0x79], rbx
mov qword [rsp + 8], rax
mov r12, r8
mov qword [rsp + 0x58], rax
mov r13, r9
mov qword [rsp + 0x18], r8
mov rdx, qword [rbp + 0x4f]
movsxd r11, dword [r14]
mov r8, rdx
sub r8, r11
test rsi, rsi
je 0x18001a42b
mov rcx, qword [rbp + 0x8f]
movzx eax, r8w
cmp byte [rax + rcx + 0x30000], r15b
jne 0x18001a4f7
cmp r8, rdx
jae 0x18001a4f7
cmp r11, rdi
ja 0x18001a4f7
and r8, qword [rbp + 0x5f]
xor ecx, ecx
mov rbx, qword [rbp + 0x47]
add r8, qword [rbp + 0x57]
mov r9, rbx
mov rdx, qword [rsp]
shr r9, 3
test r9, r9
je 0x18001a47e
nop dword [rax + rax]
mov r10, qword [rdx]
mov rax, qword [rcx + r8]
cmp r10, rax
jne 0x18001a9d7
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001a460
mov r9, rbx
and r9d, 7
je 0x18001a49c
movzx eax, byte [rdx]
cmp byte [rcx + r8], al
jne 0x18001a49c
inc rdx
inc rcx
sub r9, 1
jne 0x18001a487
mov r9, rcx
cmp r9, 2
jb 0x18001a4f7
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001a4f7
test rsi, rsi
je 0x18001a4db
movzx ecx, sil
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001a4f7
mov rax, r9
mov qword [rbp - 0x79], r11
mov qword [rsp + 8], rax
mov r12, r8
mov qword [rsp + 0x58], rax
mov r13, r9
mov qword [rsp + 0x18], r8
mov r8, qword [rbp + 0x4f]
lea rbx, [rsi + 1]
movsxd rdi, dword [r14 + 4]
mov r10, r8
sub r10, rdi
test rbx, rbx
je 0x18001a527
mov rcx, qword [rbp + 0x8f]
movzx eax, r10w
cmp byte [rax + rcx + 0x30000], r15b
jne 0x18001a613
mov rcx, qword [rbp + 0x67]
cmp r10, r8
jae 0x18001a617
cmp rdi, rcx
ja 0x18001a617
and r10, qword [rbp + 0x5f]
xor edx, edx
mov r9, qword [rbp + 0x47]
add r10, qword [rbp + 0x57]
mov rax, qword [rsp]
shr r9, 3
mov rcx, rax
test r9, r9
je 0x18001a58e
mov r11, r10
sub r11, rax
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rcx]
mov r8, qword [rcx + r11]
cmp rax, r8
jne 0x18001a9eb
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x18001a570
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x18001a5b5
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r10], al
jne 0x18001a5b5
inc rcx
inc rdx
sub r8, 1
jne 0x18001a5a0
mov r9, rdx
cmp r9, 2
jb 0x18001a60f
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001a60f
test rbx, rbx
je 0x18001a5f3
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001a60f
mov rdx, r9
mov qword [rbp - 0x79], rdi
mov qword [rsp + 8], rdx
mov r12, r8
mov qword [rsp + 0x58], rdx
mov r13, r9
mov qword [rsp + 0x18], r8
mov r8, qword [rbp + 0x4f]
mov rcx, qword [rbp + 0x67]
mov r9, qword [rbp + 0x8f]
add rsi, 4
add r14, 0x10
lea rax, [rsi - 2]
cmp rax, 0x10
jb 0x18001a1f0
mov eax, dword [r9 + r15*4]
mov rsi, r15
mov rbx, qword [rbp + 0x77]
mov rdi, r8
movzx r14d, word [r9 + r15*2 + 0x20000]
and esi, 0x1ff
mov r15, qword [rsp + 0x50]
xor r11d, r11d
sub rdi, rax
mov r10, r9
mov rbx, qword [rbx + 0x430]
test rbx, rbx
je 0x18001a789
nop
dec rbx
add r11, rdi
cmp r11, rcx
ja 0x18001a789
mov rdx, qword [rbp + 0x5f]
sub r8, r11
mov rcx, rsi
and r8, rdx
shl rcx, 9
add rcx, r14
movzx r14d, word [r10 + rcx*4 + 0x40002]
movzx edi, word [r10 + rcx*4 + 0x40000]
lea rcx, [r15 + r13]
cmp rcx, rdx
ja 0x18001a778
lea rax, [r8 + r13]
cmp rax, rdx
ja 0x18001a778
mov r9, qword [rbp + 0x57]
movzx eax, byte [rax + r9]
cmp byte [rcx + r9], al
jne 0x18001a778
mov rax, qword [rbp + 0x47]
lea r10, [r8 + r9]
mov rdx, qword [rsp]
mov r8, rax
shr r8, 3
xor ecx, ecx
test r8, r8
je 0x18001a712
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18001a9ff
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001a6f0
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x18001a733
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18001a733
inc rcx
sub r8, 1
jne 0x18001a720
mov rdx, rcx
mov r10, qword [rbp + 0x8f]
cmp rdx, 4
jb 0x18001a778
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r12, rax
jae 0x18001a778
mov r12, rax
mov qword [rsp + 8], rdx
mov r13, rdx
mov qword [rsp + 0x58], rdx
mov qword [rbp - 0x79], r11
mov qword [rsp + 0x18], rax
mov rcx, qword [rbp + 0x67]
mov r8, qword [rbp + 0x4f]
test rbx, rbx
jne 0x18001a670
mov rdi, qword [rbp - 0x59]
mov esi, 0xffff
mov rbx, qword [rbp + 0x57]
imul eax, dword [r15 + rbx], 0x1e35a7bd
mov r15, qword [rbp + 0x4f]
mov rcx, r15
mov r9d, eax
shr r9, 0x11
mov rdx, r9
and edx, 0x1ff
movzx eax, word [rdi + rdx*2]
mov r8d, eax
inc ax
mov word [rdi + rdx*2], ax
and r8d, 0x1ff
mov eax, dword [r10 + r9*4]
sub rcx, rax
movzx eax, r15w
cmp rcx, rsi
cmova rcx, rsi
shl rdx, 9
mov byte [rax + r10 + 0x30000], r9b
add rdx, r8
cmp qword [rsp + 0x18], 0x7e4
mov word [r10 + rdx*4 + 0x40000], cx
movzx eax, word [r10 + r9*2 + 0x20000]
mov word [r10 + rdx*4 + 0x40002], ax
mov dword [r10 + r9*4], r15d
mov word [r10 + r9*2 + 0x20000], r8w
jne 0x18001ab90
mov rax, qword [rbp + 0x77]
mov r13, qword [rax + 0x440]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18001bb30
mov r12, qword [rsp]
lea r15, [rcx + 1]
mov r10, qword [rbp + 0x6f]
imul ebx, dword [r12], 0x1e35a7bd
mov qword [r13 + 8], r15
mov rax, qword [r10 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x18001aa2b
mov r11d, ecx
mov rax, qword [r10 + 0x70]
movzx esi, word [rax + rbx*2]
cmp rcx, qword [rbp + 0x47]
ja 0x18001aa2b
mov rdi, qword [r10 + 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 0x18001a8e2
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001aa13
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001a8c0
mov r10, qword [rbp + 0x6f]
mov r8, r11
and r8d, 7
je 0x18001a903
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x18001a903
inc rcx
sub r8, 1
jne 0x18001a8f0
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001aa2b
test r9, r9
je 0x18001aa2b
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rsp + 0x10]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rsp + 0x28]
ja 0x18001aa30
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001aa30
mov r10, qword [rbp + 0x6f]
sub r11d, r9d
mov qword [rsp + 0x18], rax
lea rax, [r14 + 1]
mov qword [r13 + 0x10], rax
mov qword [rsp + 8], r9
mov qword [rsp + 0x58], r9
mov dword [rbp - 0x69], r11d
mov qword [rbp - 0x79], r8
jmp 0x18001aa30
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001a2a6
xor rax, r10
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001a3a8
xor rax, r10
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001a49f
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x18001a5b8
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001a736
mov r10, qword [rbp + 0x6f]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001a906
mov rsi, qword [rsp + 0x10]
mov r14, qword [rbp + 0x47]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r10 + 0x78]
movzx ecx, byte [rax + rbx + 1]
test cl, cl
je 0x18001ab9a
mov rax, qword [r10 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, r14
ja 0x18001ab9a
mov rbx, qword [r10 + 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 0x18001aab2
mov r10, r12
sub r10, rdx
nop
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001ab78
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001aa90
mov r10, qword [rbp + 0x6f]
mov r8, r11
and r8d, 7
je 0x18001aad5
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001aad5
inc rdx
inc rcx
sub r8, 1
jne 0x18001aac0
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001ab9a
test r9, r9
je 0x18001ab9a
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rbx]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
lea r8, [rsi + 1]
add rdx, rdi
add r8, rdx
cmp r8, qword [rsp + 0x28]
ja 0x18001ab9a
mov rbx, qword [rbp + 0x57]
mov esi, 0xffff
mov r15, qword [rbp + 0x4f]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x18]
jb 0x18001aba7
mov rcx, r9
mov qword [rbp - 0x79], r8
sub r11d, r9d
mov qword [rsp + 8], rcx
inc qword [r13 + 0x10]
mov qword [rsp + 0x58], rcx
mov dword [rbp - 0x69], r11d
mov qword [rsp + 0x18], rax
jmp 0x18001abac
mov r10, qword [rbp + 0x6f]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001aad8
mov r14, qword [rbp + 0x47]
mov r10, qword [rbp + 0x6f]
jmp 0x18001aba7
mov rbx, qword [rbp + 0x57]
mov esi, 0xffff
mov r15, qword [rbp + 0x4f]
mov rcx, qword [rsp + 8]
cmp qword [rsp + 0x18], 0x7e4
jbe 0x18001bb2c
mov dword [rbp + 0x8f], 0
dec r14
cmp dword [r10 + 4], 5
mov qword [rbp + 0x47], r14
jge 0x18001abe3
lea rax, [rcx - 1]
mov r13, r14
cmp rax, r14
cmovb r13, rax
jmp 0x18001abe6
xor r13d, r13d
mov rdx, qword [rbp - 0x41]
lea r11, [r15 + 1]
mov rax, qword [rbp - 0x39]
cmp r11, rdx
mov r14, qword [rbp - 0x19]
mov esi, 0x7e4
mov rdi, rdx
mov qword [rsp + 0x40], rsi
cmovb rdi, r11
mov qword [rsp + 0x38], 0
inc rax
mov qword [rbp + 0x67], r11
add rax, r15
mov qword [rsp + 0x28], rdi
cmp rax, rdx
mov qword [rsp + 0x30], 0
mov rcx, rdx
mov dword [rsp + 0x48], 0
cmovb rcx, rax
mov esi, 2
mov rax, qword [r10 + 0x50]
mov r12d, 0x7e4
mov qword [rbp - 0x61], rax
mov rax, qword [rbp + 0x77]
mov qword [rbp - 0x31], rcx
mov rcx, qword [rbp + 0x57]
mov r9, qword [rax + 0x438]
mov rax, r11
and rax, qword [rbp + 0x5f]
imul r15d, dword [rax + rcx], 0x1e35a7bd
lea r8, [rax + rcx]
mov qword [rsp], r9
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x10], r8
shr r15, 0x11
jmp 0x18001aca2
mov rdi, qword [rsp + 0x28]
mov r11, qword [rbp + 0x67]
mov r8, qword [rsp + 0x10]
mov rcx, qword [rbp + 0x57]
movsxd rbx, dword [r14 - 8]
mov r10, r11
sub r10, rbx
lea r11, [rsi - 2]
test r11, r11
je 0x18001acc7
movzx eax, r10w
cmp byte [rax + r9 + 0x30000], r15b
jne 0x18001ada0
cmp r10, qword [rbp + 0x67]
jae 0x18001ada0
cmp rbx, rdi
ja 0x18001ada0
and r10, qword [rbp + 0x5f]
mov rdx, r8
mov rax, qword [rbp + 0x47]
add r10, rcx
mov r9, rax
xor ecx, ecx
shr r9, 3
test r9, r9
je 0x18001ad22
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [rcx + r10]
cmp r8, rax
jne 0x18001b0ae
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001ad00
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x18001ad43
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18001ad43
inc rcx
sub r8, 1
jne 0x18001ad30
mov r9, rcx
cmp r9, 2
jb 0x18001ad97
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001ad97
test r11, r11
je 0x18001ad82
movzx ecx, r11b
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001ad97
mov r12, r8
mov qword [rsp + 0x30], r9
mov r13, r9
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r8
mov r9, qword [rsp]
mov r8, qword [rsp + 0x10]
movsxd rbx, dword [r14 - 4]
lea r11, [rsi - 1]
mov r10, qword [rbp + 0x67]
sub r10, rbx
test r11, r11
je 0x18001adc6
movzx eax, r10w
cmp byte [rax + r9 + 0x30000], r15b
jne 0x18001ae99
cmp r10, qword [rbp + 0x67]
jae 0x18001ae99
cmp rbx, rdi
ja 0x18001ae99
and r10, qword [rbp + 0x5f]
xor ecx, ecx
mov rax, qword [rbp + 0x47]
mov rdx, r8
add r10, qword [rbp + 0x57]
mov r9, rax
shr r9, 3
test r9, r9
je 0x18001ae22
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [rcx + r10]
cmp r8, rax
jne 0x18001b0c2
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001ae00
mov rax, qword [rbp + 0x47]
mov r8, rax
and r8d, 7
je 0x18001ae45
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18001ae45
inc rdx
inc rcx
sub r8, 1
jne 0x18001ae30
mov r9, rcx
cmp r9, 2
jb 0x18001ae99
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001ae99
test r11, r11
je 0x18001ae84
movzx ecx, r11b
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001ae99
mov r12, r8
mov qword [rsp + 0x30], r9
mov r13, r9
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r8
mov rbx, qword [rbp + 0x67]
movsxd r11, dword [r14]
mov r10, rbx
sub r10, r11
test rsi, rsi
je 0x18001aec1
mov rcx, qword [rsp]
movzx eax, r10w
cmp byte [rax + rcx + 0x30000], r15b
jne 0x18001af90
cmp r10, rbx
jae 0x18001af90
cmp r11, rdi
ja 0x18001af90
and r10, qword [rbp + 0x5f]
xor ecx, ecx
mov rdi, qword [rbp + 0x47]
add r10, qword [rbp + 0x57]
mov r9, rdi
mov rdx, qword [rsp + 0x10]
shr r9, 3
test r9, r9
je 0x18001af1e
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rdx]
mov rax, qword [rcx + r10]
cmp r8, rax
jne 0x18001b0d6
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001af00
mov r8, rdi
and r8d, 7
je 0x18001af3c
movzx eax, byte [rdx]
cmp byte [rcx + r10], al
jne 0x18001af3c
inc rdx
inc rcx
sub r8, 1
jne 0x18001af27
mov r9, rcx
cmp r9, 2
jb 0x18001af90
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001af90
test rsi, rsi
je 0x18001af7b
movzx ecx, sil
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001af90
mov r12, r8
mov qword [rsp + 0x30], r9
mov r13, r9
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x40], r8
movsxd rdi, dword [r14 + 4]
mov r11, rbx
sub r11, rdi
lea rbx, [rsi + 1]
test rbx, rbx
je 0x18001afb9
mov rcx, qword [rsp]
movzx eax, r11w
cmp byte [rax + rcx + 0x30000], r15b
jne 0x18001b0fe
mov rdx, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x28]
cmp r11, rdx
jae 0x18001b107
cmp rdi, rcx
ja 0x18001b107
and r11, qword [rbp + 0x5f]
xor edx, edx
mov r9, qword [rbp + 0x47]
add r11, qword [rbp + 0x57]
mov rax, qword [rsp + 0x10]
shr r9, 3
mov rcx, rax
test r9, r9
je 0x18001b01e
mov r10, r11
sub r10, rax
nop dword [rax]
mov r8, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r8, rax
jne 0x18001b0ea
add rcx, 8
add rdx, 8
sub r9, 1
jne 0x18001b000
mov r8, qword [rbp + 0x47]
and r8d, 7
je 0x18001b045
nop dword [rax + rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18001b045
inc rcx
inc rdx
sub r8, 1
jne 0x18001b030
mov r9, rdx
cmp r9, 2
jb 0x18001b0fe
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x18001b0fe
test rbx, rbx
je 0x18001b08b
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x18001b0fe
mov rcx, qword [rsp + 0x28]
mov r12, r8
mov rdx, qword [rbp + 0x67]
mov r13, r9
mov qword [rsp + 0x30], r9
mov r10, r8
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], r8
jmp 0x18001b10c
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001ad46
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001ae48
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001af3f
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rdx
jmp 0x18001b048
mov rdx, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x28]
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp]
add rsi, 4
add r14, 0x10
lea rax, [rsi - 2]
cmp rax, 0x10
jb 0x18001ac90
mov rax, qword [rbp + 0x77]
mov rsi, r15
movzx r14d, word [r9 + r15*2 + 0x20000]
mov rdi, rdx
and esi, 0x1ff
xor r11d, r11d
mov rbx, qword [rax + 0x430]
mov eax, dword [r9 + r15*4]
mov r15, qword [rsp + 0x50]
sub rdi, rax
test rbx, rbx
je 0x18001b29e
nop
dec rbx
add r11, rdi
cmp r11, rcx
ja 0x18001b29e
mov rcx, rsi
mov r8, rdx
shl rcx, 9
sub r8, r11
and r8, qword [rbp + 0x5f]
add rcx, r14
movzx r14d, word [r9 + rcx*4 + 0x40002]
movzx edi, word [r9 + rcx*4 + 0x40000]
lea rcx, [r15 + r13]
cmp rcx, qword [rbp + 0x5f]
ja 0x18001b290
lea rax, [r8 + r13]
cmp rax, qword [rbp + 0x5f]
ja 0x18001b290
mov r15, qword [rbp + 0x57]
movzx eax, byte [rax + r15]
cmp byte [rcx + r15], al
mov r15, qword [rsp + 0x50]
jne 0x18001b290
mov r10, qword [rbp + 0x57]
xor eax, eax
mov rcx, qword [rbp + 0x47]
add r10, r8
mov rdx, qword [rsp + 0x10]
mov r8, rcx
shr r8, 3
test r8, r8
je 0x18001b20e
nop word [rax + rax]
mov r9, qword [rdx]
mov rcx, qword [rax + r10]
cmp r9, rcx
jne 0x18001b276
add rdx, 8
add rax, 8
sub r8, 1
jne 0x18001b1f0
mov rcx, qword [rbp + 0x47]
mov r8, rcx
and r8d, 7
je 0x18001b233
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
cmp byte [rax + r10], cl
jne 0x18001b233
inc rax
sub r8, 1
jne 0x18001b220
mov rdx, rax
mov r9, qword [rsp]
cmp rdx, 4
jb 0x18001b287
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r12, rax
jae 0x18001b287
mov r12, rax
mov qword [rsp + 0x30], rdx
mov r13, rdx
mov qword [rsp + 0x38], r11
mov r10, rax
mov qword [rsp + 0x40], rax
jmp 0x18001b28c
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18001b236
mov r10, qword [rsp + 0x40]
mov rdx, qword [rbp + 0x67]
mov rcx, qword [rsp + 0x28]
test rbx, rbx
jne 0x18001b160
mov r11, qword [rsp]
mov rcx, qword [rbp - 0x59]
mov rbx, qword [rbp + 0x67]
mov r13, qword [rbp + 0x57]
imul eax, dword [r15 + r13], 0x1e35a7bd
mov r9d, eax
shr r9, 0x11
mov rdx, r9
and edx, 0x1ff
movzx eax, word [rcx + rdx*2]
mov r8d, eax
inc ax
mov word [rcx + rdx*2], ax
and r8d, 0x1ff
mov eax, dword [r11 + r9*4]
mov rcx, rbx
sub rcx, rax
movzx eax, bx
mov byte [rax + r11 + 0x30000], r9b
mov eax, 0xffff
cmp rcx, rax
cmova rcx, rax
shl rdx, 9
add rdx, r8
cmp r10, 0x7e4
mov r10, qword [rbp + 0x6f]
mov word [r11 + rdx*4 + 0x40000], cx
movzx eax, word [r11 + r9*2 + 0x20000]
mov word [r11 + rdx*4 + 0x40002], ax
mov dword [r11 + r9*4], ebx
mov word [r11 + r9*2 + 0x20000], r8w
jne 0x18001b62f
mov rax, qword [rbp + 0x77]
mov r13, qword [rax + 0x440]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18001b624
mov r12, qword [rsp + 0x10]
lea r15, [rcx + 1]
imul ebx, dword [r12], 0x1e35a7bd
mov qword [r13 + 8], r15
mov rax, qword [r10 + 0x78]
shr rbx, 0x11
and ebx, 0x7ffe
movzx ecx, byte [rbx + rax]
test cl, cl
je 0x18001b4c5
mov r11d, ecx
mov rax, qword [r10 + 0x70]
movzx esi, word [rax + rbx*2]
cmp rcx, qword [rbp + 0x47]
ja 0x18001b4c5
mov rdi, qword [r10 + 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 0x18001b3f2
mov r10, r12
sub r10, rdx
nop
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18001b4ad
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001b3d0
mov r10, qword [rbp + 0x6f]
mov r8, r11
and r8d, 7
je 0x18001b413
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x18001b413
inc rcx
sub r8, 1
jne 0x18001b400
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001b4c5
test r9, r9
je 0x18001b4c5
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rdi]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x31]
shl rdx, cl
inc r8
add rdx, rsi
add r8, rdx
cmp r8, qword [rbp - 0x61]
ja 0x18001b4c5
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001b4c5
mov rsi, rax
mov qword [rsp + 0x40], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x30], r9
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], r8
jmp 0x18001b4ca
mov r10, qword [rbp + 0x6f]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001b416
mov rsi, qword [rsp + 0x40]
mov r14, qword [rbp + 0x47]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r10 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18001b63a
mov rax, qword [r10 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, r14
ja 0x18001b63a
mov rbx, qword [r10 + 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 0x18001b552
mov r10, r12
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18001b60c
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001b530
mov r10, qword [rbp + 0x6f]
mov r8, r11
and r8d, 7
je 0x18001b575
nop dword [rax + rax]
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001b575
inc rdx
inc rcx
sub r8, 1
jne 0x18001b560
mov r9, rcx
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001b63a
test r9, r9
je 0x18001b63a
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [r11 + rbx]
and eax, 0x3f
lea rdx, [rax + r8*4]
mov r8, qword [rbp - 0x31]
shl rdx, cl
inc r8
add rdx, rdi
add r8, rdx
cmp r8, qword [rbp - 0x61]
ja 0x18001b63a
mov rbx, qword [rbp + 0x67]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, rsi
jb 0x18001b63e
sub r11d, r9d
mov qword [rsp + 0x30], r9
inc qword [r13 + 0x10]
mov rsi, rax
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], rax
jmp 0x18001b63e
mov r10, qword [rbp + 0x6f]
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001b578
mov rsi, qword [rsp + 0x40]
mov r14, qword [rbp + 0x47]
jmp 0x18001b63e
mov rsi, qword [rsp + 0x40]
mov r14, qword [rbp + 0x47]
jmp 0x18001b642
mov rbx, qword [rbp + 0x67]
mov r13, qword [rbp + 0x57]
mov rax, qword [rsp + 0x18]
mov r11, qword [rsp + 0x20]
add rax, 0xaf
cmp rsi, rax
jb 0x18001b6ba
mov ecx, dword [rbp + 0x8f]
inc r11
movups xmm0, xmmword [rsp + 0x30]
inc ecx
mov r15, rbx
mov qword [rbp + 0x4f], rbx
mov qword [rsp + 0x20], r11
mov dword [rbp + 0x8f], ecx
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rbp - 0x71], xmm1
cmp ecx, 4
jge 0x18001b6ae
lea rax, [rbx + 4]
cmp rax, qword [rbp - 0x51]
jae 0x18001b6ae
mov rcx, qword [rbp - 0x71]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 8], rcx
jmp 0x18001abc5
mov r10, qword [rsp + 0x58]
mov qword [rsp + 8], r10
jmp 0x18001b6c3
mov r15, qword [rbp + 0x4f]
mov r10, qword [rsp + 8]
mov rax, qword [rbp - 0x21]
mov r9, qword [rbp - 0x41]
mov rdi, qword [rbp - 0x79]
lea r12, [rax + r10*2]
mov rax, qword [rbp - 0x39]
mov r10, qword [rbp + 0x7f]
add rax, r15
add r12, r15
cmp rax, r9
mov qword [rbp - 0x61], r12
cmovb r9, rax
cmp rdi, r9
ja 0x18001b76f
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 0x18001b70f
xor r8d, r8d
jmp 0x18001b773
cmp rdi, r8
jne 0x18001b71c
mov r8d, 1
jmp 0x18001b773
cmp rdx, 7
jae 0x18001b737
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18001b773
cmp rcx, 7
jae 0x18001b74f
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18001b773
movsxd rax, dword [r10 + 8]
cmp rdi, rax
jne 0x18001b760
mov r8d, 2
jmp 0x18001b773
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rdi, rax
je 0x18001b773
lea r8, [rdi + 0xf]
cmp rdi, r9
ja 0x18001b7ee
test r8, r8
je 0x18001b7ee
mov edx, dword [r10]
mov ecx, dword [rbp - 0x79]
mov eax, dword [r10 + 8]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
lea eax, [rcx - 1]
mov dword [r10 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x24], eax
lea eax, [rdx - 1]
mov dword [r10 + 0x28], eax
lea eax, [rdx + 1]
mov dword [r10 + 0x2c], eax
lea eax, [rdx - 2]
mov dword [r10 + 0x30], eax
lea eax, [rdx + 2]
mov dword [r10 + 0x34], eax
lea eax, [rdx - 3]
mov dword [r10 + 0x38], eax
lea eax, [rdx + 3]
mov dword [r10 + 0x3c], eax
mov dword [r10 + 4], edx
mov dword [r10], ecx
mov rcx, qword [rbp - 0x49]
mov esi, dword [rbp - 0x69]
mov r12, qword [rbp + 0x6f]
mov r14d, dword [rsp + 0x58]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov r15d, dword [r12 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x18001b820
xor ebx, ebx
jmp 0x18001b89a
mov r11d, dword [r12 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 0x20]
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, r15w
or r8w, r9w
mov r15, qword [rbp - 0x49]
lea r9d, [r14 + rsi]
mov eax, 0x3ff
movsxd rdx, r9d
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], ebx
cmp r11, 6
jae 0x18001b8c8
movzx r10d, r11w
mov ecx, 0x17
jmp 0x18001b939
cmp r11, 0x82
jae 0x18001b8f2
lea eax, [r11 - 2]
bsr ecx, eax
lea r10, [r11 - 2]
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
mov ecx, 0x17
jmp 0x18001b939
mov ecx, 0x17
cmp r11, 0x842
jae 0x18001b90f
lea eax, [r11 - 0x42]
bsr r10d, eax
add r10w, 0xa
jmp 0x18001b939
cmp r11, 0x1842
jae 0x18001b920
mov r10d, 0x15
jmp 0x18001b939
mov r10d, 0x16
cmp r11, 0x5842
movzx eax, cx
cmovb ax, r10w
movzx r10d, ax
cmp rdx, 0xa
jae 0x18001b945
sub dx, 2
jmp 0x18001b983
cmp rdx, 0x86
jae 0x18001b96a
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x18001b983
cmp rdx, 0x846
jae 0x18001b980
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x18001b983
movzx edx, cx
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x18001b9c2
cmp r10w, 8
jae 0x18001b9c2
cmp dx, 0x10
jae 0x18001b9c2
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x18001b9f4
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rcx, qword [rbp + 0x4f]
xor r14d, r14d
mov rax, qword [rbp + 0x9f]
mov rdx, qword [rsp + 8]
mov rbx, qword [rbp - 0x29]
mov word [r15 + 0xc], r9w
add r15, 0x10
add qword [rax], r11
lea r11, [rcx + 2]
lea rsi, [rdx + rcx]
mov qword [rbp - 0x49], r15
cmp rsi, rbx
mov qword [rsp + 0x20], r14
mov rax, rdx
mov qword [rbp + 0x4f], rsi
cmovb rbx, rsi
shr rax, 2
cmp rdi, rax
jae 0x18001ba65
lea rax, [rdi*4]
sub rdx, rax
lea rax, [rdx + rcx]
cmp r11, rax
mov eax, 2
cmova rdx, rax
lea r11, [rcx + rdx]
cmp rbx, r11
cmovb r11, rbx
cmp r11, rbx
jae 0x18001bb20
mov rsi, qword [rbp + 0x5f]
mov r14d, 0xffff
mov r12, qword [rbp + 0x77]
mov rdi, qword [rbp - 0x59]
mov r10, qword [r12 + 0x438]
mov rax, r11
and rax, rsi
mov rdx, r11
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
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 0x18001ba80
mov rsi, qword [rbp + 0x4f]
mov r12, qword [rbp + 0x6f]
mov r14, qword [rsp + 0x20]
mov r15, rsi
mov qword [rbp + 0x4f], rsi
jmp 0x18001bd10
mov rdi, qword [rbp - 0x59]
mov r14, qword [rsp + 0x20]
inc r15
mov r12, qword [rbp - 0x61]
inc r14
mov qword [rsp + 0x20], r14
mov qword [rbp + 0x4f], r15
cmp r15, r12
jbe 0x18001bd0c
mov rax, qword [rbp - 0x21]
mov r11, qword [rbp - 0x51]
lea rax, [r12 + rax*4]
cmp r15, rax
jbe 0x18001bc38
add r11, 0xfffffffffffffffc
lea rax, [r15 + 0x10]
cmp rax, r11
cmovb r11, rax
cmp r15, r11
jae 0x18001bd0c
add r14, 4
mov rax, r11
sub rax, r15
dec rax
and rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x20], r14
mov r14, qword [rbp + 0x77]
nop dword [rax + rax]
mov r10, qword [r14 + 0x438]
mov rax, r15
and rax, qword [rbp + 0x5f]
mov rdx, r15
imul eax, dword [rax + rbx], 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, r15w
cmp rdx, rsi
cmova rdx, rsi
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], r15d
add r15, 4
mov word [r10 + r9*2 + 0x20000], r8w
cmp r15, r11
jb 0x18001bba0
jmp 0x18001bd03
add r11, 0xfffffffffffffffd
lea rax, [r15 + 8]
cmp rax, r11
cmovb r11, rax
cmp r15, r11
jae 0x18001bd0c
add r14, 2
mov rax, r11
sub rax, r15
dec rax
and rax, 0xfffffffffffffffe
add r14, rax
mov qword [rsp + 0x20], r14
mov r14, qword [rbp + 0x77]
nop dword [rax]
mov r10, qword [r14 + 0x438]
mov rax, r15
and rax, qword [rbp + 0x5f]
mov rdx, r15
imul eax, dword [rax + rbx], 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, r15w
cmp rdx, rsi
cmova rdx, rsi
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], r15d
add r15, 2
mov word [r10 + r9*2 + 0x20000], r8w
cmp r15, r11
jb 0x18001bc70
mov r14, qword [rsp + 0x20]
mov qword [rbp + 0x4f], r15
mov r12, qword [rbp + 0x6f]
mov r11, qword [rbp - 0x51]
lea rax, [r15 + 4]
mov r10, qword [rbp + 0x5f]
mov r13d, 0
mov rdx, qword [rbp + 0x77]
mov r9, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x19]
mov rsi, qword [rbp - 0x39]
cmp rax, r11
jb 0x18001a154
mov rbx, qword [rbp - 0x49]
mov r13, qword [rsp + 0xd8]
mov rax, qword [rbp + 0x87]
sub r11, r15
sub rbx, qword [rbp - 0x11]
add r11, r14
sar rbx, 4
mov qword [rax], r11
mov rax, qword [rbp + 0x97]
add qword [rax], rbx
add rsp, 0xe0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x1800c6008]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rdi, qword [rbp + 0xc0]
mov rax, rcx
mov rcx, qword [rbp + 0xd8]
mov rbx, r9
mov r9, qword [rbp + 0xa8]
mov r12, rdx
mov r15, qword [rbp + 0xc8]
mov r11d, 1
mov rsi, qword [rbp + 0xd0]
mov r10, r8
mov qword [rbp - 0x40], rcx
mov ecx, dword [r9 + 8]
shl r11, cl
mov rcx, qword [r9 + 0x10]
sub r11, 0x10
mov qword [rbp - 0x48], rcx
lea rcx, [rax + r12]
mov qword [rsp], r8
mov r8, qword [rbp + 0xb8]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rbp + 0xb0]
mov qword [rbp - 0x30], rdi
mov rdi, qword [rdi]
mov qword [rbp - 0x78], rcx
mov qword [rsp + 0x10], rbx
mov qword [rbp - 0x60], r9
mov qword [rsp + 0x50], rdx
mov qword [rbp - 0x80], r8
mov qword [rsp + 0x30], r15
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x70], r11
mov qword [rbp - 0x28], r15
mov qword [rsp + 0x18], rdi
cmp rax, 8
jb 0x18001be4f
lea rax, [rcx - 7]
mov qword [rbp - 0x58], rax
jmp 0x18001be53
mov qword [rbp - 0x58], r12
cmp dword [r9 + 4], 9
mov eax, 0x200
mov r14d, 0x40
cmovl eax, r14d
mov qword [rbp - 0x50], rax
add rax, r12
mov qword [rsp + 0x48], rax
lea rax, [r12 + 8]
cmp rax, rcx
jae 0x18001cff9
movdqa xmm2, xmmword [0x1800c1d20]
mov eax, 3
movdqa xmm4, xmmword [0x1800c1d50]
movabs rsi, 0x35a7bd1e35a7bd00
mov qword [rsp + 0x138], r13
movd xmm3, eax
nop dword [rax]
mov rdi, qword [rdx + 0x38]
mov r9, rcx
mov rcx, qword [rsp + 0x28]
sub r9, r12
cmp r12, r11
mov qword [rsp + 8], r9
mov r13, r11
mov qword [rsp + 0x40], 0x7e4
cmovb r13, r12
mov qword [rsp + 0x38], rdi
xor r11d, r11d
mov r12, rbx
and r12, qword [rsp + 0x28]
xor r15d, r15d
movsxd rbx, dword [r8]
add r10, r12
mov r8, qword [rsp + 0x10]
sub rcx, rbx
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x58], r11
mov rax, qword [r10]
movzx r14d, byte [r10]
imul rax, rsi
mov qword [rsp + 0x60], r11
mov esi, 0x7e4
shr rax, 0x2c
mov dword [rsp + 0x70], r11d
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, qword [rsp + 0x28]
jae 0x18001c002
mov r11, qword [rsp]
mov eax, r8d
and rcx, rax
add r11, rcx
movzx eax, byte [r11]
cmp r14d, eax
jne 0x18001c002
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r10
test rax, rax
je 0x18001bf83
nop
mov r9, qword [rdx]
mov r8, qword [rcx + r11]
cmp r9, r8
jne 0x18001bfec
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18001bf60
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001bfa3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001bfa3
inc rcx
sub r8, 1
jne 0x18001bf90
mov rax, rcx
mov rdx, qword [rsp]
mov r8, qword [rsp + 0x10]
cmp rax, 4
jb 0x18001c006
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x18001c006
mov qword [rsp + 0x20], rax
mov r15, rax
mov qword [rsp + 0x58], rax
mov rsi, rcx
add rax, rdx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x40], rcx
movzx r14d, byte [rax + r12]
jmp 0x18001c006
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x18001bfa6
mov rdx, qword [rsp]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8 - 0x20], xmm0
add rax, 2
cmp rax, 4
jb 0x18001c010
mov rax, qword [rsp + 0x28]
shr rax, 3
and eax, 3
mov ebx, r8d
mov rcx, qword [rbp + rax*8 - 0x20]
mov rax, qword [rbp - 0x20]
mov qword [rsp + 0x78], rcx
mov ecx, dword [rdi + rax*4]
mov rdi, qword [rsp + 0x28]
and rbx, rcx
add rbx, rdx
sub rdi, rcx
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001c12d
test rdi, rdi
je 0x18001c12d
cmp rdi, r13
ja 0x18001c12d
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r10
test r8, r8
je 0x18001c0c3
mov r11, rbx
sub r11, r10
nop
mov rax, qword [rdx]
mov r9, qword [rdx + r11]
cmp rax, r9
jne 0x18001c3ff
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001c0a0
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c0e2
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18001c0e2
inc rcx
sub r8, 1
jne 0x18001c0d0
mov rdx, rcx
cmp rdx, 4
jb 0x18001c12d
bsr eax, edi
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18001c12d
mov rax, qword [rsp]
mov r15, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x58], rdx
mov rsi, r8
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x60], rdi
movzx r14d, byte [rax + r12]
mov rax, qword [rbp - 0x18]
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x28]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001c21f
test rdi, rdi
je 0x18001c21f
cmp rdi, r13
ja 0x18001c21f
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r10
test r8, r8
je 0x18001c1b3
mov r11, rbx
sub r11, r10
nop word [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r11]
cmp rax, r9
jne 0x18001c418
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001c190
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c1d4
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001c1d4
inc rcx
inc rdx
sub r8, 1
jne 0x18001c1c0
mov r8, rdx
cmp r8, 4
jb 0x18001c21f
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001c21f
mov rax, qword [rsp]
mov r15, r8
add rax, r8
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x58], r8
mov rsi, rdx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x60], rdi
movzx r14d, byte [rax + r12]
mov rax, qword [rbp - 0x10]
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x28]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001c30f
test rdi, rdi
je 0x18001c30f
cmp rdi, r13
ja 0x18001c30f
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r10
test r8, r8
je 0x18001c2a3
mov r11, rbx
sub r11, r10
nop dword [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r11]
cmp rax, r9
jne 0x18001c431
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001c280
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c2c4
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001c2c4
inc rcx
inc rdx
sub r8, 1
jne 0x18001c2b0
mov r8, rdx
cmp r8, 4
jb 0x18001c30f
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001c30f
mov rax, qword [rsp]
mov r15, r8
add rax, r8
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x58], r8
mov rsi, rdx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x60], rdi
movzx r14d, byte [rax + r12]
mov rax, qword [rbp - 8]
mov rdi, qword [rsp + 0x38]
mov r12, qword [rsp + 0x28]
mov r11d, dword [rsp + 0x10]
mov rbx, r12
mov ecx, dword [rdi + rax*4]
and r11, rcx
sub rbx, rcx
mov rcx, qword [rsp]
add r11, rcx
movzx eax, byte [r11 + r15]
cmp r14d, eax
jne 0x18001c467
test rbx, rbx
je 0x18001c467
cmp rbx, r13
ja 0x18001c467
mov rax, r9
xor ecx, ecx
shr rax, 3
test rax, rax
je 0x18001c393
mov r9, r11
sub r9, r10
nop dword [rax]
mov rdx, qword [r10]
mov r8, qword [r10 + r9]
cmp rdx, r8
jne 0x18001c44a
add r10, 8
add rcx, 8
sub rax, 1
jne 0x18001c370
mov r9, qword [rsp + 8]
mov rdx, r9
and edx, 7
je 0x18001c3b6
nop dword [rax + rax]
movzx eax, byte [r10]
cmp byte [rcx + r11], al
jne 0x18001c3b6
inc r10
inc rcx
sub rdx, 1
jne 0x18001c3a0
mov r8, rcx
cmp r8, 4
jb 0x18001c463
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
mov rcx, qword [rsp]
add rax, 0x780
cmp rsi, rax
jae 0x18001c467
mov rdx, r8
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rbx
jmp 0x18001c46c
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001c0e5
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001c1d7
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001c2c7
mov r9, qword [rsp + 8]
xor rdx, r8
tzcnt r8, rdx
shr r8, 3
add r8, rcx
jmp 0x18001c3b9
mov rcx, qword [rsp]
mov rdx, qword [rsp + 0x20]
cmp qword [rsp + 0x40], 0x7e4
mov rax, qword [rsp + 0x78]
mov dword [rdi + rax*4], r12d
jbe 0x18001ce5c
mov dword [rsp + 0x78], 0
mov rax, qword [rbp - 0x60]
dec r9
mov qword [rsp + 8], r9
cmp dword [rax + 4], 5
jge 0x18001c4ae
lea rax, [rdx - 1]
mov rsi, r9
cmp rax, r9
cmovb rsi, rax
jmp 0x18001c4b0
xor esi, esi
mov r13, qword [rbp - 0x70]
lea rdi, [r12 + 1]
mov rax, qword [rsp + 0x50]
mov edx, 0x7e4
cmp rdi, r13
mov qword [rbp - 0x10], rdx
mov rdx, qword [rsp + 0x10]
mov r14d, 0x7e4
cmovb r13, rdi
mov qword [rbp - 0x20], rsi
mov rax, qword [rax + 0x38]
mov r12, rdx
mov qword [rsp + 0x38], rax
and r12, rdi
mov rax, qword [rcx + r12]
lea r11, [rcx + r12]
movzx r15d, byte [r11 + rsi]
movabs rcx, 0x35a7bd1e35a7bd00
imul rax, rcx
mov rcx, rdi
mov qword [rbp - 0x18], 0
shr rax, 0x2c
mov qword [rsp + 0x48], rdi
mov dword [rbp - 8], 0
movq xmm1, rax
mov rax, qword [rbp - 0x80]
punpcklqdq xmm1, xmm1
movsxd rbx, dword [rax]
sub rcx, rbx
cmp rcx, rdi
jae 0x18001c60a
mov r10, qword [rsp]
mov eax, edx
and rcx, rax
add r10, rcx
movzx eax, byte [r10 + rsi]
cmp r15d, eax
jne 0x18001c60a
mov rcx, r9
xor eax, eax
shr rcx, 3
mov rdx, r11
test rcx, rcx
je 0x18001c58f
nop dword [rax]
mov r9, qword [rdx]
mov r8, qword [rax + r10]
cmp r9, r8
jne 0x18001c5f4
add rdx, 8
add rax, 8
sub rcx, 1
jne 0x18001c570
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c5b3
sub rdx, rax
nop dword [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r10], cl
jne 0x18001c5b3
inc rax
sub r8, 1
jne 0x18001c5a0
mov rcx, rax
mov rdx, qword [rsp + 0x10]
cmp rcx, 4
jb 0x18001c60a
imul rax, rcx, 0x87
add rax, 0x78f
cmp rax, r14
jbe 0x18001c60a
mov qword [rbp - 0x18], rbx
mov r14, rax
mov rbx, qword [rsp]
mov rsi, rcx
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x20], rcx
lea rax, [rbx + rcx]
movzx r15d, byte [rax + r12]
jmp 0x18001c60e
xor r8, r9
mov r9, qword [rsp + 8]
tzcnt rcx, r8
shr rcx, 3
add rcx, rax
jmp 0x18001c5b6
mov rbx, qword [rsp]
xor eax, eax
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8], xmm0
add rax, 2
cmp rax, 4
jb 0x18001c610
mov rax, rdi
shr rax, 3
and eax, 3
mov rcx, qword [rbp + rax*8]
mov rax, qword [rbp]
mov qword [rbp - 0x68], rcx
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + rax*4]
mov eax, edx
sub rdi, rcx
and rcx, rax
add rbx, rcx
movzx eax, byte [rbx + rsi]
cmp r15d, eax
jne 0x18001c725
test rdi, rdi
je 0x18001c725
cmp rdi, r13
ja 0x18001c725
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r11
test r8, r8
je 0x18001c6c3
mov r10, rbx
sub r10, r11
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18001c8f0
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001c6a0
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c6e2
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18001c6e2
inc rcx
sub r8, 1
jne 0x18001c6d0
mov rdx, rcx
cmp rdx, 4
jb 0x18001c725
bsr eax, edi
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp r14, r8
jae 0x18001c725
mov rax, qword [rsp]
mov rsi, rdx
add rax, rdx
mov qword [rbp - 0x20], rdx
mov r14, r8
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x18], rdi
movzx r15d, byte [rax + r12]
mov rax, qword [rbp + 8]
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x48]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + rsi]
cmp r15d, eax
jne 0x18001c807
test rdi, rdi
je 0x18001c807
cmp rdi, r13
ja 0x18001c807
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r11
test r8, r8
je 0x18001c7a3
mov r10, rbx
sub r10, r11
nop dword [rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x18001c909
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001c780
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c7c4
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001c7c4
inc rcx
inc rdx
sub r8, 1
jne 0x18001c7b0
mov r8, rdx
cmp r8, 4
jb 0x18001c807
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp r14, rdx
jae 0x18001c807
mov rax, qword [rsp]
mov rsi, r8
add rax, r8
mov qword [rbp - 0x20], r8
mov r14, rdx
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x18], rdi
movzx r15d, byte [rax + r12]
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x48]
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + rsi]
cmp r15d, eax
jne 0x18001c93b
test rdi, rdi
je 0x18001c93b
cmp rdi, r13
ja 0x18001c93b
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r11
test r8, r8
je 0x18001c883
mov r10, rbx
sub r10, r11
nop
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x18001c922
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001c860
mov r9, qword [rsp + 8]
mov r8, r9
and r8d, 7
je 0x18001c8a4
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001c8a4
inc rcx
inc rdx
sub r8, 1
jne 0x18001c890
mov r8, rdx
cmp r8, 4
jb 0x18001c93b
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp r14, rdx
jae 0x18001c93b
mov rax, qword [rsp]
mov rsi, r8
add rax, r8
mov qword [rbp - 0x20], r8
mov r14, rdx
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x18], rdi
movzx r15d, byte [rax + r12]
mov r12, rdx
jmp 0x18001c93f
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001c6e5
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001c7c7
xor rax, r9
mov r9, qword [rsp + 8]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001c8a7
mov r12, qword [rbp - 0x10]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rsp + 0x38]
mov r10, qword [rsp]
mov rdi, qword [rsp + 0x48]
mov rbx, rdi
mov ecx, dword [rcx + rax*4]
mov eax, dword [rsp + 0x10]
sub rbx, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + rsi]
cmp r15d, eax
jne 0x18001ca19
test rbx, rbx
je 0x18001ca19
cmp rbx, r13
ja 0x18001ca19
mov rdx, r9
xor ecx, ecx
shr rdx, 3
test rdx, rdx
je 0x18001c9c3
mov r9, r10
sub r9, r11
nop dword [rax + rax]
mov rax, qword [r11]
mov r8, qword [r11 + r9]
cmp rax, r8
jne 0x18001ca92
add r11, 8
add rcx, 8
sub rdx, 1
jne 0x18001c9a0
mov r9, qword [rsp + 8]
mov rdx, r9
and edx, 7
je 0x18001c9e6
nop dword [rax + rax]
movzx eax, byte [r11]
cmp byte [rcx + r10], al
jne 0x18001c9e6
inc r11
inc rcx
sub rdx, 1
jne 0x18001c9d0
mov rdx, rcx
cmp rdx, 4
jb 0x18001ca19
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp r14, rax
jae 0x18001ca19
mov qword [rbp - 0x20], rdx
mov r12, rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], rbx
mov rax, qword [rbp - 0x68]
mov rcx, qword [rsp + 0x38]
mov r10, qword [rsp + 0x18]
mov dword [rcx + rax*4], edi
mov rax, qword [rsp + 0x40]
add rax, 0xaf
cmp r12, rax
jb 0x18001cab2
mov ecx, dword [rsp + 0x78]
inc r10
movups xmm0, xmmword [rbp - 0x20]
inc ecx
mov r12, rdi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x18], r10
mov dword [rsp + 0x78], ecx
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm1
cmp ecx, 4
jge 0x18001caab
lea rax, [rdi + 8]
cmp rax, qword [rbp - 0x78]
jae 0x18001caab
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x20], rdx
jmp 0x18001c48c
mov r9, qword [rsp + 8]
xor rax, r8
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001c9e9
mov r13, qword [rsp + 0x58]
jmp 0x18001cabc
mov r12, qword [rsp + 0x28]
mov r13, qword [rsp + 0x20]
mov r9, qword [rbp - 0x70]
lea r11, [r12 + r13*2]
add r11, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
mov rbx, qword [rsp + 0x60]
add rax, r12
cmp rax, r9
mov qword [rsp + 0x48], r11
mov r11, qword [rbp - 0x80]
cmovb r9, rax
cmp rbx, r9
ja 0x18001cb67
movsxd rax, dword [r11]
lea rcx, [rbx + 3]
movsxd r8, dword [r11 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rbx, rax
jne 0x18001cb07
xor r8d, r8d
jmp 0x18001cb6b
cmp rbx, r8
jne 0x18001cb14
mov r8d, 1
jmp 0x18001cb6b
cmp rdx, 7
jae 0x18001cb2f
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18001cb6b
cmp rcx, 7
jae 0x18001cb47
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18001cb6b
movsxd rax, dword [r11 + 8]
cmp rbx, rax
jne 0x18001cb58
mov r8d, 2
jmp 0x18001cb6b
movsxd rax, dword [r11 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18001cb6b
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18001cb93
test r8, r8
je 0x18001cb93
mov eax, dword [r11 + 8]
mov dword [r11 + 0xc], eax
mov eax, dword [r11 + 4]
mov dword [r11 + 8], eax
mov eax, dword [r11]
mov dword [r11 + 4], eax
mov eax, dword [rsp + 0x60]
mov dword [r11], eax
mov rcx, qword [rsp + 0x30]
mov esi, dword [rsp + 0x70]
mov r14d, dword [rsp + 0x58]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r10d
mov dword [rcx + 4], eax
mov rcx, qword [rbp - 0x60]
mov r15d, dword [rcx + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x18001cbc6
xor edi, edi
jmp 0x18001cc3f
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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
mov r10, qword [rsp + 0x18]
add r8w, ax
add r8w, r15w
or r8w, r9w
mov r15, qword [rsp + 0x30]
lea r9d, [r14 + rsi]
mov eax, 0x3ff
movsxd rdx, r9d
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], edi
cmp r10, 6
jae 0x18001cc6a
mov eax, 0x17
jmp 0x18001ccda
cmp r10, 0x82
jae 0x18001cc94
lea eax, [r10 - 2]
add r10, 0xfffffffffffffffe
bsr ecx, eax
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18001ccda
cmp r10, 0x842
jae 0x18001ccb1
lea eax, [r10 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18001ccda
mov eax, 0x17
cmp r10, 0x1842
jae 0x18001ccc5
lea r10d, [rax - 2]
jmp 0x18001ccda
cmp r10, 0x5842
jae 0x18001ccd6
mov r10d, 0x16
jmp 0x18001ccda
movzx r10d, ax
cmp rdx, 0xa
jae 0x18001cce6
sub dx, 2
jmp 0x18001cd24
cmp rdx, 0x86
jae 0x18001cd0b
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x18001cd24
cmp rdx, 0x846
jae 0x18001cd21
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x18001cd24
movzx edx, ax
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x18001cd63
cmp r10w, 8
jae 0x18001cd63
cmp dx, 0x10
jae 0x18001cd63
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x18001cd95
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rax, qword [rsp + 0x18]
lea rdx, [r12 + 2]
mov r8, qword [rbp - 0x58]
xor edi, edi
mov rcx, qword [rbp - 0x40]
mov word [r15 + 0xc], r9w
add r15, 0x10
lea r9, [r12 + r13]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x18], rdi
add qword [rcx], rax
mov rax, r13
cmp r9, r8
mov qword [rbp - 0x68], r9
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x18001cdf9
lea rax, [rbx*4]
sub r12, rax
add r12, r13
cmp rdx, r12
cmova r12, rdx
cmp r8, r12
mov rdx, r12
cmovb rdx, r8
cmp rdx, r8
jae 0x18001ce4f
mov r9, qword [rsp]
movabs r15, 0x35a7bd1e35a7bd00
mov rdi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x10]
and rax, rdx
mov rcx, qword [rax + r9]
mov eax, edx
imul rcx, r15
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rdi + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18001ce11
mov r9, qword [rbp - 0x68]
mov rdi, qword [rsp + 0x18]
mov r15, qword [rsp + 0x30]
mov r12, r9
mov qword [rsp + 0x28], r9
jmp 0x18001cfbb
mov rdi, qword [rsp + 0x18]
inc r12
mov r11, qword [rsp + 0x48]
inc rdi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x28], r12
cmp r12, r11
jbe 0x18001cfb6
mov rax, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x78]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
cmp r12, rax
jbe 0x18001cf29
mov rbx, qword [rsp + 0x10]
lea rax, [r12 + 0x10]
cmp rax, rdx
movabs rsi, 0x35a7bd1e35a7bd00
cmovb rdx, rax
cmp r12, rdx
jae 0x18001cf1f
add rdi, 4
mov rax, rdx
sub rax, r12
dec rax
and rax, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp + 0x18], rdi
mov rdi, qword [rsp + 0x50]
nop word [rax + rax]
mov rax, rbx
and rax, r12
mov rcx, qword [rax + rcx]
mov eax, r12d
imul rcx, rsi
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rdi + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r12d
add r12, 4
mov rcx, qword [rsp]
cmp r12, rdx
jb 0x18001cee0
mov rdi, qword [rsp + 0x18]
mov qword [rsp + 0x28], r12
mov r15, qword [rsp + 0x30]
jmp 0x18001cfca
lea rax, [r12 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r12, rdx
jae 0x18001cfb6
mov rbx, qword [rsp + 0x10]
add rdi, 2
mov rax, rdx
movabs rsi, 0x35a7bd1e35a7bd00
sub rax, r12
dec rax
and rax, 0xfffffffffffffffe
add rdi, rax
mov qword [rsp + 0x18], rdi
mov rdi, qword [rsp + 0x50]
nop word [rax + rax]
mov rax, rbx
and rax, r12
mov rcx, qword [rax + rcx]
mov eax, r12d
imul rcx, rsi
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rdi + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r12d
add r12, 2
mov rcx, qword [rsp]
cmp r12, rdx
jb 0x18001cf70
mov rdi, qword [rsp + 0x18]
mov r15, qword [rsp + 0x30]
mov qword [rsp + 0x28], r12
jmp 0x18001cfca
mov r15, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x10]
movabs rsi, 0x35a7bd1e35a7bd00
mov rcx, qword [rbp - 0x78]
lea rax, [r12 + 8]
mov r10, qword [rsp]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rbp - 0x80]
mov r11, qword [rbp - 0x70]
cmp rax, rcx
jb 0x18001beb0
mov rsi, qword [rbp - 0x38]
mov r13, qword [rsp + 0x138]
sub r15, qword [rbp - 0x28]
sub rcx, r12
mov rax, qword [rbp - 0x30]
add rcx, rdi
sar r15, 4
mov qword [rax], rcx
add qword [rsi], r15
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.18004ccd0
add rsp, 0x140
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
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 [0x1800c6008]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov rdi, qword [rbp + 0xa8]
mov rax, rcx
mov rcx, qword [rbp + 0xd8]
mov rbx, r9
mov r15, qword [rbp + 0xc8]
mov r12, rdx
mov r11, qword [rbp + 0xb0]
mov r9d, 1
mov rsi, qword [rbp + 0xb8]
mov r14, qword [rbp + 0xd0]
mov qword [rbp - 0x50], rcx
mov ecx, dword [rdi + 8]
shl r9, cl
mov rcx, qword [rdi + 0x10]
sub r9, 0x10
mov qword [rsp + 0x30], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rbp - 0x58], rcx
mov rcx, r15
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x40], rcx
mov r10, qword [rdx]
lea rdx, [rax + r12]
mov qword [rsp], rbx
mov qword [rsp + 0x18], r8
mov qword [rbp - 0x70], rdi
mov qword [rsp + 8], r11
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x48], r15
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x78], r9
mov qword [rsp + 0x28], r10
mov qword [rbp - 0x80], rdx
cmp rax, 8
jb 0x18001d101
lea rax, [rdx - 7]
mov qword [rbp - 0x68], rax
jmp 0x18001d105
mov qword [rbp - 0x68], r12
cmp dword [rdi + 4], 9
mov eax, 0x200
mov r13d, 0x40
cmovl eax, r13d
mov qword [rbp - 0x60], rax
add rax, r12
mov qword [rsp + 0x58], rax
lea rax, [r12 + 8]
cmp rax, rdx
jae 0x18001e1af
movdqa xmm2, xmmword [0x1800c1d20]
mov eax, 3
movdqa xmm3, xmmword [0x1800c1d30]
movabs rcx, 0xbd1e35a7bd000000
movd xmm0, eax
psllq xmm2, xmm0
nop dword [rax]
mov r13, qword [r11 + 0x38]
mov r10, rdx
sub r10, r12
mov qword [rsp + 0x50], 0x7e4
cmp r12, r9
mov qword [rsp + 0x10], r10
mov rdx, r9
mov rdi, rbx
movsxd rbx, dword [rsi]
cmovb rdx, r12
xor r9d, r9d
mov qword [rsp + 0x20], rdx
and rdi, r12
mov qword [rsp + 0x40], r9
add r8, rdi
mov qword [rbp], r9
xor r15d, r15d
mov qword [rbp + 8], r9
mov qword [rsp + 0x38], rdi
mov esi, 0x7e4
mov dword [rbp + 0x18], r9d
mov rax, qword [r8]
movzx r14d, byte [r8]
imul rax, rcx
mov rcx, r12
shr rax, 0x30
sub rcx, rbx
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, r12
jae 0x18001d2a0
mov eax, dword [rsp]
mov r11, qword [rsp + 0x18]
and rcx, rax
add r11, rcx
movzx eax, byte [r11]
cmp r14d, eax
jne 0x18001d2a0
mov rax, r10
xor ecx, ecx
shr rax, 3
mov rdx, r8
test rax, rax
je 0x18001d233
nop word [rax + rax]
mov r10, qword [rdx]
mov r9, qword [rcx + r11]
cmp r10, r9
jne 0x18001d662
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18001d210
mov r10, qword [rsp + 0x10]
mov r9, r10
and r9d, 7
je 0x18001d253
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001d253
inc rcx
sub r9, 1
jne 0x18001d240
mov rax, rcx
mov rdx, qword [rsp + 0x20]
cmp rax, 4
jb 0x18001d2a0
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x18001d2a0
mov qword [rsp + 0x40], rax
mov r15, rax
mov qword [rbp], rax
mov rsi, rcx
add rax, qword [rsp + 0x18]
mov qword [rbp + 8], rbx
mov qword [rsp + 0x50], rcx
movzx r14d, byte [rax + rdi]
nop word [rax + rax]
mov rdi, qword [rsp + 0x30]
mov rax, r12
mov rbx, qword [rsp + 0x18]
movdqa xmm0, xmm2
shr rax, 3
paddq xmm0, xmm1
and eax, 1
pand xmm0, xmm3
movdqu xmmword [rsp + 0x68], xmm0
mov r12, qword [rsp + rax*8 + 0x68]
movq rax, xmm0
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp]
sub rdi, rcx
and rcx, rax
add rbx, rcx
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001d3b1
test rdi, rdi
je 0x18001d3b1
cmp rdi, rdx
ja 0x18001d3b1
mov r9, r10
xor ecx, ecx
shr r9, 3
mov rdx, r8
test r9, r9
je 0x18001d343
mov r11, rbx
sub r11, r8
nop dword [rax + rax]
mov r10, qword [rdx]
mov rax, qword [r11 + rdx]
cmp r10, rax
jne 0x18001d67b
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x18001d320
mov r10, qword [rsp + 0x10]
mov r9, r10
and r9d, 7
je 0x18001d362
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + rbx], al
jne 0x18001d362
inc rcx
sub r9, 1
jne 0x18001d350
mov rdx, rcx
cmp rdx, 4
jb 0x18001d3b1
bsr eax, edi
imul r9, rdx, 0x87
imul ecx, eax, 0x1e
sub r9, rcx
add r9, 0x780
cmp rsi, r9
jae 0x18001d3b1
mov rax, qword [rsp + 0x18]
mov r15, rdx
mov rcx, qword [rsp + 0x38]
add rax, rdx
mov qword [rsp + 0x40], rdx
mov rsi, r9
mov qword [rbp], rdx
mov qword [rsp + 0x50], r9
movzx r14d, byte [rax + rcx]
mov qword [rbp + 8], rdi
mov rax, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x18]
mov rbx, rdi
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp]
sub rbx, rcx
and rcx, rax
add r11, rcx
movzx eax, byte [r11 + r15]
cmp r14d, eax
mov r14, qword [rsp + 0x20]
jne 0x18001d48c
test rbx, rbx
je 0x18001d48c
cmp rbx, r14
ja 0x18001d48c
mov rdx, r10
xor ecx, ecx
shr rdx, 3
test rdx, rdx
je 0x18001d433
mov r10, r11
sub r10, r8
nop dword [rax]
mov r9, qword [r8]
mov rax, qword [r10 + r8]
cmp r9, rax
jne 0x18001d694
add r8, 8
add rcx, 8
sub rdx, 1
jne 0x18001d410
mov r10, qword [rsp + 0x10]
mov rdx, r10
and edx, 7
je 0x18001d456
nop dword [rax + rax]
movzx eax, byte [r8]
cmp byte [rcx + r11], al
jne 0x18001d456
inc r8
inc rcx
sub rdx, 1
jne 0x18001d440
mov rdx, rcx
cmp rdx, 4
jb 0x18001d48c
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x18001d48c
mov qword [rsp + 0x40], rdx
mov qword [rbp], rdx
mov qword [rsp + 0x50], rax
mov qword [rbp + 8], rbx
mov dword [r13 + r12*4], edi
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 8]
test r13b, 3
jne 0x18001d61c
cmp r10, 0x20
jb 0x18001d61c
mov rbx, qword [rdi + 0x50]
cmp rbx, r13
ja 0x18001d614
mov r15, qword [rsp + 0x18]
lea rsi, [rbx + 0x20]
mov r11, qword [rsp]
mov r12, qword [rsp + 0x40]
nop
mov r8d, dword [rdi + 0x40]
mov rax, r11
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r15]
mov rax, r11
and rax, rsi
inc edx
imul edx, dword [rdi + 0x60]
movzx ecx, byte [rax + r15]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18001d603
mov rax, qword [rdi + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r13
jne 0x18001d603
mov eax, 0xffffffff
cmp r8, rax
je 0x18001d603
mov edi, r13d
sub edi, r8d
cmp rdi, r14
ja 0x18001d5fe
mov rdx, qword [rsp + 0x38]
and r11, r8
mov r8, r10
add rdx, r15
shr r8, 3
add r11, r15
xor ecx, ecx
test r8, r8
je 0x18001d593
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001d6ad
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001d570
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18001d5b3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001d5b3
inc rcx
sub r8, 1
jne 0x18001d5a0
mov rdx, rcx
mov r11, qword [rsp]
cmp rdx, 4
jb 0x18001d5fe
cmp rdx, r12
jbe 0x18001d5fe
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x50]
jbe 0x18001d5fe
mov qword [rsp + 0x40], rdx
mov r12, rdx
mov qword [rbp], rdx
mov qword [rbp + 8], rdi
mov qword [rsp + 0x50], rax
mov dword [rbp + 0x18], 0
mov rdi, qword [rsp + 8]
add rbx, 4
add rsi, 4
cmp rbx, r13
jbe 0x18001d4d0
lea rax, [r13 + 4]
mov qword [rdi + 0x50], rax
cmp qword [rsp + 0x50], 0x7e4
lea r12, [r13 + 1]
mov qword [rsp + 0x38], r12
jbe 0x18001e022
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0x60], 0
mov rcx, qword [rbp - 0x70]
dec r10
mov qword [rsp + 0x10], r10
cmp dword [rcx + 4], 5
jge 0x18001d6c6
dec rax
mov r9, r10
cmp rax, r10
cmovb r9, rax
jmp 0x18001d6c9
xor r9, r10
mov r10, qword [rsp + 0x10]
tzcnt rax, r9
shr rax, 3
add rax, rcx
jmp 0x18001d256
xor rax, r10
mov r10, qword [rsp + 0x10]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001d365
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001d459
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001d5b6
xor r9d, r9d
mov rbx, qword [rsp + 0x18]
mov r8d, 0x7e4
mov r13, qword [rdi + 0x38]
movabs rcx, 0xbd1e35a7bd000000
mov qword [rbp - 0x10], r8
mov r14, r12
mov r8, qword [rbp - 0x78]
mov r15, r9
cmp r12, r8
mov qword [rbp - 0x20], r9
mov qword [rsp + 0x20], r9
mov edi, 0x7e4
cmovb r8, r12
mov qword [rbp - 0x18], 0
and r14, qword [rsp]
mov rax, qword [rbx + r14]
lea rdx, [rbx + r14]
movzx esi, byte [rdx + r9]
imul rax, rcx
mov rcx, r12
mov qword [rsp + 0x58], r8
shr rax, 0x30
mov qword [rsp + 0x68], rdx
mov dword [rbp - 8], 0
movq xmm0, rax
mov rax, qword [rsp + 0x78]
punpcklqdq xmm0, xmm0
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, r12
jae 0x18001d835
mov r10d, dword [rsp]
and r10, rcx
add r10, rbx
movzx eax, byte [r10 + r9]
cmp esi, eax
jne 0x18001d830
mov rbx, qword [rsp + 0x10]
xor ecx, ecx
mov rax, rbx
shr rax, 3
test rax, rax
je 0x18001d7ae
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18001d81f
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18001d790
mov r8, rbx
and r8d, 7
je 0x18001d7d3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x18001d7d3
inc rcx
sub r8, 1
jne 0x18001d7c0
mov rax, rcx
mov rdx, qword [rsp + 0x68]
mov r10, rbx
mov r8, qword [rsp + 0x58]
cmp rax, 4
jb 0x18001d835
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rdi
jbe 0x18001d835
mov qword [rsp + 0x20], rax
mov r15, rax
mov qword [rbp - 0x20], rax
mov rdi, rcx
add rax, qword [rsp + 0x18]
mov qword [rbp - 0x18], r11
mov qword [rbp - 0x10], rcx
movzx esi, byte [rax + r14]
jmp 0x18001d835
xor r8, r9
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x18001d7d6
mov r10, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x38]
mov rax, r12
mov r11, qword [rsp + 0x18]
paddq xmm0, xmm2
shr rax, 3
pand xmm0, xmm3
and eax, 1
movdqu xmmword [rbp - 0x30], xmm0
mov r12, qword [rbp + rax*8 - 0x30]
movq rax, xmm0
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp]
sub rbx, rcx
and rcx, rax
add r11, rcx
movzx eax, byte [r11 + r15]
cmp esi, eax
jne 0x18001d93c
test rbx, rbx
je 0x18001d93c
cmp rbx, r8
ja 0x18001d93c
mov r8, r10
xor ecx, ecx
shr r8, 3
test r8, r8
je 0x18001d8d3
mov r10, r11
sub r10, qword [rsp + 0x68]
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001da1d
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001d8b0
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18001d8f3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001d8f3
inc rcx
sub r8, 1
jne 0x18001d8e0
mov rdx, rcx
cmp rdx, 4
jb 0x18001d93c
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rdi, r8
jae 0x18001d93c
mov rax, qword [rsp + 0x18]
mov r15, rdx
add rax, rdx
mov qword [rsp + 0x20], rdx
mov qword [rbp - 0x20], rdx
mov rdi, r8
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x18], rbx
movzx esi, byte [rax + r14]
mov rax, qword [rbp - 0x28]
mov rbx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x18]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp]
sub rbx, rcx
and rcx, rax
add r11, rcx
movzx eax, byte [r11 + r15]
cmp esi, eax
jne 0x18001da4c
test rbx, rbx
je 0x18001da4c
cmp rbx, qword [rsp + 0x58]
ja 0x18001da4c
mov rax, qword [rsp + 0x68]
mov r8, r10
shr r8, 3
xor edx, edx
mov rcx, rax
test r8, r8
je 0x18001d9c3
mov r10, r11
sub r10, rax
nop dword [rax + rax]
mov r9, qword [rcx]
mov rax, qword [r10 + rcx]
cmp r9, rax
jne 0x18001da36
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001d9a0
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18001d9e5
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18001d9e5
inc rcx
inc rdx
sub r8, 1
jne 0x18001d9d0
mov r8, rdx
cmp r8, 4
jb 0x18001da4c
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, r8, 0x87
sub rax, rcx
add rax, 0x780
cmp rdi, rax
jae 0x18001da4c
mov r14, r8
mov qword [rbp - 0x20], r8
mov r15, rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x18], rbx
jmp 0x18001da55
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001d8f6
mov r10, qword [rsp + 0x10]
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001d9e8
mov r14, qword [rsp + 0x20]
mov r15, qword [rbp - 0x10]
mov rax, qword [rsp + 0x38]
mov rdi, qword [rsp + 8]
mov dword [r13 + r12*4], eax
mov r12, rax
test r12b, 3
jne 0x18001dbe8
cmp r10, 0x20
jb 0x18001dbe8
mov rbx, qword [rdi + 0x50]
cmp rbx, rax
ja 0x18001dbdf
mov r13, qword [rsp + 0x18]
lea rsi, [rbx + 0x20]
mov r11, qword [rsp]
nop word [rax + rax]
mov r8d, dword [rdi + 0x40]
mov rax, r11
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r13]
mov rax, rsi
and rax, r11
inc edx
imul edx, dword [rdi + 0x60]
movzx ecx, byte [rax + r13]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18001dbca
mov rax, qword [rdi + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r12
jne 0x18001dbca
mov eax, 0xffffffff
cmp r8, rax
je 0x18001dbca
mov edi, r12d
sub edi, r8d
cmp rdi, qword [rsp + 0x58]
ja 0x18001dbc5
mov rcx, qword [rsp + 0x68]
and r11, r8
mov r8, r10
add r11, r13
shr r8, 3
xor eax, eax
mov rdx, rcx
test r8, r8
je 0x18001db63
mov r10, r11
sub r10, rcx
nop dword [rax]
mov rcx, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rcx, r9
jne 0x18001dc53
add rdx, 8
add rax, 8
sub r8, 1
jne 0x18001db40
mov r10, qword [rsp + 0x10]
mov r8, r10
and r8d, 7
je 0x18001db83
sub rdx, rax
nop
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x18001db83
inc rax
sub r8, 1
jne 0x18001db70
mov rdx, rax
mov r11, qword [rsp]
cmp rdx, 4
jb 0x18001dbc5
cmp rdx, r14
jbe 0x18001dbc5
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r15
jbe 0x18001dbc5
mov r14, rdx
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], rdi
mov r15, rax
mov dword [rbp - 8], 0
mov rdi, qword [rsp + 8]
add rbx, 4
add rsi, 4
cmp rbx, r12
jbe 0x18001daa0
mov qword [rbp - 0x10], r15
lea rax, [r12 + 4]
mov qword [rdi + 0x50], rax
mov rax, qword [rsp + 0x50]
mov r13, qword [rsp + 0x30]
add rax, 0xaf
cmp r15, rax
jb 0x18001dc72
mov ecx, dword [rsp + 0x60]
inc r13
movups xmm0, xmmword [rbp - 0x20]
inc qword [rsp + 0x28]
inc ecx
movups xmm1, xmmword [rbp - 0x10]
inc r12
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x60], ecx
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm1
cmp ecx, 4
jge 0x18001dc6c
lea rax, [r12 + 7]
cmp rax, qword [rbp - 0x80]
jae 0x18001dc6c
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp]
mov qword [rsp + 0x40], rax
jmp 0x18001d641
mov r10, qword [rsp + 0x10]
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18001db86
mov r12, qword [rbp]
jmp 0x18001dc77
mov r12, qword [rsp + 0x40]
mov r9, qword [rbp - 0x78]
lea r11, [r12*2]
mov rax, qword [rbp - 0x58]
add r11, r13
add r11, qword [rbp - 0x60]
add rax, r13
mov rbx, qword [rbp + 8]
cmp rax, r9
mov r10, qword [rsp + 0x78]
cmovb r9, rax
mov qword [rsp + 0x58], r11
cmp rbx, r9
ja 0x18001dd29
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 0x18001dcc9
xor r8d, r8d
jmp 0x18001dd2d
cmp rbx, r8
jne 0x18001dcd6
mov r8d, 1
jmp 0x18001dd2d
cmp rdx, 7
jae 0x18001dcf1
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18001dd2d
cmp rcx, 7
jae 0x18001dd09
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18001dd2d
movsxd rax, dword [r10 + 8]
cmp rbx, rax
jne 0x18001dd1a
mov r8d, 2
jmp 0x18001dd2d
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18001dd2d
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18001dd54
test r8, r8
je 0x18001dd54
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 eax, dword [rbp + 8]
mov dword [r10], eax
mov rcx, qword [rsp + 0x48]
mov esi, dword [rbp + 0x18]
mov r14d, dword [rbp]
mov r11, qword [rsp + 0x28]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r11d
mov dword [rcx + 4], eax
mov rcx, qword [rbp - 0x70]
mov r15d, dword [rcx + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x18001dd8a
xor edi, edi
jmp 0x18001de03
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 0x28]
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, r15w
or r8w, r9w
mov r15, qword [rsp + 0x48]
lea r9d, [r14 + rsi]
mov eax, 0x3ff
movsxd rdx, r9d
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], edi
cmp r11, 6
jae 0x18001de32
movzx r10d, r11w
mov eax, 0x17
jmp 0x18001dea2
cmp r11, 0x82
jae 0x18001de5c
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 0x18001dea2
cmp r11, 0x842
jae 0x18001de79
lea eax, [r11 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18001dea2
mov eax, 0x17
cmp r11, 0x1842
jae 0x18001de8d
lea r10d, [rax - 2]
jmp 0x18001dea2
cmp r11, 0x5842
jae 0x18001de9e
mov r10d, 0x16
jmp 0x18001dea2
movzx r10d, ax
cmp rdx, 0xa
jae 0x18001deae
sub dx, 2
jmp 0x18001deec
cmp rdx, 0x86
jae 0x18001ded3
add rdx, 0xfffffffffffffffa
lea eax, [r9 - 6]
bsr ecx, eax
dec ecx
shr rdx, cl
add cx, 2
add cx, cx
add dx, cx
jmp 0x18001deec
cmp rdx, 0x846
jae 0x18001dee9
lea eax, [r9 - 0x46]
bsr edx, eax
add dx, 0xc
jmp 0x18001deec
movzx edx, ax
movzx r9d, r10w
movzx eax, dx
and r9w, 7
and ax, 7
shl r9w, 3
or r9w, ax
test r8w, r8w
jne 0x18001df2b
cmp r10w, 8
jae 0x18001df2b
cmp dx, 0x10
jae 0x18001df2b
movzx eax, r9w
or ax, 0x40
cmp dx, 8
cmovae r9w, ax
jmp 0x18001df5d
movzx eax, r10w
shr eax, 3
lea ecx, [rax + rax*2]
movzx eax, dx
shr eax, 3
mov edx, 0xc0
add ecx, eax
mov eax, 0x520d40
add ecx, ecx
shr eax, cl
add cx, 2
shl cx, 5
and ax, dx
add ax, cx
or r9w, ax
mov rax, qword [rbp - 0x50]
lea rdx, [r13 + 2]
mov r8, qword [rbp - 0x68]
xor r10d, r10d
mov word [r15 + 0xc], r9w
add r15, 0x10
lea r9, [r12 + r13]
mov qword [rsp + 0x48], r15
add qword [rax], r11
mov rax, r12
cmp r9, r8
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x38], r9
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x18001dfbd
lea rax, [rbx*4]
sub r13, rax
add r13, r12
cmp rdx, r13
cmova r13, rdx
cmp r8, r13
mov rdx, r13
cmovb rdx, r8
mov r11, qword [rsp + 8]
cmp rdx, r8
jae 0x18001e015
mov rbx, qword [rsp + 0x18]
movabs r15, 0xbd1e35a7bd000000
mov r9, qword [rsp]
nop word [rax + rax]
mov rax, r9
and rax, rdx
mov rcx, qword [rax + rbx]
mov eax, edx
imul rcx, r15
and eax, 8
shr rcx, 0x30
add ecx, eax
mov rax, qword [r11 + 0x38]
movzx ecx, cx
mov dword [rax + rcx*4], edx
inc rdx
cmp rdx, r8
jb 0x18001dfe0
mov r9, qword [rsp + 0x38]
mov r15, qword [rsp + 0x48]
mov r12, r9
mov qword [rsp + 0x30], r9
jmp 0x18001e179
mov r10, qword [rsp + 0x28]
mov r11, qword [rsp + 0x58]
inc r10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x30], r12
cmp r12, r11
jbe 0x18001e16f
mov rax, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x80]
add rdx, 0xfffffffffffffff9
lea rax, [r11 + rax*4]
cmp r12, rax
jbe 0x18001e0e7
mov r8, qword [rsp + 0x18]
lea rax, [r12 + 0x10]
mov rbx, qword [rsp]
cmp rax, rdx
cmovb rdx, rax
cmp r12, rdx
jae 0x18001e163
add r10, 4
mov rax, rdx
sub rax, r12
dec rax
and rax, 0xfffffffffffffffc
add r10, rax
mov qword [rsp + 0x28], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
mov rax, rbx
and rax, r12
mov rcx, qword [rax + r8]
mov eax, r12d
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], r12d
add r12, 4
cmp r12, rdx
jb 0x18001e0a0
mov r11, qword [rsp + 8]
mov r10, qword [rsp + 0x28]
mov r15, qword [rsp + 0x48]
mov qword [rsp + 0x30], r12
jmp 0x18001e182
lea rax, [r12 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r12, rdx
jae 0x18001e16f
mov r8, qword [rsp + 0x18]
add r10, 2
mov rbx, qword [rsp]
mov rax, rdx
sub rax, r12
dec rax
and rax, 0xfffffffffffffffe
add r10, rax
mov qword [rsp + 0x28], r10
movabs r10, 0xbd1e35a7bd000000
nop dword [rax]
nop dword [rax + rax]
mov rax, rbx
and rax, r12
mov rcx, qword [rax + r8]
mov eax, r12d
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], r12d
add r12, 2
cmp r12, rdx
jb 0x18001e130
jmp 0x18001e0ce
mov r11, qword [rsp + 8]
mov r15, qword [rsp + 0x48]
jmp 0x18001e182
mov r15, qword [rsp + 0x48]
mov r11, qword [rsp + 8]
mov r8, qword [rsp + 0x18]
mov rbx, qword [rsp]
mov rdx, qword [rbp - 0x80]
lea rax, [r12 + 8]
mov rsi, qword [rsp + 0x78]
movabs rcx, 0xbd1e35a7bd000000
mov r9, qword [rbp - 0x78]
cmp rax, rdx
jb 0x18001d160
mov r14, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x38]
sub rdx, r12
sub r15, rcx
add rdx, r10
sar r15, 4
mov qword [rax], rdx
add qword [r14], r15
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.18004ccd0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
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 [0x1800c6008]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov r15, qword [rbp + 0xc8]
mov rax, rcx
mov rcx, qword [rbp + 0xd8]
mov rbx, r9
mov r9, qword [rbp + 0xa8]
mov r13, rdx
mov r10, qword [rbp + 0xb0]
mov r12d, 1
mov rdi, qword [rbp + 0xd0]
mov r11, r8
mov qword [rbp - 0x58], rcx
mov ecx, dword [r9 + 8]
shl r12, cl
mov rcx, qword [r9 + 0x10]
sub r12, 0x10
mov qword [rsp + 0x38], rdx
mov rdx, qword [rbp + 0xc0]
mov qword [rbp - 0x60], rcx
mov rcx, r15
mov qword [rsp], r8
mov r8, qword [rbp + 0xb8]
mov rsi, qword [rdx]
mov qword [rbp - 0x40], rdx
lea rdx, [rax + r13]
mov qword [rbp - 0x48], rcx
mov qword [rsp + 8], rbx
mov qword [rbp - 0x78], r9
mov qword [rsp + 0x18], r10
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x60], r15
mov qword [rbp - 0x50], rdi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x40], rsi
mov qword [rbp - 0x80], rdx
cmp rax, 8
jb 0x18001e2c6
lea rax, [rdx - 7]
mov qword [rbp - 0x70], rax
jmp 0x18001e2ca
mov qword [rbp - 0x70], r13
cmp dword [r9 + 4], 9
mov eax, 0x200
mov r14d, 0x40
cmovl eax, r14d
mov qword [rbp - 0x68], rax
add rax, r13
mov qword [rsp + 0x68], rax
lea rax, [r13 + 8]
cmp rax, rdx
jae 0x18001f7ef
movdqa xmm2, xmmword [0x1800c1d20]
mov eax, 3
movdqa xmm4, xmmword [0x1800c1d50]
movabs rcx, 0x35a7bd1e35a7bd00
movd xmm3, eax
nop word [rax + rax]
mov r9, rdx
mov qword [rsp + 0x50], 0x7e4
sub r9, r13
mov rdx, r12
cmp r13, r12
mov qword [rsp + 0x10], r9
mov r12, qword [rsp + 0x38]
mov rdi, rbx
movsxd rbx, dword [r8]
cmovb rdx, r13
mov r13, qword [r10 + 0x38]
xor esi, esi
mov r8, qword [rsp + 8]
and rdi, r12
add r11, rdi
mov qword [rsp + 0x28], rsi
xor r15d, r15d
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], rsi
mov dword [rbp - 0x20], esi
mov esi, 0x7e4
mov rax, qword [r11]
movzx r14d, byte [r11]
imul rax, rcx
mov rcx, r12
mov qword [rsp + 0x20], rdx
shr rax, 0x2c
sub rcx, rbx
mov qword [rsp + 0x30], rdi
movq xmm1, rax
punpcklqdq xmm1, xmm1
cmp rcx, r12
jae 0x18001e475
mov r10, qword [rsp]
mov eax, r8d
and rcx, rax
add r10, rcx
movzx eax, byte [r10]
cmp r14d, eax
jne 0x18001e475
mov rax, r9
xor ecx, ecx
shr rax, 3
mov rdx, r11
test rax, rax
je 0x18001e3f3
nop
mov r9, qword [rdx]
mov r8, qword [rcx + r10]
cmp r9, r8
jne 0x18001e45f
add rdx, 8
add rcx, 8
sub rax, 1
jne 0x18001e3d0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x18001e413
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x18001e413
inc rcx
sub r8, 1
jne 0x18001e400
mov rax, rcx
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 8]
cmp rax, 4
jb 0x18001e475
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x18001e475
mov qword [rbp - 0x30], rbx
mov r15, rax
mov rbx, qword [rsp]
mov rsi, rcx
mov qword [rsp + 0x28], rax
mov qword [rbp - 0x38], rax
add rax, rbx
mov qword [rsp + 0x50], rcx
movzx r14d, byte [rax + rdi]
jmp 0x18001e479
xor r8, r9
mov r9, qword [rsp + 0x10]
tzcnt rax, r8
shr rax, 3
add rax, rcx
jmp 0x18001e416
mov rbx, qword [rsp]
xor eax, eax
nop dword [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8 - 0x18], xmm0
add rax, 2
cmp rax, 4
jb 0x18001e480
mov rdi, qword [rsp + 0x38]
mov rax, r12
shr rax, 3
and eax, 3
mov r12, qword [rbp + rax*8 - 0x18]
mov rax, qword [rbp - 0x18]
mov ecx, dword [r13 + rax*4]
mov eax, r8d
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001e5a0
test rdi, rdi
je 0x18001e5a0
cmp rdi, rdx
ja 0x18001e5a0
mov r8, r9
xor ecx, ecx
shr r8, 3
mov rdx, r11
test r8, r8
je 0x18001e533
mov r10, rbx
sub r10, r11
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x18001e865
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001e510
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x18001e552
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + rbx], al
jne 0x18001e552
inc rcx
sub r8, 1
jne 0x18001e540
mov rdx, rcx
cmp rdx, 4
jb 0x18001e5a0
bsr eax, edi
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18001e5a0
mov rax, qword [rsp]
mov r15, rdx
mov rcx, qword [rsp + 0x30]
add rax, rdx
mov qword [rsp + 0x28], rdx
mov rsi, r8
mov qword [rbp - 0x38], rdx
mov qword [rsp + 0x50], r8
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x30], rdi
mov rax, qword [rbp - 0x10]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001e697
test rdi, rdi
je 0x18001e697
cmp rdi, rdx
ja 0x18001e697
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r11
test r8, r8
je 0x18001e623
mov r10, rbx
sub r10, r11
nop dword [rax + rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x18001e87e
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001e600
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x18001e644
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001e644
inc rcx
inc rdx
sub r8, 1
jne 0x18001e630
mov r8, rdx
cmp r8, 4
jb 0x18001e692
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001e692
mov rax, qword [rsp]
mov r15, r8
mov rcx, qword [rsp + 0x30]
add rax, r8
mov qword [rsp + 0x28], r8
mov rsi, rdx
mov qword [rbp - 0x38], r8
mov qword [rsp + 0x50], rdx
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x30], rdi
mov rdx, qword [rsp + 0x20]
mov rax, qword [rbp - 8]
mov rbx, qword [rsp]
mov rdi, qword [rsp + 0x38]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub rdi, rcx
and rax, rcx
add rbx, rax
movzx eax, byte [rbx + r15]
cmp r14d, eax
jne 0x18001e782
test rdi, rdi
je 0x18001e782
cmp rdi, rdx
ja 0x18001e782
mov r8, r9
xor edx, edx
shr r8, 3
mov rcx, r11
test r8, r8
je 0x18001e713
mov r10, rbx
sub r10, r11
nop dword [rax]
mov rax, qword [rcx]
mov r9, qword [rcx + r10]
cmp rax, r9
jne 0x18001e897
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001e6f0
mov r9, qword [rsp + 0x10]
mov r8, r9
and r8d, 7
je 0x18001e734
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + rbx], al
jne 0x18001e734
inc rcx
inc rdx
sub r8, 1
jne 0x18001e720
mov r8, rdx
cmp r8, 4
jb 0x18001e782
bsr eax, edi
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001e782
mov rax, qword [rsp]
mov r15, r8
mov rcx, qword [rsp + 0x30]
add rax, r8
mov qword [rsp + 0x28], r8
mov rsi, rdx
mov qword [rbp - 0x38], r8
mov qword [rsp + 0x50], rdx
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x30], rdi
mov rax, qword [rbp]
mov r10, qword [rsp]
mov rdi, qword [rsp + 0x38]
mov rbx, rdi
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub rbx, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r10 + r15]
cmp r14d, eax
mov r14, qword [rsp + 0x20]
jne 0x18001e8c4
test rbx, rbx
je 0x18001e8c4
cmp rbx, r14
ja 0x18001e8c4
mov rdx, r9
xor ecx, ecx
shr rdx, 3
test rdx, rdx
je 0x18001e803
mov r9, r10
sub r9, r11
nop dword [rax]
mov rax, qword [r11]
mov r8, qword [r11 + r9]
cmp rax, r8
jne 0x18001e8b0
add r11, 8
add rcx, 8
sub rdx, 1
jne 0x18001e7e0
mov r9, qword [rsp + 0x10]
mov rdx, r9
and edx, 7
je 0x18001e826
nop dword [rax + rax]
movzx eax, byte [r11]
cmp byte [rcx + r10], al
jne 0x18001e826
inc r11
inc rcx
sub rdx, 1
jne 0x18001e810
mov rdx, rcx
cmp rdx, 4
jb 0x18001e8c4
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x18001e8c4
mov r15, rdx
mov qword [rsp + 0x28], rdx
mov qword [rbp - 0x38], rdx
mov qword [rsp + 0x50], rax
mov qword [rbp - 0x30], rbx
jmp 0x18001e8c9
xor rax, r9
mov r9, qword [rsp + 0x10]
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001e555
xor rax, r9
mov r9, qword [rsp + 0x10]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001e647
xor rax, r9
mov r9, qword [rsp + 0x10]
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001e737
xor rax, r8
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001e829
mov r15, qword [rsp + 0x28]
mov dword [r13 + r12*4], edi
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
test r13b, 3
jne 0x18001ea61
cmp r12, 0x20
jb 0x18001ea61
mov rbx, qword [rdi + 0x50]
cmp rbx, r13
ja 0x18001ea59
mov r10, qword [rsp]
lea rsi, [rbx + 0x20]
mov r11, qword [rsp + 8]
nop dword [rax + rax]
mov r8d, dword [rdi + 0x40]
mov rax, r11
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r10]
mov rax, r11
and rax, rsi
inc edx
imul edx, dword [rdi + 0x60]
movzx ecx, byte [rax + r10]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18001ea43
mov rax, qword [rdi + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r13
jne 0x18001ea43
mov eax, 0xffffffff
cmp r8, rax
je 0x18001ea43
mov edi, r13d
sub edi, r8d
cmp rdi, r14
ja 0x18001ea3e
mov rdx, qword [rsp + 0x30]
and r11, r8
mov r8, r12
add rdx, r10
shr r8, 3
add r11, r10
xor ecx, ecx
test r8, r8
je 0x18001e9ce
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18001eaa1
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001e9b0
mov r8, r12
and r8d, 7
je 0x18001e9f3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18001e9f3
inc rcx
sub r8, 1
jne 0x18001e9e0
mov rdx, rcx
mov r10, qword [rsp]
mov r11, qword [rsp + 8]
cmp rdx, 4
jb 0x18001ea3e
cmp rdx, r15
jbe 0x18001ea3e
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x50]
jbe 0x18001ea3e
mov r15, rdx
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x30], rdi
mov qword [rsp + 0x50], rax
mov dword [rbp - 0x20], 0
mov rdi, qword [rsp + 0x18]
add rbx, 4
add rsi, 4
cmp rbx, r13
jbe 0x18001e910
mov qword [rsp + 0x28], r15
lea rax, [r13 + 4]
mov qword [rdi + 0x50], rax
cmp qword [rsp + 0x50], 0x7e4
jbe 0x18001f647
xor esi, esi
mov dword [rsp + 0x20], esi
dec r12
mov rax, qword [rbp - 0x78]
mov qword [rsp + 0x10], r12
cmp dword [rax + 4], 5
jge 0x18001eab5
lea rax, [r15 - 1]
mov r9, r12
cmp rax, r12
cmovb r9, rax
mov qword [rsp + 0x30], r9
mov qword [rbp - 0x18], r9
jmp 0x18001eac1
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001e9f6
mov r9, rsi
mov qword [rsp + 0x30], rsi
mov qword [rbp - 0x18], rsi
mov r10, qword [rsp + 8]
lea rbx, [r13 + 1]
mov r8, qword [rsp]
mov edx, 0x7e4
mov r13, qword [rdi + 0x38]
movabs rcx, 0x35a7bd1e35a7bd00
mov qword [rbp - 8], rdx
mov r12, r10
mov rdx, qword [rsp + 0x58]
mov r15, r9
cmp rbx, rdx
mov qword [rbp - 0x10], rsi
mov dword [rbp], esi
mov esi, 0x7e4
cmovb rdx, rbx
mov qword [rsp + 0x70], rbx
and r12, rbx
mov qword [rsp + 0x48], rdx
mov rax, qword [r8 + r12]
lea rdi, [r8 + r12]
movzx r14d, byte [rdi + r9]
imul rax, rcx
mov rcx, rbx
mov qword [rsp + 0x68], r12
shr rax, 0x2c
movq xmm1, rax
mov rax, qword [rsp + 0x78]
punpcklqdq xmm1, xmm1
movsxd r11, dword [rax]
sub rcx, r11
cmp rcx, rbx
jae 0x18001ec26
mov r10d, r10d
and r10, rcx
add r10, r8
movzx eax, byte [r10 + r9]
cmp r14d, eax
jne 0x18001ec2b
mov rsi, qword [rsp + 0x10]
xor ecx, ecx
mov r8, rsi
mov rdx, rdi
shr r8, 3
test r8, r8
je 0x18001eb9a
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18001ec09
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001eb80
mov r8, rsi
and r8d, 7
je 0x18001ebb9
sub rdx, rcx
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r10], al
jne 0x18001ebb9
inc rcx
sub r8, 1
jne 0x18001eba6
mov rax, rcx
mov rdx, qword [rsp + 0x48]
mov esi, 0x7e4
cmp rax, 4
jb 0x18001ec1a
mov r10, qword [rsp + 8]
imul rcx, rax, 0x87
add rcx, 0x78f
cmp rcx, rsi
jbe 0x18001ec20
mov qword [rbp - 0x10], r11
mov r15, rax
mov r11, qword [rsp]
mov rsi, rcx
mov qword [rsp + 0x30], rax
mov qword [rbp - 0x18], rax
add rax, r11
mov qword [rbp - 8], rcx
movzx r14d, byte [rax + r12]
jmp 0x18001ec33
xor rax, r9
tzcnt rax, rax
shr rax, 3
add rax, rcx
jmp 0x18001ebbc
mov r11, qword [rsp]
jmp 0x18001ec2e
mov r11, qword [rsp]
jmp 0x18001ec33
mov r11, r8
jmp 0x18001ec33
mov r11, r8
mov r10, qword [rsp + 8]
xor eax, eax
nop word [rax + rax]
movq xmm0, rax
punpcklqdq xmm0, xmm0
paddq xmm0, xmm2
psllq xmm0, xmm3
paddq xmm0, xmm1
pand xmm0, xmm4
movdqu xmmword [rbp + rax*8 + 8], xmm0
add rax, 2
cmp rax, 4
jb 0x18001ec40
mov rax, rbx
shr rax, 3
and eax, 3
mov r12, qword [rbp + rax*8 + 8]
mov rax, qword [rbp + 8]
mov ecx, dword [r13 + rax*4]
mov eax, r10d
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r15 + r11]
cmp r14d, eax
jne 0x18001ed60
test rbx, rbx
je 0x18001ed60
cmp rbx, rdx
ja 0x18001ed60
mov rax, qword [rsp + 0x10]
xor ecx, ecx
mov r8, rax
mov rdx, rdi
shr r8, 3
test r8, r8
je 0x18001ecf3
mov r10, r11
sub r10, rdi
nop dword [rax]
mov r9, qword [rdx]
mov rax, qword [rdx + r10]
cmp r9, rax
jne 0x18001f028
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001ecd0
mov rax, qword [rsp + 0x10]
mov r8, rax
and r8d, 7
je 0x18001ed13
sub rdx, rcx
nop
movzx eax, byte [rcx + rdx]
cmp byte [rcx + r11], al
jne 0x18001ed13
inc rcx
sub r8, 1
jne 0x18001ed00
mov rdx, rcx
cmp rdx, 4
jb 0x18001ed60
bsr eax, ebx
imul r8, rdx, 0x87
imul ecx, eax, 0x1e
sub r8, rcx
add r8, 0x780
cmp rsi, r8
jae 0x18001ed60
mov rax, qword [rsp]
mov r15, rdx
mov rcx, qword [rsp + 0x68]
add rax, rdx
mov qword [rsp + 0x30], rdx
mov rsi, r8
mov qword [rbp - 0x18], rdx
mov qword [rbp - 8], r8
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x10], rbx
mov rax, qword [rbp + 0x10]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r15 + r11]
cmp r14d, eax
jne 0x18001ee57
test rbx, rbx
je 0x18001ee57
cmp rbx, rdx
ja 0x18001ee57
mov rax, qword [rsp + 0x10]
xor edx, edx
mov r8, rax
mov rcx, rdi
shr r8, 3
test r8, r8
je 0x18001ede3
mov r10, r11
sub r10, rdi
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18001f03c
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001edc0
mov rax, qword [rsp + 0x10]
mov r8, rax
and r8d, 7
je 0x18001ee05
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18001ee05
inc rcx
inc rdx
sub r8, 1
jne 0x18001edf0
mov r8, rdx
cmp r8, 4
jb 0x18001ee52
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001ee52
mov rax, qword [rsp]
mov r15, r8
mov rcx, qword [rsp + 0x68]
add rax, r8
mov qword [rsp + 0x30], r8
mov rsi, rdx
mov qword [rbp - 0x18], r8
mov qword [rbp - 8], rdx
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x10], rbx
mov rdx, qword [rsp + 0x48]
mov rax, qword [rbp + 0x18]
mov r11, qword [rsp]
mov rbx, qword [rsp + 0x70]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub rbx, rcx
and rax, rcx
add r11, rax
movzx eax, byte [r15 + r11]
cmp r14d, eax
jne 0x18001ef52
test rbx, rbx
je 0x18001ef52
cmp rbx, rdx
ja 0x18001ef52
mov rax, qword [rsp + 0x10]
xor edx, edx
mov r8, rax
mov rcx, rdi
shr r8, 3
test r8, r8
je 0x18001eee3
mov r10, r11
sub r10, rdi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rcx]
mov rax, qword [rcx + r10]
cmp r9, rax
jne 0x18001f050
add rcx, 8
add rdx, 8
sub r8, 1
jne 0x18001eec0
mov rax, qword [rsp + 0x10]
mov r8, rax
and r8d, 7
je 0x18001ef05
nop dword [rax]
movzx eax, byte [rcx]
cmp byte [rdx + r11], al
jne 0x18001ef05
inc rcx
inc rdx
sub r8, 1
jne 0x18001eef0
mov r8, rdx
cmp r8, 4
jb 0x18001ef52
bsr eax, ebx
imul rdx, r8, 0x87
imul ecx, eax, 0x1e
sub rdx, rcx
add rdx, 0x780
cmp rsi, rdx
jae 0x18001ef52
mov rax, qword [rsp]
mov r15, r8
mov rcx, qword [rsp + 0x68]
add rax, r8
mov qword [rsp + 0x30], r8
mov rsi, rdx
mov qword [rbp - 0x18], r8
mov qword [rbp - 8], rdx
movzx r14d, byte [rax + rcx]
mov qword [rbp - 0x10], rbx
mov rax, qword [rbp + 0x20]
mov r10, qword [rsp]
mov r11, qword [rsp + 0x70]
mov ecx, dword [r13 + rax*4]
mov eax, dword [rsp + 8]
sub r11, rcx
and rax, rcx
add r10, rax
movzx eax, byte [r15 + r10]
cmp r14d, eax
jne 0x18001f078
test r11, r11
je 0x18001f078
cmp r11, qword [rsp + 0x48]
ja 0x18001f078
mov rbx, qword [rsp + 0x10]
xor ecx, ecx
mov rdx, rbx
shr rdx, 3
test rdx, rdx
je 0x18001efce
mov r9, r10
sub r9, rdi
nop dword [rax]
mov r8, qword [rdi]
mov rax, qword [rdi + r9]
cmp r8, rax
jne 0x18001f064
add rdi, 8
add rcx, 8
sub rdx, 1
jne 0x18001efb0
mov rdx, rbx
and edx, 7
je 0x18001efeb
movzx eax, byte [rdi]
cmp byte [rcx + r10], al
jne 0x18001efeb
inc rdi
inc rcx
sub rdx, 1
jne 0x18001efd6
mov rdx, rcx
cmp rdx, 4
jb 0x18001f078
bsr eax, r11d
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rsi, rax
jae 0x18001f078
mov r14, rdx
mov qword [rbp - 0x18], rdx
mov r10, rax
mov qword [rbp - 8], rax
mov qword [rbp - 0x10], r11
jmp 0x18001f081
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001ed16
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001ee08
xor rax, r9
tzcnt r8, rax
shr r8, 3
add r8, rdx
jmp 0x18001ef08
xor rax, r8
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001efee
mov r14, qword [rsp + 0x30]
mov r10, qword [rbp - 8]
mov r15, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x18]
mov dword [r13 + r12*4], r15d
mov r12, qword [rsp + 0x10]
test r15b, 3
jne 0x18001f20c
cmp r12, 0x20
jb 0x18001f20c
mov rbx, qword [rdi + 0x50]
cmp rbx, r15
ja 0x18001f204
mov r13, qword [rsp]
lea rsi, [rbx + 0x20]
mov r11, qword [rsp + 8]
mov r8d, dword [rdi + 0x40]
mov rax, r11
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x5c]
and r9d, 0x3fffffff
movzx edx, byte [rax + r13]
mov rax, r11
and rax, rsi
inc edx
imul edx, dword [rdi + 0x60]
movzx ecx, byte [rax + r13]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x40], eax
cmp r9d, 0x1000000
jae 0x18001f1f3
mov rax, qword [rdi + 0x48]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r15
jne 0x18001f1f3
mov eax, 0xffffffff
cmp r8, rax
je 0x18001f1f3
mov edi, r15d
sub edi, r8d
cmp rdi, qword [rsp + 0x48]
ja 0x18001f1ee
mov rdx, qword [rsp + 0x68]
and r11, r8
mov r8, r12
add rdx, r13
shr r8, 3
add r11, r13
xor eax, eax
test r8, r8
je 0x18001f17e
mov r10, r11
sub r10, rdx
mov r9, qword [rdx]
mov rcx, qword [rdx + r10]
cmp r9, rcx
jne 0x18001f276
add rdx, 8
add rax, 8
sub r8, 1
jne 0x18001f160
mov r8, r12
and r8d, 7
je 0x18001f1a3
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax + rdx]
cmp byte [rax + r11], cl
jne 0x18001f1a3
inc rax
sub r8, 1
jne 0x18001f190
mov rdx, rax
mov r10, qword [rbp - 8]
mov r11, qword [rsp + 8]
cmp rdx, 4
jb 0x18001f1ee
cmp rdx, r14
jbe 0x18001f1ee
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r10
jbe 0x18001f1ee
mov r14, rdx
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rdi
mov r10, rax
mov qword [rbp - 8], rax
mov dword [rbp], 0
mov rdi, qword [rsp + 0x18]
add rbx, 4
add rsi, 4
cmp rbx, r15
jbe 0x18001f0c3
lea rax, [r15 + 4]
mov qword [rdi + 0x50], rax
mov rax, qword [rsp + 0x50]
add rax, 0xaf
cmp r10, rax
mov r10, qword [rsp + 0x40]
jb 0x18001f295
mov ecx, dword [rsp + 0x20]
inc r10
movups xmm0, xmmword [rbp - 0x18]
inc ecx
mov r13, r15
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x20], ecx
movups xmm1, xmmword [rbp - 8]
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm1
cmp ecx, 4
jge 0x18001f28a
lea rax, [r15 + 8]
cmp rax, qword [rbp - 0x80]
jae 0x18001f28a
mov rax, qword [rbp - 0x28]
dec r12
mov r15, qword [rbp - 0x38]
xor esi, esi
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x28], r15
jmp 0x18001ea79
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x18001f1a6
mov r11, qword [rbp - 0x38]
mov qword [rsp + 0x28], r11
jmp 0x18001f29f
mov r13, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
mov rax, qword [rbp - 0x60]
lea r12, [r11*2]
mov rbx, qword [rbp - 0x30]
add r12, r13
add r12, qword [rbp - 0x68]
add rax, r13
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x68], r12
mov r12, qword [rsp + 0x58]
cmp rax, r12
mov r9, r12
cmovb r9, rax
cmp rbx, r9
ja 0x18001f355
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 0x18001f2f5
xor r8d, r8d
jmp 0x18001f359
cmp rbx, r8
jne 0x18001f302
mov r8d, 1
jmp 0x18001f359
cmp rdx, 7
jae 0x18001f31d
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x18001f359
cmp rcx, 7
jae 0x18001f335
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x18001f359
movsxd rax, dword [rdi + 8]
cmp rbx, rax
jne 0x18001f346
mov r8d, 2
jmp 0x18001f359
movsxd rax, dword [rdi + 0xc]
mov r8d, 3
cmp rbx, rax
je 0x18001f359
lea r8, [rbx + 0xf]
cmp rbx, r9
ja 0x18001f379
test r8, r8
je 0x18001f379
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 eax, dword [rbp - 0x30]
mov dword [rdi], eax
mov rcx, qword [rsp + 0x60]
mov esi, dword [rbp - 0x20]
mov r14d, dword [rbp - 0x38]
movzx eax, sil
shl eax, 0x19
or eax, r14d
mov dword [rcx], r10d
mov dword [rcx + 4], eax
mov rcx, qword [rbp - 0x78]
mov r15d, dword [rcx + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jae 0x18001f3aa
xor edi, edi
jmp 0x18001f428
mov r11d, dword [rcx + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 0x28]
sub rdi, rax
shl r8, cl
mov eax, 1
shl ax, cl
add r8w, 0x10
dec ax
shr rdi, cl
and ax, r10w
mov r10, qword [rsp + 0x40]
add r8w, ax
add r8w, r15w
or r8w, r9w
mov r15, qword [rsp + 0x60]
lea edx, [r14 + rsi]
mov eax, 0x3ff
movsxd r9, edx
mov word [r15 + 0xe], r8w
and r8w, ax
mov dword [r15 + 8], edi
cmp r10, 6
jae 0x18001f453
mov eax, 0x17
jmp 0x18001f4c3
cmp r10, 0x82
jae 0x18001f47d
lea eax, [r10 - 2]
add r10, 0xfffffffffffffffe
bsr ecx, eax
mov eax, 0x17
dec ecx
shr r10, cl
inc cx
add cx, cx
add r10w, cx
jmp 0x18001f4c3
cmp r10, 0x842
jae 0x18001f49a
lea eax, [r10 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x18001f4c3
mov eax, 0x17
cmp r10, 0x1842
jae 0x18001f4ae
lea r10d, [rax - 2]
jmp 0x18001f4c3
cmp r10, 0x5842
jae 0x18001f4bf
mov r10d, 0x16
jmp 0x18001f4c3
movzx r10d, ax
cmp r9, 0xa
jae 0x18001f4d0
sub r9w, 2
jmp 0x18001f510
cmp r9, 0x86
jae 0x18001f4f5
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 0x18001f510
cmp r9, 0x846
jae 0x18001f50c
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x18001f510
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 0x18001f54d
cmp r10w, 8
jae 0x18001f54d
cmp r9w, 0x10
jae 0x18001f54d
movzx eax, dx
or ax, 0x40
cmp r9w, 8
cmovae dx, ax
jmp 0x18001f581
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 [rsp + 0x40]
lea r9, [r11 + r13]
mov r8, qword [rbp - 0x70]
xor esi, esi
mov rcx, qword [rbp - 0x58]
mov word [r15 + 0xc], dx
add r15, 0x10
mov qword [rsp + 0x60], r15
lea rdx, [r13 + 2]
mov qword [rsp + 0x40], rsi
add qword [rcx], rax
mov rax, r11
cmp r9, r8
mov qword [rsp + 0x70], r9
cmovb r8, r9
shr rax, 2
cmp rbx, rax
jae 0x18001f5e5
lea rax, [rbx*4]
sub r13, rax
add r13, r11
cmp rdx, r13
cmova r13, rdx
cmp r8, r13
mov rdx, r13
cmovb rdx, r8
mov r10, qword [rsp + 0x18]
cmp rdx, r8
jae 0x18001f63a
mov r9, qword [rsp]
movabs r12, 0x35a7bd1e35a7bd00
nop dword [rax]
mov rax, qword [rsp + 8]
and rax, rdx
mov rcx, qword [rax + r9]
mov eax, edx
imul rcx, r12
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 0x18001f600
mov r9, qword [rsp + 0x70]
mov r12, qword [rsp + 0x58]
mov r13, r9
mov qword [rsp + 0x38], r9
jmp 0x18001f7be
mov rsi, qword [rsp + 0x40]
inc r13
mov r12, qword [rsp + 0x68]
inc rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
cmp r13, r12
jbe 0x18001f7af
mov rax, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x80]
add rdx, 0xfffffffffffffff9
lea rax, [r12 + rax*4]
cmp r13, rax
jbe 0x18001f712
mov r11, qword [rsp]
lea rax, [r13 + 0x10]
mov rbx, qword [rsp + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r13, rdx
jae 0x18001f79e
add rsi, 4
mov rax, rdx
sub rax, r13
dec rax
and rax, 0xfffffffffffffffc
add rsi, rax
mov qword [rsp + 0x40], rsi
movabs rsi, 0x35a7bd1e35a7bd00
mov rax, rbx
and rax, r13
mov rcx, qword [rax + r11]
mov eax, r13d
imul rcx, rsi
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rdi + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r13d
add r13, 4
cmp r13, rdx
jb 0x18001f6c3
mov r10, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x40]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov qword [rsp + 0x38], r13
jmp 0x18001f7c7
lea rax, [r13 + 8]
cmp rax, rdx
cmovb rdx, rax
cmp r13, rdx
jae 0x18001f7af
mov r11, qword [rsp]
add rsi, 2
mov rbx, qword [rsp + 8]
mov rax, rdx
sub rax, r13
dec rax
and rax, 0xfffffffffffffffe
add rsi, rax
mov qword [rsp + 0x40], rsi
movabs rsi, 0x35a7bd1e35a7bd00
mov rax, rbx
and rax, r13
mov rcx, qword [rax + r11]
mov eax, r13d
imul rcx, rsi
and eax, 0x18
shr rcx, 0x2c
add ecx, eax
mov rax, qword [rdi + 0x38]
and ecx, 0xfffff
mov dword [rax + rcx*4], r13d
add r13, 2
cmp r13, rdx
jb 0x18001f752
mov r10, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x40]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov qword [rsp + 0x38], r13
jmp 0x18001f7c7
mov r10, qword [rsp + 0x18]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
jmp 0x18001f7c7
mov r15, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp]
mov rbx, qword [rsp + 8]
mov rdx, qword [rbp - 0x80]
lea rax, [r13 + 8]
mov r8, qword [rsp + 0x78]
movabs rcx, 0x35a7bd1e35a7bd00
cmp rax, rdx
jb 0x18001e320
mov rdi, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
sub rdx, r13
sub r15, rcx
add rdx, rsi
sar r15, 4
mov qword [rax], rdx
add qword [rdi], r15
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.18004ccd0
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x1800c6008]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r11, qword [rbp + 0xc0]
mov rax, rcx
mov rcx, qword [rbp + 0xe8]
mov rsi, rdx
mov rdi, qword [rbp + 0xc8]
mov r10d, 1
mov r14, qword [rbp + 0xe0]
mov r12, r9
mov qword [rbp - 0x30], rcx
mov qword [rsp + 0x40], r8
lea rbx, [rax + rsi]
mov r8, qword [rbp + 0xb8]
mov qword [rsp], rdx
mov rdx, qword [rbp + 0xd0]
mov qword [rsp + 0x18], r9
mov ecx, dword [r8 + 8]
mov r9, qword [rbp + 0xd8]
mov r13, qword [rdx]
shl r10, cl
mov rcx, qword [r8 + 0x10]
sub r10, 0x10
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x50], rdi
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x48], r9
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x50], r10
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x18], r9
mov qword [rsp + 0x60], r13
mov qword [rbp - 0x58], rbx
cmp rax, 8
jb 0x18001f8fd
lea rax, [rbx - 7]
mov qword [rbp - 0x40], rax
jmp 0x18001f901
mov qword [rbp - 0x40], rsi
cmp dword [r8 + 4], 9
mov edx, 0x40
mov eax, 0x200
cmovl eax, edx
mov edx, dword [r11 + 0x58]
mov qword [rbp - 0x38], rax
add rax, rsi
mov qword [rbp - 0x68], rax
cmp edx, 4
jle 0x18001f97d
mov ecx, dword [rdi]
lea eax, [rcx - 1]
mov dword [rdi + 0x10], eax
lea eax, [rcx + 1]
mov dword [rdi + 0x14], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x18], eax
lea eax, [rcx + 2]
mov dword [rdi + 0x1c], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x20], eax
lea eax, [rcx + 3]
mov dword [rdi + 0x24], eax
cmp edx, 0xa
jle 0x18001f979
mov ecx, dword [rdi + 4]
lea eax, [rcx - 1]
mov dword [rdi + 0x28], eax
lea eax, [rcx + 1]
mov dword [rdi + 0x2c], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x30], eax
lea eax, [rcx + 2]
mov dword [rdi + 0x34], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x38], eax
lea eax, [rcx + 3]
mov dword [rdi + 0x3c], eax
mov rcx, qword [rbp - 0x70]
lea rax, [rsi + 8]
cmp rax, rbx
jae 0x180021005
mov qword [rsp + 0x148], r15
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
mov r14, qword [r11 + 0x68]
lea rax, [rsi + rcx]
mov r15, qword [r11 + 0x70]
mov r13, rbx
sub r13, rsi
mov qword [rbp + 0x18], rdx
cmp rsi, r10
mov qword [rsp + 8], r13
mov r9, r10
mov qword [rsp + 0x28], 0x7e4
cmovb r9, rsi
mov qword [rsp + 0x68], r14
cmp rax, r10
mov qword [rsp + 0x10], r9
mov rcx, r10
mov qword [rbp - 0x80], r15
cmovb rcx, rax
mov qword [rsp + 0x58], rdx
mov rax, qword [r8 + 0x50]
mov rbx, rdx
mov r8, r12
mov qword [rsp + 0x70], rcx
and r8, rsi
mov qword [rbp - 0x78], rax
movsxd rsi, dword [r11 + 0x58]
mov ecx, 0x7e4
mov qword [rsp + 0x48], r8
mov r10, rdx
mov qword [rbp + 0x10], rdx
mov dword [rbp + 0x28], edx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdx
test rsi, rsi
je 0x18001fbaf
mov r15, qword [rsp + 0x40]
mov r14, r8
mov rax, qword [rsp]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdx
movsxd rdi, dword [rdi + rbx*4]
mov rcx, rax
sub rcx, rdi
cmp rcx, rax
jae 0x18001fb8b
cmp rdi, r9
ja 0x18001fb8b
and rcx, r12
lea rax, [r10 + r14]
cmp rax, r12
ja 0x18001fb87
lea rax, [rcx + r10]
cmp rax, r12
ja 0x18001fb87
lea r11, [r15 + rcx]
movzx eax, byte [r10 + r11]
lea rcx, [r15 + r10]
cmp byte [rcx + r14], al
jne 0x18001fb87
mov r8, r13
lea rdx, [r15 + r14]
shr r8, 3
xor ecx, ecx
test r8, r8
je 0x18001face
mov r10, r11
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001fb69
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001fab0
mov r8, r13
and r8d, 7
je 0x18001faf3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001faf3
inc rcx
sub r8, 1
jne 0x18001fae0
mov r9, rcx
cmp r9, 3
jae 0x18001fb0b
cmp r9, 2
jne 0x18001fb7d
cmp rbx, r9
jae 0x18001fb7d
mov r11, qword [rsp + 0x38]
imul r8, r9, 0x87
add r8, 0x78f
cmp r11, r8
jae 0x18001fb7d
test rbx, rbx
je 0x18001fb45
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r11, r8
jae 0x18001fb7d
mov rdx, r9
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x58], rdx
mov r10, r9
mov qword [rbp + 0x10], rdx
mov qword [rsp + 0x30], r9
mov qword [rbp + 0x18], rdi
mov qword [rsp + 0x28], r8
jmp 0x18001fb82
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001faf6
mov r10, qword [rsp + 0x30]
mov r9, qword [rsp + 0x10]
mov rax, qword [rsp]
mov rdi, qword [rsp + 0x50]
inc rbx
cmp rbx, rsi
jb 0x18001fa42
mov r14, qword [rsp + 0x68]
mov r15, qword [rbp - 0x80]
mov r8, qword [rsp + 0x48]
mov r11, qword [rsp + 0x20]
mov ecx, dword [r11 + 0x40]
movabs rax, 0x1fe35a7bd3579bd3
mov r12, qword [rsp + 0x40]
mov rdx, qword [r11 + 0x48]
add r12, r8
and rdx, qword [r12]
imul rdx, rax
shr rdx, cl
mov ecx, dword [r11 + 0x54]
mov eax, edx
shl eax, cl
lea r15, [r15 + rax*4]
mov eax, edx
movzx edx, word [r14 + rax*2]
mov esi, edx
mov edi, edx
sub rsi, qword [r11 + 0x38]
cmp rdx, qword [r11 + 0x38]
lea r13, [r14 + rax*2]
mov eax, 0
mov qword [rsp + 0x68], r13
cmovbe rsi, rax
cmp rdx, rsi
jbe 0x18001fd62
mov r14d, dword [r11 + 0x50]
mov r13, qword [rsp + 0x18]
nop word [rax + rax]
mov rbx, qword [rsp]
dec rdi
mov rax, r14
and rax, rdi
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r9
ja 0x18001fd53
and rcx, r13
lea rax, [r10 + r8]
cmp rax, r13
ja 0x18001fd4a
lea rax, [rcx + r10]
cmp rax, r13
ja 0x18001fd4a
mov rax, qword [rsp + 0x40]
lea r11, [rax + rcx]
lea rcx, [rax + r10]
movzx eax, byte [r11 + r10]
cmp byte [rcx + r8], al
jne 0x18001fd4a
xor eax, eax
mov rdx, r12
mov ecx, eax
mov rax, qword [rsp + 8]
mov r8, rax
shr r8, 3
test r8, r8
je 0x18001fcc3
mov r10, r11
sub r10, r12
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001fd34
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001fca0
mov rax, qword [rsp + 8]
mov r8, rax
and r8d, 7
je 0x18001fce3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x18001fce3
inc rcx
sub r8, 1
jne 0x18001fcd0
mov rdx, rcx
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x10]
cmp rdx, 4
jb 0x18001fd45
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rsp + 0x38], rax
jae 0x18001fd45
mov qword [rsp + 0x38], rax
mov r10, rdx
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x58], rdx
mov qword [rbp + 0x10], rdx
mov qword [rbp + 0x18], rbx
mov qword [rsp + 0x28], rax
jmp 0x18001fd4a
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x18001fce6
mov r10, qword [rsp + 0x30]
cmp rdi, rsi
ja 0x18001fc20
mov r13, qword [rsp + 0x68]
mov r11, qword [rsp + 0x20]
movzx edx, word [r13]
mov eax, dword [r11 + 0x50]
mov rsi, qword [rsp]
and rax, rdx
mov dword [r15 + rax*4], esi
inc word [r13]
cmp qword [rsp + 0x28], 0x7e4
jne 0x18002008e
mov r13, qword [r11 + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18002008e
imul ebx, dword [r12], 0x1e35a7bd
lea r15, [rcx + 1]
mov r8, qword [rsp + 0x78]
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 0x18001ff1f
mov rax, qword [r8 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x18001ff1f
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 0x18001fe3e
mov r10, r12
sub r10, rdx
nop word [rax + rax]
mov r9, qword [rdx]
mov rax, qword [r10 + rdx]
cmp r9, rax
jne 0x18001ff0b
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001fe20
mov r8, r11
and r8d, 7
je 0x18001fe63
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r12], al
jne 0x18001fe63
inc rcx
sub r8, 1
jne 0x18001fe50
mov r9, rcx
mov r10, qword [rsp + 0x78]
mov eax, dword [r10 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18001ff26
test r9, r9
je 0x18001ff26
mov rax, qword [r10 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rsp + 0x70]
lea r8, [rsi + 1]
add r8, rdx
cmp r8, qword [rbp - 0x78]
ja 0x18001ff2b
mov rdx, qword [rsp + 8]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18001ff30
mov rcx, r9
mov qword [rsp + 0x28], rax
lea rax, [r14 + 1]
mov qword [rsp + 0x58], rcx
sub r11d, r9d
mov qword [r13 + 0x10], rax
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x28], r11d
mov qword [rbp + 0x18], r8
jmp 0x18001ff30
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001fe66
mov rsi, qword [rsp + 0x70]
jmp 0x18001ff30
mov rsi, qword [rsp + 0x70]
mov rdx, qword [rsp + 8]
mov r14, qword [rsp + 0x78]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18002008a
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18002008a
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 0x18001ffbe
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 0x180020076
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x18001ffa0
mov r8, r11
and r8d, 7
je 0x18001ffdc
movzx eax, byte [rdx]
cmp byte [rcx + r12], al
jne 0x18001ffdc
inc rdx
inc rcx
sub r8, 1
jne 0x18001ffc7
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18002008a
test r9, r9
je 0x18002008a
mov rax, qword [r14 + 0x68]
mov r8, r11
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, qword [rbp - 0x78]
ja 0x18002008a
mov rsi, qword [rsp]
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, qword [rsp + 0x28]
jb 0x18002008e
sub r11d, r9d
mov qword [rbp + 0x18], r8
inc qword [r13 + 0x10]
mov rcx, r9
mov dword [rbp + 0x28], r11d
mov r11, rax
mov qword [rsp + 0x58], rcx
mov qword [rbp + 0x10], rcx
mov qword [rsp + 0x28], rax
jmp 0x180020093
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x18001ffdf
mov rsi, qword [rsp]
mov r11, qword [rsp + 0x28]
mov r13, qword [rsp + 8]
mov rdi, qword [rsp + 0x20]
cmp r13, 0x20
jb 0x180020236
mov rbx, qword [rdi + 0x88]
cmp rbx, rsi
ja 0x18002022b
mov r14, qword [rsp + 0x48]
lea rsi, [rbx + 0x20]
mov r15, qword [rsp + 0x10]
mov r10, qword [rsp + 0x18]
mov r12, qword [rsp + 0x40]
nop
mov r8d, dword [rdi + 0x78]
mov rax, r10
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x94]
and r9d, 0x3fffffff
movzx edx, byte [rax + r12]
mov rax, r10
and rax, rsi
inc edx
imul edx, dword [rdi + 0x98]
movzx ecx, byte [rax + r12]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x78], eax
cmp r9d, 0x1000000
jae 0x180020217
mov rax, qword [rdi + 0x80]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
mov rax, qword [rsp]
cmp rbx, rax
jne 0x180020217
mov ecx, 0xffffffff
cmp r8, rcx
je 0x180020217
sub eax, r8d
mov edi, eax
cmp rdi, r15
ja 0x180020212
xor eax, eax
lea rdx, [r12 + r14]
mov r11, r10
mov ecx, eax
and r11, r8
mov r8, r13
shr r8, 3
add r11, r12
test r8, r8
je 0x18002019e
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x180020270
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180020180
mov r8, r13
and r8d, 7
je 0x1800201c3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800201c3
inc rcx
sub r8, 1
jne 0x1800201b0
mov rdx, rcx
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp + 0x18]
cmp rdx, 4
jb 0x180020212
cmp rdx, qword [rsp + 0x58]
jbe 0x180020212
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r11
jbe 0x180020212
mov r11, rax
mov qword [rsp + 0x28], rax
xor eax, eax
mov qword [rsp + 0x58], rdx
mov dword [rbp + 0x28], eax
mov qword [rbp + 0x10], rdx
mov qword [rbp + 0x18], rdi
mov rdi, qword [rsp + 0x20]
inc rbx
inc rsi
cmp rbx, qword [rsp]
jbe 0x1800200d0
mov rsi, qword [rsp]
lea rax, [rsi + 1]
mov qword [rdi + 0x88], rax
cmp r11, 0x7e4
jbe 0x18002103b
mov rax, qword [rsp + 0x58]
xor ebx, ebx
mov dword [rsp + 0x70], ebx
dec r13
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 8], r13
cmp dword [rdx + 4], 5
jge 0x180020284
dec rax
mov r11, r13
cmp rax, r13
cmovb r11, rax
jmp 0x180020287
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800201c6
mov r11, rbx
mov r10, qword [rbp - 0x50]
lea r9, [rsi + 1]
mov rax, qword [rbp - 0x70]
cmp r9, r10
mov r14, qword [rdi + 0x68]
mov r13, r10
mov r15, qword [rdi + 0x70]
cmovb r13, r9
inc rax
mov qword [rsp + 0x38], r11
add rax, rsi
mov qword [rbp - 8], rbx
movsxd rsi, dword [rdi + 0x58]
cmp rax, r10
mov rcx, r10
mov qword [rsp + 0x30], r9
mov r10, qword [rsp + 0x18]
cmovb rcx, rax
mov rax, qword [rdx + 0x50]
mov r8d, 0x7e4
and r10, r9
mov qword [rbp - 0x80], rcx
mov qword [rbp], r8
mov ecx, r8d
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x68], r13
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x10], r14
mov qword [rbp - 0x60], r15
mov qword [rsp + 0x48], r10
mov qword [rbp - 0x10], rbx
mov dword [rbp + 8], ebx
test rsi, rsi
je 0x180020496
mov r14, qword [rsp + 0x18]
mov r12d, ecx
mov r15, qword [rsp + 8]
mov rax, qword [rsp + 0x50]
movsxd rdi, dword [rax + rbx*4]
mov rcx, r9
sub rcx, rdi
cmp rcx, r9
jae 0x180020478
cmp rdi, r13
ja 0x180020478
and rcx, r14
lea rax, [r11 + r10]
cmp rax, r14
ja 0x180020473
lea rax, [rcx + r11]
cmp rax, r14
ja 0x180020473
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
lea r11, [rdx + rcx]
lea rcx, [rdx + rax]
movzx eax, byte [r11 + rax]
cmp byte [rcx + r10], al
jne 0x18002046e
xor eax, eax
mov r8, r15
shr r8, 3
add rdx, r10
mov ecx, eax
test r8, r8
je 0x1800203be
mov r10, r11
sub r10, rdx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x18002044f
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x1800203a0
mov r8, r15
and r8d, 7
je 0x1800203e3
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800203e3
inc rcx
sub r8, 1
jne 0x1800203d0
mov r9, rcx
cmp r9, 3
jae 0x1800203f7
cmp r9, 2
jne 0x180020460
cmp rbx, r9
jae 0x180020460
imul r8, r9, 0x87
add r8, 0x78f
cmp r12, r8
jae 0x180020460
test rbx, rbx
je 0x18002042c
movzx ecx, bl
mov edx, 0x1ca10
and cl, 0xe
sar rdx, cl
and edx, 0xe
sub r8, rdx
sub r8, 0x27
cmp r12, r8
jae 0x180020460
mov r10, qword [rsp + 0x48]
mov r11, r9
mov qword [rsp + 0x38], r9
mov r12, r8
mov qword [rbp - 0x10], r9
mov r9, qword [rsp + 0x30]
mov qword [rbp - 8], rdi
mov qword [rbp], r8
jmp 0x180020473
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800203e6
mov r8, qword [rbp]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x38]
mov rax, qword [rsp + 0x50]
inc rbx
cmp rbx, rsi
jb 0x180020321
mov r14, qword [rsp + 0x10]
mov r15, qword [rbp - 0x60]
mov rdi, qword [rsp + 0x20]
mov qword [rbp - 0x78], r12
add r10, qword [rsp + 0x40]
movabs rax, 0x1fe35a7bd3579bd3
mov ecx, dword [rdi + 0x40]
mov qword [rsp + 0x10], r10
mov rdx, qword [r10]
and rdx, qword [rdi + 0x48]
imul rdx, rax
shr rdx, cl
mov ecx, dword [rdi + 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 - 0x60], r12
sub rsi, qword [rdi + 0x38]
mov eax, 0
cmp r13, qword [rdi + 0x38]
mov edi, r13d
cmovbe rsi, rax
cmp r13, rsi
jbe 0x18002064b
mov rax, qword [rsp + 0x20]
mov r13, qword [rsp + 0x48]
mov r12, qword [rbp - 0x68]
mov r14d, dword [rax + 0x50]
nop word [rax + rax]
dec rdi
mov rbx, r9
mov rax, rdi
and rax, r14
mov ecx, dword [r15 + rax*4]
sub rbx, rcx
cmp rbx, r12
ja 0x180020642
mov rdx, qword [rsp + 0x18]
lea rax, [r11 + r13]
and rcx, rdx
cmp rax, rdx
ja 0x180020639
lea rax, [rcx + r11]
cmp rax, rdx
ja 0x180020639
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
lea r11, [rdx + rcx]
lea rcx, [rdx + rax]
movzx eax, byte [r11 + rax]
cmp byte [rcx + r13], al
jne 0x180020634
xor eax, eax
mov rdx, r10
mov ecx, eax
mov rax, qword [rsp + 8]
mov r8, rax
shr r8, 3
test r8, r8
je 0x1800205b3
mov r10, r11
sub r10, qword [rsp + 0x10]
nop
mov rax, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rax, r9
jne 0x18002061f
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180020590
mov rax, qword [rsp + 8]
mov r8, rax
and r8d, 7
je 0x1800205d3
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r11], al
jne 0x1800205d3
inc rcx
sub r8, 1
jne 0x1800205c0
mov rdx, rcx
mov r10, qword [rsp + 0x10]
mov r9, qword [rsp + 0x30]
cmp rdx, 4
jb 0x180020630
bsr eax, ebx
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp qword [rbp - 0x78], rax
jae 0x180020630
mov qword [rbp - 0x78], rax
mov r11, rdx
mov qword [rsp + 0x38], rdx
mov r8, rax
mov qword [rbp - 0x10], rdx
mov qword [rbp - 8], rbx
mov qword [rbp], rax
jmp 0x180020639
xor rax, r9
tzcnt rdx, rax
shr rdx, 3
add rdx, rcx
jmp 0x1800205d6
mov r8, qword [rbp]
mov r11, qword [rsp + 0x38]
cmp rdi, rsi
ja 0x180020510
mov r12, qword [rbp - 0x60]
movzx r13d, word [r12]
mov rcx, qword [rsp + 0x20]
mov eax, dword [rcx + 0x50]
and rax, r13
mov dword [r15 + rax*4], r9d
inc word [r12]
cmp r8, 0x7e4
jne 0x18002095a
mov r13, qword [rcx + 0x60]
mov rcx, qword [r13 + 8]
mov r14, qword [r13 + 0x10]
mov rax, rcx
shr rax, 7
cmp r14, rax
jb 0x18002095a
imul ebx, dword [r10], 0x1e35a7bd
lea r15, [rcx + 1]
mov r12, qword [rsp + 0x78]
mov rdx, qword [rsp + 8]
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 0x180020805
mov rax, qword [r12 + 0x70]
mov r11d, ecx
movzx esi, word [rax + rbx*2]
cmp rcx, rdx
ja 0x180020805
mov rdi, qword [r12 + 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 0x180020723
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r8, qword [rdx + r10]
cmp rax, r8
jne 0x1800207e7
add rdx, 8
add rcx, 8
sub r9, 1
jne 0x180020700
mov r10, qword [rsp + 0x10]
mov r8, r11
and r8d, 7
je 0x180020743
sub rdx, rcx
nop
movzx eax, byte [rdx + rcx]
cmp byte [rcx + r10], al
jne 0x180020743
inc rcx
sub r8, 1
jne 0x180020730
mov r9, rcx
mov eax, dword [r12 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x1800207fb
test r9, r9
je 0x1800207fb
mov rax, qword [r12 + 0x68]
mov r8, r11
mov r12, qword [rsp + 0x68]
sub r8, r9
mov r10, qword [rsp + 0x10]
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rdi + r11]
and eax, 0x3f
lea rdx, [rax + r8*4]
shl rdx, cl
add rdx, rsi
mov rsi, qword [rbp - 0x80]
lea r8, [rsi + 1]
add r8, rdx
mov rdx, qword [rsp + 8]
cmp r8, r12
ja 0x18002080e
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, 0x7e4
jb 0x18002080e
mov qword [rbp], rax
sub r11d, r9d
lea rax, [r14 + 1]
mov qword [rbp - 0x10], r9
mov qword [r13 + 0x10], rax
mov dword [rbp + 8], r11d
mov qword [rbp - 8], r8
jmp 0x18002080e
xor rax, r8
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x180020746
mov rdx, qword [rsp + 8]
mov r10, qword [rsp + 0x10]
mov r12, qword [rsp + 0x68]
mov rsi, qword [rbp - 0x80]
mov r14, qword [rsp + 0x78]
lea rax, [r15 + 1]
mov qword [r13 + 8], rax
mov rax, qword [r14 + 0x78]
movzx ecx, byte [rbx + rax + 1]
test cl, cl
je 0x18002095a
mov rax, qword [r14 + 0x70]
mov r11d, ecx
movzx edi, word [rax + rbx*2 + 2]
cmp rcx, rdx
ja 0x18002095a
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 0x18002088e
sub r10, rdx
nop dword [rax]
mov rax, qword [rdx]
mov r9, qword [rdx + r10]
cmp rax, r9
jne 0x180020946
add rdx, 8
add rcx, 8
sub r8, 1
jne 0x180020870
mov r8, r11
and r8d, 7
je 0x1800208b5
mov r9, qword [rsp + 0x10]
nop dword [rax]
movzx eax, byte [rdx]
cmp byte [rcx + r9], al
jne 0x1800208b5
inc rdx
inc rcx
sub r8, 1
jne 0x1800208a0
mov r9, rcx
mov eax, dword [r14 + 0x64]
add rax, r9
cmp rax, r11
jbe 0x18002095a
test r9, r9
je 0x18002095a
mov rax, qword [r14 + 0x68]
mov r8, r11
mov r14, qword [rbp]
sub r8, r9
movzx edx, r8b
add dl, dl
lea ecx, [rdx + r8]
add cl, cl
shr rax, cl
movzx ecx, byte [rbx + r11]
and eax, 0x3f
lea r8, [rax + r8*4]
shl r8, cl
inc r8
add r8, rdi
add r8, rsi
cmp r8, r12
ja 0x18002095e
bsr eax, r8d
imul ecx, eax, 0x1e
imul rax, r9, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r14
jb 0x18002095e
sub r11d, r9d
mov qword [rbp - 0x10], r9
inc qword [r13 + 0x10]
mov r12, r9
mov dword [rbp + 8], r11d
mov r14, rax
mov qword [rbp - 8], r8
mov qword [rbp], rax
jmp 0x180020962
xor rax, r9
tzcnt r9, rax
shr r9, 3
add r9, rcx
jmp 0x1800208b8
mov r14, qword [rbp]
mov r12, qword [rbp - 0x10]
mov r13, qword [rsp + 8]
mov rdi, qword [rsp + 0x20]
mov r15, qword [rsp + 0x30]
cmp r13, 0x20
jb 0x180020b01
mov rbx, qword [rdi + 0x88]
cmp rbx, r15
ja 0x180020af6
mov r13, qword [rsp + 0x48]
lea rsi, [rbx + 0x20]
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp + 0x40]
nop
mov r8d, dword [rdi + 0x78]
mov rax, r10
and rax, rbx
mov r9d, r8d
imul r8d, dword [rdi + 0x94]
and r9d, 0x3fffffff
movzx edx, byte [rax + r11]
mov rax, r10
and rax, rsi
inc edx
imul edx, dword [rdi + 0x98]
movzx ecx, byte [rax + r11]
lea eax, [r8 + 1]
sub ecx, edx
add eax, ecx
mov dword [rdi + 0x78], eax
cmp r9d, 0x1000000
jae 0x180020ade
mov rax, qword [rdi + 0x80]
mov r8d, dword [rax + r9*4]
mov dword [rax + r9*4], ebx
cmp rbx, r15
jne 0x180020ade
mov eax, 0xffffffff
cmp r8, rax
je 0x180020ade
mov edi, r15d
sub edi, r8d
cmp rdi, qword [rbp - 0x68]
ja 0x180020ad9
mov rcx, qword [rsp + 8]
lea rdx, [r11 + r13]
mov r11, r10
xor eax, eax
and r11, r8
mov r8, rcx
add r11, qword [rsp + 0x40]
shr r8, 3
test r8, r8
je 0x180020a73
mov r10, r11
sub r10, rdx
nop dword [rax + rax]
mov rcx, qword [rdx]
mov r9, qword [r10 + rdx]
cmp rcx, r9
jne 0x180020b62
add rdx, 8
add rax, 8
sub r8, 1
jne 0x180020a50
mov rcx, qword [rsp + 8]
mov r8, rcx
and r8d, 7
je 0x180020a93
sub rdx, rax
nop
movzx ecx, byte [rdx + rax]
cmp byte [rax + r11], cl
jne 0x180020a93
inc rax
sub r8, 1
jne 0x180020a80
mov rdx, rax
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp + 0x40]
cmp rdx, 4
jb 0x180020ad9
cmp rdx, r12
jbe 0x180020ad9
bsr eax, edi
imul ecx, eax, 0x1e
imul rax, rdx, 0x87
sub rax, rcx
add rax, 0x780
cmp rax, r14
jbe 0x180020ad9
mov r14, rax
mov qword [rbp], rax
xor eax, eax
mov qword [rbp - 8], rdi
mov dword [rbp + 8], eax
mov r12, rdx
mov rdi, qword [rsp + 0x20]
inc rbx
inc rsi
cmp rbx, r15
jbe 0x1800209a0
mov r13, qword [rsp + 8]
mov qword [rbp - 0x10], r12
lea rax, [r15 + 1]
mov qword [rdi + 0x88], rax
mov rax, qword [rsp + 0x28]
add rax, 0xaf
cmp r14, rax
jb 0x180020b81
mov ecx, dword [rsp + 0x70]
mov rsi, r15
movups xmm0, xmmword [rbp - 0x10]
inc qword [rsp + 0x60]
inc ecx
mov qword [rsp], r15
mov dword [rsp + 0x70], ecx
movups xmm1, xmmword [rbp]
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm1
cmp ecx, 4
jge 0x180020b76
lea rax, [r15 + 8]
cmp rax, qword [rbp - 0x58]
jae 0x180020b76
mov rax, qword [rbp + 0x20]
dec r13
mov qword [rsp + 0x28], rax
xor ebx, ebx
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x58], rax
jmp 0x180020251
xor rcx, r9
tzcnt rdx, rcx
shr rdx, 3
add rdx, rax
jmp 0x180020a96
mov r11, qword [rbp + 0x10]
mov qword [rsp + 0x58], r11
jmp 0x180020b8a
mov rsi, qword [rsp]
mov r11, qword [rsp + 0x58]
mov r9, qword [rbp - 0x50]
lea r12, [rsi + r11*2]
add r12, qword [rbp - 0x38]
mov rax, qword [rbp - 0x70]
mov r10, qword [rsp + 0x50]
add rax, rsi
mov rsi, qword [rbp + 0x18]
cmp rax, r9
mov qword [rbp - 0x68], r12
cmovb r9, rax
cmp rsi, r9
ja 0x180020c3a
movsxd rax, dword [r10]
lea rcx, [rsi + 3]
movsxd r8, dword [r10 + 4]
mov rdx, rcx
sub rdx, rax
sub rcx, r8
cmp rsi, rax
jne 0x180020bda
xor ebx, ebx
mov r8d, ebx
jmp 0x180020c40
cmp rsi, r8
jne 0x180020be7
mov r8d, 1
jmp 0x180020c3e
cmp rdx, 7
jae 0x180020c02
movzx ecx, dl
mov r8d, 0x9750468
shl cl, 2
sar r8, cl
and r8d, 0xf
jmp 0x180020c3e
cmp rcx, 7
jae 0x180020c1a
shl cl, 2
mov r8d, 0xfdb1ace
sar r8, cl
and r8d, 0xf
jmp 0x180020c3e
movsxd rax, dword [r10 + 8]
cmp rsi, rax
jne 0x180020c2b
mov r8d, 2
jmp 0x180020c3e
movsxd rax, dword [r10 + 0xc]
mov r8d, 3
cmp rsi, rax
je 0x180020c3e
lea r8, [rsi + 0xf]
xor ebx, ebx
cmp rsi, r9
ja 0x180020cd3
test r8, r8
je 0x180020cd3
mov eax, dword [r10 + 8]
mov edx, dword [r10]
mov ecx, dword [rbp + 0x18]
mov dword [r10 + 0xc], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 8], eax
mov dword [r10 + 4], edx
mov dword [r10], ecx
mov r9d, dword [rdi + 0x58]
cmp r9d, 4
jle 0x180020cd3
lea eax, [rcx - 1]
mov dword [r10 + 0x10], eax
lea eax, [rcx + 1]
mov dword [r10 + 0x14], eax
lea eax, [rcx - 2]
mov dword [r10 + 0x18], eax
lea eax, [rcx + 2]
mov dword [r10 + 0x1c], eax
lea eax, [rcx - 3]
mov dword [r10 + 0x20], eax
lea eax, [rcx + 3]
mov dword [r10 + 0x24], eax
cmp r9d, 0xa
jle 0x180020cd3
lea eax, [rdx - 1]
mov dword [r10 + 0x28], eax
lea eax, [rdx + 1]
mov dword [r10 + 0x2c], eax
lea eax, [rdx - 2]
mov dword [r10 + 0x30], eax
lea eax, [rdx + 2]
mov dword [r10 + 0x34], eax
lea eax, [rdx - 3]
mov dword [r10 + 0x38], eax
lea eax, [rdx + 3]
mov dword [r10 + 0x3c], eax
mov r12, qword [rbp - 0x48]
mov edi, dword [rbp + 0x28]
mov r10, qword [rsp + 0x78]
mov r14d, dword [rbp + 0x10]
mov r13, qword [rsp + 0x60]
movzx eax, dil
shl eax, 0x19
or eax, r14d
mov dword [r12], r13d
mov dword [r12 + 4], eax
mov r15d, dword [r10 + 0x44]
lea rax, [r15 + 0x10]
cmp r8, rax
jb 0x180020d81
mov r11d, dword [r10 + 0x40]
mov r10d, 1
lea ecx, [r11 + 2]
shl r10, cl
sub r10, r15
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 + 0x58]
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, r15w
or r8w, r9w
mov word [r12 + 0xe], r8w
lea edx, [rdi + r14]
mov eax, 0x3ff
mov dword [r12 + 8], ebx
and r8w, ax
movsxd r9, edx
cmp r13, 6
jae 0x180020dad
movzx r10d, r13w
mov eax, 0x17
jmp 0x180020e1d
cmp r13, 0x82
jae 0x180020dd7
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 0x180020e1d
cmp r13, 0x842
jae 0x180020df4
lea eax, [r13 - 0x42]
bsr r10d, eax
mov eax, 0x17
add r10w, 0xa
jmp 0x180020e1d
mov eax, 0x17
cmp r13, 0x1842
jae 0x180020e08
lea r10d, [rax - 2]
jmp 0x180020e1d
cmp r13, 0x5842
jae 0x180020e19
mov r10d, 0x16
jmp 0x180020e1d
movzx r10d, ax
cmp r9, 0xa
jae 0x180020e2a
sub r9w, 2
jmp 0x180020e6a
cmp r9, 0x86
jae 0x180020e4f
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 0x180020e6a
cmp r9, 0x846
jae 0x180020e66
lea eax, [rdx - 0x46]
bsr r9d, eax
add r9w, 0xc
jmp 0x180020e6a
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 0x180020ea7
cmp r10w, 8
jae 0x180020ea7
cmp r9w, 0x10
jae 0x180020ea7
movzx eax, dx
or ax, 0x40
cmp r9w, 8
cmovae dx, ax
jmp 0x180020edb
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]
mov rcx, qword [rsp]
mov rdi, qword [rbp - 0x40]
mov word [r12 + 0xc], dx
add r12, 0x10
add qword [rax], r13
xor eax, eax
lea r14, [rcx + r11]
mov qword [rsp + 0x60], rax
cmp r14, rdi
mov qword [rbp - 0x48], r12
mov r13d, eax
mov qword [rbp - 0x60], r14
cmovb rdi, r14
lea rbx, [rcx + 2]
mov rax, r11
shr rax, 2
cmp rsi, rax
jae 0x180020f40
lea rax, [rsi*4]
sub rcx, rax
add rcx, r11
cmp rbx, rcx
cmova rcx, rbx
cmp rdi, rcx
mov rbx, rcx
cmovb rbx, rdi
cmp rbx, rdi
jae 0x180020fbc
mov rsi, qword [rsp + 0x20]
movabs r13, 0x1fe35a7bd3579bd3
mov r14, qword [rsp + 0x18]
mov r15, qword [rsp + 0x40]
nop
mov ecx, dword [rsi + 0x40]
mov rax, r14
mov rdx, qword [rsi + 0x68]
and rax, rbx
mov r11, qword [rsi + 0x70]
mov r10, qword [rax + r15]
and r10, qword [rsi + 0x48]
imul r10, r13
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], ebx
inc rbx
cmp rbx, rdi
jb 0x180020f60
mov r14, qword [rbp - 0x60]
mov r13, qword [rsp + 0x60]
mov rsi, r14
mov qword [rsp], r14
mov r12, qword [rsp + 0x18]
mov rbx, qword [rbp - 0x58]
lea rax, [rsi + 8]
mov r11, qword [rsp + 0x20]
mov edx, 0
mov r8, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x50]
mov r10, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x70]
cmp rax, rbx
jb 0x18001f9a0
mov r9, qword [rbp - 0x48]
mov r14, qword [rbp - 0x28]
mov r15, qword [rsp + 0x148]
sub r9, qword [rbp - 0x18]
sub rbx, rsi
mov rax, qword [rbp - 0x20]
add rbx, r13
sar r9, 4
mov qword [rax], rbx
add qword [r14], r9
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.18004ccd0
add rsp, 0x150
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r13, qword [rsp + 0x60]
inc rsi
mov r12, qword [rbp - 0x68]
inc r13
mov qword [rsp + 0x60], r13
mov qword [rsp], rsi
cmp rsi, r12
jbe 0x180020fc3
mov rax, qword [rbp - 0x38]
mov rbx, qword [rbp - 0x58]
add rbx, 0xfffffffffffffff9
lea rax, [r12 + rax*4]
cmp rsi, rax
jbe 0x180021122
mov r12, qword [rsp + 0x18]
lea rax, [rsi + 0x10]
cmp rax, rbx
cmovb rbx, rax
cmp rsi, rbx
jae 0x180020fc8
mov r15, qword [rsp + 0x40]
add r13, 4
mov rax, rbx
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffc
add r13, rax
mov qword [rsp + 0x60], r13
movabs r13, 0x1fe35a7bd3579bd3
nop word [rax + rax]
mov ecx, dword [rdi + 0x40]
mov rax, r12
mov rdx, qword [rdi + 0x68]
and rax, rsi
mov r11, qword [rdi + 0x70]
mov r10, qword [rax + r15]
and r10, qword [rdi + 0x48]
imul r10, r13
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], esi
add rsi, 4
cmp rsi, rbx
jb 0x1800210c0
mov r13, qword [rsp + 0x60]
mov qword [rsp], rsi
jmp 0x180020fc8
lea rax, [rsi + 8]
cmp rax, rbx
cmovb rbx, rax
cmp rsi, rbx
jae 0x180020fc3
mov r12, qword [rsp + 0x18]
add r13, 2
mov r15, qword [rsp + 0x40]
mov rax, rbx
sub rax, rsi
dec rax
and rax, 0xfffffffffffffffe
add r13, rax
mov qword [rsp + 0x60], r13
movabs r13, 0x1fe35a7bd3579bd3
mov ecx, dword [rdi + 0x40]
mov rax, r12
mov rdx, qword [rdi + 0x68]
and rax, rsi
mov r11, qword [rdi + 0x70]
mov r10, qword [rax + r15]
and r10, qword [rdi + 0x48]
imul r10, r13
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], esi
add rsi, 2
cmp rsi, rbx
jb 0x180021163
mov r13, qword [rsp + 0x60]
mov qword [rsp], rsi
jmp 0x180020fc8
sub rsp, 0x68
mov r11, qword [rsp + 0x98]
mov eax, dword [r11 + 0x28]
add eax, 0xfffffffe
cmp eax, 0x3f
ja case.0x180021212.14
mov qword [rsp + 0x60], rbx
lea rbx, [0x180000000]
cdqe
movzx eax, byte [rbx + rax + 0x2131c]
mov r10d, dword [rbx + rax*4 + 0x212e8]
add r10, rbx
mov rbx, qword [rsp + 0x60]
jmp r10
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180011080
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180011f20
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180012d40
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180014370
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180015920
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x180016f20
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x1800188a0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18001a020
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18001bd80
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18001d030
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18001e1f0
mov qword [rsp + 0x98], r11
add rsp, 0x68
jmp 0x18001f830
add rsp, 0x68
ret