Function at 0x20214f80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x248
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1b0], xmm6
mov qword [rbp + 0x1a8], 0xfffffffffffffffe
mov r12, r9
mov rsi, r8
mov qword [rbp + 0x1a0], rdx
mov dword [rbp + 0x18c], ecx
mov eax, ecx
and eax, 0xf
cmp eax, 7
jae 0x20215029
cmp eax, 3
jae 0x20215100
test eax, eax
je 0x202152ab
cmp eax, 2
jne 0x2021539a
lea rdi, [rbp - 0x20]
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
mov rsi, qword [rbp + 0x230]
mov rcx, rsi
call fcn.20078e20
cmp rax, 0xf
jbe 0x202157b6
lea rcx, [rbp - 0x38]
mov rdx, rax
mov r9, rsi
call fcn.2006bd40
jmp 0x20216ed6
cmp eax, 9
jbe 0x202151b4
cmp eax, 0xb
jbe 0x20215288
cmp eax, 0xc
jne 0x20215489
nop
mov rdi, qword [0x205ec308]
mov rax, qword [rbp + 0x240]
add rdi, qword [rax]
mov r10, qword [rax + 8]
mov rcx, qword [rax + 0x10]
sub r10, rdi
sar r10, 3
movabs rax, 0xcccccccccccccccd
imul r10, rax
inc r10
sub rcx, rdi
sar rcx, 3
imul rcx, rax
mov r8, rcx
shr r8, 1
movabs rax, 0x666666666666666
mov rdx, rax
sub rdx, r8
add r8, rcx
cmp r8, r10
mov r9, r10
mov qword [rbp + 0x110], r10
cmovbe r8, r10
cmp rcx, rdx
cmova r8, rax
cmp r8, rax
nop
mov qword [rbp + 0x170], r8
ja 0x2021704a
mov rdx, r8
lea rcx, [r8*8]
lea rcx, [rcx + rcx*4]
cmp r8, 0x67
jb 0x202158ae
cmp rdx, rax
je 0x2021708c
add rcx, 0x27
call fcn.200782b0
lea r12, [rax + 0x27]
and r12, 0xffffffffffffffe0
mov qword [r12 - 8], rax
jmp 0x2021636b
add eax, 0xfffffffd
lea rcx, [0x2047a8e8]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
nop
mov edi, dword [0x20596f94]
mov rcx, qword [rbp + 0x1a0]
call fcn.20078e20
mov rbx, rax
mov r8, qword [rbp + 0x248]
mov rax, qword [r8]
movsxd rcx, dword [rax + 4]
mov r12, qword [r8 + rcx + 0x28]
mov rcx, r12
sub rcx, rbx
xor edx, edx
test r12, r12
mov r9d, 0
cmovg r9, rcx
cmp byte [0x205ec311], 0
cmovne r9, rcx
sub r12, rbx
cmovle r9, rdx
mov qword [rbp + 0x190], r9
mov qword [rbp + 0x158], r8
movsxd rax, dword [rax + 4]
mov rcx, qword [r8 + rax + 0x48]
test rcx, rcx
je 0x2021518d
nop
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x200c66ec.0]
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
cmp dword [rdx + rax + 0x10], 0
je 0x2021592d
nop
mov byte [rbp + 0x160], 0
jmp 0x20216204
cmp eax, 7
je 0x2021536d
cmp eax, 9
jne 0x202153db
lea rdi, [rbp - 0x38]
mov rcx, rdi
mov edx, 1
call fcn.20115cf0
mov eax, esi
mov rsi, rdi
nop
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov r9d, 0xa17d4520
call fcn.20217e50
lea rcx, [rbp - 0x30]
lea rdi, [rbp + 0xf0]
mov rdx, rdi
call fcn.200a77b0
nop
mov qword [rbp + 0x198], rsi
xorps xmm0, xmm0
movups xmmword [rbp + 0x138], xmm0
mov rbx, qword [rbp + 0x100]
mov r15, qword [rbp + 0x108]
cmp r15, 0x10
jb 0x20215232
mov rdi, qword [rbp + 0xf0]
lea rsi, [rbp + 0x128]
cmp rbx, 0x10
jae 0x2021586d
mov r9d, 0x10
mov rcx, rsi
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
mov qword [rbp + 0x138], rbx
lea r14, [rbp + 0x140]
mov qword [rbp + 0x140], 0xf
lea rax, [0x2046cec8]
mov qword [rbp + 0x120], rax
mov r9, rsi
jmp 0x20215a8b
cmp eax, 0xa
jne 0x202155ea
test rsi, rsi
je 0x202152a1
nop
cmp qword [rsi], 0
je 0x202161c2
mov esi, 2
jmp 0x202172d5
nop
mov rcx, qword [rbp + 0x248]
mov rdi, qword [rcx]
mov r10, qword [rcx + 8]
sub r10, rdi
sar r10, 3
movabs rax, 0xcccccccccccccccd
imul r10, rax
inc r10
mov rcx, qword [rcx + 0x10]
sub rcx, rdi
sar rcx, 3
imul rcx, rax
mov r8, rcx
shr r8, 1
movabs rax, 0x666666666666666
mov rdx, rax
sub rdx, r8
add r8, rcx
cmp r8, r10
mov r9, r10
mov qword [rbp + 0x178], r10
cmovbe r8, r10
cmp rcx, rdx
cmova r8, rax
cmp r8, rax
nop
mov qword [rbp + 0x110], r8
ja 0x20217045
lea rcx, [r8 + r8*4]
mov rdx, r8
mov qword [rbp + 0x180], rcx
lea rcx, [rcx*8]
add rcx, qword [0x205ec308]
cmp r8, 0x67
jb 0x20215809
cmp rdx, rax
je 0x20217087
add rcx, 0x27
call fcn.200782b0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x20215c80
mov eax, 0xffffffff
mov rcx, qword [rbp + 0x1a0]
test byte [rcx + 0x70], 2
jne 0x20216f99
mov rcx, qword [rbp + 0x240]
cmp ecx, 0xffffffff
jne 0x2021596a
xor eax, eax
jmp 0x20216f99
cmp qword [rbp + 0x248], 0
js 0x20215d00
nop
mov rdi, qword [rsi + 0x18]
mov rax, rdi
shr rax, 1
movabs rbx, 0x7fffffffffffffff
mov rcx, rax
xor rcx, rbx
cmp rcx, rdi
jae 0x2021581f
movabs rcx, 0x8000000000000000
jmp 0x20215853
nop
mov rax, qword [rbp + 0x230]
test rax, rax
lea rdi, [0x2046d7dc]
cmovne rdi, rax
lea r14, [r12 + 8]
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0xf
mov byte [r12 + 8], 0
mov rcx, rdi
call fcn.20078e20
mov rbx, rax
xor ecx, ecx
cmp rax, 0xf
jbe 0x202157e5
xor eax, eax
mov qword [rbp + 0x198], rax
xor eax, eax
mov qword [rbp + 0x178], rax
xor r15d, r15d
xor esi, esi
xor eax, eax
mov qword [rbp + 0x190], rax
xor eax, eax
mov qword [rbp + 0x180], rax
jmp 0x2021697e
nop
mov r14, qword [rsi + 8]
cmp r14, qword [rsi + 0x10]
je 0x202158fd
xorps xmm0, xmm0
movups xmmword [r14 + 0x18], xmm0
mov rax, qword [rbp + 0x240]
mov r12, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x20215bb1
mov r15, qword [rax + 8]
jmp 0x20215bb5
nop
mov rcx, qword [rbp + 0x240]
mov r15, qword [rcx + 0x10]
movabs rax, 0x7fffffffffffffff
xor rax, r15
cmp rax, rsi
jb 0x2021704f
lea r14, [rcx + 0x10]
test byte [rbp + 0x18c], 0x10
jne 0x20215613
nop
mov rax, qword [rbp + 0x240]
lea rcx, [rax + 0x18]
mov qword [rbp + 0x190], rcx
add rsi, r15
mov rdi, qword [rax + 0x18]
js 0x20215c41
mov rax, rdi
shr rax, 1
movabs r8, 0x7fffffffffffffff
mov rcx, rax
mov rdx, r8
mov qword [rbp + 0x198], r8
xor rcx, r8
cmp rcx, rdi
jae 0x20215c72
mov qword [rbp + 0x178], r14
mov qword [rbp + 0x180], rdi
movabs rcx, 0x8000000000000000
xor ebx, ebx
xor eax, eax
xor r14d, r14d
xor edi, edi
xor r12d, r12d
jmp 0x20216a35
nop
mov rsi, qword [rbp + 0x248]
mov rcx, rsi
call fcn.20078ed0
lea rax, [rsi + 8]
mov qword [rsi + 8], 0
mov byte [rsi + 0x10], 0
lea r8, [rsi + 0x18]
mov qword [rsi + 0x18], 0
mov byte [rsi + 0x20], 0
lea rcx, [rsi + 0x28]
mov qword [rsi + 0x28], 0
mov word [rsi + 0x30], 0
lea r9, [rsi + 0x38]
mov qword [rsi + 0x38], 0
mov word [rsi + 0x40], 0
lea r11, [rsi + 0x48]
mov qword [rsi + 0x48], 0
mov byte [rsi + 0x50], 0
lea r10, [rsi + 0x58]
mov qword [rsi + 0x58], 0
mov byte [rsi + 0x60], 0
mov rdx, qword [rbp + 0x1a0]
test rdx, rdx
je 0x20217054
nop
mov qword [rbp + 0xe8], r10
mov qword [rbp + 0xe0], r11
mov qword [rbp + 0xd8], r9
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xc8], r8
mov qword [rbp + 0xc0], rax
mov rcx, rsi
call fcn.200783d0
jmp 0x202172d5
cmp qword [rbp + 0x240], 0
je 0x20215923
lea r14, [rbp + 0x120]
mov r15, qword [rbp + 0x230]
test byte [rbp + 0x18c], 0x10
je 0x202154bc
mov esi, 4
mov rax, qword [rbp + 0x240]
cmp qword [rax], 0
jne 0x202172d5
lea r15, [rbp + 0xf0]
lea rsi, [rbp + 0x120]
lea rax, [rbp - 0x38]
lea rbx, [rbp + 0x158]
lea rcx, [rbp + 0x120]
mov rdx, qword [rbp + 0x230]
mov r14, rdx
mov r10, rdx
mov r13, r15
mov r12, r15
test byte [rbp + 0x18c], 0x20
jne 0x20216e37
mov ecx, 0x30
call fcn.200782b0
mov rcx, rax
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x20216cb9
nop
mov rax, qword [rdx + 0x28]
add rdx, 0x30
test rax, rax
cmovne rdx, rax
nop
mov qword [rbp + 0x1a0], rcx
jmp 0x20216cfd
nop
mov rdi, qword [r12 + 0x10]
movabs r14, 0x7fffffffffffffff
mov rax, rdi
xor rax, r14
mov r13, qword [rbp + 0x230]
cmp rax, r13
jb 0x20217082
add r13, rdi
mov r15, qword [r12 + 0x18]
movabs rcx, 0x8000000000000000
js 0x20215721
mov rax, r15
shr rax, 1
mov rdx, rax
xor rdx, r14
cmp rdx, r15
jb 0x20215721
mov rcx, r13
or rcx, 0xf
add rax, r15
cmp rcx, rax
mov r14, rax
cmova r14, rcx
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x20216bfa
cmp rcx, 0xffffffffffffffd9
jae 0x20217188
add rcx, 0x27
call fcn.200782b0
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
nop
mov qword [r12 + 0x10], r13
mov qword [r12 + 0x18], r14
cmp r15, 0x10
jb 0x202158c4
nop
mov r14, qword [r12]
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, r14
mov r9, rdi
call fcn.2021b0c0
add rdi, rbx
mov rcx, rdi
mov rdx, qword [rbp + 0x248]
mov r8, rsi
call fcn.2044a690
mov byte [rsi + rdi], 0
lea rdx, [r15 + 1]
cmp rdx, 0x1000
jb 0x202157a9
nop
mov rax, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rax
cmp r14, 0x20
jae 0x202171ab
add r15, 0x28
mov rdx, r15
mov r14, rax
mov rcx, r14
call fcn.20078f20
jmp 0x202158f0
lea rcx, [rbp - 0x28]
lea r13, [rbp + 0x158]
lea rsi, [rbp - 0x38]
lea r12, [rbp + 0x120]
mov r14, rax
test byte [rbp + 0x18c], 0x40
jne 0x20216eb2
add r14, 0x27
jmp 0x20216f6c
nop
mov qword [r12 + 0x18], rbx
mov rcx, rbx
mov edx, 0x40a7ebcf
mov r8, r14
mov r9, rdi
call fcn.2021b0c0
mov byte [r12 + rbx + 8], 0
jmp 0x20216b3f
test rdx, rdx
je 0x20215c7e
call fcn.200782b0
mov rcx, rax
jmp 0x20215c80
nop
mov rcx, qword [rbp + 0x248]
or rcx, 0xf
add rax, rdi
cmp rcx, rax
mov rbx, rax
cmova rbx, rcx
lea rcx, [rbx + 1]
cmp rbx, 0xfff
jb 0x202159c0
cmp rbx, 0xffffffffffffffd8
jae 0x20217091
add rcx, 0x27
call fcn.200782b0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x202159c8
mov rax, rbx
or rax, 0xf
movabs r13, 0x7fffffffffffffff
cmp rax, r13
cmovb r13, rax
cmp rax, 0xfff
jb 0x20215a3c
lea rcx, [r13 + 0x28]
call fcn.200782b0
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x20215a48
test rdx, rdx
je 0x20216368
call fcn.200782b0
mov r12, rax
jmp 0x2021636b
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, r12
mov r9, rdi
call fcn.2021b0c0
add rdi, rbx
mov rcx, rdi
mov rdx, qword [rbp + 0x248]
mov r8, rsi
call fcn.2044a690
mov byte [rsi + rdi], 0
nop
mov qword [r12], rbx
mov rsi, r12
jmp 0x202172d5
nop
mov qword [rsp + 0x30], rsi
mov rax, qword [rbp + 0x240]
mov qword [rsp + 0x28], rax
mov ecx, 0x158ab46c
mov r8, r14
call fcn.20214f80
xor esi, esi
jmp 0x202172d5
mov esi, 4
jmp 0x202172d5
nop
mov rcx, qword [rdx + rax + 0x50]
test rcx, rcx
je 0x202161fc
cmp rcx, rdx
je 0x202161fc
call fcn.200a4650
nop
mov rcx, qword [rbp + 0x248]
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
cmp dword [rcx + rax + 0x10], 0
sete byte [rbp + 0x160]
jmp 0x20216204
nop
mov rdx, qword [rbp + 0x1a0]
mov rcx, qword [rdx + 0x40]
mov r8, qword [rdx + 0x58]
mov rcx, qword [rcx]
mov edx, dword [r8]
test rcx, rcx
je 0x202168bb
test edx, edx
jle 0x202168bb
dec edx
mov dword [r8], edx
mov r9, qword [rbp + 0x1a0]
mov rax, qword [r9 + 0x40]
mov rdx, qword [rax]
lea r8, [rdx + 1]
mov qword [rax], r8
mov rax, qword [rbp + 0x240]
mov byte [rdx], al
inc rcx
mov qword [r9 + 0x68], rcx
jmp 0x20216f99
call fcn.200782b0
mov r14, rax
nop
mov r15, qword [rbp + 0x248]
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rbx
mov rcx, r14
mov edx, r12d
mov r8, r15
call fcn.2044a690
mov byte [r14 + r15], 0
cmp rdi, 0x10
jb 0x20215a33
lea rdx, [rdi + 1]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x20215a2e
nop
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x20217197
test byte [rbp + 0x18c], 0x20
je 0x20217096
add rdi, 0x28
mov rdx, rdi
mov rcx, rax
call fcn.20078f20
nop
mov qword [rsi], r14
jmp 0x202172d5
lea rcx, [r13 + 1]
call fcn.200782b0
mov rcx, rax
nop
mov qword [rbp + 0x128], rcx
lea r9, [rbx + 1]
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
mov qword [rbp + 0x138], rbx
lea r14, [rbp + 0x140]
mov qword [rbp + 0x140], r13
lea rax, [0x2046cec8]
mov qword [rbp + 0x120], rax
mov r9, qword [rbp + 0x128]
nop
mov rdx, qword [rbp + 0x238]
lea rdi, [rdx + 8]
mov r8, qword [rdx + 0x18]
mov rax, qword [rdx + 0x20]
mov rcx, rax
sub rcx, r8
cmp rcx, rbx
jae 0x20215acf
nop
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0
mov rcx, r9
mov rdx, rbx
mov r8, rdi
mov r9d, 0xbfff9327
call fcn.20217e50
jmp 0x20215afd
lea r13, [r8 + rbx]
mov qword [rdx + 0x18], r13
cmp rax, 0x10
jb 0x20215ae8
mov rax, qword [rbp + 0x238]
mov rdi, qword [rax + 8]
add r8, rdi
mov rcx, rbx
mov edx, 0x21d6cd6f
call fcn.2021b0c0
mov byte [rdi + r13], 0
lea r13, [rbp + 0x138]
lea rdi, [rbp + 0x108]
mov rax, qword [rbp + 0x140]
cmp rax, 0x10
jb 0x20216fd9
nop
mov rcx, qword [rbp + 0x128]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20215b55
mov rdx, rax
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x20216900
add rdx, 0x28
mov rcx, rax
jmp 0x20216fd4
lea r12, [rbp + 0xb0]
lea rbx, [rbp + 0xf0]
lea r15, [rbp + 0x158]
mov r8, rax
mov r11, rax
mov rax, rbx
mov r10, rbx
test byte [rbp + 0x18c], 0x10
jne 0x20216fd4
nop
mov rcx, qword [r15]
mov qword [rcx], rbx
mov r9, qword [rbp + 0x1a0]
mov rcx, qword [r9 + 0x38]
mov qword [rcx], 0
mov r14, r8
mov rsi, qword [rbp + 0x198]
mov r13, r10
mov r10, r11
jmp 0x20216e62
lea r15, [rax + 8]
add rsi, 8
lea rax, [r14 + 8]
mov qword [rbp + 0x198], rax
lea rdi, [r14 + 0x18]
cmp r12, 0x10
jae 0x20215c0c
lea rax, [rbp - 0x38]
mov qword [rbp + 0x1a0], rax
xor edx, edx
test byte [rbp + 0x18c], 0x40
jne 0x20216cfd
mov r9d, 0x10
mov rcx, qword [rbp + 0x198]
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
mov ebx, 0xf
jmp 0x20216bc7
mov rax, r12
or rax, 0xf
movabs rbx, 0x7fffffffffffffff
cmp rax, rbx
cmovb rbx, rax
cmp rax, 0xfff
jae 0x202169cb
lea rcx, [rbx + 1]
call fcn.200782b0
mov rcx, rax
jmp 0x202169e0
mov qword [rbp + 0x178], r14
mov qword [rbp + 0x180], rdi
movabs rcx, 0x8000000000000000
movabs rax, 0x7fffffffffffffff
mov qword [rbp + 0x198], rax
mov r13, rsi
jmp 0x20216a48
mov rbx, rsi
or rbx, 0xf
jmp 0x2021691f
xor ecx, ecx
mov rax, rsi
sub rax, rdi
xorps xmm0, xmm0
mov qword [rbp + 0x190], rcx
mov r12, rax
movups xmmword [rcx + rax + 0x18], xmm0
mov r15, qword [rbp + 0x240]
mov rbx, qword [r15 + 0x18]
cmp qword [r15 + 0x20], 0x10
jb 0x20215cb0
mov r15, qword [r15 + 8]
jmp 0x20215cb4
add r15, 8
mov rax, qword [rbp + 0x190]
mov rcx, r12
lea rdx, [rax + r12]
add rdx, 0x28
mov qword [rbp + 0x170], rdx
lea rdi, [rax + r12]
add rdi, 8
cmp rbx, 0xf
ja 0x20215d05
mov r9d, 0x10
mov rcx, rdi
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
mov r14d, 0xf
test byte [rbp + 0x18c], 0x10
je 0x20215d7c
call fcn.2006b070
mov rax, rbx
or rax, 0xf
movabs r14, 0x7fffffffffffffff
cmp rax, r14
cmovb r14, rax
cmp rax, 0xfff
jb 0x20215d4d
lea rcx, [r14 + 0x28]
mov rax, qword [rbp + 0x170]
mov qword [rbp + 0x150], rax
call fcn.200782b0
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x20215d67
lea rcx, [r14 + 1]
mov rax, qword [rbp + 0x170]
mov qword [rbp + 0x150], rax
call fcn.200782b0
mov rcx, rax
nop
mov qword [rdi], rcx
lea r9, [rbx + 1]
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
nop
add r12, qword [rbp + 0x190]
mov qword [r12 + 0x18], rbx
mov qword [r12 + 0x20], r14
lea rax, [0x2046cec8]
mov qword [rbp + 0x1a0], r12
mov qword [r12], rax
mov rax, qword [rbp + 0x248]
mov rdi, qword [rax]
mov r14, qword [rax + 8]
cmp r14, rsi
je 0x20215ff7
cmp rdi, rsi
je 0x20215ec7
xor eax, eax
xorps xmm6, xmm6
mov r15, qword [rbp + 0x190]
jmp 0x20215e1b
mov r9d, 0x10
mov rcx, r14
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
mov r12d, 0xf
nop
mov qword [r15 + 0x18], r13
mov qword [r15 + 0x20], r12
lea rax, [0x2046cec8]
mov qword [r15], rax
add r15, 0x28
add rdi, 0x28
mov rax, qword [rbp + 0x198]
add rax, 0xffffffffffffffd8
cmp rdi, rsi
je 0x20215ec7
nop
movups xmmword [r15 + 0x18], xmm6
cmp qword [rdi + 0x20], 0x10
mov qword [rbp + 0x198], rax
jb 0x20215e40
mov rbx, qword [rdi + 8]
jmp 0x20215e44
lea rbx, [rdi + 8]
lea r14, [r15 + 8]
mov r13, qword [rdi + 0x18]
cmp r13, 0xf
jbe 0x20215dd0
mov rax, r13
or rax, 0xf
movabs r12, 0x7fffffffffffffff
cmp rax, r12
cmovb r12, rax
cmp rax, 0xfff
jb 0x20215ea0
lea rcx, [r12 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x20215eaa
lea rcx, [r12 + 1]
call fcn.200782b0
nop
mov qword [r14], rax
lea r9, [r13 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
jmp 0x20215dec
nop
mov rax, qword [rbp + 0x248]
mov r14, qword [rax + 8]
cmp r14, rsi
je 0x202160f7
xor edx, edx
xorps xmm6, xmm6
movabs r15, 0x7fffffffffffffff
jmp 0x20215f46
mov r9d, 0x10
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
mov r13d, 0xf
nop
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x198]
mov qword [rax + rdx + 0x40], r12
mov qword [rax + rdx + 0x48], r13
lea rcx, [0x2046cec8]
mov qword [rax + rdx + 0x28], rcx
lea rax, [rsi + rdx]
add rax, 0x28
add rdx, 0x28
cmp rax, r14
je 0x202160f7
nop
mov rax, qword [rbp + 0x1a0]
movups xmmword [rax + rdx + 0x40], xmm6
cmp qword [rsi + rdx + 0x20], 0x10
jb 0x20215f70
mov rdi, qword [rsi + rdx + 8]
jmp 0x20215f78
lea rdi, [rsi + rdx]
add rdi, 8
mov rax, qword [rbp + 0x1a0]
lea rbx, [rax + rdx]
add rbx, 0x30
mov qword [rbp + 0x198], rdx
mov r12, qword [rsi + rdx + 0x18]
cmp r12, 0xf
jbe 0x20215ef0
mov rax, r12
or rax, 0xf
cmp rax, r15
mov r13, r15
cmovb r13, rax
cmp rax, 0xfff
jb 0x20215fd0
lea rcx, [r13 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x20215fd9
lea rcx, [r13 + 1]
call fcn.200782b0
nop
mov qword [rbx], rax
lea r9, [r12 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
jmp 0x20215f0c
cmp rdi, r14
je 0x20216102
xor eax, eax
xorps xmm6, xmm6
mov r15, qword [rbp + 0x190]
jmp 0x2021605b
mov r9d, 0x10
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, rsi
call fcn.2021b0c0
mov r13d, 0xf
nop
mov qword [r15 + 0x18], r12
mov qword [r15 + 0x20], r13
lea rax, [0x2046cec8]
mov qword [r15], rax
add r15, 0x28
add rdi, 0x28
mov rax, qword [rbp + 0x198]
add rax, 0xffffffffffffffd8
cmp rdi, r14
je 0x202160f7
nop
movups xmmword [r15 + 0x18], xmm6
cmp qword [rdi + 0x20], 0x10
mov qword [rbp + 0x198], rax
jb 0x20216080
mov rsi, qword [rdi + 8]
jmp 0x20216084
lea rsi, [rdi + 8]
lea rbx, [r15 + 8]
mov r12, qword [rdi + 0x18]
cmp r12, 0xf
jbe 0x20216010
mov rax, r12
or rax, 0xf
movabs r13, 0x7fffffffffffffff
cmp rax, r13
cmovb r13, rax
cmp rax, 0xfff
jb 0x202160d0
lea rcx, [r13 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x202160d9
lea rcx, [r13 + 1]
call fcn.200782b0
nop
mov qword [rbx], rax
lea r9, [r12 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rsi
call fcn.2021b0c0
jmp 0x2021602c
nop
mov rax, qword [rbp + 0x248]
mov rdi, qword [rax]
test rdi, rdi
je 0x20216181
nop
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x2021613b
nop word cs:[rax + rax]
nop
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
xor edx, edx
call qword [case.0x200c66ec.0]
add rdi, 0x28
cmp rdi, rsi
jne 0x20216120
nop
mov rax, qword [rbp + 0x248]
mov rcx, qword [rax]
mov rdx, qword [rax + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x2021617c
nop
mov rax, qword [rcx - 8]
cmp byte [0x205ec311], 0
jne 0x20216175
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x202171b0
add rdx, 0x27
mov rcx, rax
call fcn.20078f20
nop
mov rcx, qword [rbp + 0x248]
mov rdx, qword [rbp + 0x190]
mov qword [rcx], rdx
mov rax, qword [rbp + 0x178]
lea rax, [rax + rax*4]
lea rax, [rdx + rax*8]
mov qword [rcx + 8], rax
mov rax, qword [rbp + 0x180]
lea rax, [rdx + rax*8]
mov qword [rcx + 0x10], rax
nop
mov rsi, qword [rbp + 0x1a0]
jmp 0x202172d5
mov ecx, 0x30
call fcn.200782b0
mov qword [rbp + 0x198], rax
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x20216c10
nop
mov rax, qword [rdx + 0x28]
add rdx, 0x30
test rax, rax
cmovne rdx, rax
jmp 0x20216c17
nop
mov byte [rbp + 0x160], 1
nop
cmp byte [rbp + 0x160], 0
je 0x20216357
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov ecx, 0x1c0
and ecx, dword [rdx + rax + 0x18]
cmp ecx, 0x40
je 0x202162e5
nop
cmp qword [rbp + 0x190], 0
jle 0x202162e5
lea r14, [rbp + 0xb0]
xor eax, eax
mov qword [rbp + 0x190], rax
jmp 0x20216278
dec r8d
mov dword [rdx], r8d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
lea rax, [r12 - 1]
cmp r12, 1
mov r12, rax
jle 0x202162e5
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x202162aa
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x20216254
jmp 0x202162b7
test byte [rbp + 0x18c], 0x40
jne 0x20215a33
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c66ec.0]
mov dword [rbp + 0x16c], edi
mov dword [rbp + 0x168], 0
call r8
cmp eax, 0xffffffff
jne 0x2021626a
jmp 0x202171ba
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [0x205ec308]
add rcx, rdx
mov rcx, qword [rax + rcx + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
mov r9, qword [case.0x200c66ec.0]
mov dword [rbp + 0x16c], edi
mov dword [rbp + 0x168], 0
nop
mov rdx, qword [rbp + 0x1a0]
mov r8, rbx
call r9
xor esi, esi
cmp rax, rbx
setne sil
shl esi, 2
cmp rax, rbx
jne 0x2021724e
cmp qword [rbp + 0x190], 0
jg 0x202171c4
jmp 0x2021724e
mov esi, 4
mov rdx, qword [rbp + 0x248]
jmp 0x20217266
xor r12d, r12d
mov rax, rsi
sub rax, rdi
xorps xmm0, xmm0
mov r13, rax
movups xmmword [r12 + rax + 0x18], xmm0
mov r15, qword [rbp + 0x238]
mov rbx, qword [r15 + 0x18]
mov rcx, qword [r15 + 0x20]
mov rax, rcx
mov qword [rbp + 0x190], rcx
cmp rcx, 0x10
jb 0x202163a2
mov r15, qword [r15 + 8]
jmp 0x202163a6
add r15, 8
mov rax, r13
lea rcx, [r12 + r13]
add rcx, 0x28
mov qword [rbp + 0x118], rcx
lea rdi, [r12 + r13]
add rdi, 8
cmp rbx, 0xf
nop
mov qword [rbp + 0x180], r12
ja 0x202163ef
mov r9d, 0x10
mov rcx, rdi
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
mov r14d, 0xf
jmp 0x20216478
mov rax, rbx
or rax, 0xf
movabs r14, 0x7fffffffffffffff
cmp rax, r14
cmovb r14, rax
cmp rax, 0xffe
ja 0x20216435
nop
test byte [0x205ec311], 1
jne 0x20216435
lea rcx, [r14 + 1]
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0x148], rax
call fcn.200782b0
mov rcx, rax
jmp 0x2021645b
lea rcx, [r14 + 0x28]
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0x148], rax
call fcn.200782b0
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
nop
mov qword [rdi], rcx
lea r9, [rbx + 1]
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
nop
mov r12, qword [rbp + 0x180]
add r13, r12
mov qword [r13 + 0x18], rbx
mov qword [r13 + 0x20], r14
lea rax, [0x2046cec8]
mov qword [rbp + 0x1a0], r13
mov qword [r13], rax
mov rax, qword [rbp + 0x240]
mov rdi, qword [rax]
mov rcx, qword [rax + 8]
cmp rcx, rsi
je 0x202166e6
cmp rdi, rsi
je 0x202165b8
xor eax, eax
xorps xmm6, xmm6
mov r13, qword [rbp + 0x180]
jmp 0x2021651c
mov r9d, 0x10
mov rcx, r14
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
mov r12d, 0xf
nop
mov qword [r13 + 0x18], r15
mov qword [r13 + 0x20], r12
lea rax, [0x2046cec8]
mov qword [r13], rax
add r13, 0x28
add rdi, 0x28
mov rax, qword [rbp + 0x198]
add rax, 0xffffffffffffffd8
cmp rdi, rsi
je 0x202165b8
nop
movups xmmword [r13 + 0x18], xmm6
cmp qword [rdi + 0x20], 0x10
mov qword [rbp + 0x198], rax
jb 0x20216540
mov rbx, qword [rdi + 8]
jmp 0x20216544
lea rbx, [rdi + 8]
lea r14, [r13 + 8]
mov r15, qword [rdi + 0x18]
cmp r15, 0xf
jbe 0x202164d0
mov rax, r15
or rax, 0xf
movabs r12, 0x7fffffffffffffff
cmp rax, r12
cmovb r12, rax
cmp rax, 0xfff
jb 0x20216591
lea rcx, [r12 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x2021659b
lea rcx, [r12 + 1]
call fcn.200782b0
nop
mov qword [r14], rax
lea r9, [r15 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
jmp 0x202164ec
nop
mov rax, qword [rbp + 0x240]
mov r14, qword [rax + 8]
cmp r14, rsi
je 0x202167e8
xor edx, edx
xorps xmm6, xmm6
movabs r12, 0x7fffffffffffffff
jmp 0x20216636
mov r9d, 0x10
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
mov r13d, 0xf
nop
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x198]
mov qword [rax + rdx + 0x40], r15
mov qword [rax + rdx + 0x48], r13
lea rcx, [0x2046cec8]
mov qword [rax + rdx + 0x28], rcx
lea rax, [rsi + rdx]
add rax, 0x28
add rdx, 0x28
cmp rax, r14
je 0x202167e8
nop
mov rax, qword [rbp + 0x1a0]
movups xmmword [rax + rdx + 0x40], xmm6
cmp qword [rsi + rdx + 0x20], 0x10
jb 0x20216660
mov rdi, qword [rsi + rdx + 8]
jmp 0x20216668
lea rdi, [rsi + rdx]
add rdi, 8
mov rax, qword [rbp + 0x1a0]
lea rbx, [rax + rdx]
add rbx, 0x30
mov qword [rbp + 0x198], rdx
mov r15, qword [rsi + rdx + 0x18]
cmp r15, 0xf
jbe 0x202165e0
mov rax, r15
or rax, 0xf
cmp rax, r12
mov r13, r12
cmovb r13, rax
cmp rax, 0xfff
jb 0x202166c0
lea rcx, [r13 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x202166c9
lea rcx, [r13 + 1]
call fcn.200782b0
nop
mov qword [rbx], rax
lea r9, [r15 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rdi
call fcn.2021b0c0
jmp 0x202165fc
cmp rdi, rcx
je 0x202167fb
xor eax, eax
xorps xmm6, xmm6
mov r13, r12
mov qword [rbp + 0x178], rcx
jmp 0x20216750
mov r9d, 0x10
mov rcx, r14
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
mov r12d, 0xf
nop
mov qword [r13 + 0x18], r15
mov qword [r13 + 0x20], r12
lea rax, [0x2046cec8]
mov qword [r13], rax
add r13, 0x28
add rdi, 0x28
mov rax, qword [rbp + 0x198]
add rax, 0xffffffffffffffd8
cmp rdi, qword [rbp + 0x178]
je 0x202167e8
nop
movups xmmword [r13 + 0x18], xmm6
cmp qword [rdi + 0x20], 0x10
mov qword [rbp + 0x198], rax
jb 0x20216770
mov rbx, qword [rdi + 8]
jmp 0x20216774
lea rbx, [rdi + 8]
lea r14, [r13 + 8]
mov r15, qword [rdi + 0x18]
cmp r15, 0xf
jbe 0x20216700
mov rax, r15
or rax, 0xf
movabs r12, 0x7fffffffffffffff
cmp rax, r12
cmovb r12, rax
cmp rax, 0xfff
jb 0x202167c1
lea rcx, [r12 + 0x28]
call fcn.200782b0
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x202167cb
lea rcx, [r12 + 1]
call fcn.200782b0
nop
mov qword [r14], rax
lea r9, [r15 + 1]
mov rcx, rax
mov edx, 0xa27493a5
mov r8, rbx
call fcn.2021b0c0
jmp 0x2021671c
nop
mov rax, qword [rbp + 0x240]
mov rdi, qword [rax]
nop
mov r12, qword [rbp + 0x180]
test rdi, rdi
je 0x2021686a
nop
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x2021682b
nop word [rax + rax]
nop
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
xor edx, edx
call qword [case.0x200c66ec.0]
add rdi, 0x28
cmp rdi, rsi
jne 0x20216810
nop
mov rax, qword [rbp + 0x240]
mov rcx, qword [rax]
mov rdx, qword [rax + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x20216863
nop
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x2021719c
add rdx, 0x27
mov rcx, rax
call fcn.20078f20
jmp 0x20216873
test byte [rbp + 0x18c], 0x10
jne 0x202168b1
nop
mov rcx, qword [rbp + 0x240]
mov qword [rcx], r12
mov rax, qword [rbp + 0x110]
lea rax, [rax + rax*4]
lea rax, [r12 + rax*8]
mov qword [rcx + 8], rax
mov rax, qword [rbp + 0x170]
lea rax, [rax + rax*4]
lea rax, [r12 + rax*8]
mov qword [rcx + 0x10], rax
nop
mov rsi, qword [rbp + 0x1a0]
jmp 0x202172d5
mov edi, 0xc
jmp 0x20217232
movsxd r14, edx
add r14, rcx
mov rdx, qword [rbp + 0x1a0]
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx]
sub r14, rdx
test rcx, rcx
cmove r14, rcx
mov esi, 0x20
cmp r14, 0x20
jae 0x20216c88
nop
mov qword [rbp + 0x190], rdx
mov rcx, rsi
call fcn.200782b0
mov rbx, rax
jmp 0x20216da4
lea rax, [rbp + 0x120]
mov qword [rbp + 0x190], rax
lea r14, [rbp - 0x38]
mov rax, r15
mov rsi, qword [rbp + 0x1a0]
mov rdi, rdx
cmp byte [rbp + 0x18c], 0
js 0x2021718d
add rax, rdi
cmp rbx, rax
cmova rax, rbx
mov rcx, rax
mov qword [rbp + 0x198], rax
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x20216be4
mov qword [rbp + 0x178], r14
mov qword [rbp + 0x180], rdi
cmp rcx, 0xffffffffffffffd9
jae 0x20217183
lea r14, [rbp + 0x120]
mov rbx, qword [rbp + 0x248]
mov rdi, qword [rbp + 0x178]
mov r13, rsi
mov esi, dword [rbp + 0x18c]
test sil, 0x40
jne 0x20216a48
mov rcx, r14
mov rdx, rbx
mov r9, rdi
call fcn.2006bd40
test sil, 0x10
jne 0x20216b3f
mov r14, rax
lea rax, [rbp + 0xb0]
mov qword [rbp + 0x198], rax
lea rdi, [rbp + 0xf0]
lea r15, [rbp - 0x38]
mov r12, rbx
mov rsi, r14
lea rcx, [rbx + 0x28]
call fcn.200782b0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
nop
mov rax, qword [rbp + 0x198]
mov qword [rax], rcx
lea r9, [r12 + 1]
mov edx, 0xa27493a5
mov r8, r15
call fcn.2021b0c0
lea rax, [rbp + 0x158]
mov qword [rbp + 0x178], rax
lea rax, [rbp - 0x38]
mov qword [rbp + 0x190], rax
xor ecx, ecx
xor eax, eax
mov qword [rbp + 0x198], rax
mov rax, rsi
mov qword [rbp + 0x180], r12
mov rsi, rbx
mov r15, qword [rbp + 0x1a0]
mov r13, rsi
mov rsi, rax
test byte [rbp + 0x18c], 0x20
jne 0x20216bc7
add rcx, 0x27
call fcn.200782b0
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov rsi, r13
mov rdi, qword [rbp + 0x180]
mov r14, qword [rbp + 0x178]
mov rcx, qword [rbp + 0x198]
nop
mov qword [r14], rsi
mov rax, qword [rbp + 0x190]
mov qword [rax], rcx
cmp rdi, 0x10
jb 0x20216b52
nop
mov rax, qword [rbp + 0x240]
mov rsi, qword [rax]
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, rsi
mov r13, rdi
mov r14, qword [rbp + 0x1a0]
mov r9, r14
call fcn.2021b0c0
lea rdi, [rbx + r14]
mov rcx, rdi
mov edx, 0xa27493a5
mov r8, qword [rbp + 0x238]
mov r12, qword [rbp + 0x230]
mov r9, r12
call fcn.2021b0c0
mov r8, qword [rbp + 0x248]
add r8, r14
mov r14, r13
sub r15, r8
inc r15
add r8, rsi
add rdi, r12
mov rcx, rdi
mov edx, 0xa27493a5
mov r9, r15
call fcn.2021b0c0
lea rdx, [r13 + 1]
cmp rdx, 0x1000
jb 0x20216b2d
nop
mov rax, qword [rsi - 8]
add rsi, 0xfffffffffffffff8
sub rsi, rax
cmp rsi, 0x20
jae 0x20217192
add r14, 0x28
mov rdx, r14
mov rsi, rax
mov rcx, rsi
call fcn.20078f20
nop
mov rdi, qword [rbp + 0x240]
jmp 0x20216bbb
lea rax, [0x2046cec8]
mov qword [r12], rax
mov rsi, r12
jmp 0x202172d5
mov rcx, rbx
mov edx, 0xa27493a5
mov rdi, qword [rbp + 0x240]
mov r8, rdi
mov r14, qword [rbp + 0x1a0]
mov r9, r14
call fcn.2021b0c0
lea rsi, [rbx + r14]
mov rcx, rsi
mov edx, 0xa27493a5
mov r8, qword [rbp + 0x238]
mov r12, qword [rbp + 0x230]
mov r9, r12
call fcn.2021b0c0
mov r8, qword [rbp + 0x248]
add r8, r14
sub r15, r8
inc r15
add r8, rdi
add rsi, r12
mov rcx, rsi
mov edx, 0xa27493a5
mov r9, r15
call fcn.2021b0c0
nop
mov qword [rdi], rbx
mov rsi, rdi
jmp 0x202172d5
nop
mov qword [rdi], r12
mov qword [r14 + 0x20], rbx
lea rax, [0x2046cec8]
mov qword [r14], rax
add qword [rsi], 0x28
xor esi, esi
jmp 0x202172d5
test rcx, rcx
je 0x20216cab
call fcn.200782b0
mov rbx, rax
jmp 0x20216a6e
test rcx, rcx
je 0x20216d67
call fcn.200782b0
mov rbx, rax
jmp 0x20215736
lea rdx, [0x2046d7dc]
lea rax, [rbp - 0x38]
mov qword [rsp + 0x38], rax
mov ecx, 0x928b416
call fcn.20214f80
nop
mov rdi, qword [rbp + 0x198]
mov dword [rdi + 8], 0
lea rax, [0x2046dfd8]
mov qword [rdi], rax
lea rcx, [rbp + 0x120]
call fcn.20078420
mov rcx, rdi
add rcx, 0x10
lea r8, [rbp + 0x120]
mov r9d, 0x20
mov edx, 0xa27493a5
call fcn.2021b0c0
mov qword [rsi], rdi
lea r9, [rbp - 0x38]
mov ecx, 0xc1a3914d
call fcn.20219390
mov esi, 2
jmp 0x202172d5
cmp r14, 0x3fffffff
jae 0x20216d75
lea rsi, [r14 + r14]
cmp r14, 0x800
jb 0x202168e8
jmp 0x20216d87
mov rcx, 0xffffffffffffffff
xor ebx, ebx
jmp 0x20216a75
lea r14, [rbp + 0x158]
lea rax, [rbp + 0x120]
mov qword [rbp + 0x198], rax
lea rdi, [rbp + 0x120]
lea rdx, [0x2046d7dc]
mov r12, qword [rbp + 0x248]
mov rsi, r14
mov r15, rcx
mov qword [rbp + 0x1a0], rcx
test byte [rbp + 0x18c], 0x40
je 0x20215be8
lea rsi, [rbp - 0x38]
mov qword [rsp + 0x38], rsi
mov ecx, 0x928b416
call fcn.20214f80
nop
mov rdi, qword [rbp + 0x1a0]
mov dword [rdi + 8], 0
lea rax, [0x2046f3f8]
mov qword [rdi], rax
nop
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rsi
mov edx, 1
mov r9d, 0xc412db65
call fcn.20217e50
nop
mov rax, qword [rbp + 0x240]
mov qword [rax], rdi
lea r9, [rbp - 0x38]
mov ecx, 0xc1a3914d
call fcn.20219390
mov esi, 4
jmp 0x202172d5
mov r14, 0xffffffffffffffff
xor ebx, ebx
jmp 0x20215736
mov esi, 0x7fffffff
cmp r14, 0x7fffffff
jae 0x20216f99
nop
mov qword [rbp + 0x190], rdx
lea rcx, [rsi + 0x27]
call fcn.200782b0
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
nop
mov rdi, qword [rbp + 0x1a0]
lea r12, [rdi + 0x70]
lea rax, [rdi + 0x40]
mov qword [rbp + 0x198], rax
lea r13, [rdi + 0x58]
lea r15, [rdi + 0x18]
mov rcx, rbx
mov edx, 0xa27493a5
mov r8, qword [rbp + 0x190]
mov r9, r14
call fcn.2021b0c0
lea rax, [rbx + r14]
lea rcx, [rbx + r14]
inc rcx
mov qword [rdi + 0x68], rcx
add esi, ebx
mov dword [0x20596f94], 0x31266b4d
mov rcx, qword [rdi + 0x20]
mov qword [rcx], rbx
mov rcx, qword [rdi + 0x40]
mov qword [rcx], rax
sub esi, eax
mov rax, qword [rdi + 0x58]
mov dword [rax], esi
test byte [rdi + 0x70], 4
jne 0x20216fa0
lea rcx, [rdi + 0x68]
mov r10, qword [rbp + 0x190]
mov rax, r10
mov rsi, qword [rbp + 0x198]
test byte [rbp + 0x18c], 0x20
je 0x20215669
nop
mov rcx, qword [rcx]
mov r9, qword [rbp + 0x1a0]
mov rdx, qword [r9 + 0x38]
mov rdx, qword [rdx]
sub rdx, r10
add rdx, rbx
mov r8, qword [r15]
mov qword [r8], rbx
mov r8, qword [r9 + 0x38]
mov qword [r8], rdx
sub rcx, rdx
mov rbx, rcx
nop
mov rcx, qword [r9 + 0x50]
mov dword [rcx], ebx
test byte [r12], 1
je 0x20216f77
cmp r14, 0x1000
jb 0x20216f6c
nop
mov rax, qword [rax - 8]
sub r10, rax
add r10, 0xfffffffffffffff8
cmp r10, 0x20
jae 0x202171b5
lea rcx, [rbp + 0xb0]
lea rdi, [rbp + 0xf0]
test byte [rbp + 0x18c], 0x40
je 0x202157dc
nop
mov qword [rcx], rax
lea rcx, [rbp - 0x38]
mov edx, 0xa27493a5
mov r8, qword [rbp + 0x230]
mov r9, rax
mov rsi, rax
call fcn.2021b0c0
mov byte [rbp + rsi - 0x38], 0
lea rsi, [rbp + 0xb0]
mov r9d, 0x10
mov rcx, rsi
mov edx, 0xa27493a5
mov r8, qword [rbp + 0x238]
call fcn.2021b0c0
lea rax, [rbp - 0x38]
mov qword [rsp + 0x30], rax
mov rcx, qword [rbp + 0x1a0]
mov rdx, rsi
mov r9d, 0x824ad3a4
call fcn.20217e50
nop
mov rax, qword [rdi]
cmp rax, 0x10
jb 0x20216f56
nop
mov rcx, qword [rbp - 0x38]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20216f51
nop
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x202171a1
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.20078f20
lea rax, [0x2046d728]
mov rsi, qword [rbp + 0x1a0]
mov qword [rsi], rax
jmp 0x202172d5
mov rcx, rax
mov rdx, r14
call fcn.20078f20
nop
or byte [r12], 1
mov rax, qword [r13]
dec dword [rax]
mov rax, qword [rsi]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rax, qword [rbp + 0x240]
mov byte [rcx], al
mov esi, eax
jmp 0x202172d5
mov r10, r13
mov r8, r14
lea rsi, [rbp + 0x158]
lea r13, [rbp - 0x38]
lea rdi, [rbp - 0x38]
lea r14, [rbp - 0x38]
xor ecx, ecx
xor edx, edx
mov rax, qword [rbp + 0x190]
mov r11, rax
test byte [rbp + 0x18c], 0x10
je 0x20215b83
call fcn.20078f20
nop
mov qword [r13], 0
mov qword [r14], 0xf
mov byte [rsi], 0
mov rax, qword [rdi]
cmp rax, 0x10
jb 0x2021702f
nop
mov rcx, qword [rbp + 0xf0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x2021702a
nop
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x202171a6
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.20078f20
lea rcx, [rbp - 0x38]
call fcn.201162c0
nop
mov rsi, qword [rbp + 0x238]
jmp 0x202172d5
call fcn.2006a580
call fcn.2006a580
call fcn.2006b070
nop
mov qword [rbp + 0x1a0], rax
movzx eax, byte [0x20595fb0]
cmp al, 0x1f
je 0x2021714c
mov bl, 0x28
mov al, 0x49
lock cmpxchg byte [0x20595fb0], bl
je 0x202170bc
cmp al, 0x1f
jne 0x2021706d
jmp 0x2021714c
call fcn.2006b070
call fcn.2006a580
call fcn.2006a580
call fcn.2006a580
lea rax, [rbp + 0x120]
mov qword [rbp + 0x1a0], rax
lea r10, [rbp - 0x38]
lea rcx, [rbp + 0x120]
lea r9, [rbp + 0xf0]
mov r11, r10
mov r8, r10
mov eax, 0x2b153b39
mov esi, 0xd4eac4d7
mov edi, 0x2b153b3a
mov ebx, 0xd4eac4d6
xor r14d, r14d
lea rdx, [0x2047a780]
mov r15d, esi
mov r13d, 0xf0f0f0f1
imul r15, r13
shr r15, 0x24
lea r12d, [rax + r15]
shl r15d, 4
add r15d, r12d
mov r12d, ebx
imul r12, r13
shr r12, 0x24
lea r13d, [rdi + r12]
shl r12d, 4
add r12d, r13d
movzx r12d, byte [r12 + rdx]
xor r12b, 0x2c
lea r13, [0x20595fa0]
add byte [r14 + r13], r12b
movzx r15d, byte [r15 + rdx]
xor r15b, 0x2c
add byte [r14 + r13 + 1], r15b
add r14, 2
add eax, 0xfffffffe
add esi, 2
add edi, 0xfffffffe
add ebx, 2
cmp r14, 0x10
jne 0x202170da
mov al, 0x1f
xchg byte [0x20595fb0], al
nop
mov qword [rbp + 0xe8], r10
mov qword [rbp + 0xe0], r11
mov qword [rbp + 0xd8], r9
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xc8], r8
mov rax, qword [rbp + 0x1a0]
mov qword [rbp + 0xc0], rax
call fcn.20214d80
call fcn.2006a580
call fcn.2006a580
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
mov esi, 4
jmp 0x2021724e
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
movzx edx, al
mov r8, qword [rcx + 0x40]
cmp qword [r8], 0
je 0x2021720f
nop
mov r8, qword [rcx + 0x58]
mov r9d, dword [r8]
test r9d, r9d
jle 0x2021720f
dec r9d
mov dword [r8], r9d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
jmp 0x20217232
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c66ec.0]
mov dword [rbp + 0x16c], edi
mov dword [rbp + 0x168], esi
call r8
cmp eax, 0xffffffff
je 0x202171ba
mov rcx, qword [rbp + 0x190]
lea rax, [rcx - 1]
cmp rcx, 1
mov qword [rbp + 0x190], rax
jg 0x202171c4
nop
mov rdx, qword [rbp + 0x248]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov qword [rdx + rax + 0x28], 0
nop
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
or esi, dword [rdx + rax + 0x10]
xor ecx, ecx
cmp qword [rdx + rax + 0x48], 0
sete cl
shl ecx, 2
and esi, 0x17
or esi, ecx
mov dword [rdx + rax + 0x10], esi
and esi, dword [rdx + rax + 0x14]
jne 0x202172f3
call fcn.200a7bb0
test al, al
jne 0x202172a5
nop
mov rcx, qword [rbp + 0x158]
call fcn.200a48d0
nop
mov rax, qword [rbp + 0x158]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rax + rcx + 0x48]
test rcx, rcx
je 0x202172cd
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
nop
call qword [case.0x200c66ec.0]
nop
mov rsi, qword [rbp + 0x248]
mov rax, rsi
movaps xmm6, xmmword [rbp + 0x1b0]
add rsp, 0x248
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, edi
xor ecx, 0x155269c1
mov edx, 0x710e7c96
call fcn.2021b0c0
mov ecx, edi
xor ecx, 0x9a5a35a3
mov edx, 0x41c088c3
call fcn.2021b0c0
test sil, 2
lea rax, [0x20596080]
lea rbx, [0x20596060]
cmove rbx, rax
xor edi, 0xc054ff54
mov edx, 0xad9f7167
mov r9, rdi
call fcn.2021b0c0
test sil, 4
lea r14, [0x20596040]
cmove r14, rbx
lea rsi, [rbp + 0xf0]
mov rcx, rsi
mov edx, 1
call fcn.2006bb00
lea rdi, [rbp + 0x120]
mov r9d, 0x10
mov rcx, rdi
mov edx, 0xa27493a5
mov r8, rsi
call fcn.2021b0c0
nop
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r14
lea rdx, [rbp - 0x38]
mov ecx, 0xf11cbae2
call fcn.20214f80
lea rax, [0x2046d5c8]
mov qword [rbp - 0x38], rax
lea rdx, [0x204c88b8]
lea rcx, [rbp - 0x38]
call fcn.200782e0
nop
mov edi, dword [rbp + 0x16c]
mov esi, dword [rbp + 0x168]
jmp 0x2021635c