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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x218
movups xmmword [rsp + 0x190], xmm6
movups xmmword [rsp + 0x1a0], xmm7
movups xmmword [rsp + 0x1b0], xmm8
movups xmmword [rsp + 0x1c0], xmm9
movups xmmword [rsp + 0x1d0], xmm10
movups xmmword [rsp + 0x1e0], xmm11
movups xmmword [rsp + 0x1f0], xmm12
movups xmmword [rsp + 0x200], xmm13
mov eax, dword [r8 + 8]
mov ebx, dword [rcx + 0x18]
add rbx, qword [rcx + 8]
mov dword [rsp + 0x140], eax
lea rax, [rcx + 0x50]
mov rbp, rcx
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x268], rdx
mov rdx, qword [r8]
add rax, r9
mov qword [rsp + 0x278], r9
mov qword [rsp + 0x40], rax
sub rax, 8
cmp dword [rcx + 0xd4], 0xfff
mov qword [rsp + 0x98], rax
mov eax, 0xfff
cmovbe eax, dword [rcx + 0xd4]
mov qword [rsp + 0x138], rdx
mov dword [rsp + 0x100], eax
mov eax, dword [rcx + 0xd0]
mov qword [rsp + 0x78], 2
mov dword [rsp + 0x94], eax
cmp eax, 3
je 0x4524cd
mov qword [rsp + 0x78], 3
mov dword [rsp + 0x94], 4
mov eax, dword [rbp + 0x24]
mov r15, qword [rbp + 0x78]
mov dword [rsp + 0x134], eax
mov rax, qword [rbp + 0x70]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0xe0]
test rax, rax
je 0x457080
movdqu xmm7, xmmword [rax]
movups xmmword [rsp + 0x150], xmm7
movdqu xmm7, xmmword [rax + 0x10]
movups xmmword [rsp + 0x160], xmm7
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x170], rax
lea rax, [rsp + 0x150]
xor edx, edx
mov r8d, dword [rsp + 0x280]
mov qword [rsp + 0x178], 0
mov rcx, rax
mov qword [rsp + 0x110], rax
mov r14, r15
mov r15, rbp
mov dword [rsp + 0x180], 0
call fcn.004517b0
mov r9d, 2
lea rcx, [rbp + 0x50]
mov r8, qword [rsp + 0x280]
mov rdx, qword [rsp + 0x278]
call fcn.00450b30
xor eax, eax
mov rdi, qword [rsp + 0x278]
cmp qword [rsp + 0x278], rbx
sete al
add rax, qword [rsp + 0x278]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xd8], rdi
cmp qword [rsp + 0x98], rax
jbe 0x4533f4
mov rsi, qword [rsp + 0x50]
mov r12, qword [r15 + 8]
mov rax, rsi
sub rax, qword [rsp + 0xd8]
test eax, eax
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0x90], eax
sete al
movzx eax, al
sete byte [rsp + 0x80]
mov dword [rsp + 0x60], eax
mov eax, dword [r15 + 0x24]
lea rdx, [r12 + rax]
mov rdi, rax
cmp rsi, rdx
jb 0x4531e8
sub rsi, r12
mov ebp, dword [r15 + 0xd0]
mov ebx, esi
cmp eax, esi
jae 0x456796
mov r13, qword [rsp + 0x40]
jmp 0x45261a
mov eax, edi
lea rdx, [r12 + rax]
mov r9d, ebp
mov r8, r13
mov rcx, r15
call fcn.004513a0
add edi, eax
cmp ebx, edi
ja 0x452618
mov r12, qword [r15 + 8]
mov edi, dword [rsp + 0x50]
sub edi, r12d
mov eax, dword [r15 + 0xc4]
mov rdx, qword [r15 + 0x30]
mov dword [r15 + 0x24], esi
mov esi, 0xfff
cmp dword [r15 + 0xd4], 0xfff
cmovbe esi, dword [r15 + 0xd4]
lea ecx, [rax - 1]
mov eax, 1
mov r13, qword [r15 + 0x40]
mov r11d, dword [r15 + 0x18]
mov ebx, eax
mov r9d, dword [r15 + 0xc8]
shl ebx, cl
lea ebx, [rbx - 1]
mov dword [rsp + 0x3c], ebx
cmp ebp, 5
je 0x4541e8
ja 0x452cb4
cmp ebp, 3
jne 0x453ca0
mov r10, qword [rsp + 0x50]
mov ecx, 0x20
sub ecx, r9d
mov ebx, dword [r10]
imul r8d, ebx, 0x9e3779b1
shr r8d, cl
lea rcx, [rdx + r8*4]
mov edx, dword [rsp + 0x3c]
mov r8d, eax
mov qword [rsp + 0xc8], rcx
mov ebp, dword [rcx]
mov ecx, edi
sub ecx, edx
cmp edi, edx
mov edx, 0
mov r9d, edx
mov edx, edi
cmova r9d, ecx
mov ecx, dword [r15 + 0xc0]
mov dword [rsp + 0xd0], r9d
shl r8d, cl
mov r9d, dword [r15 + 0x1c]
mov ecx, r8d
mov r8d, edi
sub r8d, r9d
sub edx, ecx
cmp ecx, r8d
mov r8d, dword [r15 + 0x20]
cmovae edx, r9d
test r8d, r8d
cmovne edx, r9d
test edx, edx
mov ecx, edx
mov dword [rsp + 0xa0], edx
mov r9d, edx
mov edx, dword [rsp + 0x3c]
cmove ecx, eax
and edx, edi
mov dword [rsp + 0x58], ecx
add edx, edx
shl rdx, 2
lea rcx, [r13 + rdx]
mov qword [rsp + 0x68], rcx
lea rcx, [r13 + rdx + 4]
mov qword [rsp + 0x70], rcx
lea ecx, [rdi + 9]
mov dword [rsp + 0x88], ecx
mov ecx, dword [r15 + 0xcc]
shl eax, cl
mov dword [rsp + 0xd4], eax
movzx eax, byte [rsp + 0x80]
cmp al, 1
mov eax, dword [rsp + rax*4 + 0x138]
sbb ecx, ecx
add ecx, 4
lea edx, [rax - 1]
mov dword [rsp + 0x80], ecx
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0xe0], ecx
sub ecx, 1
mov dword [rsp + 0xc0], ecx
mov ecx, edi
sub ecx, r11d
mov dword [rsp + 0xa8], ecx
cmp edx, ecx
jae 0x452850
mov ecx, eax
mov rdx, r10
shl ebx, 8
sub rdx, rcx
mov edx, dword [rdx]
shl edx, 8
cmp edx, ebx
jne 0x452850
mov ebx, edi
sub ebx, eax
cmp r9d, ebx
ja 0x452850
mov rax, r10
mov r8, qword [rsp + 0x40]
mov rbx, r10
sub rax, rcx
lea rcx, [r10 + 3]
lea rdx, [rax + 3]
call fcn.00450860
lea r9d, [rax + 3]
cmp r9, qword [rsp + 0x78]
jbe 0x452850
mov rcx, qword [rsp + 0x48]
lea rdx, [rbx + r9]
mov dword [rcx], 0
mov dword [rcx + 4], r9d
cmp r8, rdx
je 0x45281c
mov ebx, 1
cmp r9d, esi
jbe 0x452857
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], 1
test rax, rax
je 0x453257
cmp qword [rsp + 0x158], rax
jb 0x453212
jmp 0x453257
mov r9, qword [rsp + 0x78]
xor ebx, ebx
mov eax, dword [rsp + 0x60]
add eax, 1
mov eax, dword [rsp + rax*4 + 0x138]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xa8]
jae 0x4528a6
mov r11, qword [rsp + 0x50]
mov r8d, eax
mov rdx, r11
sub rdx, r8
mov ecx, dword [rdx]
mov edx, dword [r11]
shl ecx, 8
mov dword [rsp + 0xe8], edx
shl edx, 8
cmp ecx, edx
jne 0x4528a6
mov ecx, edi
sub ecx, eax
cmp ecx, dword [rsp + 0xa0]
jae 0x456abe
mov eax, dword [rsp + 0x60]
lea r10d, [rax + 2]
cmp dword [rsp + 0x80], r10d
jbe 0x457404
mov eax, dword [rsp + 0xc0]
cmp r10d, 3
cmovne eax, dword [rsp + 0x140]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xa8]
jae 0x45705f
mov r11, qword [rsp + 0x50]
mov r8d, eax
mov rdx, r11
sub rdx, r8
mov ecx, dword [rdx]
mov edx, dword [r11]
shl ecx, 8
mov dword [rsp + 0xe8], edx
shl edx, 8
cmp ecx, edx
jne 0x45705f
mov ecx, edi
sub ecx, eax
cmp ecx, dword [rsp + 0xa0]
jb 0x45705f
mov rax, r11
mov rcx, r11
mov qword [rsp + 0xf0], r9
sub rax, r8
mov r8, qword [rsp + 0x40]
add rcx, 3
mov dword [rsp + 0xe8], r10d
lea rdx, [rax + 3]
call fcn.00450860
mov r9, qword [rsp + 0xf0]
mov r10d, dword [rsp + 0xe8]
lea r11d, [rax + 3]
cmp r11, r9
jbe 0x45705f
mov r9, qword [rsp + 0x48]
mov eax, ebx
mov rcx, qword [rsp + 0x50]
add ebx, 1
lea rax, [r9 + rax*8]
mov r9d, r10d
sub r9d, dword [rsp + 0x60]
mov dword [rax], r9d
mov dword [rax + 4], r11d
lea rax, [rcx + r11]
cmp r8, rax
je 0x453c03
cmp r11d, esi
ja 0x453c03
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0x80], eax
jbe 0x452ad0
mov eax, dword [rsp + 0xe0]
sub eax, 2
cmp eax, dword [rsp + 0xa8]
jae 0x452a61
mov r10, qword [rsp + 0x50]
mov ecx, dword [rsp + 0xc0]
mov rax, r10
sub rax, rcx
mov edx, dword [rax]
mov eax, dword [r10]
shl edx, 8
mov dword [rsp + 0x80], eax
shl eax, 8
cmp edx, eax
jne 0x452a61
mov eax, edi
sub eax, ecx
cmp eax, dword [rsp + 0xa0]
jb 0x452a61
mov rax, r10
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x80], r11
sub rax, rcx
lea rcx, [r10 + 3]
lea rdx, [rax + 3]
call fcn.00450860
mov r11, qword [rsp + 0x80]
lea ecx, [rax + 3]
cmp rcx, r11
jbe 0x452a61
mov r9, qword [rsp + 0x48]
mov eax, ebx
mov r11, qword [rsp + 0x50]
add ebx, 1
lea rax, [r9 + rax*8]
mov dword [rax], 3
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov r11, rcx
cmp r11, 2
jne 0x452ad0
mov r8, qword [rsp + 0x50]
lea rdx, [rsp + 0x134]
mov rcx, r15
mov qword [rsp + 0x80], r11
call fcn.00450800
mov r9d, edi
mov r11, qword [rsp + 0x80]
sub r9d, eax
cmp dword [rsp + 0x58], eax
ja 0x452ad0
cmp r9d, 0x3ffff
mov dword [rsp + 0xa0], r9d
ja 0x452ad0
mov eax, eax
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
lea rdx, [r12 + rax]
call fcn.00450860
mov r11, qword [rsp + 0x80]
cmp rax, 2
ja 0x457505
mov rax, qword [rsp + 0xc8]
mov dword [rax], edi
mov eax, dword [rsp + 0xd4]
lea esi, [rax - 1]
test eax, eax
je 0x456d5f
cmp ebp, dword [rsp + 0x58]
jb 0x456d5f
mov rax, qword [rsp + 0x40]
xor r10d, r10d
xor edx, edx
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x260], r15
mov r12, r10
mov r15, qword [rsp + 0x50]
lea rcx, [rax - 7]
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x80], rcx
lea rcx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xc8], rax
lea eax, [rdi + 2]
mov rdi, rdx
mov qword [rsp + 0xc0], rcx
mov dword [rsp + 0xd4], eax
jmp 0x452c23
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x456c66
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [r15 + rcx]
cmp rcx, r11
jbe 0x452bdc
mov r14d, dword [rsp + 0x88]
lea r8d, [rbp + rcx]
mov r9d, r14d
sub r9d, ebp
cmp rcx, r9
mov r9d, dword [rsp + 0xd4]
cmovbe r8d, r14d
mov r14, qword [rsp + 0x48]
sub r9d, ebp
mov dword [rsp + 0x88], r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x456d4f
cmp qword [rsp + 0x40], rax
je 0x456d4f
mov r11, rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x456bec
mov rax, qword [rsp + 0x68]
mov dword [rax], ebp
cmp dword [rsp + 0xd0], ebp
jae 0x457441
lea rax, [r10 + 4]
mov ebp, dword [r10 + 4]
mov rdi, rcx
mov qword [rsp + 0x68], rax
cmp dword [rsp + 0x58], ebp
setbe dl
test esi, esi
setne al
sub esi, 1
test dl, al
je 0x456d4f
mov eax, dword [rsp + 0x3c]
mov rcx, rdi
mov edx, ebp
and eax, ebp
add eax, eax
cmp r12, rdi
cmovbe rcx, r12
add rdx, qword [rsp + 0xa0]
lea r10, [r13 + rax*4]
lea r9, [rdx + rcx]
lea r8, [r15 + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x452b56
mov rax, r8
cmp rax, qword [rsp + 0xc0]
jae 0x452c77
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x452c77
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xc8]
jae 0x452c93
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x452c93
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x452cac
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x452b72
sub ebp, 6
cmp ebp, 1
ja 0x453ca0
mov r10d, ebx
mov rbx, qword [rsp + 0x50]
mov ecx, 0x40
movabs r8, 0xcf1bbcdcbf9b0000
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
imul r8, qword [rbx]
shr r8, cl
lea rcx, [rdx + r8*4]
mov edx, 0
mov r8d, edi
mov qword [rsp + 0xc8], rcx
mov ebp, dword [rcx]
mov ecx, edi
sub ecx, r10d
cmp edi, r10d
cmova edx, ecx
mov ecx, dword [r15 + 0xc0]
sub r8d, r9d
mov dword [rsp + 0xa0], edx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, edi
sub edx, ecx
cmp ecx, r8d
mov ecx, dword [r15 + 0x20]
cmovae edx, r9d
test ecx, ecx
mov ecx, eax
cmove r9d, edx
mov edx, r10d
test r9d, r9d
cmovne ecx, r9d
and edx, edi
add edx, edx
shl rdx, 2
mov dword [rsp + 0x88], ecx
lea rcx, [r13 + rdx]
mov qword [rsp + 0x70], rcx
lea rcx, [r13 + rdx + 4]
mov qword [rsp + 0x68], rcx
lea ecx, [rdi + 9]
mov dword [rsp + 0xd0], ecx
mov ecx, dword [r15 + 0xcc]
shl eax, cl
mov dword [rsp + 0xd4], eax
movzx eax, byte [rsp + 0x80]
cmp al, 1
mov eax, dword [rsp + rax*4 + 0x138]
sbb ecx, ecx
add ecx, 4
lea edx, [rax - 1]
mov dword [rsp + 0xc0], ecx
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0xe0], ecx
sub ecx, 1
mov dword [rsp + 0xa8], ecx
mov ecx, edi
sub ecx, r11d
mov dword [rsp + 0x80], ecx
cmp edx, ecx
jae 0x452e40
mov edx, eax
mov rcx, rbx
mov r11d, dword [rbx]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x452e40
mov ecx, edi
sub ecx, eax
cmp ecx, r9d
jb 0x452e40
mov rax, rbx
mov r8, qword [rsp + 0x40]
lea rcx, [rbx + 4]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x78]
mov qword [rsp + 0x58], rcx
jbe 0x452e40
mov rdx, qword [rsp + 0x48]
add rbx, rcx
mov dword [rdx], 0
mov dword [rdx + 4], ecx
cmp r8, rbx
je 0x45281c
mov ebx, 1
cmp esi, ecx
jae 0x452e4c
jmp 0x45281c
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x60]
add eax, 1
mov eax, dword [rsp + rax*4 + 0x138]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x452e88
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r10d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r10d
jne 0x452e88
mov ecx, edi
sub ecx, eax
cmp ecx, r9d
jae 0x4567a5
mov eax, dword [rsp + 0x60]
lea r10d, [rax + 2]
cmp r10d, dword [rsp + 0xc0]
jae 0x452f8a
mov eax, dword [rsp + 0xa8]
cmp r10d, 3
cmovne eax, dword [rsp + 0x140]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x452f5e
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r8d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r8d
jne 0x452f5e
mov ecx, edi
sub ecx, eax
cmp ecx, r9d
jb 0x452f5e
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xf0], r9d
sub rax, rdx
add rcx, 4
mov dword [rsp + 0xe8], r10d
lea rdx, [rax + 4]
call fcn.00450860
mov r10d, dword [rsp + 0xe8]
mov r9d, dword [rsp + 0xf0]
lea ecx, [rax + 4]
cmp qword [rsp + 0x58], rcx
jae 0x452f5e
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov r11, qword [rsp + 0x50]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xc0], eax
jbe 0x452f8a
mov eax, dword [rsp + 0xe0]
sub eax, 2
cmp eax, dword [rsp + 0x80]
jb 0x4572ee
mov rax, qword [rsp + 0xc8]
mov dword [rax], edi
mov eax, dword [rsp + 0xd4]
lea r11d, [rax - 1]
test eax, eax
je 0x453bdf
cmp ebp, dword [rsp + 0x88]
jb 0x453bdf
mov rax, qword [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x260], r15
mov qword [rsp + 0xa8], r14
mov r15, qword [rsp + 0x50]
lea rsi, [rax - 7]
lea rcx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xc8], rax
lea eax, [rdi + 2]
mov rdi, rdx
mov qword [rsp + 0x80], rsi
xor esi, esi
mov qword [rsp + 0xc0], rcx
mov dword [rsp + 0xd4], eax
jmp 0x4530de
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x45318e
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [r15 + rcx]
cmp rcx, qword [rsp + 0x58]
jbe 0x453092
mov r14d, dword [rsp + 0xd0]
lea r8d, [rbp + rcx]
mov r9d, r14d
sub r9d, ebp
cmp rcx, r9
mov r9d, dword [rsp + 0xd4]
cmovbe r8d, r14d
mov r14, qword [rsp + 0x48]
sub r9d, ebp
mov dword [rsp + 0xd0], r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x453bcf
cmp qword [rsp + 0x40], rax
je 0x453bcf
mov qword [rsp + 0x58], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x45316a
mov rax, qword [rsp + 0x70]
mov dword [rax], ebp
cmp dword [rsp + 0xa0], ebp
jae 0x456e1c
lea rax, [r10 + 4]
mov ebp, dword [r10 + 4]
mov rsi, rcx
mov qword [rsp + 0x70], rax
cmp dword [rsp + 0x88], ebp
setbe dl
test r11d, r11d
setne al
sub r11d, 1
test dl, al
je 0x453bcf
mov eax, dword [rsp + 0x3c]
mov rcx, rsi
mov edx, ebp
and eax, ebp
add eax, eax
cmp rdi, rsi
cmovbe rcx, rdi
add rdx, r12
lea r10, [r13 + rax*4]
lea r9, [rdx + rcx]
lea r8, [r15 + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x453008
mov rax, r8
cmp rax, qword [rsp + 0xc0]
jae 0x45312d
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x45312d
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xc8]
jae 0x453149
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x453149
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x453162
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x453024
mov rax, qword [rsp + 0x68]
mov dword [rax], ebp
cmp dword [rsp + 0xa0], ebp
jae 0x456dfa
mov qword [rsp + 0x68], r10
mov ebp, dword [r10]
mov rdi, rcx
jmp 0x4530c2
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x453113
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xe0], rdx
cmp r14, rdx
je 0x453c76
mov r9, rdx
mov rdx, qword [rsp + 0xe8]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x453024
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], 0
test rax, rax
je 0x4533d8
cmp qword [rsp + 0x158], rax
jae 0x4533d8
mov rdi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
lea r8, [rsp + 0x144]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x110]
sub rax, rdi
mov r9d, edi
sub r9d, dword [rsp + 0x278]
mov dword [rsp + 0x20], eax
call fcn.00451950
mov ebx, dword [rsp + 0x144]
test ebx, ebx
je 0x4533d8
mov rax, qword [rsp + 0x138]
mov dword [r14 + 8], 0
mov rdx, qword [rsp + 0xb0]
mov qword [r14 + 0x10], rax
mov eax, dword [rsp + 0x140]
mov dword [r14 + 0x18], eax
mov rax, qword [rsp + 0xb8]
mov dword [r14 + 0xc], eax
mov ecx, eax
call fcn.00450a40
mov rdi, qword [rsp + 0x48]
mov dword [r14], eax
mov r13d, eax
mov eax, dword [rsp + 0x144]
lea edx, [rax - 1]
lea rdx, [rdi + rdx*8]
mov esi, dword [rdx + 4]
cmp dword [rsp + 0x100], esi
jae 0x45479c
mov ebp, dword [rdx]
mov rcx, r14
mov r8d, 0x1c
xor r13d, r13d
mov r12d, 1
cmp ebp, 2
jbe 0x454764
mov eax, dword [rcx + 0x14]
mov r9d, dword [rcx + 0x10]
lea edx, [rbp - 2]
mov dword [rsp + 0x138], edx
mov dword [rsp + 0x13c], r9d
mov dword [rsp + 0x140], eax
mov eax, dword [rsp + 0x108]
add r8, r14
movd xmm1, dword [rsp + 0x90]
movd xmm0, ebp
movd xmm7, dword [rsp + 0x104]
movd xmm6, esi
mov dword [r8], eax
mov eax, dword [rsp + 0x120]
punpckldq xmm0, xmm6
punpckldq xmm1, xmm7
mov dword [r8 + 0x14], eax
mov eax, dword [rsp + 0x10c]
punpcklqdq xmm0, xmm1
movups xmmword [r8 + 4], xmm0
mov dword [r8 + 0x18], eax
test r13d, r13d
je 0x456d88
mov edx, r13d
lea ecx, [r12 - 1]
lea rax, [rdx*8]
mov rdi, rcx
sub rax, rdx
lea rdx, [r14 + rax*4]
lea rax, [rcx*8]
movdqu xmm6, xmmword [rdx]
sub rax, rcx
mov r8d, dword [rdx + 8]
lea rax, [r14 + rax*4]
add r8d, dword [rdx + 0xc]
movups xmmword [rax], xmm6
mov rcx, qword [rdx + 0x10]
mov qword [rax + 0x10], rcx
mov edx, dword [rdx + 0x18]
mov dword [rax + 0x18], edx
cmp r13d, r8d
jbe 0x453847
sub r13d, r8d
lea ecx, [rdi - 1]
mov edx, r13d
mov rdi, rcx
lea rax, [rdx*8]
sub rax, rdx
lea rdx, [r14 + rax*4]
lea rax, [rcx*8]
movdqu xmm7, xmmword [rdx]
sub rax, rcx
mov r8d, dword [rdx + 0xc]
lea rax, [r14 + rax*4]
add r8d, dword [rdx + 8]
movups xmmword [rax], xmm7
jmp 0x453386
add qword [rsp + 0x50], 1
mov rdi, qword [rsp + 0x50]
cmp qword [rsp + 0x98], rdi
ja 0x4525af
mov rbp, r15
mov rcx, qword [rsp + 0x268]
call fcn.00429d10
mov rax, qword [rsp + 0x280]
sub qword [rbp + 8], rax
mov eax, dword [rbp + 0x18]
add eax, dword [rsp + 0x280]
cmp dword [rbp + 0xb0], 2
mov dword [rbp + 0x18], eax
mov dword [rbp + 0x1c], eax
mov dword [rbp + 0x24], eax
je 0x45347c
mov rax, qword [rbp + 0x50]
pxor xmm0, xmm0
pcmpeqd xmm2, xmm2
lea rdx, [rax + 0x400]
movdqu xmm1, xmmword [rax]
add rax, 0x10
pslld xmm1, 4
paddd xmm1, xmm2
movups xmmword [rax - 0x10], xmm1
paddd xmm0, xmm1
cmp rdx, rax
jne 0x45343c
movdqu xmm1, xmm0
psrldq xmm1, 8
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd dword [rbp + 0x80], xmm0
mov rax, qword [rbp + 0x58]
pcmpeqd xmm0, xmm0
movdqu xmm4, xmmword [rax + 0x20]
movdqu xmm3, xmmword [rax + 0x40]
movdqu xmm1, xmmword [rax]
movdqu xmm2, xmmword [rax + 0x10]
pslld xmm4, 4
pslld xmm3, 4
movdqu xmm7, xmmword [rax + 0x60]
movdqu xmm5, xmmword [rax + 0x70]
paddd xmm4, xmm0
paddd xmm3, xmm0
pslld xmm1, 4
movdqu xmm6, xmmword [rax + 0x80]
movups xmmword [rax + 0x20], xmm4
movdqu xmm9, xmm4
movdqu xmm8, xmm3
movdqu xmm4, xmmword [rax + 0x30]
movups xmmword [rax + 0x40], xmm3
movdqu xmm3, xmmword [rax + 0x50]
pslld xmm2, 4
paddd xmm1, xmm0
pslld xmm4, 4
pslld xmm7, 4
paddd xmm2, xmm0
movups xmmword [rax], xmm1
pslld xmm3, 4
paddd xmm4, xmm0
paddd xmm7, xmm0
movups xmmword [rax + 0x10], xmm2
paddd xmm3, xmm0
movups xmmword [rax + 0x30], xmm4
paddd xmm1, xmm2
pslld xmm5, 4
movups xmmword [rax + 0x50], xmm3
paddd xmm4, xmm9
paddd xmm3, xmm8
pslld xmm6, 4
paddd xmm6, xmm0
paddd xmm5, xmm0
movups xmmword [rax + 0x60], xmm7
paddd xmm3, xmm7
paddd xmm1, xmm4
movups xmmword [rax + 0x70], xmm5
paddd xmm1, xmm3
paddd xmm5, xmm6
movups xmmword [rax + 0x80], xmm6
mov rax, qword [rbp + 0x60]
paddd xmm1, xmm5
movdqu xmm2, xmm1
psrldq xmm2, 8
paddd xmm1, xmm2
movdqu xmm2, xmm1
psrldq xmm2, 4
paddd xmm1, xmm2
movd dword [rbp + 0x84], xmm1
movdqu xmm1, xmmword [rax]
movdqu xmm5, xmmword [rax + 0x20]
movdqu xmm4, xmmword [rax + 0x40]
pslld xmm1, 4
pslld xmm5, 4
pslld xmm4, 4
paddd xmm1, xmm0
paddd xmm5, xmm0
paddd xmm4, xmm0
movdqu xmm10, xmm1
movups xmmword [rax], xmm1
movdqu xmm13, xmm5
movdqu xmm1, xmmword [rax + 0x10]
movups xmmword [rax + 0x20], xmm5
movdqu xmm12, xmm4
movdqu xmm5, xmmword [rax + 0x30]
movups xmmword [rax + 0x40], xmm4
movdqu xmm4, xmmword [rax + 0x50]
pslld xmm1, 4
pslld xmm5, 4
pslld xmm4, 4
paddd xmm1, xmm0
paddd xmm5, xmm0
paddd xmm4, xmm0
movups xmmword [rax + 0x10], xmm1
paddd xmm1, xmm10
movups xmmword [rax + 0x30], xmm5
paddd xmm5, xmm13
movups xmmword [rax + 0x50], xmm4
movdqu xmm3, xmmword [rax + 0x70]
paddd xmm1, xmm5
movdqu xmm2, xmmword [rax + 0xa0]
movdqu xmm11, xmmword [rax + 0x60]
paddd xmm4, xmm12
movdqu xmm8, xmmword [rax + 0x90]
pslld xmm3, 4
pslld xmm2, 4
movdqu xmm6, xmmword [rax + 0xc0]
mov edx, dword [rax + 0xd0]
paddd xmm3, xmm0
pslld xmm11, 4
movdqu xmm7, xmm2
movdqu xmm2, xmmword [rax + 0xb0]
movups xmmword [rax + 0x70], xmm3
movdqu xmm9, xmm3
paddd xmm7, xmm0
shl edx, 4
movdqu xmm3, xmmword [rax + 0x80]
paddd xmm11, xmm0
pslld xmm8, 4
sub edx, 1
pslld xmm2, 4
paddd xmm8, xmm0
paddd xmm4, xmm11
movups xmmword [rax + 0x60], xmm11
pslld xmm3, 4
paddd xmm2, xmm0
paddd xmm1, xmm4
mov dword [rax + 0xd0], edx
paddd xmm3, xmm0
pslld xmm6, 4
movups xmmword [rax + 0xb0], xmm2
paddd xmm2, xmm7
movups xmmword [rax + 0x80], xmm3
paddd xmm3, xmm9
paddd xmm6, xmm0
paddd xmm3, xmm8
paddd xmm2, xmm6
movups xmmword [rax + 0x90], xmm8
paddd xmm1, xmm3
movups xmmword [rax + 0xa0], xmm7
paddd xmm1, xmm2
movups xmmword [rax + 0xc0], xmm6
movdqu xmm2, xmm1
psrldq xmm2, 8
paddd xmm1, xmm2
movdqu xmm2, xmm1
psrldq xmm2, 4
paddd xmm1, xmm2
movd eax, xmm1
add eax, edx
mov dword [rbp + 0x88], eax
mov rax, qword [rbp + 0x68]
movdqu xmm2, xmmword [rax + 0x60]
movdqu xmm1, xmmword [rax]
movdqu xmm8, xmmword [rax + 0x10]
movdqu xmm4, xmmword [rax + 0x20]
movdqu xmm7, xmmword [rax + 0x30]
movdqu xmm3, xmmword [rax + 0x40]
pslld xmm2, 4
pslld xmm1, 4
movdqu xmm6, xmmword [rax + 0x50]
movdqu xmm5, xmm2
pslld xmm8, 4
paddd xmm1, xmm0
pslld xmm4, 4
pslld xmm7, 4
paddd xmm5, xmm0
movups xmmword [rax], xmm1
pslld xmm3, 4
paddd xmm7, xmm0
paddd xmm4, xmm0
movups xmmword [rax + 0x60], xmm5
pslld xmm6, 4
paddd xmm8, xmm0
paddd xmm3, xmm0
movups xmmword [rax + 0x20], xmm4
paddd xmm6, xmm0
movups xmmword [rax + 0x10], xmm8
paddd xmm4, xmm7
movups xmmword [rax + 0x30], xmm7
paddd xmm1, xmm8
movups xmmword [rax + 0x40], xmm3
paddd xmm3, xmm6
movups xmmword [rax + 0x50], xmm6
movdqu xmm2, xmmword [rax + 0x70]
pslld xmm2, 4
paddd xmm2, xmm0
movdqu xmm0, xmm4
paddd xmm0, xmm1
movups xmmword [rax + 0x70], xmm2
paddd xmm2, xmm5
paddd xmm0, xmm3
paddd xmm0, xmm2
movdqu xmm1, xmm0
psrldq xmm1, 8
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd dword [rbp + 0x8c], xmm0
movups xmm6, xmmword [rsp + 0x190]
movups xmm7, xmmword [rsp + 0x1a0]
movups xmm8, xmmword [rsp + 0x1b0]
movups xmm9, xmmword [rsp + 0x1c0]
movups xmm10, xmmword [rsp + 0x1d0]
movups xmm11, xmmword [rsp + 0x1e0]
movups xmm12, xmmword [rsp + 0x1f0]
movups xmm13, xmmword [rsp + 0x200]
add rsp, 0x218
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edi, r12d
ja 0x453bbd
mov esi, dword [rax + 0xc]
mov ebp, dword [rax + 4]
mov dword [rsp + 0x90], esi
mov esi, dword [rax + 8]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x58], r14
mov r9d, ebp
mov dword [rsp + 0x3c], r12d
mov r14, qword [rsp + 0xd8]
mov qword [rsp + 0x260], r15
mov r12, qword [rsp + 0x268]
lea r13, [rax - 0x20]
mov r15d, dword [rsp + 0x90]
jmp 0x45391d
movdqu xmm6, xmmword [r14]
movups xmmword [rax], xmm6
cmp rbp, 0x10
ja 0x453c2e
add qword [r12 + 0x18], rbp
mov rax, qword [r12 + 8]
mov word [rax + 4], r15w
mov rax, qword [r12 + 8]
add r9d, 1
mov dword [rax], r9d
cmp r11d, 0xffff
ja 0x453b38
mov rax, qword [r12 + 8]
mov word [rax + 6], r11w
lea ebx, [r15 + rsi]
add qword [r12 + 8], 8
add rbx, r14
mov r14, rbx
add edi, 1
cmp edi, dword [rsp + 0x3c]
ja 0x453ba3
mov edx, edi
mov rsi, qword [rsp + 0x58]
lea rax, [rdx*8]
sub rax, rdx
lea rax, [rsi + rax*4]
mov r15d, dword [rax + 0xc]
mov esi, dword [rax + 8]
mov r9d, dword [rax + 4]
mov ebp, r15d
lea rbx, [r14 + rbp]
test esi, esi
je 0x4538ef
mov dword [rsp + 0x20], esi
mov rcx, qword [rsp + 0xb0]
mov edx, r15d
mov r8, r14
call fcn.00450940
mov rax, qword [r12 + 0x18]
lea r11d, [rsi - 3]
mov rdx, r13
cmp r13, rbx
jae 0x45389b
cmp r13, r14
jae 0x453b5b
mov rdx, r14
cmp r14, rbx
jae 0x453aea
mov r8, rbx
lea r10, [rdx + 0xf]
lea rcx, [rdx + 1]
sub r8, rdx
sub r10, rax
cmp r10, 0x1e
lea r10, [r8 - 1]
seta byte [rsp + 0x90]
cmp r10, 0xe
seta r10b
test byte [rsp + 0x90], r10b
je 0x453b26
cmp rbx, rcx
jb 0x453b26
mov ecx, 1
cmovb r8, rcx
xor ecx, ecx
mov r10, r8
and r10, 0xfffffffffffffff0
nop dword [rax + rax]
movdqu xmm7, xmmword [rdx + rcx]
movups xmmword [rax + rcx], xmm7
add rcx, 0x10
cmp r10, rcx
jne 0x4539c0
mov rcx, r8
and rcx, 0xfffffffffffffff0
add rdx, rcx
add rax, rcx
cmp rcx, r8
je 0x453ae5
movzx ecx, byte [rdx]
mov byte [rax], cl
lea rcx, [rdx + 1]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 1]
mov byte [rax + 1], cl
lea rcx, [rdx + 2]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 2]
mov byte [rax + 2], cl
lea rcx, [rdx + 3]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 3]
mov byte [rax + 3], cl
lea rcx, [rdx + 4]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 4]
mov byte [rax + 4], cl
lea rcx, [rdx + 5]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 5]
mov byte [rax + 5], cl
lea rcx, [rdx + 6]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 6]
mov byte [rax + 6], cl
lea rcx, [rdx + 7]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 7]
mov byte [rax + 7], cl
lea rcx, [rdx + 8]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 8]
mov byte [rax + 8], cl
lea rcx, [rdx + 9]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 9]
mov byte [rax + 9], cl
lea rcx, [rdx + 0xa]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 0xa]
mov byte [rax + 0xa], cl
lea rcx, [rdx + 0xb]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 0xb]
mov byte [rax + 0xb], cl
lea rcx, [rdx + 0xc]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 0xc]
mov byte [rax + 0xc], cl
lea rcx, [rdx + 0xd]
cmp rbx, rcx
jbe 0x453ae5
movzx ecx, byte [rdx + 0xd]
mov byte [rax + 0xd], cl
lea rcx, [rdx + 0xe]
cmp rbx, rcx
jbe 0x453ae5
movzx edx, byte [rdx + 0xe]
mov byte [rax + 0xe], dl
mov rax, qword [r12 + 0x18]
add rax, rbp
mov qword [r12 + 0x18], rax
mov rax, qword [r12 + 8]
cmp rbp, 0xffff
jbe 0x4538b7
mov dword [r12 + 0x48], 1
mov rdx, rax
sub rdx, qword [r12]
sar rdx, 3
mov dword [r12 + 0x4c], edx
jmp 0x4538b7
add rcx, 1
movzx edx, byte [rcx - 1]
add rax, 1
mov byte [rax - 1], dl
cmp rbx, rcx
ja 0x453b22
jmp 0x453ae5
mov dword [r12 + 0x48], 2
mov rax, qword [r12 + 8]
mov rdx, rax
sub rdx, qword [r12]
sar rdx, 3
mov dword [r12 + 0x4c], edx
jmp 0x4538da
movdqu xmm7, xmmword [r14]
mov r8, r13
sub r8, r14
lea rcx, [rax + r8]
movups xmmword [rax], xmm7
cmp r8, 0x10
jle 0x453b9b
add rax, 0x10
lea r8, [r14 + 0x10]
movdqu xmm6, xmmword [r8]
add rax, 0x20
add r8, 0x20
movups xmmword [rax - 0x20], xmm6
movdqu xmm5, xmmword [r8 - 0x10]
movups xmmword [rax - 0x10], xmm5
cmp rcx, rax
ja 0x453b7b
mov rax, rcx
jmp 0x453969
mov qword [rsp + 0x50], rbx
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0xd8], r14
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xb0]
call fcn.00450ac0
jmp 0x4533de
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0x68]
mov dword [rax], 0
mov rax, qword [rsp + 0x70]
mov dword [rax], 0
mov eax, dword [rsp + 0xd0]
sub eax, 8
mov dword [r15 + 0x24], eax
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], ebx
test rax, rax
je 0x45324f
cmp rax, qword [rsp + 0x158]
ja 0x453212
jmp 0x45324f
mov rax, qword [r12 + 0x18]
movdqu xmm6, xmmword [r14 + 0x10]
movups xmmword [rax + 0x10], xmm6
cmp r15d, 0x20
jbe 0x453ae5
lea rcx, [rax + rbp]
lea rdx, [r14 + 0x20]
add rax, 0x20
movdqu xmm6, xmmword [rdx]
add rax, 0x20
add rdx, 0x20
movups xmmword [rax - 0x20], xmm6
movdqu xmm7, xmmword [rdx - 0x10]
movups xmmword [rax - 0x10], xmm7
cmp rcx, rax
ja 0x453c53
jmp 0x453ae5
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x4531ac
mov rdx, qword [rsp + 0xe8]
jmp 0x453113
mov rbx, qword [rsp + 0x50]
mov ecx, 0x20
mov r8d, 1
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
mov r10d, dword [rbx]
imul eax, r10d, 0x9e3779b1
shr eax, cl
lea rax, [rdx + rax*4]
mov edx, edi
mov qword [rsp + 0xc8], rax
mov ebp, dword [rax]
mov eax, dword [rsp + 0x3c]
sub edx, eax
cmp edi, eax
mov eax, 0
mov ecx, eax
mov eax, edi
cmova ecx, edx
mov edx, r8d
mov dword [rsp + 0xa0], ecx
mov ecx, dword [r15 + 0xc0]
shl edx, cl
mov ecx, edi
sub ecx, r9d
sub eax, edx
cmp edx, ecx
mov edx, dword [r15 + 0x20]
mov ecx, r8d
cmovae eax, r9d
test edx, edx
cmove r9d, eax
mov eax, dword [rsp + 0x3c]
test r9d, r9d
cmovne ecx, r9d
and eax, edi
add eax, eax
shl rax, 2
mov dword [rsp + 0x88], ecx
lea rcx, [r13 + rax]
lea rax, [r13 + rax + 4]
mov qword [rsp + 0x70], rax
lea eax, [rdi + 9]
mov qword [rsp + 0x68], rcx
mov ecx, dword [r15 + 0xcc]
mov dword [rsp + 0xd0], eax
movzx eax, byte [rsp + 0x80]
shl r8d, cl
cmp al, 1
mov eax, dword [rsp + rax*4 + 0x138]
mov dword [rsp + 0xd4], r8d
sbb ecx, ecx
add ecx, 4
lea edx, [rax - 1]
mov dword [rsp + 0xc0], ecx
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0xe0], ecx
sub ecx, 1
mov dword [rsp + 0xa8], ecx
mov ecx, edi
sub ecx, r11d
mov dword [rsp + 0x80], ecx
cmp edx, ecx
jae 0x453e20
mov edx, eax
mov rcx, rbx
sub rcx, rdx
cmp dword [rcx], r10d
jne 0x453e20
mov ecx, edi
sub ecx, eax
cmp r9d, ecx
ja 0x453e20
mov rax, rbx
mov r8, qword [rsp + 0x40]
lea rcx, [rbx + 4]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x78]
mov qword [rsp + 0x58], rcx
jbe 0x453e20
mov rdx, qword [rsp + 0x48]
add rbx, rcx
mov dword [rdx], 0
mov dword [rdx + 4], ecx
cmp r8, rbx
je 0x45281c
mov ebx, 1
cmp ecx, esi
jbe 0x453e2c
jmp 0x45281c
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x60]
add eax, 1
mov eax, dword [rsp + rax*4 + 0x138]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x453e68
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r10d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r10d
jne 0x453e68
mov ecx, edi
sub ecx, eax
cmp r9d, ecx
jbe 0x456b47
mov eax, dword [rsp + 0x60]
lea r10d, [rax + 2]
cmp dword [rsp + 0xc0], r10d
jbe 0x453f6a
mov eax, dword [rsp + 0xa8]
cmp r10d, 3
cmovne eax, dword [rsp + 0x140]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x453f3e
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r8d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r8d
jne 0x453f3e
mov ecx, edi
sub ecx, eax
cmp r9d, ecx
ja 0x453f3e
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xf0], r10d
sub rax, rdx
add rcx, 4
mov dword [rsp + 0xe8], r9d
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
mov r10d, dword [rsp + 0xf0]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x453f3e
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov r11, qword [rsp + 0x50]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xc0], eax
jbe 0x453f6a
mov eax, dword [rsp + 0xe0]
sub eax, 2
cmp eax, dword [rsp + 0x80]
jb 0x457263
mov rax, qword [rsp + 0xc8]
mov dword [rax], edi
mov eax, dword [rsp + 0xd4]
lea r11d, [rax - 1]
cmp ebp, dword [rsp + 0x88]
jb 0x45473b
test eax, eax
je 0x45473b
mov rax, qword [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x260], r15
mov qword [rsp + 0xa8], r14
mov r15, qword [rsp + 0x50]
lea rsi, [rax - 7]
lea rcx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xc8], rax
lea eax, [rdi + 2]
mov rdi, rdx
mov qword [rsp + 0x80], rsi
xor esi, esi
mov qword [rsp + 0xc0], rcx
mov dword [rsp + 0xd4], eax
jmp 0x4540be
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x45416e
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [r15 + rcx]
cmp rcx, qword [rsp + 0x58]
jbe 0x454072
mov r14d, dword [rsp + 0xd0]
lea r8d, [rbp + rcx]
mov r9d, r14d
sub r9d, ebp
cmp rcx, r9
mov r9d, dword [rsp + 0xd4]
cmovbe r8d, r14d
mov r14, qword [rsp + 0x48]
sub r9d, ebp
mov dword [rsp + 0xd0], r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x45472b
cmp qword [rsp + 0x40], rax
je 0x45472b
mov qword [rsp + 0x58], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x45414a
mov rax, qword [rsp + 0x68]
mov dword [rax], ebp
cmp ebp, dword [rsp + 0xa0]
jbe 0x4574ba
lea rax, [r10 + 4]
mov ebp, dword [r10 + 4]
mov rsi, rcx
mov qword [rsp + 0x68], rax
test r11d, r11d
setne dl
cmp dword [rsp + 0x88], ebp
setbe al
sub r11d, 1
test dl, al
je 0x45472b
mov eax, dword [rsp + 0x3c]
mov rcx, rsi
mov edx, ebp
and eax, ebp
add eax, eax
cmp rdi, rsi
cmovbe rcx, rdi
add rdx, r12
lea r10, [r13 + rax*4]
lea r9, [rdx + rcx]
lea r8, [r15 + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x453fe8
mov rax, r8
cmp rax, qword [rsp + 0xc0]
jae 0x45410d
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x45410d
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xc8]
jae 0x454129
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x454129
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x454142
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x454004
mov rax, qword [rsp + 0x70]
mov dword [rax], ebp
cmp ebp, dword [rsp + 0xa0]
jbe 0x457498
mov qword [rsp + 0x70], r10
mov ebp, dword [r10]
mov rdi, rcx
jmp 0x4540a2
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x4540f3
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xe0], rdx
cmp r14, rdx
je 0x4541c4
mov r9, rdx
mov rdx, qword [rsp + 0xe8]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x454004
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x45418c
mov rdx, qword [rsp + 0xe8]
jmp 0x4540f3
mov r10d, ebx
mov rbx, qword [rsp + 0x50]
mov ecx, 0x40
movabs r8, 0xcf1bbcdcbb000000
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
imul r8, qword [rbx]
shr r8, cl
lea rcx, [rdx + r8*4]
mov edx, 0
mov r8d, edi
mov qword [rsp + 0xc8], rcx
mov ebp, dword [rcx]
mov ecx, edi
sub ecx, r10d
cmp edi, r10d
cmova edx, ecx
mov ecx, dword [r15 + 0xc0]
sub r8d, r9d
mov dword [rsp + 0xa0], edx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, edi
sub edx, ecx
cmp ecx, r8d
mov r8d, dword [r15 + 0x20]
mov ecx, eax
cmovae edx, r9d
test r8d, r8d
cmove r9d, edx
mov edx, r10d
test r9d, r9d
cmovne ecx, r9d
and edx, edi
add edx, edx
shl rdx, 2
mov dword [rsp + 0x88], ecx
lea rcx, [r13 + rdx]
mov qword [rsp + 0x70], rcx
lea rcx, [r13 + rdx + 4]
mov qword [rsp + 0x68], rcx
lea ecx, [rdi + 9]
mov dword [rsp + 0xd0], ecx
mov ecx, dword [r15 + 0xcc]
shl eax, cl
mov dword [rsp + 0xd4], eax
movzx eax, byte [rsp + 0x80]
cmp al, 1
mov eax, dword [rsp + rax*4 + 0x138]
sbb ecx, ecx
add ecx, 4
lea edx, [rax - 1]
mov dword [rsp + 0xc0], ecx
mov ecx, dword [rsp + 0x138]
mov dword [rsp + 0xe0], ecx
sub ecx, 1
mov dword [rsp + 0xa8], ecx
mov ecx, edi
sub ecx, r11d
mov dword [rsp + 0x80], ecx
cmp edx, ecx
jae 0x454368
mov edx, eax
mov rcx, rbx
mov r11d, dword [rbx]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x454368
mov ecx, edi
sub ecx, eax
cmp ecx, r9d
jb 0x454368
mov rax, rbx
mov r8, qword [rsp + 0x40]
lea rcx, [rbx + 4]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x78]
mov qword [rsp + 0x58], rcx
jbe 0x454368
mov rdx, qword [rsp + 0x48]
add rbx, rcx
mov dword [rdx], 0
mov dword [rdx + 4], ecx
cmp r8, rbx
je 0x45281c
mov ebx, 1
cmp ecx, esi
jbe 0x454374
jmp 0x45281c
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x60]
add eax, 1
mov eax, dword [rsp + rax*4 + 0x138]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x4543b0
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r10d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r10d
jne 0x4543b0
mov ecx, edi
sub ecx, eax
cmp r9d, ecx
jbe 0x456852
mov eax, dword [rsp + 0x60]
lea r10d, [rax + 2]
cmp dword [rsp + 0xc0], r10d
jbe 0x4544b2
mov eax, dword [rsp + 0xa8]
cmp r10d, 3
cmovne eax, dword [rsp + 0x140]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0x80]
jae 0x454486
mov r11, qword [rsp + 0x50]
mov edx, eax
mov rcx, r11
mov r8d, dword [r11]
sub rcx, rdx
cmp dword [rcx], r8d
jne 0x454486
mov ecx, edi
sub ecx, eax
cmp r9d, ecx
ja 0x454486
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xf0], r10d
sub rax, rdx
add rcx, 4
mov dword [rsp + 0xe8], r9d
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
mov r10d, dword [rsp + 0xf0]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x454486
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov r11, qword [rsp + 0x50]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xc0], eax
jbe 0x4544b2
mov eax, dword [rsp + 0xe0]
sub eax, 2
cmp eax, dword [rsp + 0x80]
jb 0x457379
mov rax, qword [rsp + 0xc8]
mov dword [rax], edi
mov eax, dword [rsp + 0xd4]
lea r11d, [rax - 1]
test eax, eax
je 0x453bdf
cmp ebp, dword [rsp + 0x88]
jb 0x453bdf
mov rax, qword [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x260], r15
mov qword [rsp + 0xa8], r14
mov r15, qword [rsp + 0x50]
lea rsi, [rax - 7]
lea rcx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xc8], rax
lea eax, [rdi + 2]
mov rdi, rdx
mov qword [rsp + 0x80], rsi
xor esi, esi
mov qword [rsp + 0xc0], rcx
mov dword [rsp + 0xd4], eax
jmp 0x454606
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x4546b6
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [r15 + rcx]
cmp rcx, qword [rsp + 0x58]
jbe 0x4545ba
mov r14d, dword [rsp + 0xd0]
lea r8d, [rbp + rcx]
mov r9d, r14d
sub r9d, ebp
cmp rcx, r9
mov r9d, dword [rsp + 0xd4]
cmovbe r8d, r14d
mov r14, qword [rsp + 0x48]
sub r9d, ebp
mov dword [rsp + 0xd0], r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x453bcf
cmp qword [rsp + 0x40], rax
je 0x453bcf
mov qword [rsp + 0x58], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x454692
mov rax, qword [rsp + 0x70]
mov dword [rax], ebp
cmp dword [rsp + 0xa0], ebp
jae 0x456e1c
lea rax, [r10 + 4]
mov ebp, dword [r10 + 4]
mov rsi, rcx
mov qword [rsp + 0x70], rax
cmp dword [rsp + 0x88], ebp
setbe dl
test r11d, r11d
setne al
sub r11d, 1
test dl, al
je 0x453bcf
mov eax, dword [rsp + 0x3c]
mov rcx, rdi
mov edx, ebp
and eax, ebp
add eax, eax
cmp rsi, rdi
cmovbe rcx, rsi
add rdx, r12
lea r10, [r13 + rax*4]
lea r9, [rdx + rcx]
lea r8, [r15 + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x454530
mov rax, r8
cmp rax, qword [rsp + 0xc0]
jae 0x454655
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x454655
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xc8]
jae 0x454671
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x454671
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x45468a
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x45454c
mov rax, qword [rsp + 0x68]
mov dword [rax], ebp
cmp dword [rsp + 0xa0], ebp
jae 0x456dfa
mov qword [rsp + 0x68], r10
mov ebp, dword [r10]
mov rdi, rcx
jmp 0x4545ea
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x45463b
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xe0], rdx
cmp r14, rdx
je 0x45470c
mov r9, rdx
mov rdx, qword [rsp + 0xe8]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x45454c
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x4546d4
mov rdx, qword [rsp + 0xe8]
jmp 0x45463b
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0x70]
mov dword [rax], 0
mov rax, qword [rsp + 0x68]
mov dword [rax], 0
mov eax, dword [rsp + 0xd0]
sub eax, 8
mov dword [r15 + 0x24], eax
jmp 0x453c03
mov eax, dword [rsp + 0x60]
lea r10, [rcx + 0x10]
add eax, ebp
je 0x457126
mov r9d, dword [rcx + 0x10]
lea edx, [r9 - 1]
cmp eax, 3
je 0x45679d
mov edx, eax
mov edx, dword [r10 + rdx*4]
cmp eax, 1
jne 0x45679d
mov eax, dword [rcx + 0x18]
jmp 0x4532e1
cmp dword [r15 + 0xa0], 1
mov edx, 0x100
je 0x4547cc
mov rdx, qword [r15 + 0x58]
mov edi, dword [r15 + 0x94]
mov edx, dword [rdx]
add edx, 1
bsr ecx, edx
shl edx, 8
shr edx, cl
shl ecx, 8
add edx, ecx
sub edi, edx
mov edx, edi
cmp dword [rsp + 0x94], 4
mov dword [r14 + 0x1c], 0x40000000
lea r12d, [r13 + rdx]
mov dword [r14 + 0x38], 0x40000000
jne 0x4547f3
mov dword [r14 + 0x54], 0x40000000
mov r10d, dword [rsp + 0x94]
lea r13d, [r10 - 1]
test eax, eax
je 0x4574fe
xor r13d, r13d
mov ebp, dword [rsp + 0x90]
mov dword [rsp + 0x3c], r13d
mov edx, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x48]
lea rdx, [rdi + rdx*8]
mov ebx, dword [rdx + 4]
mov esi, dword [rdx]
cmp ebx, r10d
jb 0x45493f
lea edi, [rsi + 1]
bsr edi, edi
movsxd r13, edi
lea eax, [rdi + 0x10]
mov dword [rsp + 0x90], eax
shl r13, 2
jmp 0x4548c7
bsr edx, edx
add edx, 0x24
add eax, dword [r15 + 0x98]
mov rcx, qword [r15 + 0x60]
add eax, 0x33
sub eax, r11d
mov r8d, dword [rcx + rdx*4]
sub eax, r9d
lea r9, [0x0058ef00]
mov r11d, dword [r9 + rdx*4]
add r8d, 1
bsr ecx, r8d
shl r8d, 8
add r11d, edi
shr r8d, cl
mov edx, r11d
shl edx, 8
add eax, edx
mov edx, ecx
shl edx, 8
sub eax, edx
sub eax, r8d
mov ecx, r10d
add eax, r12d
lea rdx, [rcx*8]
sub rdx, rcx
lea rdx, [r14 + rdx*4]
mov dword [rdx + 8], r10d
add r10d, 1
mov dword [rdx + 4], esi
mov dword [rdx + 0xc], ebp
mov dword [rdx], eax
cmp ebx, r10d
jb 0x454938
cmp dword [r15 + 0xa0], 1
lea edx, [r10 - 3]
je 0x454913
mov rcx, qword [r15 + 0x68]
mov eax, dword [r15 + 0x9c]
mov r9d, dword [rcx + r13]
add r9d, 1
bsr ecx, r9d
shl r9d, 8
mov r11d, ecx
shr r9d, cl
shl r11d, 8
cmp edx, 0x7f
ja 0x454850
lea rcx, [0x0058ee40]
movzx edx, byte [rcx + rdx]
jmp 0x454856
mov eax, r10d
lea ecx, [r10 - 2]
shl eax, 8
bsr ecx, ecx
sub eax, 0x200
shr eax, cl
add ecx, dword [rsp + 0x90]
shl ecx, 8
add eax, ecx
jmp 0x45489d
mov eax, dword [rsp + 0x144]
add dword [rsp + 0x3c], 1
mov esi, dword [rsp + 0x3c]
cmp esi, eax
jb 0x454816
sub r10d, 1
mov esi, dword [r14 + 8]
mov r13d, r10d
je 0x457590
mov dword [rsp + 0x68], 1
mov ebp, dword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
lea edx, [rbp - 1]
add rdi, rbp
lea rax, [rdx*8]
sub rax, rdx
lea r8, [r14 + rax*4]
test esi, esi
jne 0x455240
mov r12d, dword [r8 + 0xc]
lea esi, [r12 + 1]
cmp dword [r15 + 0xb0], 2
mov eax, dword [r8]
mov edx, dword [r15 + 0xa0]
je 0x455a4b
cmp edx, 1
je 0x455a82
mov rbx, qword [rsp + 0x50]
mov rdx, qword [r15 + 0x50]
add eax, dword [r15 + 0x90]
movzx ecx, byte [rbx + rbp - 1]
mov edx, dword [rdx + rcx*4]
add edx, 1
bsr ecx, edx
shl edx, 8
mov r9d, ecx
shr edx, cl
shl r9d, 8
sub eax, r9d
sub eax, edx
mov ebx, eax
cmp esi, 0x3f
jbe 0x455718
bsr eax, esi
add eax, 0x13
mov r11, qword [r15 + 0x58]
lea r10, [0x0058efe0]
mov r9d, dword [r15 + 0x94]
mov ecx, dword [r11 + rax*4]
mov eax, dword [r10 + rax*4]
add ebx, r9d
lea edx, [rcx + 1]
shl eax, 8
bsr ecx, edx
add eax, ebx
shl edx, 8
mov ebx, ecx
shr edx, cl
shl ebx, 8
sub eax, ebx
sub eax, edx
cmp r12d, 0x3f
jbe 0x45572a
bsr ebx, r12d
add ebx, 0x13
mov edx, dword [r11 + rbx*4]
mov r10d, dword [r10 + rbx*4]
add edx, 1
shl r10d, 8
bsr ecx, edx
add r9d, r10d
shl edx, 8
mov r10d, ecx
shr edx, cl
shl r10d, 8
sub r9d, r10d
sub r9d, edx
lea rdx, [rbp*8]
sub eax, r9d
sub rdx, rbp
lea rbx, [r14 + rdx*4]
mov qword [rsp + 0x70], rbx
cmp eax, dword [rbx]
jg 0x45519f
mov qword [rbx + 4], 0
mov dword [rbx + 0xc], esi
mov dword [rbx], eax
mov rbx, qword [rsp + 0x70]
mov rax, qword [r8 + 0x10]
mov qword [rbx + 0x10], rax
mov eax, dword [r8 + 0x18]
lea rsi, [rbx + 0x10]
mov qword [rsp + 0x88], rsi
mov dword [rbx + 0x18], eax
cmp qword [rsp + 0x98], rdi
jb 0x455180
cmp r13d, dword [rsp + 0x68]
je 0x456704
mov eax, dword [rbx + 0xc]
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x70]
cmp dword [r15 + 0xa0], 1
mov dword [rsp + 0xd4], 0x100
mov eax, dword [rax]
mov dword [rsp + 0xe0], eax
je 0x454b27
mov rax, qword [r15 + 0x58]
mov esi, dword [r15 + 0x94]
mov eax, dword [rax]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
sub esi, eax
mov dword [rsp + 0xd4], esi
mov eax, dword [r15 + 0x24]
mov rbp, qword [r15 + 8]
lea rdx, [rbp + rax]
mov rsi, rax
cmp rdi, rdx
jb 0x45578b
mov rbx, rdi
mov r12d, dword [r15 + 0xd0]
sub rbx, rbp
mov qword [rsp + 0x58], rbx
cmp eax, ebx
jae 0x45678d
mov qword [rsp + 0x60], rdi
mov rdi, rbp
mov ebp, ebx
mov rbx, qword [rsp + 0x40]
jmp 0x454b72
mov eax, esi
lea rdx, [rdi + rax]
mov r9d, r12d
mov r8, rbx
mov rcx, r15
call fcn.004513a0
add esi, eax
cmp ebp, esi
ja 0x454b70
mov rdi, qword [rsp + 0x60]
mov rbp, qword [r15 + 8]
mov esi, edi
sub esi, ebp
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [r15 + 0xc8]
test r8d, r8d
mov r8, qword [r15 + 0x30]
setne al
setne r11b
cmp dword [r15 + 0xd4], 0xfff
movzx eax, al
mov dword [rsp + 0xd0], eax
mov eax, dword [rsp + 0x58]
mov dword [r15 + 0x24], eax
mov eax, 0xfff
cmovbe eax, dword [r15 + 0xd4]
mov dword [rsp + 0x80], eax
mov rax, qword [r15 + 0x40]
mov qword [rsp + 0x58], rax
mov eax, dword [r15 + 0xc4]
lea ecx, [rax - 1]
mov eax, 1
mov edx, eax
shl edx, cl
lea ebx, [rdx - 1]
mov dword [rsp + 0x3c], ebx
mov ebx, dword [r15 + 0x18]
cmp r12d, 5
je 0x455f48
ja 0x45524d
cmp r12d, 3
jne 0x455a8a
mov ecx, dword [rdi]
mov r10d, dword [r15 + 0x1c]
imul edx, ecx, 0x9e3779b1
mov dword [rsp + 0x60], ecx
mov ecx, 0x20
sub ecx, r9d
mov r9d, dword [rsp + 0x3c]
shr edx, cl
lea rdx, [r8 + rdx*4]
mov qword [rsp + 0xf8], rdx
mov r12d, dword [rdx]
mov edx, esi
sub edx, r9d
cmp esi, r9d
mov ecx, edx
mov edx, 0
cmova edx, ecx
mov ecx, dword [r15 + 0xc0]
mov dword [rsp + 0xc8], edx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, esi
sub edx, r10d
mov r8d, edx
mov edx, esi
sub edx, ecx
cmp ecx, r8d
mov ecx, dword [r15 + 0x20]
cmovae edx, r10d
test ecx, ecx
mov ecx, dword [r15 + 0xcc]
cmove r10d, edx
mov edx, eax
test r10d, r10d
cmovne edx, r10d
shl eax, cl
mov dword [rsp + 0x118], eax
mov dword [rsp + 0xa0], edx
mov edx, r9d
mov r9, qword [rsp + 0x58]
and edx, esi
add edx, edx
shl rdx, 2
cmp r11b, 1
movzx r11d, r11b
sbb eax, eax
lea r8, [r9 + rdx]
lea rdx, [r9 + rdx + 4]
add eax, 4
mov qword [rsp + 0xb8], rdx
lea edx, [rsi + 9]
mov dword [rsp + 0xe8], eax
mov eax, esi
sub eax, ebx
mov dword [rsp + 0xc0], edx
mov dword [rsp + 0xf0], eax
mov ebx, eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xa8], r8
mov eax, dword [rax + r11*4]
lea edx, [rax - 1]
cmp edx, ebx
jae 0x454d43
mov ecx, eax
mov rdx, rdi
mov r8d, dword [rsp + 0x60]
sub rdx, rcx
mov edx, dword [rdx]
shl r8d, 8
shl edx, 8
cmp edx, r8d
jne 0x454d43
mov ebx, esi
sub ebx, eax
cmp r10d, ebx
jbe 0x4550f1
mov r9, qword [rsp + 0x78]
xor ebx, ebx
mov eax, dword [rsp + 0xd0]
mov rcx, qword [rsp + 0x88]
add eax, 1
mov eax, dword [rcx + rax*4]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xf0]
jae 0x454d8f
mov r8d, eax
mov rdx, rdi
sub rdx, r8
mov ecx, dword [rdx]
mov edx, dword [rdi]
shl ecx, 8
shl edx, 8
cmp ecx, edx
jne 0x454d8f
mov ecx, esi
sub ecx, eax
cmp r10d, ecx
jbe 0x4569a8
mov eax, dword [rsp + 0xd0]
lea r11d, [rax + 2]
cmp dword [rsp + 0xe8], r11d
jbe 0x457217
cmp r11d, 3
je 0x457221
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 8]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xf0]
jae 0x454ded
mov r8d, eax
mov rdx, rdi
sub rdx, r8
mov ecx, dword [rdx]
mov edx, dword [rdi]
shl ecx, 8
shl edx, 8
cmp ecx, edx
jne 0x454ded
mov ecx, esi
sub ecx, eax
cmp r10d, ecx
jbe 0x456e3e
xor eax, eax
cmp r11d, 2
mov qword [rsp + 0x60], r9
setne al
add eax, 3
cmp dword [rsp + 0xe8], eax
jbe 0x454eaa
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
lea edx, [rax - 1]
sub eax, 2
cmp eax, dword [rsp + 0xf0]
jae 0x454eaa
mov r8d, edx
mov rax, rdi
sub rax, r8
mov ecx, dword [rax]
mov eax, dword [rdi]
shl ecx, 8
shl eax, 8
cmp ecx, eax
jne 0x454eaa
mov eax, esi
sub eax, edx
cmp eax, r10d
jb 0x454eaa
mov rax, rdi
lea rcx, [rdi + 3]
sub rax, r8
mov r8, qword [rsp + 0x40]
lea rdx, [rax + 3]
call fcn.00450860
lea edx, [rax + 3]
cmp rdx, qword [rsp + 0x60]
jbe 0x454eaa
mov r10, qword [rsp + 0x48]
mov ecx, ebx
add ebx, 1
lea r8, [r10 + rcx*8]
mov ecx, 3
sub ecx, dword [rsp + 0xd0]
mov dword [r8], ecx
lea rcx, [rdi + rdx]
mov dword [r8 + 4], edx
cmp qword [rsp + 0x40], rcx
je 0x4564e9
cmp edx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rdx
cmp qword [rsp + 0x60], 2
jne 0x454f03
lea rdx, [rsp + 0x134]
mov r8, rdi
mov rcx, r15
call fcn.00450800
mov r9d, esi
sub r9d, eax
cmp dword [rsp + 0xa0], eax
ja 0x454f03
cmp r9d, 0x3ffff
mov dword [rsp + 0x88], r9d
ja 0x454f03
mov eax, eax
mov r8, qword [rsp + 0x40]
mov rcx, rdi
lea rdx, [rbp + rax]
call fcn.00450860
cmp rax, 2
ja 0x457197
mov rax, qword [rsp + 0xf8]
mov dword [rax], esi
mov eax, dword [rsp + 0x118]
lea r11d, [rax - 1]
test eax, eax
je 0x456d20
cmp r12d, dword [rsp + 0xa0]
jb 0x456d20
mov rax, qword [rsp + 0x40]
xor r10d, r10d
xor edx, edx
mov dword [rsp + 0xd0], r13d
mov qword [rsp + 0x260], r15
mov r13, r10
mov r15d, dword [rsp + 0xc0]
lea rcx, [rax - 7]
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], rcx
lea rcx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xf0], rax
lea eax, [rsi + 2]
mov rsi, rdx
mov qword [rsp + 0xe8], rcx
mov dword [rsp + 0xf8], eax
jmp 0x45505f
mov rax, qword [r8]
mov r14, qword [rcx]
cmp rax, r14
je 0x456c10
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add r9, rax
lea rax, [rdi + r9]
cmp r9, qword [rsp + 0x60]
jbe 0x455009
mov r8d, r15d
lea ecx, [r12 + r9]
mov r14, qword [rsp + 0x48]
sub r8d, r12d
cmp r9, r8
mov r8d, dword [rsp + 0xf8]
cmova r15d, ecx
mov ecx, ebx
add ebx, 1
lea rcx, [r14 + rcx*8]
sub r8d, r12d
mov dword [rcx], r8d
mov dword [rcx + 4], r9d
cmp r9, 0x1000
ja 0x456d00
cmp qword [rsp + 0x40], rax
je 0x456d00
mov qword [rsp + 0x60], r9
movzx eax, byte [rax]
cmp byte [rdx + r9], al
jae 0x456bc0
mov rax, qword [rsp + 0xa8]
mov dword [rax], r12d
cmp dword [rsp + 0xc8], r12d
jae 0x457463
lea rax, [r10 + 4]
mov r12d, dword [r10 + 4]
mov rsi, r9
mov qword [rsp + 0xa8], rax
test r11d, r11d
setne dl
cmp dword [rsp + 0xa0], r12d
setbe al
sub r11d, 1
test dl, al
je 0x456d00
mov eax, dword [rsp + 0x3c]
mov r9, rsi
mov rcx, qword [rsp + 0x58]
mov edx, r12d
and eax, r12d
add eax, eax
cmp r13, rsi
cmovbe r9, r13
add rdx, rbp
lea r10, [rcx + rax*4]
lea r8, [rdx + r9]
lea rcx, [rdi + r9]
cmp rcx, qword [rsp + 0x80]
jb 0x454f91
mov rax, rcx
cmp rax, qword [rsp + 0xe8]
jae 0x4550b4
mov r14d, dword [rax]
cmp dword [r8], r14d
jne 0x4550b4
add rax, 4
add r8, 4
cmp rax, qword [rsp + 0xf0]
jae 0x4550d0
movzx r14d, word [rax]
cmp word [r8], r14w
jne 0x4550d0
add rax, 2
add r8, 2
cmp qword [rsp + 0x40], rax
jbe 0x4550e9
movzx r14d, byte [rax]
cmp byte [r8], r14b
sete r8b
movzx r8d, r8b
add rax, r8
sub rax, rcx
jmp 0x454fad
mov rax, rdi
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0x60], r10d
sub rax, rcx
lea rcx, [rdi + 3]
lea rdx, [rax + 3]
call fcn.00450860
mov r10d, dword [rsp + 0x60]
lea r9d, [rax + 3]
cmp r9, qword [rsp + 0x78]
jbe 0x454d43
mov rbx, qword [rsp + 0x48]
lea rdx, [rdi + r9]
mov dword [rbx], 0
mov dword [rbx + 4], r9d
cmp r8, rdx
je 0x45514d
mov ebx, 1
cmp r9d, dword [rsp + 0x80]
jbe 0x454d4a
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], 1
test rax, rax
je 0x455173
cmp rax, qword [rsp + 0x158]
ja 0x4557b5
mov ebx, 1
jmp 0x4557f5
add dword [rsp + 0x68], 1
mov eax, dword [rsp + 0x68]
cmp eax, r13d
ja 0x456704
mov rax, qword [rsp + 0x70]
mov esi, dword [rax + 8]
jmp 0x454969
mov esi, dword [rbx + 8]
mov dword [rsp + 0x3c], esi
test esi, esi
je 0x454a93
mov ecx, dword [rsp + 0x68]
mov eax, dword [rbx + 4]
sub ecx, esi
lea rdx, [rcx*8]
sub rdx, rcx
lea rcx, [r14 + rdx*4]
cmp eax, 2
jbe 0x45573d
mov r8d, dword [rcx + 0x14]
mov r9d, dword [rcx + 0x10]
sub eax, 2
lea rdx, [rsp + 0x144]
mov dword [rsp + 0x144], eax
mov rbx, qword [rsp + 0x70]
mov dword [rsp + 0x148], r9d
mov dword [rsp + 0x14c], r8d
mov rax, qword [rdx]
lea rsi, [rbx + 0x10]
mov qword [rsp + 0x88], rsi
mov qword [rbx + 0x10], rax
mov eax, dword [rdx + 8]
mov dword [rbx + 0x18], eax
cmp qword [rsp + 0x98], rdi
jb 0x455180
cmp r13d, dword [rsp + 0x68]
je 0x456704
mov dword [rsp + 0x90], 0
jmp 0x454ade
xor r12d, r12d
mov esi, 1
jmp 0x454998
sub r12d, 6
cmp r12d, 1
ja 0x455a8a
movabs rdx, 0xcf1bbcdcbf9b0000
imul rdx, qword [rdi]
mov ecx, 0x40
mov r10d, dword [rsp + 0x3c]
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
shr rdx, cl
lea rcx, [r8 + rdx*4]
mov edx, 0
mov r8d, esi
mov qword [rsp + 0xf8], rcx
mov r12d, dword [rcx]
mov ecx, esi
sub ecx, r10d
cmp esi, r10d
cmova edx, ecx
mov ecx, dword [r15 + 0xc0]
sub r8d, r9d
mov dword [rsp + 0xb8], edx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, esi
sub edx, ecx
cmp ecx, r8d
mov ecx, dword [r15 + 0x20]
cmovae edx, r9d
test ecx, ecx
mov ecx, eax
cmove r9d, edx
mov edx, r10d
test r9d, r9d
cmovne ecx, r9d
and edx, esi
add edx, edx
mov dword [rsp + 0xc0], ecx
mov rcx, qword [rsp + 0x58]
shl rdx, 2
lea r10, [rcx + rdx]
lea rdx, [rcx + rdx + 4]
lea ecx, [rsi + 9]
mov qword [rsp + 0xa8], rdx
mov dword [rsp + 0xc8], ecx
mov ecx, dword [r15 + 0xcc]
mov qword [rsp + 0xa0], r10
shl eax, cl
cmp r11b, 1
movzx r11d, r11b
mov dword [rsp + 0x118], eax
sbb eax, eax
add eax, 4
mov dword [rsp + 0xf0], eax
mov eax, esi
sub eax, ebx
mov dword [rsp + 0xe8], eax
mov ebx, eax
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + r11*4]
lea edx, [rax - 1]
cmp edx, ebx
jae 0x45536d
mov edx, eax
mov rcx, rdi
mov ebx, dword [rdi]
sub rcx, rdx
cmp dword [rcx], ebx
jne 0x45536d
mov ebx, esi
sub ebx, eax
cmp r9d, ebx
jbe 0x4556a9
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xd0]
mov rdx, qword [rsp + 0x88]
add eax, 1
mov eax, dword [rdx + rax*4]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x4553b7
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x4553b7
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x4568c6
mov eax, dword [rsp + 0xd0]
lea r10d, [rax + 2]
cmp dword [rsp + 0xf0], r10d
jbe 0x4554bb
cmp r10d, 3
je 0x457235
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 8]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x45540e
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x45540e
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x456f5d
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xf0], eax
jbe 0x4554bb
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
lea edx, [rax - 1]
sub eax, 2
cmp eax, dword [rsp + 0xe8]
jae 0x4554bb
mov eax, edx
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rax
cmp dword [rcx], r11d
jne 0x4554bb
mov ecx, esi
sub ecx, edx
cmp ecx, r9d
jb 0x4554bb
mov rcx, rdi
mov r8, qword [rsp + 0x40]
sub rcx, rax
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
call fcn.00450860
lea edx, [rax + 4]
cmp rdx, qword [rsp + 0x60]
jbe 0x4554bb
mov r10, qword [rsp + 0x48]
mov ecx, ebx
add ebx, 1
lea r8, [r10 + rcx*8]
mov ecx, 3
sub ecx, dword [rsp + 0xd0]
mov dword [r8], ecx
lea rcx, [rdi + rdx]
mov dword [r8 + 4], edx
cmp qword [rsp + 0x40], rcx
je 0x4564e9
cmp edx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rdx
mov rax, qword [rsp + 0xf8]
mov dword [rax], esi
mov eax, dword [rsp + 0x118]
lea r11d, [rax - 1]
test eax, eax
je 0x456601
cmp r12d, dword [rsp + 0xc0]
jb 0x456601
mov rax, qword [rsp + 0x40]
xor r10d, r10d
xor ecx, ecx
mov dword [rsp + 0xd0], r13d
mov qword [rsp + 0x260], r15
mov r13, rcx
mov r15d, dword [rsp + 0xc8]
lea rdx, [rax - 7]
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], rdx
lea rdx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xf0], rax
lea eax, [rsi + 2]
mov rsi, r10
mov qword [rsp + 0xe8], rdx
mov dword [rsp + 0xf8], eax
jmp 0x455617
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x45656c
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [rdi + rcx]
cmp rcx, qword [rsp + 0x60]
jbe 0x4555c2
mov r9d, r15d
lea r8d, [r12 + rcx]
mov r14, qword [rsp + 0x48]
sub r9d, r12d
cmp rcx, r9
mov r9d, dword [rsp + 0xf8]
cmova r15d, r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
sub r9d, r12d
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x4565e1
cmp qword [rsp + 0x40], rax
je 0x4565e1
mov qword [rsp + 0x60], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x456540
mov rax, qword [rsp + 0xa0]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456f28
lea rax, [r10 + 4]
mov r12d, dword [r10 + 4]
mov r13, rcx
mov qword [rsp + 0xa0], rax
cmp dword [rsp + 0xc0], r12d
setbe dl
test r11d, r11d
setne al
sub r11d, 1
test dl, al
je 0x4565e1
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x58]
mov edx, r12d
and eax, r12d
add eax, eax
cmp rsi, r13
lea r10, [rcx + rax*4]
mov rcx, r13
cmovbe rcx, rsi
add rdx, rbp
lea r9, [rdx + rcx]
lea r8, [rdi + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x455549
mov rax, r8
cmp rax, qword [rsp + 0xe8]
jae 0x45566c
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x45566c
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xf0]
jae 0x455688
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x455688
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x4556a1
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x455565
mov r8, qword [rsp + 0x40]
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ebx, [rax + 4]
cmp rbx, qword [rsp + 0x78]
mov qword [rsp + 0x60], rbx
mov rax, rbx
jbe 0x45536d
mov rcx, qword [rsp + 0x48]
lea rdx, [rdi + rbx]
mov dword [rcx], 0
mov dword [rcx + 4], ebx
cmp r8, rdx
je 0x45514d
mov ebx, 1
cmp eax, dword [rsp + 0x80]
jbe 0x455379
jmp 0x45514d
mov eax, esi
lea rdx, [0x0058eec0]
movzx eax, byte [rdx + rax]
jmp 0x4549f9
mov edx, r12d
lea rcx, [0x0058eec0]
movzx ebx, byte [rcx + rdx]
jmp 0x454a40
mov rsi, qword [rsp + 0x70]
xor edx, edx
lea r8, [rcx + 0x10]
mov r9d, dword [rsi + 0xc]
test r9d, r9d
sete dl
add edx, eax
je 0x4566d8
mov r9d, dword [rcx + 0x10]
lea eax, [r9 - 1]
cmp edx, 3
je 0x456408
mov eax, edx
mov eax, dword [r8 + rax*4]
cmp edx, 1
jne 0x456408
mov r8d, dword [rcx + 0x18]
lea rdx, [rsp + 0x144]
jmp 0x4551e2
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], 0
test rax, rax
je 0x455180
cmp qword [rsp + 0x158], rax
jae 0x455180
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov r9d, edi
lea r8, [rsp + 0x144]
mov rcx, qword [rsp + 0x110]
sub r9d, dword [rsp + 0x278]
sub rax, rdi
mov dword [rsp + 0x20], eax
call fcn.00451950
mov ebx, dword [rsp + 0x144]
test ebx, ebx
je 0x455180
mov rdi, qword [rsp + 0x48]
lea eax, [rbx - 1]
lea rax, [rdi + rax*8]
mov esi, dword [rax + 4]
cmp dword [rsp + 0x100], esi
jb 0x457151
mov ecx, dword [rsp + 0x68]
lea edx, [rsi + rcx]
cmp edx, 0xfff
ja 0x457151
mov eax, dword [rdi]
mov r10d, dword [rdi + 4]
mov dword [rsp + 0x80], 0
mov esi, dword [rsp + 0x94]
mov ebp, dword [rsp + 0xe0]
mov dword [rsp + 0x3c], eax
lea rax, [r14 + 0x1c]
add ebp, dword [rsp + 0xd4]
mov qword [rsp + 0x58], rax
nop word [rax + rax]
cmp esi, r10d
ja 0x4559d9
mov eax, dword [rsp + 0x3c]
lea edi, [rax + 1]
bsr edi, edi
lea eax, [rdi + 0x10]
movsxd r12, edi
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x68]
shl r12, 2
lea r11d, [rax + r10]
jmp 0x45590c
bsr eax, eax
add eax, 0x24
add edx, dword [r15 + 0x98]
mov rcx, qword [r15 + 0x60]
add edx, 0x33
sub edx, ebx
mov r8d, dword [rcx + rax*4]
sub edx, r9d
lea r9, [0x0058ef00]
mov ebx, dword [r9 + rax*4]
add r8d, 1
bsr ecx, r8d
shl r8d, 8
add ebx, edi
shr r8d, cl
mov eax, ebx
shl eax, 8
add edx, eax
mov eax, ecx
shl eax, 8
sub edx, eax
sub edx, r8d
mov ecx, r11d
add edx, ebp
lea rax, [rcx*8]
sub rax, rcx
lea rcx, [r14 + rax*4]
cmp r13d, r11d
jb 0x455960
cmp edx, dword [rcx]
jl 0x4559aa
sub r10d, 1
sub r11d, 1
cmp r10d, esi
jb 0x4559d2
cmp dword [r15 + 0xa0], 1
lea eax, [r10 - 3]
je 0x455a28
mov rcx, qword [r15 + 0x68]
mov edx, dword [r15 + 0x9c]
mov r9d, dword [rcx + r12]
add r9d, 1
bsr ecx, r9d
shl r9d, 8
mov ebx, ecx
shr r9d, cl
shl ebx, 8
cmp eax, 0x7f
ja 0x455890
lea rcx, [0x0058ee40]
movzx eax, byte [rcx + rax]
jmp 0x455896
mov r9d, r11d
lea r8d, [r13 + 1]
mov rbx, qword [rsp + 0x58]
sub r9d, r13d
lea rax, [r8*8]
sub r9d, 1
sub rax, r8
add r8, r9
lea rax, [r14 + rax*4]
lea r9, [r8*8]
sub r9, r8
lea r8, [rbx + r9*4]
nop dword [rax]
mov dword [rax], 0x40000000
add rax, 0x1c
cmp rax, r8
jne 0x455998
mov r13d, r11d
mov eax, dword [rsp + 0x3c]
mov dword [rcx + 8], r10d
sub r10d, 1
sub r11d, 1
mov dword [rcx], edx
mov dword [rcx + 4], eax
mov eax, dword [rsp + 0x90]
mov dword [rcx + 0xc], eax
cmp r10d, esi
jae 0x45590c
mov ebx, dword [rsp + 0x144]
mov eax, dword [rsp + 0x80]
add eax, 1
cmp eax, ebx
jae 0x455180
mov rdi, qword [rsp + 0x48]
mov edx, eax
lea rdx, [rdi + rdx*8]
mov esi, dword [rdx]
mov r10d, dword [rdx + 4]
mov dword [rsp + 0x3c], esi
mov esi, dword [rsp + 0x94]
test eax, eax
je 0x455a19
mov edx, dword [rsp + 0x80]
mov esi, dword [rdi + rdx*8 + 4]
add esi, 1
mov dword [rsp + 0x80], eax
jmp 0x455860
mov edx, r10d
lea ecx, [r10 - 2]
shl edx, 8
bsr ecx, ecx
sub edx, 0x200
shr edx, cl
add ecx, dword [rsp + 0x60]
shl ecx, 8
add edx, ecx
jmp 0x4558da
lea ebx, [rax + 0x800]
cmp edx, 1
jne 0x4549ea
lea eax, [rsi + 1]
mov edx, esi
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
shl edx, 8
bsr ecx, esi
shr edx, cl
shl ecx, 8
add eax, ebx
lea r9d, [rdx + rcx]
jmp 0x454a67
lea ebx, [rax + 0x600]
jmp 0x455a5a
mov r10d, dword [rdi]
mov ecx, 0x20
mov edx, esi
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
imul eax, r10d, 0x9e3779b1
shr eax, cl
lea rax, [r8 + rax*4]
mov r8d, 1
mov qword [rsp + 0xf8], rax
mov r12d, dword [rax]
mov eax, dword [rsp + 0x3c]
sub edx, eax
cmp esi, eax
mov eax, 0
mov ecx, eax
mov eax, esi
cmova ecx, edx
mov edx, r8d
mov dword [rsp + 0xb8], ecx
mov ecx, dword [r15 + 0xc0]
shl edx, cl
mov ecx, esi
sub ecx, r9d
sub eax, edx
cmp edx, ecx
mov edx, dword [r15 + 0x20]
mov ecx, r8d
cmovae eax, r9d
test edx, edx
cmove r9d, eax
mov eax, dword [rsp + 0x3c]
test r9d, r9d
cmovne ecx, r9d
and eax, esi
add eax, eax
mov dword [rsp + 0xc0], ecx
mov rcx, qword [rsp + 0x58]
shl rax, 2
lea rdx, [rcx + rax]
lea rax, [rcx + rax + 4]
mov ecx, dword [r15 + 0xcc]
mov qword [rsp + 0xa0], rax
lea eax, [rsi + 9]
shl r8d, cl
cmp r11b, 1
mov dword [rsp + 0xc8], eax
movzx r11d, r11b
sbb eax, eax
mov qword [rsp + 0xa8], rdx
add eax, 4
mov dword [rsp + 0x118], r8d
mov dword [rsp + 0xf0], eax
mov eax, esi
sub eax, ebx
mov dword [rsp + 0xe8], eax
mov ebx, eax
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + r11*4]
lea edx, [rax - 1]
cmp edx, ebx
jae 0x455b9c
mov edx, eax
mov rcx, rdi
sub rcx, rdx
cmp dword [rcx], r10d
jne 0x455b9c
mov ebx, esi
sub ebx, eax
cmp r9d, ebx
jbe 0x455ed8
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xd0]
mov rcx, qword [rsp + 0x88]
add eax, 1
mov eax, dword [rcx + rax*4]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x455be6
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x455be6
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x456937
mov eax, dword [rsp + 0xd0]
lea r10d, [rax + 2]
cmp dword [rsp + 0xf0], r10d
jbe 0x455cea
cmp r10d, 3
je 0x45724c
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 8]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x455c3d
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x455c3d
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x456fde
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xf0], eax
jbe 0x455cea
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
lea edx, [rax - 1]
sub eax, 2
cmp eax, dword [rsp + 0xe8]
jae 0x455cea
mov eax, edx
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rax
cmp dword [rcx], r11d
jne 0x455cea
mov ecx, esi
sub ecx, edx
cmp ecx, r9d
jb 0x455cea
mov rcx, rdi
mov r8, qword [rsp + 0x40]
sub rcx, rax
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
call fcn.00450860
lea edx, [rax + 4]
cmp rdx, qword [rsp + 0x60]
jbe 0x455cea
mov r10, qword [rsp + 0x48]
mov ecx, ebx
add ebx, 1
lea r8, [r10 + rcx*8]
mov ecx, 3
sub ecx, dword [rsp + 0xd0]
mov dword [r8], ecx
lea rcx, [rdi + rdx]
mov dword [r8 + 4], edx
cmp qword [rsp + 0x40], rcx
je 0x4564e9
cmp edx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rdx
mov rax, qword [rsp + 0xf8]
mov dword [rax], esi
mov eax, dword [rsp + 0x118]
lea r11d, [rax - 1]
test eax, eax
je 0x4564bf
cmp r12d, dword [rsp + 0xc0]
jb 0x4564bf
mov rax, qword [rsp + 0x40]
xor r10d, r10d
xor ecx, ecx
mov dword [rsp + 0xd0], r13d
mov qword [rsp + 0x260], r15
mov r13, r10
mov r15d, dword [rsp + 0xc8]
lea rdx, [rax - 7]
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], rdx
lea rdx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xf0], rax
lea eax, [rsi + 2]
mov rsi, rcx
mov qword [rsp + 0xe8], rdx
mov dword [rsp + 0xf8], eax
jmp 0x455e46
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x45665c
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [rdi + rcx]
cmp rcx, qword [rsp + 0x60]
jbe 0x455df1
mov r9d, r15d
lea r8d, [r12 + rcx]
mov r14, qword [rsp + 0x48]
sub r9d, r12d
cmp rcx, r9
mov r9d, dword [rsp + 0xf8]
cmova r15d, r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
sub r9d, r12d
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x45649f
cmp qword [rsp + 0x40], rax
je 0x45649f
mov qword [rsp + 0x60], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x456630
mov rax, qword [rsp + 0xa8]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456dc5
lea rax, [r10 + 4]
mov r12d, dword [r10 + 4]
mov rsi, rcx
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0xc0], r12d
setbe dl
test r11d, r11d
setne al
sub r11d, 1
test dl, al
je 0x45649f
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x58]
mov edx, r12d
and eax, r12d
add eax, eax
cmp r13, rsi
lea r10, [rcx + rax*4]
mov rcx, rsi
cmovbe rcx, r13
add rdx, rbp
lea r9, [rdx + rcx]
lea r8, [rdi + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x455d78
mov rax, r8
cmp rax, qword [rsp + 0xe8]
jae 0x455e9b
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x455e9b
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xf0]
jae 0x455eb7
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x455eb7
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x455ed0
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x455d94
mov r8, qword [rsp + 0x40]
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ebx, [rax + 4]
cmp qword [rsp + 0x78], rbx
mov qword [rsp + 0x60], rbx
mov rax, rbx
jae 0x455b9c
mov rcx, qword [rsp + 0x48]
lea rdx, [rdi + rbx]
mov dword [rcx], 0
mov dword [rcx + 4], ebx
cmp r8, rdx
je 0x45514d
mov ebx, 1
cmp eax, dword [rsp + 0x80]
jbe 0x455ba8
jmp 0x45514d
movabs rdx, 0xcf1bbcdcbb000000
imul rdx, qword [rdi]
mov ecx, 0x40
mov r10d, dword [rsp + 0x3c]
sub ecx, r9d
mov r9d, dword [r15 + 0x1c]
shr rdx, cl
lea rcx, [r8 + rdx*4]
mov edx, 0
mov r8d, esi
mov qword [rsp + 0xf8], rcx
mov r12d, dword [rcx]
mov ecx, esi
sub ecx, r10d
cmp esi, r10d
cmova edx, ecx
mov ecx, dword [r15 + 0xc0]
sub r8d, r9d
mov dword [rsp + 0xb8], edx
mov edx, eax
shl edx, cl
mov ecx, edx
mov edx, esi
sub edx, ecx
cmp ecx, r8d
mov r8d, dword [r15 + 0x20]
mov ecx, eax
cmovae edx, r9d
test r8d, r8d
cmove r9d, edx
mov edx, r10d
test r9d, r9d
cmovne ecx, r9d
and edx, esi
add edx, edx
mov dword [rsp + 0xc0], ecx
mov rcx, qword [rsp + 0x58]
shl rdx, 2
lea r10, [rcx + rdx]
lea rdx, [rcx + rdx + 4]
lea ecx, [rsi + 9]
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xc8], ecx
mov ecx, dword [r15 + 0xcc]
mov qword [rsp + 0xa8], r10
shl eax, cl
cmp r11b, 1
movzx r11d, r11b
mov dword [rsp + 0x118], eax
sbb eax, eax
add eax, 4
mov dword [rsp + 0xf0], eax
mov eax, esi
sub eax, ebx
mov dword [rsp + 0xe8], eax
mov ebx, eax
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + r11*4]
lea edx, [rax - 1]
cmp edx, ebx
jae 0x45605b
mov edx, eax
mov rcx, rdi
mov ebx, dword [rdi]
sub rcx, rdx
cmp dword [rcx], ebx
jne 0x45605b
mov ebx, esi
sub ebx, eax
cmp r9d, ebx
jbe 0x456397
mov rax, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xd0]
mov rdx, qword [rsp + 0x88]
add eax, 1
mov eax, dword [rdx + rax*4]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x4560a5
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x4560a5
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x456a4d
mov eax, dword [rsp + 0xd0]
lea r10d, [rax + 2]
cmp dword [rsp + 0xf0], r10d
jbe 0x4561a9
cmp r10d, 3
je 0x457200
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 8]
lea edx, [rax - 1]
cmp edx, dword [rsp + 0xe8]
jae 0x4560fc
mov edx, eax
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rdx
cmp dword [rcx], r11d
jne 0x4560fc
mov ecx, esi
sub ecx, eax
cmp r9d, ecx
jbe 0x4570a5
xor eax, eax
cmp r10d, 2
setne al
add eax, 3
cmp dword [rsp + 0xf0], eax
jbe 0x4561a9
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
lea edx, [rax - 1]
sub eax, 2
cmp eax, dword [rsp + 0xe8]
jae 0x4561a9
mov eax, edx
mov rcx, rdi
mov r11d, dword [rdi]
sub rcx, rax
cmp dword [rcx], r11d
jne 0x4561a9
mov ecx, esi
sub ecx, edx
cmp ecx, r9d
jb 0x4561a9
mov rcx, rdi
mov r8, qword [rsp + 0x40]
sub rcx, rax
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
call fcn.00450860
lea edx, [rax + 4]
cmp rdx, qword [rsp + 0x60]
jbe 0x4561a9
mov r10, qword [rsp + 0x48]
mov ecx, ebx
add ebx, 1
lea r8, [r10 + rcx*8]
mov ecx, 3
sub ecx, dword [rsp + 0xd0]
mov dword [r8], ecx
lea rcx, [rdi + rdx]
mov dword [r8 + 4], edx
cmp qword [rsp + 0x40], rcx
je 0x4564e9
cmp edx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rdx
mov rax, qword [rsp + 0xf8]
mov dword [rax], esi
mov eax, dword [rsp + 0x118]
lea r11d, [rax - 1]
test eax, eax
je 0x4564bf
cmp r12d, dword [rsp + 0xc0]
jb 0x4564bf
mov rax, qword [rsp + 0x40]
xor r10d, r10d
xor ecx, ecx
mov dword [rsp + 0xd0], r13d
mov qword [rsp + 0x260], r15
mov r13, rcx
mov r15d, dword [rsp + 0xc8]
lea rdx, [rax - 7]
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], rdx
lea rdx, [rax - 3]
sub rax, 1
mov qword [rsp + 0xf0], rax
lea eax, [rsi + 2]
mov rsi, r10
mov qword [rsp + 0xe8], rdx
mov dword [rsp + 0xf8], eax
jmp 0x456305
mov rax, qword [r9]
mov r14, qword [r8]
cmp rax, r14
je 0x456445
xor rax, r14
tzcnt rax, rax
sar eax, 3
cdqe
add rcx, rax
lea rax, [rdi + rcx]
cmp rcx, qword [rsp + 0x60]
jbe 0x4562b0
mov r9d, r15d
lea r8d, [r12 + rcx]
mov r14, qword [rsp + 0x48]
sub r9d, r12d
cmp rcx, r9
mov r9d, dword [rsp + 0xf8]
cmova r15d, r8d
mov r8d, ebx
add ebx, 1
lea r8, [r14 + r8*8]
sub r9d, r12d
mov dword [r8], r9d
mov dword [r8 + 4], ecx
cmp rcx, 0x1000
ja 0x45649f
cmp qword [rsp + 0x40], rax
je 0x45649f
mov qword [rsp + 0x60], rcx
movzx eax, byte [rax]
cmp byte [rdx + rcx], al
jae 0x456419
mov rax, qword [rsp + 0xa8]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456dc5
lea rax, [r10 + 4]
mov r12d, dword [r10 + 4]
mov r13, rcx
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0xc0], r12d
setbe dl
test r11d, r11d
setne al
sub r11d, 1
test dl, al
je 0x45649f
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x58]
mov edx, r12d
and eax, r12d
add eax, eax
cmp r13, rsi
lea r10, [rcx + rax*4]
mov rcx, rsi
cmovbe rcx, r13
add rdx, rbp
lea r9, [rdx + rcx]
lea r8, [rdi + rcx]
cmp r8, qword [rsp + 0x80]
jb 0x456237
mov rax, r8
cmp rax, qword [rsp + 0xe8]
jae 0x45635a
mov r14d, dword [rax]
cmp dword [r9], r14d
jne 0x45635a
add rax, 4
add r9, 4
cmp rax, qword [rsp + 0xf0]
jae 0x456376
movzx r14d, word [rax]
cmp word [r9], r14w
jne 0x456376
add rax, 2
add r9, 2
cmp qword [rsp + 0x40], rax
jbe 0x45638f
movzx r14d, byte [rax]
cmp byte [r9], r14b
sete r9b
movzx r9d, r9b
add rax, r9
sub rax, r8
jmp 0x456253
mov r8, qword [rsp + 0x40]
lea rdx, [rcx + 4]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ebx, [rax + 4]
cmp rbx, qword [rsp + 0x78]
mov qword [rsp + 0x60], rbx
mov rax, rbx
jbe 0x45605b
mov rcx, qword [rsp + 0x48]
lea rdx, [rdi + rbx]
mov dword [rcx], 0
mov dword [rcx + 4], ebx
cmp r8, rdx
je 0x45514d
mov ebx, 1
cmp eax, dword [rsp + 0x80]
jbe 0x456067
jmp 0x45514d
mov r8d, dword [rcx + 0x14]
lea rdx, [rsp + 0x144]
jmp 0x4551e2
mov rax, qword [rsp + 0xa0]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456d90
mov qword [rsp + 0xa0], r10
mov r12d, dword [r10]
mov rsi, rcx
jmp 0x4562e8
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x456340
mov qword [rsp + 0x118], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xc8], rdx
cmp r14, rdx
je 0x456514
mov r9, rdx
mov rdx, qword [rsp + 0x118]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x456253
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0xa0]
mov dword [rax], 0
mov rax, qword [rsp + 0xa8]
mov dword [rax], 0
mov eax, dword [rsp + 0xc8]
sub eax, 8
mov dword [r15 + 0x24], eax
mov rax, qword [rsp + 0x168]
mov dword [rsp + 0x144], ebx
test rax, rax
je 0x4557ed
cmp rax, qword [rsp + 0x158]
ja 0x4557b5
jmp 0x4557ed
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x456463
mov rdx, qword [rsp + 0x118]
jmp 0x456340
mov rax, qword [rsp + 0xa8]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456ef3
mov qword [rsp + 0xa8], r10
mov r12d, dword [r10]
mov rsi, rcx
jmp 0x4555fa
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x455652
mov qword [rsp + 0x118], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xc8], rdx
cmp r14, rdx
je 0x4565c2
mov r9, rdx
mov rdx, qword [rsp + 0x118]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x455565
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x45658a
mov rdx, qword [rsp + 0x118]
jmp 0x455652
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0xa8]
mov dword [rax], 0
mov rax, qword [rsp + 0xa0]
mov dword [rax], 0
mov eax, dword [rsp + 0xc8]
sub eax, 8
mov dword [r15 + 0x24], eax
jmp 0x4564e9
mov rax, qword [rsp + 0xa0]
mov dword [rax], r12d
cmp dword [rsp + 0xb8], r12d
jae 0x456d90
mov qword [rsp + 0xa0], r10
mov r12d, dword [r10]
mov r13, rcx
jmp 0x455e29
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x455e81
mov qword [rsp + 0x118], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xc8], rdx
cmp r14, rdx
je 0x4566b2
mov r9, rdx
mov rdx, qword [rsp + 0x118]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x455d94
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x45667a
mov rdx, qword [rsp + 0x118]
jmp 0x455e81
mov rax, qword [rcx + 0x10]
lea rdx, [rsp + 0x144]
mov qword [rsp + 0x144], rax
mov eax, dword [rsp + 0x144]
mov r9d, dword [rsp + 0x148]
mov r8d, dword [r8 + 8]
jmp 0x4551e2
mov edx, r13d
lea rax, [rdx*8]
sub rax, rdx
lea rax, [r14 + rax*4]
mov edi, dword [rax]
mov ebx, dword [rax + 0x10]
mov esi, dword [rax + 8]
mov ebp, dword [rax + 4]
mov dword [rsp + 0x108], edi
mov edi, dword [rax + 0xc]
mov dword [rsp + 0x104], ebx
mov ebx, dword [rax + 0x14]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x90], edi
mov dword [rsp + 0x120], ebx
mov dword [rsp + 0x10c], eax
lea eax, [rsi + rdi]
cmp eax, r13d
jae 0x456819
sub r13d, eax
mov edx, r13d
lea rax, [rdx*8]
sub rax, rdx
lea edx, [r13 + 1]
lea rcx, [r14 + rax*4]
lea rax, [rdx*8]
mov r12, rdx
sub rax, rdx
lea r8, [rax*4]
jmp 0x45682b
mov esi, dword [rsp + 0x58]
jmp 0x454b97
mov edi, esi
jmp 0x45263d
mov eax, dword [rcx + 0x14]
jmp 0x4532e1
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
add rcx, 4
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp qword [rsp + 0x58], rcx
jae 0x452e88
mov r10, qword [rsp + 0x48]
mov eax, ebx
mov r11, qword [rsp + 0x50]
add ebx, 1
lea rax, [r10 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x452e88
mov rcx, r14
mov r8d, 0x1c
mov r12d, 1
xor r13d, r13d
lea rax, [rcx + 0x10]
test esi, esi
jne 0x457573
mov rdx, qword [rcx + 0x10]
mov eax, dword [rax + 8]
mov qword [rsp + 0x138], rdx
mov dword [rsp + 0x140], eax
jmp 0x4532f7
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
add rcx, 4
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp qword [rsp + 0x58], rcx
jae 0x4543b0
mov r10, qword [rsp + 0x48]
mov eax, ebx
mov r11, qword [rsp + 0x50]
add ebx, 1
lea rax, [r10 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp esi, ecx
jb 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x4543b0
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x4553b7
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x4553b7
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x455be6
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x455be6
mov rax, rdi
lea rcx, [rdi + 3]
mov qword [rsp + 0x128], r9
sub rax, r8
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0x124], r10d
lea rdx, [rax + 3]
call fcn.00450860
mov r9, qword [rsp + 0x128]
mov r10d, dword [rsp + 0x124]
lea ecx, [rax + 3]
cmp rcx, r9
mov qword [rsp + 0x60], rcx
jbe 0x454d8f
mov r11, qword [rsp + 0x48]
mov edx, ebx
add ebx, 1
lea rdx, [r11 + rdx*8]
mov dword [rdx], 1
mov dword [rdx + 4], ecx
lea rdx, [rdi + rcx]
cmp r8, rdx
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov eax, dword [rsp + 0xd0]
mov r9, rcx
lea r11d, [rax + 2]
cmp dword [rsp + 0xe8], r11d
jbe 0x454f03
cmp r11d, 3
jne 0x454db2
jmp 0x457221
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r9d
sub rax, rdx
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x4560a5
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x4560a5
mov rax, r11
mov rcx, r11
mov qword [rsp + 0xe8], r9
sub rax, r8
mov r8, qword [rsp + 0x40]
add rcx, 3
lea rdx, [rax + 3]
call fcn.00450860
mov r9, qword [rsp + 0xe8]
lea r11d, [rax + 3]
cmp r11, r9
jbe 0x4528a6
mov r10, qword [rsp + 0x48]
mov edx, ebx
mov rcx, qword [rsp + 0x50]
add ebx, 1
lea rdx, [r10 + rdx*8]
mov dword [rdx], 1
mov dword [rdx + 4], r11d
lea rdx, [rcx + r11]
cmp r8, rdx
je 0x453c03
cmp r11d, esi
ja 0x453c03
mov eax, dword [rsp + 0x60]
mov r9, r11
lea r10d, [rax + 2]
cmp dword [rsp + 0x80], r10d
ja 0x4528bc
jmp 0x452ad0
mov rax, r11
mov rcx, r11
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xe8], r9d
sub rax, rdx
add rcx, 4
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0xe8]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x453e68
mov r10, qword [rsp + 0x48]
mov eax, ebx
mov r11, qword [rsp + 0x50]
add ebx, 1
lea rax, [r10 + rax*8]
mov dword [rax], 1
mov dword [rax + 4], ecx
lea rax, [r11 + rcx]
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x453e68
mov rax, qword [rsp + 0xb8]
mov dword [rax], r12d
cmp dword [rsp + 0xc8], r12d
jae 0x45740c
mov qword [rsp + 0xb8], r10
mov r12d, dword [r10]
mov r13, r9
jmp 0x455042
mov rax, qword [rsp + 0x70]
mov dword [rax], ebp
cmp dword [rsp + 0xd0], ebp
jae 0x4574dc
mov qword [rsp + 0x70], r10
mov ebp, dword [r10]
mov r12, rcx
jmp 0x452c0c
lea rax, [rcx + 8]
add r8, 8
cmp rax, qword [rsp + 0x80]
jae 0x45509a
mov qword [rsp + 0x118], rdx
mov rdx, qword [rax]
mov r14, qword [r8]
mov qword [rsp + 0xc0], rdx
cmp r14, rdx
je 0x456cbc
mov r8, rdx
mov rdx, qword [rsp + 0x118]
xor r8, r14
tzcnt r8, r8
sar r8d, 3
movsxd r8, r8d
add rax, r8
sub rax, rcx
jmp 0x454fad
lea rax, [r8 + 8]
add r9, 8
cmp rax, qword [rsp + 0x80]
jae 0x452c5d
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rax]
mov r14, qword [r9]
mov qword [rsp + 0xe0], rdx
cmp r14, rdx
je 0x456ce0
mov r9, rdx
mov rdx, qword [rsp + 0xe8]
xor r9, r14
tzcnt r9, r9
sar r9d, 3
movsxd r9, r9d
add rax, r9
sub rax, r8
jmp 0x452b72
add rax, 8
add r8, 8
cmp rax, qword [rsp + 0x80]
jb 0x456c2e
mov rdx, qword [rsp + 0x118]
jmp 0x45509a
add rax, 8
add r9, 8
cmp rax, qword [rsp + 0x80]
jb 0x456c84
mov rdx, qword [rsp + 0xe8]
jmp 0x452c5d
mov dword [rsp + 0xc0], r15d
mov r14, qword [rsp + 0x88]
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0xb8]
mov dword [rax], 0
mov rax, qword [rsp + 0xa8]
mov dword [rax], 0
mov eax, dword [rsp + 0xc0]
sub eax, 8
mov dword [r15 + 0x24], eax
jmp 0x4564e9
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov rax, qword [rsp + 0x70]
mov dword [rax], 0
mov rax, qword [rsp + 0x68]
mov dword [rax], 0
mov eax, dword [rsp + 0x88]
sub eax, 8
mov dword [r15 + 0x24], eax
jmp 0x453c03
mov edi, r12d
jmp 0x453860
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xa0], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x4564bf
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xa8], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x4564bf
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x68], rax
jmp 0x453bdf
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x70], rax
jmp 0x453bdf
mov rax, rdi
lea rcx, [rdi + 3]
mov qword [rsp + 0x128], r9
sub rax, r8
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0x124], r11d
lea rdx, [rax + 3]
mov dword [rsp + 0x88], r10d
call fcn.00450860
mov r9, qword [rsp + 0x128]
mov r10d, dword [rsp + 0x88]
add eax, 3
mov r11d, dword [rsp + 0x124]
cmp r9, rax
mov qword [rsp + 0x60], rax
mov rdx, rax
jae 0x454ded
mov r9, qword [rsp + 0x48]
mov eax, ebx
mov ecx, r11d
add ebx, 1
sub ecx, dword [rsp + 0xd0]
lea rax, [r9 + rax*8]
mov dword [rax], ecx
mov dword [rax + 4], edx
mov rax, rdx
add rax, rdi
cmp qword [rsp + 0x40], rax
je 0x4564e9
cmp edx, dword [rsp + 0x80]
ja 0x4564e9
xor eax, eax
cmp r11d, 2
setne al
add eax, 3
cmp dword [rsp + 0xe8], eax
ja 0x454e0b
jmp 0x454f03
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xa8], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x456601
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc8], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xa0], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x456601
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r10d
sub rax, rdx
mov dword [rsp + 0x88], r9d
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x88]
mov r10d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x45540e
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x45540e
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r10d
sub rax, rdx
mov dword [rsp + 0x88], r9d
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x88]
mov r10d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x455c3d
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x455c3d
xor eax, eax
cmp r10d, 2
mov r11, r9
setne al
add eax, 3
cmp dword [rsp + 0x80], eax
ja 0x4529b1
jmp 0x452a61
mov qword [rsp + 0x150], 0
pxor xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
movups xmmword [rsp + 0x168], xmm0
jmp 0x452519
mov rax, rdi
mov r8, qword [rsp + 0x40]
lea rcx, [rdi + 4]
mov dword [rsp + 0x124], r10d
sub rax, rdx
mov dword [rsp + 0x88], r9d
lea rdx, [rax + 4]
call fcn.00450860
mov r9d, dword [rsp + 0x88]
mov r10d, dword [rsp + 0x124]
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x60]
jbe 0x4560fc
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 2
mov dword [rax + 4], ecx
lea rax, [rdi + rcx]
cmp r8, rax
je 0x4564e9
cmp ecx, dword [rsp + 0x80]
ja 0x4564e9
mov qword [rsp + 0x60], rcx
jmp 0x4560fc
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x144], rax
mov eax, dword [r10 + 8]
mov edx, dword [rsp + 0x144]
mov r9d, dword [rsp + 0x148]
mov dword [rsp + 0x14c], eax
jmp 0x4532e1
mov ebp, dword [rax]
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + 8]
test edx, edx
jne 0x457166
mov eax, dword [rax + 0xc]
sub dword [rsp + 0x68], eax
mov edi, dword [rsp + 0x68]
cmp edi, 0x1000
jbe 0x457544
mov rcx, r14
mov dword [rsp + 0x68], 0
mov r8d, 0x1c
mov r12d, 1
mov r13d, dword [rsp + 0x68]
jmp 0x45682b
mov r9d, dword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
lea rdx, [rdi + rax]
add r9d, 2
mov dword [rbx + 4], eax
mov dword [rbx], r9d
cmp r8, rdx
je 0x4571d1
mov edx, dword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov ebx, 1
cmp rax, rdx
jbe 0x454f03
mov rax, qword [rsp + 0x168]
add esi, 1
mov dword [rsp + 0x144], 1
mov dword [r15 + 0x24], esi
test rax, rax
jne 0x455165
jmp 0x455173
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x88], eax
sub eax, 1
jmp 0x4560d3
mov qword [rsp + 0x60], r9
jmp 0x454eaa
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x60], eax
sub eax, 1
jmp 0x454dbd
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x88], eax
sub eax, 1
jmp 0x4553e5
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x88], eax
sub eax, 1
jmp 0x455c14
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0xa8]
mov rdx, rcx
mov r10d, dword [rcx]
sub rdx, rax
cmp dword [rdx], r10d
jne 0x453f6a
mov edx, edi
sub edx, eax
cmp edx, r9d
jb 0x453f6a
mov rdx, rcx
mov r8, qword [rsp + 0x40]
add rcx, 4
sub rdx, rax
lea rdx, [rdx + 4]
call fcn.00450860
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x453f6a
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 3
mov dword [rax + 4], ecx
mov rax, qword [rsp + 0x50]
add rax, rcx
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x453f6a
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0xa8]
mov rdx, rcx
mov r10d, dword [rcx]
sub rdx, rax
cmp dword [rdx], r10d
jne 0x452f8a
mov edx, edi
sub edx, eax
cmp edx, r9d
jb 0x452f8a
mov rdx, rcx
mov r8, qword [rsp + 0x40]
add rcx, 4
sub rdx, rax
lea rdx, [rdx + 4]
call fcn.00450860
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x452f8a
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 3
mov dword [rax + 4], ecx
mov rax, qword [rsp + 0x50]
add rax, rcx
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x452f8a
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0xa8]
mov rdx, rcx
mov r10d, dword [rcx]
sub rdx, rax
cmp dword [rdx], r10d
jne 0x4544b2
mov edx, edi
sub edx, eax
cmp edx, r9d
jb 0x4544b2
mov rdx, rcx
mov r8, qword [rsp + 0x40]
add rcx, 4
sub rdx, rax
lea rdx, [rdx + 4]
call fcn.00450860
lea ecx, [rax + 4]
cmp rcx, qword [rsp + 0x58]
jbe 0x4544b2
mov r11, qword [rsp + 0x48]
mov eax, ebx
add ebx, 1
lea rax, [r11 + rax*8]
mov dword [rax], 3
mov dword [rax + 4], ecx
mov rax, qword [rsp + 0x50]
add rax, rcx
cmp r8, rax
je 0x453c03
cmp ecx, esi
ja 0x453c03
mov qword [rsp + 0x58], rcx
jmp 0x4544b2
mov r11, r9
jmp 0x452a61
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc0], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xb8], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x456d20
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x68], rax
jmp 0x456d5f
lea rax, [rsp + 0x144]
mov dword [rsp + 0xc0], r15d
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0xa8], rax
mov r13d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x260]
jmp 0x456d20
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x70], rax
jmp 0x45473b
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x68], rax
jmp 0x45473b
lea rax, [rsp + 0x144]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x260]
mov qword [rsp + 0x70], rax
jmp 0x456d5f
xor esi, esi
jmp 0x454961
mov r9d, dword [rsp + 0xa0]
mov rbx, qword [rsp + 0x48]
lea rdx, [rcx + rax]
add r9d, 2
mov dword [rbx + 4], eax
mov dword [rbx], r9d
cmp r8, rdx
je 0x457538
mov esi, esi
mov r11, rax
mov ebx, 1
cmp rax, rsi
jbe 0x452ad0
add edi, 1
mov dword [r15 + 0x24], edi
jmp 0x45281c
mov edx, edi
lea rax, [rdx*8]
sub rax, rdx
lea edx, [rdi + 1]
lea rcx, [r14 + rax*4]
lea rax, [rdx*8]
mov r12, rdx
sub rax, rdx
lea r8, [rax*4]
jmp 0x45718d
xor eax, eax
cmp dword [rsp + 0x90], 0
sete al
mov dword [rsp + 0x60], eax
jmp 0x4532ce
mov eax, dword [r14]
mov ebp, dword [r14 + 4]
mov rcx, r14
mov r8d, 0x1c
mov r12d, 1
mov dword [rsp + 0x108], eax
mov eax, dword [r14 + 0xc]
mov dword [rsp + 0x90], eax
mov eax, dword [r14 + 0x10]
mov dword [rsp + 0x104], eax
mov eax, dword [r14 + 0x14]
mov dword [rsp + 0x120], eax
mov eax, dword [r14 + 0x18]
mov dword [rsp + 0x10c], eax
jmp 0x45682b