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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x848
movaps xmmword [rsp + 0x830], xmm6
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x58], rdx
mov r15, rcx
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0x828], rax
mov rax, qword [rcx + 0xb0]
mov qword [rsp + 0x38], rax
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0x1c0]
mov r8d, 0x540
mov qword [rsp + 0x70], rcx
mov dl, 0xaa
call fcn.1401d06e0
mov qword [rsp + 0x1b8], 0
mov rsi, qword [r15 + 0xc8]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x50], rax
cmp rsi, qword [r15 + 0xd0]
je 0x1401742b5
lea rax, [r15 + 0xc8]
mov qword [rsp + 0x40], rax
movaps xmm6, xmmword [0x14029ca60]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175166
mov rax, qword [r15 + 0x10]
mov rax, qword [rax + 0x330]
mov rax, qword [fcn.1401c9410]
lea rcx, [rsp + 0x780]
call qword [0x1402f5008]
mov rax, qword [r13 + 0x30]
lea rcx, [rsp + 0x780]
cmp rax, qword [rcx]
jg 0x140173ffc
jmp 0x140174024
mov dword [rsp + 0x48], r8d
cmp byte [r15 + 0x138], 0
je 0x1401766e7
mov rcx, qword [r15 + 0xb0]
mov byte [rsp + 0x40], 1
cmp qword [rcx + 0x10], 0
jne 0x140174024
mov rcx, qword [r15 + 0xb8]
cmp qword [rcx + 0x10], 0
jne 0x140174024
cmp r13, rax
jne 0x140173f90
lea r13, [r15 + 0x28]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401766f1
cmp qword [r15 + 0x40], 0
setne byte [rsp + 0x40]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
shl rdi, 8
movzx eax, bpl
or rax, rdi
lea r9, [rsp + 0x110]
mov qword [r9], rax
mov qword [r9 + 8], r14
mov eax, dword [rsp + 0x48]
mov dword [r9 + 0x10], eax
mov dword [r9 + 0x14], ebx
mov byte [r9 + 0x18], r12b
mov eax, dword [rsp + 0x740]
mov ecx, dword [rsp + 0x743]
mov dword [r9 + 0x19], eax
mov dword [r9 + 0x1c], ecx
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov cl, byte [rsp + 0x40]
mov byte [rsp + 0x20], cl
lea r13, [rsp + 0x780]
mov rcx, rsi
mov rdx, r13
mov r8, qword [rsp + 0x58]
call qword [0x1402f5008]
mov rbp, qword [r13]
mov r14, qword [r13 + 8]
mov rdi, rbp
shr rdi, 8
mov r8d, dword [r13 + 0x10]
mov ebx, dword [r13 + 0x14]
mov r12b, byte [r13 + 0x18]
mov eax, dword [r13 + 0x19]
mov dword [rsp + 0x740], eax
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x743], eax
jmp 0x14017438a
call fcn.1401cbbbc
jmp 0x14017413b
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401766dd
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.1400085a0
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x140174149
mov eax, 1
mov rcx, qword [rsp + 0x1c0]
mov qword [rsp + 0x70], rcx
jmp 0x14017423d
mov rcx, qword [rsp + 0x1c0]
call fcn.1401cbbbc
jmp 0x1401742b5
xor r12d, r12d
jmp 0x14017418f
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14017413b
lock dec dword [rcx]
je 0x1401740c2
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x140174149
lock dec dword [rdi]
je 0x1401740c9
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x140174286
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1402386a0]
cmp qword [rcx + 0x10], rdx
jne 0x140174176
lea rcx, [0x140008640]
cmp rax, rcx
je 0x14017412d
mov rcx, rsi
mov edx, 1
call qword [0x1402f5008]
jmp 0x140174286
xor r12d, r12d
mov rax, r13
mov r8d, 0xaaaaaaaa
xor ebp, ebp
jmp 0x14017437a
lock dec dword [rcx]
jne 0x140174292
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
jmp 0x140174292
lock dec dword [rcx]
jne 0x140174276
call fcn.1401cbbbc
jmp 0x140174276
lock dec dword [rsi + 8]
jne 0x140174286
jmp 0x140174156
mov rax, qword [fcn.1401c9410]
lea rcx, [rsp + 0x780]
call qword [0x1402f5008]
cmp byte [rsi + 8], 0
jne 0x1401765c6
test rsi, rsi
je 0x1401764b6
mov rax, qword [rsp + 0x780]
mov qword [rsi], rax
mov byte [rsi + 8], 1
movabs r10, 0xcf3cf3cf3cf3cf3d
cmp rdi, rax
jle 0x1401751d5
mov rbx, qword [rsp + 0x1b8]
test bl, 1
jne 0x1401740ff
xor eax, eax
cmp rbx, 2
jb 0x1401742ac
shr rbx, 1
imul rax, rbx, 0xa8
mov rcx, qword [rsp + 0x70]
lea r14, [rax + rcx]
add r14, 0xffffffffffffff58
test r14, r14
je 0x140176558
mov rcx, qword [r14 + 0x98]
test rcx, rcx
jne 0x1401741b4
mov rsi, qword [r14 + 0x88]
test rsi, rsi
jne 0x1401741c7
mov rcx, qword [r14]
test rcx, rcx
jne 0x14017419c
dec rbx
add r14, 0xffffffffffffff58
test rbx, rbx
jne 0x14017425d
mov rax, qword [rsp + 0x1b8]
and eax, 1
test rax, rax
jne 0x140174116
mov qword [rsp + 0x1b8], 0
mov rcx, qword [r15]
lea rax, [fcn.14017c620]
cmp qword [rcx + 0x98], rax
jne 0x1401744ff
mov ebx, 0xaaaaaaaa
mov dword [rsp + 0x743], ebx
mov dword [rsp + 0x740], ebx
lea rdx, [0x14012b7b0]
mov r13, qword [r15 + 0xc8]
mov rax, qword [r15 + 0xd0]
cmp qword [rcx + 0x30], rdx
movabs r14, 0xaaaaaaaaaaaaaaaa
movabs rdi, 0xaaaaaaaaaaaaaa
cmp r13, rax
je 0x140174189
cmp byte [r15 + 0x138], 0
je 0x140174128
cmp dword [r15 + 0xe0], 0
mov rcx, qword [r15 + 0xb8]
mov rcx, qword [rcx + 0x38]
jne 0x1401766b5
mov rdx, qword [r15 + 0x10]
mov dl, byte [rdx + 0x51]
xor r8d, r8d
cmp dl, cl
setb cl
mov edx, dword [r13 + 0x40]
xor ebx, ebx
cmp edx, 2
cmovne ebx, edx
test cl, cl
cmove ebx, edx
mov rbp, qword [r13 + 0x30]
mov r14, qword [r13 + 0x38]
mov rdi, rbp
shr rdi, 8
mov r12b, 1
mov rsi, qword [r15 + 0xa8]
test rsi, rsi
jne 0x140173fc3
shl rdi, 8
movzx eax, bpl
or rax, rdi
mov cl, byte [r15 + 0x1b0]
test r12b, r12b
mov rsi, qword [rsp + 0x38]
je 0x1401744d5
test cl, cl
je 0x1401744d5
cmp qword [r15 + 0x198], rax
jne 0x1401743da
cmp qword [r15 + 0x1a0], r14
jne 0x1401743da
cmp dword [r15 + 0x1a8], r8d
jne 0x1401743da
cmp dword [r15 + 0x1ac], ebx
je 0x14017445e
mov qword [r15 + 0x198], rax
mov qword [r15 + 0x1a0], r14
mov dword [r15 + 0x1a8], r8d
mov dword [r15 + 0x1ac], ebx
mov byte [r15 + 0x1b0], r12b
mov ecx, dword [rsp + 0x740]
mov edx, dword [rsp + 0x743]
mov dword [r15 + 0x1b4], edx
mov dword [r15 + 0x1b1], ecx
mov rcx, qword [r15 + 0xa0]
lea r9, [rsp + 0x780]
mov qword [r9], rax
mov qword [r9 + 8], r14
mov dword [r9 + 0x10], r8d
mov dword [r9 + 0x14], ebx
mov byte [r9 + 0x18], r12b
mov eax, dword [rsp + 0x740]
mov edx, dword [rsp + 0x743]
mov dword [r9 + 0x1c], edx
mov dword [r9 + 0x19], eax
mov rdx, r15
mov r8, qword [rsp + 0x58]
call fcn.140195550
cmp qword [rsp + 0x1b8], 0
movabs rdi, 0x8000000000000001
jne 0x1401765d6
test rsi, rsi
je 0x1401744a9
cmp qword [rsp + 0xb0], 0
jne 0x1401744a9
cmp qword [rsi + 0x10], 0
je 0x1401744a9
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x1401744a9
cmp byte [rsi + 0x68], 0
jne 0x14017467f
mov rdx, rsi
call fcn.14014bf60
mov rcx, qword [rsp + 0x828]
xor rcx, rsp
call fcn.1401ce5b0
movaps xmm6, xmmword [rsp + 0x830]
add rsp, 0x848
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r12b, r12b
setne dl
test cl, cl
setne cl
cmp dl, cl
je 0x14017445e
jmp 0x1401743da
xor edi, edi
mov rax, r12
mov ebp, 0xaaaaaaaa
xor r13d, r13d
jmp 0x14017459a
movabs r14, 0xaaaaaaaaaaaaaa
mov ebx, 0xaaaaaaaa
mov dword [rsp + 0x743], ebx
mov dword [rsp + 0x740], ebx
lea rdx, [0x14012b7b0]
mov r12, qword [r15 + 0xc8]
mov rax, qword [r15 + 0xd0]
cmp qword [rcx + 0x30], rdx
cmp r12, rax
je 0x1401744ed
cmp byte [r15 + 0x138], 0
je 0x1401746fa
cmp dword [r15 + 0xe0], 0
mov rcx, qword [r15 + 0xb8]
mov rcx, qword [rcx + 0x38]
jne 0x1401766ca
mov rdx, qword [r15 + 0x10]
mov dl, byte [rdx + 0x51]
xor ebx, ebx
cmp dl, cl
setb cl
mov edx, dword [r12 + 0x40]
xor ebp, ebp
cmp edx, 2
cmovne ebp, edx
test cl, cl
cmove ebp, edx
mov rdi, qword [r12 + 0x30]
mov rcx, qword [r12 + 0x38]
mov qword [rsp + 0x50], rcx
mov r14, rdi
shr r14, 8
mov r13b, 1
mov rsi, qword [r15 + 0xa8]
test rsi, rsi
jne 0x14017471e
shl r14, 8
movzx eax, dil
or rax, r14
mov cl, byte [r15 + 0x1b0]
test r13b, r13b
mov rsi, qword [rsp + 0x38]
je 0x14017466a
test cl, cl
je 0x14017466a
cmp qword [r15 + 0x198], rax
jne 0x1401745ff
mov rcx, qword [rsp + 0x50]
cmp qword [r15 + 0x1a0], rcx
jne 0x1401745ff
cmp dword [r15 + 0x1a8], ebx
jne 0x1401745ff
cmp dword [r15 + 0x1ac], ebp
je 0x14017445e
mov qword [r15 + 0x198], rax
mov r8, qword [rsp + 0x50]
mov qword [r15 + 0x1a0], r8
mov dword [r15 + 0x1a8], ebx
mov dword [r15 + 0x1ac], ebp
mov byte [r15 + 0x1b0], r13b
mov ecx, dword [rsp + 0x740]
mov edx, dword [rsp + 0x743]
mov dword [r15 + 0x1b4], edx
mov dword [r15 + 0x1b1], ecx
mov rcx, qword [r15 + 0xa0]
lea r9, [rsp + 0x780]
mov qword [r9], rax
mov qword [r9 + 8], r8
mov dword [r9 + 0x10], ebx
mov dword [r9 + 0x14], ebp
mov byte [r9 + 0x18], r13b
jmp 0x14017443b
test r13b, r13b
setne dl
test cl, cl
setne cl
cmp dl, cl
je 0x14017445e
jmp 0x1401745ff
mov rax, qword [rsi]
mov r8, qword [rax + 8]
inc r8
xor edx, edx
cmp r8, qword [rax]
mov r9, qword [rax + 0x18]
cmove r8, rdx
imul r10, r8, 0xa8
lea r8, [r9 + r10]
mov eax, dword [r9 + r10 + 0x78]
mov r9, qword [r9 + r10 + 0x30]
test r9, r9
jne 0x1401746c8
mov r9, qword [rsi + 0x50]
cmp qword [r8 + 0x90], r9
je 0x140174701
jb 0x1401744a1
jmp 0x1401744a9
cmp dword [r8 + 0x40], 0
jne 0x1401746f5
mov rdx, qword [r8 + 0x38]
lea r10, [rdx + rdi]
cmp r10, 2
jb 0x140174863
lea r10, [r9 + rdx]
sar r10, 0x3f
btc r10, 0x3f
add r9, rdx
cmovo r9, r10
mov rdx, r9
jmp 0x1401746b0
xor edi, edi
jmp 0x1401744f2
cmp rdx, qword [rsi + 0x58]
jne 0x1401766ff
mov rsi, qword [rsp + 0x38]
cmp eax, dword [rsi + 0x60]
jl 0x1401744a1
jmp 0x1401744a9
cmp byte [r15 + 0x138], 0
je 0x1401745aa
mov rcx, qword [r15 + 0xb0]
mov byte [rsp + 0x40], 1
cmp qword [rcx + 0x10], 0
jne 0x14017477e
mov rcx, qword [r15 + 0xb8]
cmp qword [rcx + 0x10], 0
jne 0x14017477e
cmp r12, rax
jne 0x140174828
lea r12, [r15 + 0x28]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14017670f
cmp qword [r15 + 0x40], 0
setne byte [rsp + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
shl r14, 8
movzx eax, dil
or rax, r14
lea r9, [rsp + 0x110]
mov qword [r9], rax
mov rax, qword [rsp + 0x50]
mov qword [r9 + 8], rax
mov dword [r9 + 0x10], ebx
mov dword [r9 + 0x14], ebp
mov byte [r9 + 0x18], r13b
mov eax, dword [rsp + 0x740]
mov ecx, dword [rsp + 0x743]
mov dword [r9 + 0x19], eax
mov dword [r9 + 0x1c], ecx
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov cl, byte [rsp + 0x40]
mov byte [rsp + 0x20], cl
lea r12, [rsp + 0x780]
mov rcx, rsi
mov rdx, r12
mov r8, qword [rsp + 0x58]
call qword [0x1402f5008]
mov rdi, qword [r12]
mov rax, qword [r12 + 8]
mov qword [rsp + 0x50], rax
mov r14, rdi
shr r14, 8
mov ebx, dword [r12 + 0x10]
mov ebp, dword [r12 + 0x14]
mov r13b, byte [r12 + 0x18]
mov eax, dword [r12 + 0x19]
mov dword [rsp + 0x740], eax
mov eax, dword [r12 + 0x1c]
mov dword [rsp + 0x743], eax
jmp 0x1401745aa
mov rax, qword [r15 + 0x10]
mov rax, qword [rax + 0x330]
mov rax, qword [fcn.1401c9410]
lea rcx, [rsp + 0x780]
call qword [0x1402f5008]
mov rax, qword [r12 + 0x30]
lea rcx, [rsp + 0x780]
cmp rax, qword [rcx]
jg 0x140174756
jmp 0x14017477e
add rdi, r9
cmp rdi, 1
jbe 0x140174876
mov rsi, qword [rsp + 0x38]
jmp 0x1401746b0
cmp r9, rdx
mov rsi, qword [rsp + 0x38]
je 0x1401746b0
int3
call fcn.1401509f0
jmp 0x140174942
lock dec dword [rcx + 8]
jne 0x140174d65
call fcn.140170140
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174d65
call fcn.1401cbbbc
jmp 0x140174995
lea rcx, [rax - 0xa0]
lea rdx, [rax - 0x64]
add rax, 0xffffffffffffffd8
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0xf0], xmm0
mov ecx, dword [rdx + 0x30]
mov dword [rsp + 0x770], ecx
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movaps xmmword [rsp + 0x760], xmm2
movaps xmmword [rsp + 0x750], xmm1
movaps xmmword [rsp + 0x740], xmm0
mov cl, byte [rax + 2]
lea rdx, [rsp + 0xed]
mov byte [rdx + 2], cl
movzx eax, word [rax]
mov word [rdx], ax
xor ebp, ebp
jmp 0x140174b94
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x140174887
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.1400085a0
mov rcx, rdi
call fcn.1401cbbbc
mov ebp, dword [rsp + 0x60]
jmp 0x1401749a3
lock dec dword [rcx]
jne 0x140174ce7
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174ce7
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140174995
lock dec dword [rcx]
je 0x1401748af
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x1401749a3
lock dec dword [rdi]
je 0x140174927
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x140174a6e
lock dec dword [rcx]
jne 0x140174d9f
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174d9f
lock dec dword [rcx]
jne 0x140174f03
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174f03
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x780]
call fcn.1401973b0
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174b85
lock dec dword [rcx]
jne 0x140174eb6
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174eb6
lock dec dword [rsi + 8]
jne 0x140174ea5
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1402386a0]
cmp qword [rcx + 0x10], rdx
jne 0x140174a60
lea rcx, [0x140008640]
cmp rax, rcx
je 0x140174983
mov rcx, rsi
mov edx, 1
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174ea5
lock dec dword [rcx]
jne 0x140174e94
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174e94
lock dec dword [rcx]
jne 0x140174eea
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174eea
cmp rax, qword [r15 + 0xd8]
jae 0x1401749ef
test rax, rax
je 0x1401764b6
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
xor r8d, r8d
mov qword [rsp + 0x780], r8
movaps xmm0, xmmword [rsp + 0xf0]
movaps xmm1, xmmword [rsp + 0x100]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
mov ecx, 0xa
lea rdx, [rsp + 0x7a8]
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [rdx + 0x50]
mov dword [rax + 0x78], ecx
mov cl, byte [rdx + 0x54]
mov byte [rax + 0x7c], cl
lea rdx, [rsp + 0xed]
movzx ecx, word [rdx]
mov word [rax + 0x80], cx
mov cl, byte [rdx + 2]
mov byte [rax + 0x82], cl
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0x88], rcx
mov qword [rsp + 0x808], r8
mov rcx, qword [rsp + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [rsp + 0x80]
mov qword [rax + 0x98], rcx
mov qword [rsp + 0x818], r8
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [r15 + 0xd0], rax
jmp 0x140174db5
mov rbp, r13
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x780], rax
movaps xmm0, xmmword [rsp + 0xf0]
movaps xmm1, xmmword [rsp + 0x100]
lea rdx, [rsp + 0x788]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x7a8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x7b0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x7b8], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x7c0], eax
mov eax, dword [rsp + 0x770]
mov dword [rdx + 0x6c], eax
movaps xmm0, xmmword [rsp + 0x740]
movaps xmm1, xmmword [rsp + 0x750]
movaps xmm2, xmmword [rsp + 0x760]
movups xmmword [rdx + 0x5c], xmm2
movups xmmword [rdx + 0x4c], xmm1
movups xmmword [rdx + 0x3c], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x7f8], eax
movzx eax, byte [rsp + 0x37]
mov byte [rsp + 0x7fc], al
lea rcx, [rsp + 0xed]
movzx eax, byte [rcx + 2]
mov byte [rdx + 0x7a], al
movzx eax, word [rcx]
mov word [rdx + 0x78], ax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x808], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x810], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x818], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x820], rax
mov rbx, qword [r15 + 0xc8]
mov rax, qword [r15 + 0xd0]
mov rcx, rax
sub rcx, rbx
sar rcx, 3
imul rcx, r10
cmp rcx, rbp
je 0x140174ab7
jbe 0x140176472
imul rsi, rbp, 0xa8
mov qword [rsp + 0x780], 0
mov rcx, qword [rbx + rsi]
mov rax, qword [rsp + 0x68]
mov qword [rbx + rsi], rax
test rcx, rcx
jne 0x140174961
add rbx, rsi
lea rdx, [rsp + 0x788]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rbx + 0x18], xmm1
movups xmmword [rbx + 8], xmm0
lea rdi, [rbx + 0x28]
mov ecx, 0xa
lea r8, [rsp + 0x7a8]
mov rsi, r8
rep movsq qword [rdi], qword [rsi]
mov al, byte [r8 + 0x54]
mov byte [rbx + 0x7c], al
mov eax, dword [r8 + 0x50]
mov dword [rbx + 0x78], eax
movzx eax, word [rdx + 0x78]
mov word [rbx + 0x80], ax
mov al, byte [rdx + 0x7a]
mov byte [rbx + 0x82], al
mov rax, qword [rsp + 0x808]
mov qword [rsp + 0x808], 0
mov rcx, qword [rbx + 0x88]
mov qword [rbx + 0x88], rax
test rcx, rcx
jne 0x140174891
mov rax, qword [rsp + 0x810]
mov qword [rbx + 0x90], rax
mov rax, qword [rsp + 0x818]
mov qword [rsp + 0x818], 0
mov rcx, qword [rbx + 0x98]
mov qword [rbx + 0x98], rax
test rcx, rcx
jne 0x1401749b0
mov rax, qword [rsp + 0x820]
mov qword [rbx + 0xa0], rax
mov rax, qword [r15 + 0xd0]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
sub rax, rcx
sar rax, 3
imul rax, r10
cmp rax, rbp
jbe 0x140176472
imul rax, rbp, 0xa8
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140174e20
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140174e20
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140174e20
mov rdx, qword [rcx + 0x98]
test rdx, rdx
je 0x140176509
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140176509
mov rcx, qword [rcx + 0xa0]
mov qword [rcx + 0x10], rbp
mov rcx, qword [r15 + 0xc8]
mov rdx, qword [r15 + 0xd0]
sub rdx, rcx
sar rdx, 3
imul rdx, r10
cmp rdx, rbp
jbe 0x140176472
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
mov ebp, dword [rsp + 0x60]
je 0x140174e83
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140174e83
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140174e83
mov rax, qword [rcx + 0x98]
test rax, rax
je 0x14017650c
mov al, byte [rax + 4]
test al, al
jne 0x14017650c
mov rcx, qword [rsp + 0x818]
test rcx, rcx
jne 0x140174a7d
mov rsi, qword [rsp + 0x808]
test rsi, rsi
jne 0x140174a32
mov rcx, qword [rsp + 0x780]
test rcx, rcx
jne 0x140174a10
mov rax, qword [r15 + 0xc8]
mov rsi, qword [r15 + 0xd0]
cmp rax, rsi
je 0x140176689
mov rbx, rsi
add rbx, 0xffffffffffffff58
je 0x140176558
mov rcx, qword [rsi - 0x10]
test rcx, rcx
jne 0x140174a9a
mov rsi, qword [rsi - 0x20]
test rsi, rsi
jne 0x140175f6c
mov rcx, qword [rbx]
test rcx, rcx
jne 0x1401749cd
mov qword [r15 + 0xd0], rbx
test bpl, bpl
mov rcx, qword [rsp + 0x38]
jne 0x1401760ea
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x1a0], rax
cmp byte [r15 + 0x168], 0
jne 0x140176403
mov rbx, qword [rsp + 0x110]
mov qword [rsp + 0x110], 0
lea rdx, [rsp + 0x118]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x750], xmm1
movaps xmmword [rsp + 0x740], xmm0
lea r8, [rsp + 0x138]
mov rax, qword [r8 + 0x4d]
mov qword [rsp + 0x7cd], rax
movups xmm0, xmmword [r8 + 0x40]
movaps xmmword [rsp + 0x7c0], xmm0
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmm2, xmmword [r8 + 0x20]
movups xmm3, xmmword [r8 + 0x30]
movaps xmmword [rsp + 0x7b0], xmm3
movaps xmmword [rsp + 0x7a0], xmm2
movaps xmmword [rsp + 0x790], xmm1
movaps xmmword [rsp + 0x780], xmm0
movzx eax, byte [rdx + 0x7a]
mov byte [rsp + 0xf2], al
movzx eax, word [rdx + 0x78]
mov word [rsp + 0xf0], ax
mov r14, qword [rsp + 0x198]
mov qword [rsp + 0x198], 0
mov r13, qword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x1a8]
mov qword [rsp + 0x1a8], 0
mov r12, qword [rsp + 0x1b0]
cmp qword [rcx], 0
je 0x140176239
mov rsi, qword [rcx + 8]
mov rcx, qword [rsi]
mov rax, qword [rsi + 0x10]
inc rax
cmp rax, rcx
mov edx, 0
cmovne rdx, rax
cmp qword [rsi + 8], rdx
je 0x1401762e0
cmp rax, rcx
mov ecx, 0
cmovne rcx, rax
mov qword [rsi + 0x10], rcx
mov rax, qword [rsi + 0x18]
imul rcx, rcx, 0xa8
mov qword [rax + rcx], rbx
movaps xmm0, xmmword [rsp + 0x740]
movaps xmm1, xmmword [rsp + 0x750]
movups xmmword [rax + rcx + 0x18], xmm1
movups xmmword [rax + rcx + 8], xmm0
movaps xmm0, xmmword [rsp + 0x780]
movaps xmm1, xmmword [rsp + 0x790]
movaps xmm2, xmmword [rsp + 0x7a0]
movaps xmm3, xmmword [rsp + 0x7b0]
movups xmmword [rax + rcx + 0x28], xmm0
movups xmmword [rax + rcx + 0x38], xmm1
movups xmmword [rax + rcx + 0x48], xmm2
movups xmmword [rax + rcx + 0x58], xmm3
movaps xmm0, xmmword [rsp + 0x7c0]
movups xmmword [rax + rcx + 0x68], xmm0
mov rdx, qword [rsp + 0x7cd]
mov qword [rax + rcx + 0x75], rdx
movzx edx, word [rsp + 0xf0]
mov word [rax + rcx + 0x80], dx
movzx edx, byte [rsp + 0xf2]
mov byte [rax + rcx + 0x82], dl
mov qword [rax + rcx + 0x88], r14
mov qword [rax + rcx + 0x90], r13
mov qword [rax + rcx + 0x98], rbp
mov qword [rax + rcx + 0xa0], r12
mov rdx, qword [rsp + 0x38]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rdx + 0x18]
inc rax
mov qword [rdx + 0x10], rax
cmp rcx, rax
cmova rax, rcx
mov qword [rdx + 0x18], rax
mov rcx, qword [rsp + 0x1a8]
test rcx, rcx
jne 0x140175e1e
mov rsi, qword [rsp + 0x198]
test rsi, rsi
jne 0x140176019
mov rcx, qword [rsp + 0x110]
test rcx, rcx
jne 0x140175dfc
mov rsi, qword [r15 + 0xc8]
cmp rsi, qword [r15 + 0xd0]
je 0x14017422a
mov rcx, qword [rsi]
test rcx, rcx
je 0x14017649e
mov rax, qword [rcx + 0x18]
lea rdx, [0x1401ca7d0]
cmp rax, rdx
je 0x1401751ac
lea rdx, [0x1401cb8c0]
cmp rax, rdx
je 0x140175dbf
xor edx, edx
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
test al, al
jne 0x140175f47
cmp dword [rsi + 0x40], 1
je 0x1401765e8
mov rdi, qword [rsi + 0x30]
mov rsi, qword [rsp + 0x58]
cmp byte [rsi + 8], 0
je 0x1401741e0
mov rax, qword [rsi]
cmp rdi, rax
jg 0x14017422a
xor ebp, ebp
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1b0], rax
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
mov rax, qword [r15 + 0xc8]
cmp rax, qword [r15 + 0xd0]
je 0x14017665d
cmp byte [rax + 0x81], 0
jne 0x1401764aa
mov rcx, qword [rax + 0x98]
test rcx, rcx
je 0x1401752a2
movzx ecx, byte [rcx + 4]
test cl, cl
jne 0x1401752a2
cmp qword [rax + 0xa0], 0
je 0x1401752a2
mov rcx, qword [rax + 0x98]
test rcx, rcx
je 0x140176503
mov cl, byte [rcx + 4]
test cl, cl
jne 0x140176503
mov rax, qword [rax + 0xa0]
mov qword [rax + 0x10], 0xffffffffffffffff
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1b0], rax
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
mov rax, qword [r15 + 0xc8]
cmp qword [r15 + 0xd0], rax
je 0x140176472
mov rcx, qword [rax]
mov qword [rsp + 0x110], rcx
mov qword [rax], 0
movups xmm0, xmmword [rax + 8]
movups xmm1, xmmword [rax + 0x18]
lea rdx, [rsp + 0x118]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
mov rcx, qword [rax + 0x75]
lea r8, [rsp + 0x138]
mov qword [r8 + 0x4d], rcx
movups xmm0, xmmword [rax + 0x68]
movups xmmword [r8 + 0x40], xmm0
movups xmm0, xmmword [rax + 0x28]
movups xmm1, xmmword [rax + 0x38]
movups xmm2, xmmword [rax + 0x48]
movups xmm3, xmmword [rax + 0x58]
movups xmmword [r8 + 0x30], xmm3
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
movzx ecx, byte [rax + 0x82]
mov byte [rdx + 0x7a], cl
movzx ecx, word [rax + 0x80]
mov word [rdx + 0x78], cx
mov rcx, qword [rax + 0x88]
mov qword [rsp + 0x198], rcx
mov qword [rax + 0x88], 0
mov rcx, qword [rax + 0x90]
mov qword [rsp + 0x1a0], rcx
mov rcx, qword [rax + 0x98]
mov qword [rsp + 0x1a8], rcx
mov qword [rax + 0x98], 0
mov rax, qword [rax + 0xa0]
mov qword [rsp + 0x1b0], rax
mov rax, qword [r15 + 0xc8]
mov rsi, qword [r15 + 0xd0]
mov rcx, rsi
sub rcx, rax
sar rcx, 3
imul rcx, r10
dec rcx
je 0x140174ec4
cmp rsi, rax
je 0x140176472
imul rcx, rcx, 0xa8
mov rdx, qword [rax + rcx + 0x98]
test rdx, rdx
je 0x140175465
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140175465
add rax, rcx
cmp qword [rax + 0xa0], 0
je 0x140175465
mov rcx, qword [rax + 0x98]
test rcx, rcx
je 0x140176506
mov cl, byte [rcx + 4]
test cl, cl
jne 0x140176506
mov rax, qword [rax + 0xa0]
mov qword [rax + 0x10], 0xffffffffffffffff
mov rax, qword [r15 + 0xd0]
cmp rax, qword [r15 + 0xc8]
je 0x140176472
mov dword [rsp + 0x60], ebp
mov rcx, qword [rax - 0xa8]
mov qword [rsp + 0x68], rcx
mov qword [rax - 0xa8], 0
movups xmm0, xmmword [rax - 0x90]
movaps xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rax - 0xa0]
movaps xmmword [rsp + 0xc0], xmm0
mov rcx, qword [rax - 0x80]
mov qword [rsp + 0xb8], rcx
mov rcx, qword [rax - 0x78]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rax - 0x70]
mov qword [rsp + 0xa0], rcx
mov ecx, dword [rax - 0x68]
mov dword [rsp + 0x64], ecx
mov ecx, dword [rax - 0x34]
mov dword [rsp + 0x730], ecx
movups xmm0, xmmword [rax - 0x44]
movaps xmmword [rsp + 0x720], xmm0
movups xmm0, xmmword [rax - 0x54]
movaps xmmword [rsp + 0x710], xmm0
movups xmm0, xmmword [rax - 0x64]
movaps xmmword [rsp + 0x700], xmm0
mov ecx, dword [rax - 0x30]
mov dword [rsp + 0x48], ecx
movzx ecx, byte [rax - 0x2c]
mov byte [rsp + 0x37], cl
movzx ecx, byte [rax - 0x26]
lea rdx, [rsp + 0xe7]
mov byte [rdx + 2], cl
movzx ecx, word [rax - 0x28]
mov word [rdx], cx
mov rcx, qword [rax - 0x20]
mov qword [rsp + 0x88], rcx
mov rcx, qword [rax - 0x18]
mov qword [rsp + 0x90], rcx
mov qword [rax - 0x20], 0
mov rcx, qword [rax - 0x10]
mov qword [rsp + 0x80], rcx
mov qword [rax - 0x10], 0
mov rcx, qword [rax - 8]
mov qword [rsp + 0x78], rcx
mov rbx, qword [r15 + 0xd0]
sub rbx, qword [r15 + 0xc8]
sar rbx, 3
imul rbx, r10
dec rbx
cmp rbx, 2
jb 0x1401748b9
mov ecx, 1
xor edx, edx
xor ebp, ebp
mov r13, rbp
add rdx, 2
mov r12, qword [r15 + 0xc8]
mov rax, qword [r15 + 0xd0]
mov r8, rax
sub r8, r12
sar r8, 3
imul r8, r10
cmp rdx, rbx
jae 0x140175e3b
cmp r8, rdx
jbe 0x140176472
cmp r8, rcx
jbe 0x140176472
imul r10, rcx, 0xa8
lea r9, [r12 + r10]
cmp dword [r12 + r10 + 0x40], 0
jne 0x140175dea
mov r11, qword [r9 + 0x30]
mov r10, qword [r9 + 0x38]
movabs rsi, 0x8000000000000001
add rsi, r10
cmp rsi, 2
jb 0x140176512
lea rsi, [r11 + r10]
sar rsi, 0x3f
movabs rdi, 0x8000000000000000
xor rsi, rdi
add r11, r10
cmovo r11, rsi
mov r10, r11
imul r11, rdx, 0xa8
add r11, r12
cmp dword [r11 + 0x40], 0
jne 0x140175df3
mov rdi, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movabs r14, 0x8000000000000001
add r14, rsi
cmp r14, 2
jb 0x140176535
lea r14, [rdi + rsi]
sar r14, 0x3f
movabs rbp, 0x8000000000000000
xor r14, rbp
add rdi, rsi
cmovo rdi, r14
mov rsi, rdi
mov r9d, dword [r9 + 0x78]
cmp r9d, dword [r11 + 0x78]
setg r9b
cmp r10, rsi
setg r10b
je 0x140175697
mov r9d, r10d
test r9b, r9b
movabs r10, 0xcf3cf3cf3cf3cf3d
jne 0x1401756a9
mov rdx, rcx
mov rbp, rdx
cmp r8, r13
je 0x140175e47
cmp r8, rbp
jbe 0x140176472
cmp r8, r13
jbe 0x140176472
imul rsi, rbp, 0xa8
imul rdi, r13, 0xa8
mov rax, qword [r12 + rsi]
mov qword [r12 + rsi], 0
mov rcx, qword [r12 + rdi]
mov qword [r12 + rdi], rax
test rcx, rcx
jne 0x1401761f2
add rsi, r12
add rdi, r12
movups xmm0, xmmword [rsi + 8]
movups xmm1, xmmword [rsi + 0x18]
movups xmmword [rdi + 0x18], xmm1
movups xmmword [rdi + 8], xmm0
mov rax, qword [rsi + 0x75]
mov qword [rdi + 0x75], rax
movups xmm0, xmmword [rsi + 0x68]
movups xmmword [rdi + 0x68], xmm0
movups xmm0, xmmword [rsi + 0x28]
movups xmm1, xmmword [rsi + 0x38]
movups xmm2, xmmword [rsi + 0x48]
movups xmm3, xmmword [rsi + 0x58]
movups xmmword [rdi + 0x58], xmm3
movups xmmword [rdi + 0x48], xmm2
movups xmmword [rdi + 0x38], xmm1
movups xmmword [rdi + 0x28], xmm0
movzx eax, byte [rsi + 0x82]
mov byte [rdi + 0x82], al
movzx eax, word [rsi + 0x80]
mov word [rdi + 0x80], ax
mov rax, qword [rsi + 0x88]
mov qword [rsi + 0x88], 0
mov rcx, qword [rdi + 0x88]
mov qword [rdi + 0x88], rax
test rcx, rcx
jne 0x1401764e2
mov rax, qword [rsi + 0x90]
mov qword [rdi + 0x90], rax
mov rax, qword [rsi + 0x98]
mov qword [rsi + 0x98], 0
mov rcx, qword [rdi + 0x98]
mov qword [rdi + 0x98], rax
test rcx, rcx
jne 0x140175f4f
mov rax, qword [rsi + 0xa0]
mov qword [rdi + 0xa0], rax
mov rax, qword [r15 + 0xd0]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
sub rax, rcx
sar rax, 3
imul rax, r10
cmp rax, r13
jbe 0x140176472
imul rax, r13, 0xa8
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140175834
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140175834
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140175834
mov rdx, qword [rcx + 0x98]
test rdx, rdx
je 0x1401764a1
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x1401764a1
mov rcx, qword [rcx + 0xa0]
mov qword [rcx + 0x10], r13
mov rcx, qword [r15 + 0xc8]
mov rdx, qword [r15 + 0xd0]
sub rdx, rcx
sar rdx, 3
imul rdx, r10
cmp rdx, r13
jbe 0x140176472
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140175894
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140175894
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140175894
mov rax, qword [rcx + 0x98]
test rax, rax
je 0x1401764a4
movzx eax, byte [rax + 4]
test al, al
jne 0x1401764a4
lea rdx, [rbp*2]
lea rcx, [rbp*2 + 1]
cmp rcx, rbx
jb 0x140175599
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0xf0], xmm0
mov eax, dword [rsp + 0x730]
mov dword [rsp + 0x770], eax
movaps xmm0, xmmword [rsp + 0x700]
movaps xmm1, xmmword [rsp + 0x710]
movaps xmm2, xmmword [rsp + 0x720]
movaps xmmword [rsp + 0x760], xmm2
movaps xmmword [rsp + 0x750], xmm1
movaps xmmword [rsp + 0x740], xmm0
lea rcx, [rsp + 0xe7]
movzx eax, byte [rcx + 2]
lea rdx, [rsp + 0xed]
mov byte [rdx + 2], al
movzx eax, word [rcx]
mov word [rdx], ax
test rbp, rbp
je 0x140174920
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0xa0]
lea rax, [r8 + r9]
sar rax, 0x3f
movabs rcx, 0x8000000000000000
xor rax, rcx
mov rbx, r8
add rbx, r9
movabs rdx, 0x8000000000000001
lea rcx, [r9 + rdx - 2]
cmovo rbx, rax
lea rax, [r8 + rdx]
add rax, 0xfffffffffffffffe
cmp rax, 0xfffffffffffffffe
setb al
cmp r8, r9
sete dl
or dl, al
cmp rcx, 0xfffffffffffffffe
setb al
cmovae rbx, r9
cmp dword [rsp + 0x64], 0
setne dil
cmovne rbx, r8
or dil, al
or dil, dl
mov byte [rsp + 0x36], dil
mov r13, rbp
lea r14, [rbp - 1]
mov rbp, r14
shr rbp, 1
mov rsi, qword [r15 + 0xc8]
mov rax, qword [r15 + 0xd0]
mov rcx, rax
sub rcx, rsi
sar rcx, 3
imul rcx, r10
cmp rcx, rbp
jbe 0x140176472
imul rdx, rbp, 0xa8
lea r12, [rsi + rdx]
cmp dword [rsi + rdx + 0x40], 0
jne 0x140175d39
mov r8, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
movabs r9, 0x8000000000000001
add r9, rdx
cmp r9, 2
jb 0x140176584
lea r9, [r8 + rdx]
sar r9, 0x3f
movabs r11, 0x8000000000000000
xor r9, r11
add r8, rdx
cmovo r8, r9
mov rdx, r8
test dil, dil
je 0x1401764a7
xor r8d, r8d
mov r9d, dword [rsp + 0x48]
cmp dword [r12 + 0x78], r9d
setg r8b
xor r9d, r9d
cmp rdx, rbx
setg r9b
cmovne r8d, r9d
cmp r8b, 1
jne 0x140174b91
cmp rcx, r13
je 0x140175c60
jbe 0x140176472
imul rdi, r13, 0xa8
mov rax, qword [r12]
mov qword [r12], 0
mov rcx, qword [rsi + rdi]
mov qword [rsi + rdi], rax
test rcx, rcx
jne 0x140175d60
add rsi, rdi
movups xmm0, xmmword [r12 + 8]
movups xmm1, xmmword [r12 + 0x18]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, qword [r12 + 0x75]
mov qword [rsi + 0x75], rax
movups xmm0, xmmword [r12 + 0x68]
movups xmmword [rsi + 0x68], xmm0
movups xmm0, xmmword [r12 + 0x28]
movups xmm1, xmmword [r12 + 0x38]
movups xmm2, xmmword [r12 + 0x48]
movups xmm3, xmmword [r12 + 0x58]
movups xmmword [rsi + 0x58], xmm3
movups xmmword [rsi + 0x48], xmm2
movups xmmword [rsi + 0x38], xmm1
movups xmmword [rsi + 0x28], xmm0
movzx eax, byte [r12 + 0x82]
mov byte [rsi + 0x82], al
movzx eax, word [r12 + 0x80]
mov word [rsi + 0x80], ax
mov rax, qword [r12 + 0x88]
mov qword [r12 + 0x88], 0
mov rcx, qword [rsi + 0x88]
mov qword [rsi + 0x88], rax
test rcx, rcx
jne 0x140175da1
mov rax, qword [r12 + 0x90]
mov qword [rsi + 0x90], rax
mov rax, qword [r12 + 0x98]
mov qword [r12 + 0x98], 0
mov rcx, qword [rsi + 0x98]
mov qword [rsi + 0x98], rax
test rcx, rcx
movzx edi, byte [rsp + 0x36]
jne 0x140175d43
mov rax, qword [r12 + 0xa0]
mov qword [rsi + 0xa0], rax
mov rax, qword [r15 + 0xd0]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
sub rax, rcx
sar rax, 3
imul rax, r10
cmp rax, r13
jbe 0x140176472
imul rax, r13, 0xa8
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140175bf2
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140175bf2
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140175bf2
mov rdx, qword [rcx + 0x98]
test rdx, rdx
je 0x140175d9e
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140175d9e
mov rcx, qword [rcx + 0xa0]
mov qword [rcx + 0x10], r13
mov rcx, qword [r15 + 0xc8]
mov rdx, qword [r15 + 0xd0]
sub rdx, rcx
sar rdx, 3
imul rdx, r10
cmp rdx, r13
jbe 0x140176472
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140175c51
movzx edx, byte [rdx + 4]
test dl, dl
jne 0x140175c51
add rcx, rax
cmp qword [rcx + 0xa0], 0
je 0x140175c51
mov rax, qword [rcx + 0x98]
test rax, rax
je 0x140175d9b
mov al, byte [rax + 4]
test al, al
jne 0x140175d9b
cmp r14, 1
ja 0x1401759a9
jmp 0x140174b94
cmp rax, qword [r15 + 0xd8]
jae 0x140175d82
test rax, rax
je 0x1401764b6
mov rcx, qword [r12]
mov qword [rax], rcx
xor edx, edx
mov qword [r12], rdx
movups xmm0, xmmword [r12 + 8]
movups xmm1, xmmword [r12 + 0x18]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
lea rsi, [r12 + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r12 + 0x7c]
mov byte [rax + 0x7c], cl
mov ecx, dword [r12 + 0x78]
mov dword [rax + 0x78], ecx
mov cl, byte [r12 + 0x82]
mov byte [rax + 0x82], cl
movzx ecx, word [r12 + 0x80]
mov word [rax + 0x80], cx
mov rcx, qword [r12 + 0x88]
mov qword [rax + 0x88], rcx
mov qword [r12 + 0x88], rdx
mov rcx, qword [r12 + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [r12 + 0x98]
mov qword [rax + 0x98], rcx
mov qword [r12 + 0x98], rdx
mov rcx, qword [r12 + 0xa0]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov dil, byte [rsp + 0x36]
mov qword [r15 + 0xd0], rax
jmp 0x140175b87
mov rdx, qword [r12 + 0x30]
jmp 0x140175a31
lock dec dword [rcx]
jne 0x140175b71
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175b71
lock dec dword [rcx]
jne 0x140175a96
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175a96
mov rcx, qword [rsp + 0x40]
mov rdx, r12
call fcn.1401973b0
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175d2d
int3
int3
lock dec dword [rcx + 8]
jne 0x140175b32
call fcn.140170140
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175b32
mov rax, qword [rcx + 0x28]
mov bpl, 1
test rax, rax
je 0x1401751d7
mov al, byte [rax + 4]
test al, al
jne 0x1401751d7
cmp qword [rcx + 0x30], 0
jne 0x1401751ac
jmp 0x1401751d7
mov r10, qword [r9 + 0x30]
jmp 0x14017562c
mov rsi, qword [r11 + 0x30]
jmp 0x14017567f
lock dec dword [rcx]
jne 0x140175152
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175152
lock dec dword [rcx]
jne 0x140175130
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175130
mov rbp, rcx
cmp r8, r13
jne 0x1401756b5
cmp r13, rbp
jbe 0x140176472
imul rcx, rbp, 0xa8
add r12, rcx
cmp rax, qword [r15 + 0xd8]
jae 0x140175f2e
test rax, rax
je 0x1401764b6
mov rcx, qword [r12]
mov qword [rax], rcx
xor edx, edx
mov qword [r12], rdx
movups xmm0, xmmword [r12 + 8]
movups xmm1, xmmword [r12 + 0x18]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
lea rsi, [r12 + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r12 + 0x7c]
mov byte [rax + 0x7c], cl
mov ecx, dword [r12 + 0x78]
mov dword [rax + 0x78], ecx
mov cl, byte [r12 + 0x82]
mov byte [rax + 0x82], cl
movzx ecx, word [r12 + 0x80]
mov word [rax + 0x80], cx
mov rcx, qword [r12 + 0x88]
mov qword [rax + 0x88], rcx
mov qword [r12 + 0x88], rdx
mov rcx, qword [r12 + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [r12 + 0x98]
mov qword [rax + 0x98], rcx
mov qword [r12 + 0x98], rdx
mov rcx, qword [r12 + 0xa0]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [r15 + 0xd0], rax
jmp 0x1401757c8
mov rcx, qword [rsp + 0x40]
mov rdx, r12
call fcn.1401973b0
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175f22
mov bpl, 1
jmp 0x1401751d7
lock dec dword [rcx]
jne 0x1401757b3
call fcn.1401cbbbc
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x1401757b3
lock dec dword [rsi + 8]
jne 0x140174ef7
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1402386a0]
cmp qword [rcx + 0x10], rdx
jne 0x140175f96
lea rcx, [0x140008640]
cmp rax, rcx
je 0x140175fb3
mov rcx, rsi
mov edx, 1
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140174ef7
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140175fc1
lock dec dword [rcx]
je 0x14017600b
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x140175fcf
lock dec dword [rdi]
je 0x140175fd9
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x140175fa4
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x140176012
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.1400085a0
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x140175fcf
call fcn.1401cbbbc
jmp 0x140175fc1
call fcn.1401509f0
jmp 0x140175ff0
lock dec dword [rsi + 8]
jne 0x140175141
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1402386a0]
cmp qword [rcx + 0x10], rdx
jne 0x140176043
lea rcx, [0x140008640]
cmp rax, rcx
je 0x140176060
mov rcx, rsi
mov edx, 1
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x140175141
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14017606e
lock dec dword [rcx]
je 0x1401760b8
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x14017607c
lock dec dword [rdi]
je 0x140176086
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x140176051
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401760bf
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.1400085a0
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x14017607c
call fcn.1401cbbbc
jmp 0x14017606e
call fcn.1401509f0
jmp 0x14017609d
lea rcx, [rsp + 0x1b8]
lea rdx, [rsp + 0x110]
call fcn.140155460
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x14017511f
mov rax, qword [rsp + 0x1b8]
mov edx, 8
test al, 1
je 0x140176103
mov rdx, qword [rsp + 0x1c8]
mov rcx, rax
shr rcx, 1
cmp rcx, rdx
je 0x1401760c6
lea rdx, [rsp + 0x1c0]
test al, 1
je 0x140176122
mov rdx, qword [rsp + 0x1c0]
imul rax, rcx, 0xa8
add rax, rdx
je 0x1401764b6
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
xor r9d, r9d
mov qword [rsp + 0x110], r9
lea rdx, [rsp + 0x118]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
mov ecx, 0xa
lea r8, [rsp + 0x138]
mov rsi, r8
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r8 + 0x54]
mov byte [rax + 0x7c], cl
mov ecx, dword [r8 + 0x50]
mov dword [rax + 0x78], ecx
movzx ecx, word [rdx + 0x78]
mov word [rax + 0x80], cx
mov cl, byte [rdx + 0x7a]
mov byte [rax + 0x82], cl
mov rcx, qword [rsp + 0x198]
mov qword [rax + 0x88], rcx
mov qword [rsp + 0x198], r9
mov rcx, qword [rsp + 0x1a0]
mov qword [rax + 0x90], rcx
mov rcx, qword [rsp + 0x1a8]
mov qword [rax + 0x98], rcx
mov qword [rsp + 0x1a8], r9
mov rcx, qword [rsp + 0x1b0]
mov qword [rax + 0xa0], rcx
add qword [rsp + 0x1b8], 2
jmp 0x14017511f
lock dec dword [rcx]
jne 0x1401756f2
mov rax, qword [rcx + 0x10]
call qword [0x1402f5008]
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x1401756f2
mov rdi, rcx
mov rsi, rax
call fcn.14016f780
mov rcx, rdi
call fcn.1401cbbbc
mov rax, rsi
movabs r10, 0xcf3cf3cf3cf3cf3d
mov rsi, qword [rsi]
jmp 0x14017628f
mov ecx, 0x28
call fcn.1401cbbc4
mov rsi, rax
mov qword [rax], 4
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
mov ecx, 0x2a0
call fcn.1401cbf8c
mov rdi, rax
and rax, qword [0x1402cbde0]
cmp rax, qword [0x1402cbdc8]
je 0x140176298
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x20], 0
mov rax, qword [rsp + 0x38]
mov qword [rax], rsi
movabs r10, 0xcf3cf3cf3cf3cf3d
mov qword [rax + 8], rsi
jmp 0x14017501a
mov rcx, rdi
call fcn.1401508a0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax]
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x20], 0
mov qword [rax], rsi
test rcx, rcx
movabs r10, 0xcf3cf3cf3cf3cf3d
je 0x14017628f
jmp 0x140176214
mov rcx, rdi
call fcn.14016f780
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x14017636b
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsi + 0x10]
lea rcx, [rsp + 0x700]
mov qword [rcx], rax
call fcn.14014b4b0
mov rax, qword [rsi + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rax]
mov rcx, rax
shr rcx, 1
lea rdi, [rax + rcx]
add rdi, 2
mov ecx, 0x28
call fcn.1401cbbc4
mov rsi, rax
mov qword [rax], rdi
imul rcx, rdi, 0xa8
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
call fcn.1401cbf8c
mov rdi, rax
and rax, qword [0x1402cbde0]
cmp rax, qword [0x1402cbdc8]
mov rax, qword [rsp + 0x48]
je 0x140176395
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x20], 0
mov rdi, qword [rax + 0x20]
mov qword [rax + 0x20], rsi
test rdi, rdi
jne 0x1401762cb
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 8]
mov rsi, qword [rax + 0x20]
mov qword [rcx + 8], rsi
mov rcx, qword [rsi]
mov rax, qword [rsi + 0x10]
inc rax
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x14017503a
mov rcx, rdi
call fcn.1401508a0
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 8]
jmp 0x14017634e
movabs r8, 0x8000000000000001
add r8, rdx
cmp r8, 1
ja 0x140176426
cmp rdx, rcx
je 0x140176426
jmp 0x14017650f
cmp dword [rsp + 0x150], 0
jne 0x1401763fe
mov rcx, qword [rsp + 0x148]
movabs r8, 0x8000000000000001
add r8, rcx
cmp r8, 2
jb 0x1401763a8
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
mov rcx, rdx
jmp 0x140176426
mov rdx, qword [rsp + 0x140]
cmp qword [r15 + 0x160], rdx
jg 0x140174f36
mov eax, dword [rsp + 0x188]
test rdx, rdx
jne 0x1401763c5
xor ecx, ecx
lea rdx, [rsp + 0x780]
mov r8, qword [rsp + 0x98]
mov qword [rdx], r8
mov qword [rdx + 8], rcx
mov dword [rdx + 0x10], eax
mov rcx, r15
call fcn.140014b20
cmp byte [r15 + 0x168], 0
mov rcx, qword [rsp + 0x38]
movabs r10, 0xcf3cf3cf3cf3cf3d
je 0x140174f36
mov byte [r15 + 0x168], 0
jmp 0x140174f36
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, [0x1402a1c81]
mov r8d, 0x601
call fcn.140207060
int3
int3
int3
int3
dec dword [r15 + 0xe0]
jmp 0x14017525a
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x28
call fcn.140207060
lock dec dword [rcx + 8]
jne 0x14017577c
call fcn.140170140
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x14017577c
int3
int3
int3
int3
int3
int3
cmp r11, r10
je 0x14017562c
movabs rsi, 0x8000000000000001
add r11, rsi
cmp r11, 1
ja 0x14017562c
int3
cmp rdi, rsi
je 0x14017567f
movabs r14, 0x8000000000000001
add rdi, r14
cmp rdi, 1
ja 0x14017567f
int3
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x44
call fcn.140207060
cmp r8, rdx
jne 0x14017659d
movabs r10, 0xcf3cf3cf3cf3cf3d
mov dil, byte [rsp + 0x36]
jmp 0x140175a31
movabs r9, 0x8000000000000001
add r8, r9
cmp r8, 1
movabs r10, 0xcf3cf3cf3cf3cf3d
mov dil, byte [rsp + 0x36]
ja 0x140175a31
int3
mov rax, qword [rsp + 0x780]
mov qword [rsi], rax
jmp 0x140174217
lea rcx, [rsp + 0x1b8]
call fcn.140154060
jmp 0x140174477
mov rdi, qword [rsi + 0x30]
mov rax, qword [rsi + 0x38]
movabs rcx, 0x8000000000000001
add rcx, rax
cmp rcx, 2
jae 0x140176632
cmp rdi, rax
je 0x140176500
shr rax, 0x3f
not rax
movabs rcx, 0x8000000000000001
add rax, rcx
mov rdi, rax
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x1401751ba
xor ecx, ecx
cmp rdi, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub rdi, rax
cmovo rdi, rdx
movabs r10, 0xcf3cf3cf3cf3cf3d
jmp 0x1401751ba
lea rax, str.front___called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, str._empty__
mov r8d, 0x273
call fcn.140207060
lea rax, str.vector::pop_back_called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, str._empty__
mov r8d, 0x6a5
call fcn.140207060
mov rdx, qword [r15 + 0x10]
mov dl, byte [rdx + 0x51]
xor r8d, r8d
cmp dl, cl
setae r8b
jmp 0x140174352
mov rdx, qword [r15 + 0x10]
mov dl, byte [rdx + 0x51]
xor ebx, ebx
cmp dl, cl
setae bl
jmp 0x14017456a
call fcn.1401509f0
jmp 0x1401740e4
mov r8d, dword [rsp + 0x48]
jmp 0x14017438a
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140174011
mov rsi, qword [rsp + 0x38]
jl 0x1401744a1
jmp 0x1401744a9
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14017476b