Function at 0x140045a70
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x280
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x1400e5250]
xor rax, rsp
mov qword [rbp + 0x128], rax
mov r13, rcx
mov qword [rbp - 0x68], rcx
mov dword [rsp + 0x3c], 1
mov edx, dword [rcx + 0x378]
lea eax, [rdx - 2]
cmp eax, 1
jbe 0x140045ae5
xor r14b, r14b
mov byte [rsp + 0x31], r14b
jmp 0x140045af2
mov r14b, 1
mov byte [rsp + 0x31], r14b
cmp edx, 3
je 0x140045afc
cmp edx, 1
mov byte [rsp + 0x33], 0
jne 0x140045b01
mov byte [rsp + 0x33], 1
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x110], xmm1
xor r15d, r15d
mov qword [rbp + 0x120], r15
mov rdi, qword [rcx + 0x330]
mov rbx, qword [rcx + 0x328]
mov rcx, qword [rbp + 0x118]
cmp rbx, rdi
je 0x140045b74
mov rax, qword [rbx]
cmp byte [rax + 0x6e], 0
je 0x140045b6b
cmp rcx, qword [rbp + 0x120]
je 0x140045b52
mov qword [rcx], rax
add rcx, 8
mov qword [rbp + 0x118], rcx
jmp 0x140045b6b
mov r8, rbx
mov rdx, rcx
lea rcx, [rbp + 0x110]
call fcn.14002f530
mov rcx, qword [rbp + 0x118]
add rbx, 0x40
cmp rbx, rdi
jne 0x140045b30
mov qword [rsp + 0x50], rcx
xorps xmm0, xmm0
mov rsi, rcx
mov rcx, qword [rbp + 0x110]
mov qword [rsp + 0x48], rcx
sub rsi, rcx
sar rsi, 3
mov qword [rbp - 0x80], rsi
movdqu xmmword [rbp + 0xf8], xmm0
mov qword [rbp + 0x108], r15
test rsi, rsi
je 0x140045c7d
movabs rax, 0x276276276276276
cmp rsi, rax
ja 0x140046b16
imul rdi, rsi, 0x68
cmp rdi, 0x1000
jb 0x140045bfe
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x140046b1c
call fcn.1400860a0
test rax, rax
je 0x140046b22
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
lea rcx, [rbx + rdi]
mov rdx, rbx
jmp 0x140045c21
test rdi, rdi
je 0x140045c17
mov rcx, rdi
call fcn.1400860a0
mov rbx, rax
lea rcx, [rax + rdi]
mov rdx, rax
jmp 0x140045c21
mov rbx, r15
lea rcx, [r15 + rdi]
mov rdx, r15
mov rax, rsi
mov qword [rbp + 0xf8], rdx
mov qword [rbp + 0x108], rcx
nop dword [rax]
nop word [rax + rax]
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x50], xmm0
mov qword [rbx + 0x60], rcx
add rbx, 0x68
sub rax, 1
jne 0x140045c40
mov qword [rbp + 0x100], rbx
mov byte [rsp + 0x31], r14b
mov rcx, qword [rsp + 0x48]
jmp 0x140045c84
mov rbx, qword [rbp + 0x100]
mov dword [rsp + 0x38], r15d
movss xmm10, dword [0x1400cb99c]
test rsi, rsi
je 0x140046370
mov qword [rsp + 0x70], r15
mov rdi, r15
mov rax, rcx
mov qword [rsp + 0x68], rcx
movabs rbx, 0xcbf29ce484222325
mov r13, qword [rbp - 0x80]
nop dword [rax]
mov r12, qword [rax]
mov ecx, dword [r12 + 0x48]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi], ecx
mov ecx, dword [r12 + 0x4c]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi + 4], ecx
movss xmm0, dword [r12 + 0x40]
mov rax, qword [rbp + 0xf8]
movss dword [rax + rdi + 8], xmm0
movss xmm1, dword [r12 + 0x44]
mov rax, qword [rbp + 0xf8]
movss dword [rax + rdi + 0xc], xmm1
mov ecx, dword [r12 + 0x38]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi + 0x10], ecx
mov ecx, dword [r12 + 0x3c]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi + 0x14], ecx
movss xmm0, dword [r12 + 0x30]
mov rax, qword [rbp + 0xf8]
movss dword [rax + rdi + 0x18], xmm0
movss xmm1, dword [r12 + 0x34]
mov rax, qword [rbp + 0xf8]
movss dword [rax + rdi + 0x1c], xmm1
mov ecx, dword [r12 + 0x28]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi + 0x20], ecx
mov ecx, dword [r12 + 0x2c]
mov rax, qword [rbp + 0xf8]
mov dword [rax + rdi + 0x24], ecx
test r14b, r14b
jne 0x140045df0
mov rdx, qword [rbp + 0xf8]
mov ecx, dword [rdx + rdi]
mov eax, dword [rdx + rdi + 4]
mov dword [rdx + rdi], eax
mov dword [rdx + rdi + 4], ecx
mov rcx, qword [rbp + 0xf8]
movss xmm0, dword [rcx + rdi + 8]
mov eax, dword [rcx + rdi + 0xc]
mov dword [rcx + rdi + 8], eax
movss dword [rcx + rdi + 0xc], xmm0
mov rdx, qword [rbp + 0xf8]
mov ecx, dword [rdx + rdi + 0x10]
mov eax, dword [rdx + rdi + 0x14]
mov dword [rdx + rdi + 0x10], eax
mov dword [rdx + rdi + 0x14], ecx
mov rcx, qword [rbp + 0xf8]
movss xmm0, dword [rcx + rdi + 0x18]
mov eax, dword [rcx + rdi + 0x1c]
mov dword [rcx + rdi + 0x18], eax
movss dword [rcx + rdi + 0x1c], xmm0
mov rdx, qword [rbp + 0xf8]
mov ecx, dword [rdx + rdi + 0x20]
mov eax, dword [rdx + rdi + 0x24]
mov dword [rdx + rdi + 0x20], eax
mov dword [rdx + rdi + 0x24], ecx
lea rsi, [r12 + 0x100]
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], r15
mov qword [rbp - 0x40], r15
mov r8d, 9
lea rdx, str.flex_grow
lea rcx, [rbp - 0x58]
call fcn.1400026e0
lea rdx, [rbp - 0x58]
cmp qword [rbp - 0x40], 0x10
cmovae rdx, qword [rbp - 0x58]
mov r9, rbx
mov rcx, r15
mov r8, qword [rbp - 0x48]
movabs r14, 0x100000001b3
test r8, r8
je 0x140045e63
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, r8
jb 0x140045e50
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0xa8]
mov rcx, rsi
call fcn.140035500
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140045e83
mov rbx, qword [rsi + 8]
lea rcx, [rbp - 0x58]
call fcn.140002050
cmp rbx, qword [r12 + 0x108]
je 0x140045eca
mov dword [rsp + 0x20], r15d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rbx + 0x30]
call fcn.1400b1bec
lea rcx, vtable.zcom::FlexGrow.0
mov qword [rbp + 0x48], rcx
movss xmm7, dword [rax + 0x10]
mov byte [rbp + 0x50], 1
jmp 0x140045edd
lea rax, vtable.zcom::FlexGrow.0
mov qword [rbp + 0x48], rax
movaps xmm7, xmm10
mov byte [rbp + 0x50], 0
movss dword [rbp + 0x58], xmm7
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], r15
mov r8d, 0xb
lea rdx, str.flex_shrink
lea rcx, [rbp - 0x38]
call fcn.1400026e0
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 0x10
cmovae rdx, qword [rbp - 0x38]
movabs r9, 0xcbf29ce484222325
mov rcx, r15
mov r8, qword [rbp - 0x28]
test r8, r8
je 0x140045f43
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, r8
jb 0x140045f30
lea r8, [rbp - 0x38]
lea rdx, [rbp + 0xb8]
mov rcx, rsi
call fcn.140035500
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140045f63
mov rbx, qword [rsi + 8]
lea rcx, [rbp - 0x38]
call fcn.140002050
cmp rbx, qword [r12 + 0x108]
je 0x140045faa
mov dword [rsp + 0x20], r15d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rbx + 0x30]
call fcn.1400b1bec
lea rcx, vtable.zcom::FlexShrink.0
mov qword [rbp + 0x60], rcx
movss xmm6, dword [rax + 0x10]
mov byte [rbp + 0x68], 1
jmp 0x140045fbd
lea rax, vtable.zcom::FlexShrink.0
mov qword [rbp + 0x60], rax
movaps xmm6, xmm10
mov byte [rbp + 0x68], 0
movss dword [rbp + 0x70], xmm6
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], r15
mov qword [rbp], r15
mov r8d, 0xd
lea rdx, str.flex_max_size
lea rcx, [rbp - 0x18]
call fcn.1400026e0
lea rdx, [rbp - 0x18]
cmp qword [rbp], 0x10
cmovae rdx, qword [rbp - 0x18]
movabs r9, 0xcbf29ce484222325
mov rcx, r15
mov r8, qword [rbp - 8]
test r8, r8
je 0x140046023
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, r8
jb 0x140046010
lea r8, [rbp - 0x18]
lea rdx, [rbp + 0xc8]
mov rcx, rsi
call fcn.140035500
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140046043
mov rbx, qword [rsi + 8]
lea rcx, [rbp - 0x18]
call fcn.140002050
cmp rbx, qword [r12 + 0x108]
je 0x140046095
mov dword [rsp + 0x20], r15d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rbx + 0x30]
call fcn.1400b1bec
lea rcx, vtable.zcom::FlexMaxSize.0
mov qword [rbp + 0x78], rcx
mov ebx, dword [rax + 0x10]
mov dword [rsp + 0x34], ebx
mov dword [rbp + 0x88], ebx
mov byte [rbp + 0x80], 1
jmp 0x1400460b6
lea rax, vtable.zcom::FlexMaxSize.0
mov qword [rbp + 0x78], rax
mov eax, 0x7fffffff
mov dword [rsp + 0x34], eax
mov dword [rbp + 0x88], eax
mov byte [rbp + 0x80], 0
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], r15
mov qword [rbp + 0x20], r15
mov r8d, 0xd
lea rdx, str.flex_min_size
lea rcx, [rbp + 8]
call fcn.1400026e0
lea rdx, [rbp + 8]
cmp qword [rbp + 0x20], 0x10
cmovae rdx, qword [rbp + 8]
movabs r9, 0xcbf29ce484222325
mov rcx, r15
mov r8, qword [rbp + 0x18]
test r8, r8
je 0x140046113
nop
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, r8
jb 0x140046100
lea r8, [rbp + 8]
lea rdx, [rbp + 0xd8]
mov rcx, rsi
call fcn.140035500
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140046133
mov rbx, qword [rsi + 8]
lea rcx, [rbp + 8]
call fcn.140002050
cmp rbx, qword [r12 + 0x108]
je 0x14004617b
mov dword [rsp + 0x20], r15d
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rbx + 0x30]
call fcn.1400b1bec
lea rcx, vtable.zcom::FlexMinSize.0
mov qword [rbp + 0x90], rcx
mov r15d, dword [rax + 0x10]
mov r14b, 1
jmp 0x14004618c
lea rax, vtable.zcom::FlexMinSize.0
mov qword [rbp + 0x90], rax
xor r14b, r14b
mov byte [rbp + 0x98], r14b
mov dword [rbp + 0xa0], r15d
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
xor ebx, ebx
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
lea r8d, [rbx + 0xa]
lea rdx, str.flex_align
lea rcx, [rbp + 0x28]
call fcn.1400026e0
lea rdx, [rbp + 0x28]
cmp qword [rbp + 0x40], 0x10
cmovae rdx, qword [rbp + 0x28]
movabs r9, 0xcbf29ce484222325
mov ecx, ebx
mov r8, qword [rbp + 0x38]
test r8, r8
je 0x140046203
movabs r10, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x1400461f0
lea r8, [rbp + 0x28]
lea rdx, [rbp + 0xe8]
mov rcx, rsi
call fcn.140035500
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x140046223
mov rbx, qword [rsi + 8]
lea rcx, [rbp + 0x28]
call fcn.140002050
cmp rbx, qword [r12 + 0x108]
je 0x14004625f
mov dword [rsp + 0x20], 0
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [rbx + 0x30]
call fcn.1400b1bec
mov r8d, dword [rax + 0x10]
mov dl, 1
jmp 0x140046264
xor r8d, r8d
xor dl, dl
cmp byte [rbp + 0x50], 0
je 0x140046286
movss dword [rsp + 0x3c], xmm7
mov byte [rsp + 0x40], 1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rsp + 0x3c]
mov qword [rcx + rdi + 0x28], rax
cmp byte [rbp + 0x68], 0
je 0x1400462a8
movss dword [rsp + 0x60], xmm6
mov byte [rsp + 0x64], 1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rsp + 0x60]
mov qword [rcx + rdi + 0x30], rax
cmp byte [rbp + 0x80], 0
je 0x1400462cf
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x58], eax
mov byte [rsp + 0x5c], 1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rsp + 0x58]
mov qword [rcx + rdi + 0x38], rax
test r14b, r14b
je 0x1400462ec
mov dword [rbp - 0x70], r15d
mov byte [rbp - 0x6c], 1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rbp - 0x70]
mov qword [rcx + rdi + 0x40], rax
test dl, dl
je 0x140046308
mov dword [rbp - 0x80], r8d
mov byte [rbp - 0x7c], 1
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rbp - 0x80]
mov qword [rcx + rdi + 0x48], rax
lea rax, [r13 - 1]
cmp qword [rsp + 0x70], rax
jne 0x14004631f
mov rax, qword [rbp + 0xf8]
mov byte [rax + rdi + 0x64], 1
mov r8d, dword [rsp + 0x38]
inc r8d
mov dword [rsp + 0x38], r8d
mov rax, qword [rsp + 0x68]
add rax, 8
mov qword [rsp + 0x68], rax
add rdi, 0x68
movsxd rdx, r8d
mov qword [rsp + 0x70], rdx
cmp rdx, r13
movzx r14d, byte [rsp + 0x31]
movabs rbx, 0xcbf29ce484222325
mov r15d, 0
jb 0x140045cc0
mov rbx, qword [rbp + 0x100]
mov r13, qword [rbp - 0x68]
movups xmm1, xmmword [r13 + 0x358]
movups xmmword [rbp - 0x80], xmm1
mov r9d, dword [r13 + 0x60]
mov dword [rsp + 0x60], r9d
mov r8d, dword [r13 + 0x64]
mov dword [rsp + 0x3c], r8d
mov rax, qword [r13 + 0x360]
movq rcx, xmm1
mov qword [rsp + 0x68], rcx
lea r10d, [rax + rcx]
mov dword [rsp + 0x58], r10d
mov rdx, rcx
shr rdx, 0x20
shr rax, 0x20
add edx, eax
mov qword [rsp + 0x70], rdx
mov r12d, r9d
sub r12d, r10d
mov esi, r8d
sub esi, edx
mov dword [rsp + 0x34], esi
movzx r14d, byte [r13 + 0x388]
mov byte [rsp + 0x30], r14b
movzx ecx, byte [r13 + 0x389]
mov byte [rsp + 0x32], cl
cmp byte [rsp + 0x31], 0
jne 0x140046415
mov dword [rsp + 0x60], r8d
mov dword [rsp + 0x3c], r9d
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x70], r10d
mov eax, r12d
mov r12d, esi
mov esi, eax
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x32], r14b
movzx r14d, cl
mov byte [rsp + 0x30], cl
mov rdx, qword [rbp + 0xf8]
test r14b, r14b
je 0x1400465c6
mov r14d, r15d
xorps xmm6, xmm6
xorps xmm8, xmm8
xorps xmm7, xmm7
cmp rdx, rbx
je 0x1400464c7
movd xmm9, r12d
cvtdq2ps xmm9, xmm9
lea rdi, [rdx + 0x34]
nop dword [rax + rax]
movaps xmm0, xmm9
mulss xmm0, dword [rdi - 0x2c]
call fcn.140096108
cvttss2si ecx, xmm0
mov edx, dword [rdi - 0x34]
add edx, ecx
mov dword [rdi + 0x1c], edx
mov dword [rdi + 0x20], edx
cmp byte [rdi + 0x30], 0
jne 0x14004647c
mov eax, dword [r13 + 0x37c]
jmp 0x14004647f
mov eax, r15d
add eax, edx
add r14d, eax
cmp byte [rdi - 8], 0
je 0x140046491
movss xmm0, dword [rdi - 0xc]
jmp 0x140046494
movaps xmm0, xmm6
addss xmm8, xmm0
cmp byte [rdi], 0
je 0x1400464a5
movss xmm0, dword [rdi - 4]
jmp 0x1400464a8
movaps xmm0, xmm6
addss xmm7, xmm0
add rdi, 0x68
lea rax, [rdi - 0x34]
cmp rax, rbx
jne 0x140046450
mov rbx, qword [rbp + 0x100]
mov rdx, qword [rbp + 0xf8]
cmp r14d, r12d
jge 0x140046547
ucomiss xmm8, xmm6
jp 0x1400464d8
je 0x1400465c0
mov r15d, r12d
sub r15d, r14d
cmp rdx, rbx
je 0x1400465c0
lea rdi, [rdx + 0x3c]
nop dword [rax + rax]
cmp byte [rdi - 0x10], 0
je 0x140046538
movss xmm1, dword [rdi - 0x14]
divss xmm1, xmm8
movd xmm0, r15d
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movd xmm1, dword [rdi + 0x14]
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.140096108
cvttss2si eax, xmm0
cmp byte [rdi], 0
je 0x14004652b
mov ecx, dword [rdi - 4]
jmp 0x140046530
mov ecx, 0x7fffffff
cmp ecx, eax
cmovl eax, ecx
mov dword [rdi + 0x18], eax
add rdi, 0x68
lea rax, [rdi - 0x3c]
cmp rax, rbx
jne 0x1400464f0
jmp 0x1400465b2
jle 0x1400465c0
ucomiss xmm7, xmm6
jp 0x140046550
je 0x1400465c0
sub r14d, r12d
cmp rdx, rbx
je 0x1400465c0
lea rdi, [rdx + 0x44]
nop dword [rax]
cmp byte [rdi - 0x10], 0
je 0x1400465a5
movss xmm2, dword [rdi - 0x14]
divss xmm2, xmm7
movd xmm0, dword [rdi + 0xc]
cvtdq2ps xmm0, xmm0
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
subss xmm0, xmm1
call fcn.140096108
cvttss2si eax, xmm0
cmp byte [rdi], 0
je 0x14004659a
mov ecx, dword [rdi - 4]
jmp 0x14004659d
mov ecx, r15d
cmp eax, ecx
cmovl eax, ecx
mov dword [rdi + 0x10], eax
add rdi, 0x68
lea rax, [rdi - 0x44]
cmp rax, rbx
jne 0x140046560
mov rdx, qword [rbp + 0xf8]
mov rbx, qword [rbp + 0x100]
movzx r14d, byte [rsp + 0x30]
movzx r15d, byte [rsp + 0x32]
cmp rdx, rbx
je 0x140046663
lea rdi, [rdx + 4]
test r14b, r14b
jne 0x140046620
nop
mov eax, dword [rdi - 4]
mov dword [rdi + 0x50], eax
mov r14d, dword [rdi]
test r15b, r15b
je 0x140046608
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rdi + 8]
call fcn.140096108
cvttss2si eax, xmm0
add eax, r14d
jmp 0x14004660b
mov eax, r14d
mov dword [rdi + 0x54], eax
add rdi, 0x68
lea rax, [rdi - 4]
cmp rax, rbx
jne 0x1400465e0
jmp 0x140046655
mov r14d, dword [rdi]
test r15b, r15b
je 0x140046642
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rdi + 8]
call fcn.140096108
cvttss2si eax, xmm0
add eax, r14d
jmp 0x140046645
mov eax, r14d
mov dword [rdi + 0x54], eax
add rdi, 0x68
lea rax, [rdi - 4]
cmp rax, rbx
jne 0x140046620
mov rdx, qword [rbp + 0xf8]
mov rbx, qword [rbp + 0x100]
xor r11d, r11d
mov dword [rsp + 0x38], r11d
lea r9, [r13 + 0x37c]
movzx r14d, byte [rsp + 0x31]
cmp rdx, rbx
je 0x1400466ac
lea r8, [rdx + 0x54]
cmp byte [r8 + 0x10], 0
jne 0x14004668d
mov ecx, dword [r9]
jmp 0x14004668f
xor ecx, ecx
add ecx, dword [r8]
add r11d, ecx
add r8, 0x68
lea rax, [r8 - 0x54]
cmp rax, rbx
jne 0x140046681
mov dword [rsp + 0x38], r11d
mov byte [rsp + 0x31], r14b
xor r8d, r8d
xor r10d, r10d
movzx eax, byte [rsp + 0x33]
test al, al
je 0x1400466d1
cmp byte [rsp + 0x30], r8b
jne 0x1400466ce
mov r10d, r11d
lea r9, [r13 + 0x37c]
jmp 0x1400466d1
mov r10d, r12d
cmp rdx, rbx
je 0x14004672e
test al, al
jne 0x1400466fb
add rdx, 0x54
nop
mov dword [rdx + 8], r8d
mov eax, dword [r9]
add eax, dword [rdx]
add r8d, eax
lea rdx, [rdx + 0x68]
lea rax, [rdx - 0x54]
cmp rax, rbx
jne 0x1400466e0
jmp 0x140046720
add rdx, 0x5c
nop
mov ecx, dword [rdx - 8]
mov eax, r10d
sub eax, ecx
sub eax, r8d
mov dword [rdx], eax
add ecx, dword [r9]
add r8d, ecx
lea rdx, [rdx + 0x68]
lea rax, [rdx - 0x5c]
cmp rax, rbx
jne 0x140046700
mov rdx, qword [rbp + 0xf8]
mov rbx, qword [rbp + 0x100]
test r15b, r15b
jne 0x140046767
xor esi, esi
mov dword [rsp + 0x34], esi
mov rcx, rdx
cmp rdx, rbx
je 0x1400467f8
nop word [rax + rax]
mov eax, dword [rcx + 0x58]
cmp eax, esi
cmovle eax, esi
mov esi, eax
add rcx, 0x68
cmp rcx, rbx
jne 0x140046750
mov dword [rsp + 0x34], eax
cmp rdx, rbx
je 0x1400467f8
lea rdi, [rdx + 0x4c]
cmp byte [r13 + 0x384], 0
je 0x14004678f
mov eax, dword [r13 + 0x380]
cmp byte [rdi], 0
je 0x140046792
mov eax, dword [rdi - 4]
jmp 0x140046792
mov eax, dword [rdi - 0x28]
test eax, eax
jne 0x1400467a9
mov eax, esi
sub eax, dword [rdi + 0xc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rdi - 0x30]
jmp 0x1400467d8
cmp eax, 1
jne 0x1400467ba
mov eax, esi
sub eax, dword [rdi + 0xc]
cdq
sub eax, edx
sar eax, 1
jmp 0x1400467e1
cmp eax, 2
jne 0x1400467e4
mov eax, esi
sub eax, dword [rdi + 0xc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm10
subss xmm1, dword [rdi - 0x30]
mulss xmm0, xmm1
call fcn.140096108
cvttss2si eax, xmm0
mov dword [rdi + 0x14], eax
add rdi, 0x68
lea rax, [rdi - 0x4c]
cmp rax, rbx
jne 0x140046774
mov rdx, qword [rbp + 0xf8]
xor r9d, r9d
mov r12d, r9d
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
sar rax, 3
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140046921
mov ebx, r9d
mov r15, rcx
mov r13d, dword [rbp - 0x7c]
mov rsi, qword [rsp + 0x68]
nop dword [rax]
mov rdi, qword [r15]
test r14b, r14b
jne 0x140046866
mov ecx, dword [rdx + rbx + 0x5c]
mov eax, dword [rdx + rbx + 0x60]
mov dword [rdx + rbx + 0x5c], eax
mov dword [rdx + rbx + 0x60], ecx
mov rdx, qword [rbp + 0xf8]
mov ecx, dword [rdx + rbx + 0x54]
mov eax, dword [rdx + rbx + 0x58]
mov dword [rdx + rbx + 0x54], eax
mov dword [rdx + rbx + 0x58], ecx
mov rdx, qword [rbp + 0xf8]
mov ecx, dword [rdx + rbx + 0x60]
add ecx, dword [rdi + 0x3c]
add ecx, r13d
mov eax, dword [rdx + rbx + 0x5c]
add eax, dword [rdi + 0x38]
add eax, esi
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x54], ecx
mov rdx, qword [rbp + 0xf8]
mov r8d, dword [rdx + rbx + 0x58]
mov ecx, dword [rdx + rbx + 0x54]
lea r14, [rdi + 0x64]
cmp ecx, dword [rdi + 0x60]
jne 0x14004689d
cmp r8d, dword [r14]
je 0x1400468f4
mov eax, ecx
test ecx, ecx
cmovs eax, r9d
mov dword [rdi + 0x60], eax
mov eax, r9d
test r8d, r8d
cmovns eax, r8d
mov dword [r14], eax
mov rax, qword [rdi + 8]
mov rax, qword [rax + 0x10]
mov rcx, qword [rax + 0x2f0]
add rcx, 0xd8
lea rdx, [rdi + 0x10]
call fcn.1400611d0
mov byte [rdi + 0x18], 1
mov rax, qword [rdi]
mov r8d, dword [r14]
mov edx, dword [rdi + 0x60]
mov rcx, rdi
call qword [rax + 0xa0]
mov rdx, qword [rbp + 0xf8]
xor r9d, r9d
inc r12d
add r15, 8
add rbx, 0x68
movsxd rax, r12d
cmp rax, qword [rsp + 0x50]
movzx r14d, byte [rsp + 0x31]
jb 0x140046830
mov esi, dword [rsp + 0x34]
mov r13, qword [rbp - 0x68]
movzx r15d, byte [rsp + 0x32]
mov edx, dword [rsp + 0x38]
add edx, dword [rsp + 0x58]
cmp byte [rsp + 0x30], 0
cmovne edx, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
add ecx, esi
test r15b, r15b
mov eax, dword [rsp + 0x3c]
cmovne ecx, eax
cmp edx, dword [rsp + 0x60]
jne 0x140046952
cmp ecx, eax
je 0x140046a6a
movzx eax, byte [r13 + 0x389]
cmp byte [rsp + 0x31], 0
je 0x1400469c9
test al, al
je 0x140046969
mov ecx, dword [r13 + 0x4c]
lea rax, [r13 + 0x48]
cmp byte [r13 + 0x388], 0
je 0x14004697b
mov edx, dword [rax]
jmp 0x14004697f
cmp dword [rax], edx
jne 0x140046989
cmp dword [r13 + 0x4c], ecx
je 0x140046a6a
mov dword [rax], edx
mov dword [r13 + 0x4c], ecx
mov rax, qword [r13 + 0x320]
test rax, rax
je 0x1400469ab
lock inc dword [rax + 8]
mov rcx, qword [rbp + 0x110]
mov qword [rsp + 0x48], rcx
mov rcx, qword [r13 + 0x318]
mov qword [rbp - 0x68], rcx
mov rdi, qword [r13 + 0x320]
mov qword [rbp - 0x60], rdi
call fcn.140024f10
nop
jmp 0x140046a2d
test al, al
je 0x1400469d1
mov edx, dword [r13 + 0x4c]
lea rax, [r13 + 0x48]
cmp byte [r13 + 0x388], 0
je 0x1400469e3
mov ecx, dword [rax]
jmp 0x1400469e7
cmp dword [rax], ecx
jne 0x1400469ed
cmp dword [r13 + 0x4c], edx
je 0x140046a6a
mov dword [rax], ecx
mov dword [r13 + 0x4c], edx
mov rax, qword [r13 + 0x320]
test rax, rax
je 0x140046a0f
lock inc dword [rax + 8]
mov rcx, qword [rbp + 0x110]
mov qword [rsp + 0x48], rcx
mov rcx, qword [r13 + 0x318]
mov qword [rsp + 0x70], rcx
mov rdi, qword [r13 + 0x320]
mov qword [rsp + 0x78], rdi
call fcn.140024f10
nop
test rdi, rdi
je 0x140046a6a
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140046a5e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x140046a5e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rcx, qword [rbp + 0x110]
mov qword [rsp + 0x48], rcx
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0xc0]
mov byte [r13 + 0x18], 1
lea rcx, [rbp + 0xf8]
call fcn.140046b40
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140046ac7
mov rdx, qword [rbp + 0x120]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x140046ac2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140046b10
call fcn.1400861ac
mov rcx, qword [rbp + 0x128]
xor rcx, rsp
call fcn.140086080
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14008c8c4
nop
call fcn.140046bc0
nop
call fcn.1400016f0
int3
call fcn.14008c8c4
int3