Function at 0x140154f10
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, 0x168
movaps xmmword [rsp + 0x150], xmm7
movaps xmmword [rsp + 0x140], xmm6
mov rsi, rdx
mov rbx, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x138], rax
mov r15, qword [rdx]
test r15, r15
jne 0x1401555f7
xor r12d, r12d
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb0], r13
mov r14, qword [rbx + 0x30]
xorps xmm7, xmm7
movaps xmmword [rsp + 0x50], xmm7
mov qword [rsp + 0x60], 0
mov rax, qword [0x1403428e0]
and rax, r14
mov rdi, r14
cmp rax, qword [0x1403428c8]
je 0x1401564eb
mov qword [rsp + 0x68], r14
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0xa0], xmm7
xor eax, eax
mov byte [rsp + 0xb0], al
movaps xmm6, xmmword [0x140301d60]
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0x100], xmm6
mov qword [rsp + 0x110], r13
mov byte [rsp + 0xf0], al
movups xmmword [rsp + 0xf8], xmm7
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x118], rax
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140155c8e
cmp byte [rbx + 0x42], 0
jne 0x140156447
cmp byte [rbx + 0x20], 0
je 0x1401564e9
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x110]
dec rcx
cmp byte [rbx + 0x21], 0
mov qword [rax + 0x110], rcx
je 0x140155623
mov rdx, qword [rax + 0x40]
cmp rdx, qword [rax + 0x48]
je 0x140155063
cmp rcx, qword [rax + 0x100]
jae 0x140155aab
mov word [rax + 0x78], 0
xor eax, eax
mov byte [rbx + 0x24], al
mov byte [rbx + 0x20], al
test r15, r15
jne 0x1401551c1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x118]
test rcx, rcx
jne 0x1401564fc
xor ecx, ecx
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x14015655a
mov qword [rsp + 0x118], 0
cmp byte [rsp + 0xf0], 0
jne 0x140156564
mov rax, qword [rsp + 0x70]
test rax, rax
jne 0x14015563f
mov rcx, qword [rsp + 0x90]
test rcx, rcx
jne 0x140155e23
cmp byte [rsp + 0xb0], 0
jne 0x1401563e6
mov rbx, qword [rsp + 0x98]
test rbx, rbx
jne 0x140155f7e
mov rdi, qword [rsp + 0x90]
test rdi, rdi
jne 0x14015610f
mov rbx, qword [rsp + 0x78]
test rbx, rbx
jne 0x140155fa4
mov rdi, qword [rsp + 0x70]
test rdi, rdi
jne 0x140155696
mov rcx, qword [rsp + 0x68]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x14015658c
mov qword [rsp + 0x68], 0
mov rbx, qword [rsp + 0x50]
test rbx, rbx
jne 0x1401557ed
mov rdi, qword [rsi]
test rdi, rdi
jne 0x1401559d8
mov qword [rsi], 0
test rdi, rdi
jne 0x140155a05
mov rcx, qword [rsi]
test rcx, rcx
jne 0x140156596
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.140171860
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rbx + 0x30]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r15
mov rcx, qword [rbx + 0x18]
mov al, byte [r15 + 0x14]
mov byte [rsp + 0x128], al
mov rax, qword [r15 + 0xc]
mov qword [rsp + 0x120], rax
mov al, byte [r15 + 0x19]
mov byte [rsp + 0x12d], al
mov eax, dword [r15 + 0x15]
mov dword [rsp + 0x129], eax
mov rax, qword [rcx]
mov rax, qword [rax + 8]
lea rdx, [0x14008b170]
cmp rax, rdx
jne 0x1401565af
cmp byte [rsp + 0x129], 0
je 0x140155882
mov r14, qword [rcx + 0x1d0]
mov rax, qword [fcn.14007a620]
lea r15, [rsp + 0xe0]
mov rcx, r15
call qword [case.0x140211850.0]
mov r12, qword [r15]
mov r15, qword [rsp + 0x38]
mov rax, qword [r15]
mov rax, qword [rax + 0x40]
lea rcx, [0x140156870]
cmp rax, rcx
jne 0x140155c4b
mov rcx, qword [r15 + 0x78]
cmp rcx, qword [r15 + 0x80]
jne 0x140156612
mov rax, qword [r15 + 0x60]
cmp rax, qword [r15 + 0x68]
je 0x140156684
mov bpl, 1
mov r13d, 1
mov dword [r15 + 0xb8], r13d
mov rcx, qword [rsp + 0x38]
cmp r14, rbx
jne 0x1401565c5
cmp qword [rcx + 0x28], 0xffffffffffffffff
jne 0x140155c63
movaps xmmword [rsp + 0x120], xmm6
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
lea rdx, [0x1400a6a80]
cmp rax, rdx
jne 0x140155f0f
mov rax, qword [rcx + 0x90]
mov cl, byte [rcx + 0x1a]
mov byte [rsp + 0x120], cl
mov byte [rsp + 0x121], 0
mov qword [rsp + 0x128], rax
test bpl, bpl
je 0x14015532a
lea rcx, [rbx + 0x38]
movaps xmm0, xmmword [rsp + 0x120]
lea r8, [rsp + 0xd0]
movaps xmmword [r8], xmm0
movups xmm0, xmmword [rsp + 0x38]
lea rdx, [rsp + 0xc0]
movups xmmword [rdx], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
call fcn.140143c20
mov rax, qword [rbx]
mov rax, qword [rax + 0x38]
lea rcx, [0x140149b30]
cmp rax, rcx
jne 0x1401565ff
cmp qword [rbx + 0x100], 0
je 0x14015559c
cmp byte [rbx + 0x160], 0
jne 0x14015559c
mov r14, qword [rbx + 0x58]
mov r15, qword [rbx + 0x118]
test r14, r14
jne 0x14015581f
xor r14d, r14d
add r14, r15
mov rax, qword [rbx + 0x108]
cmp rax, r14
cmovb r14, rax
mov r15, qword [rbx + 0x118]
cmp r14, r15
cmovbe r14, r15
mov r12, qword [rbx + 0x68]
mov rbp, qword [rbx + 0x110]
add r12, qword [rbx + 0x60]
je 0x14015562f
mov rax, qword [rbx + 8]
mov eax, dword [rax + 0x3c]
cmp eax, 1
ja 0x14015562f
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x140156658
mov cl, byte [rax + 0x10]
dec cl
cmp cl, 1
ja 0x140155406
mov rcx, qword [rax]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r13d, 1
lea r8, [method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_64]
mov edx, 1
cmp rax, r8
jne 0x140155ab8
lea rax, [r12 + rdx]
dec rax
cmp rax, 2
cmovae r13, rax
mov r12, r13
sub rbp, r15
add rbp, r14
add rbp, r12
mov rax, qword [rbx + 0x100]
cmp rax, rbp
cmovb rbp, rax
mov eax, 0x100
cmp rbp, rax
cmovae rbp, rax
mov r15, qword [rbx + 0xe8]
sub r15, qword [rbx + 0xe0]
sar r15, 3
lea r14, [rbx + 0x128]
mov rax, qword [rbx + 0x130]
sub rax, qword [rbx + 0x128]
sar rax, 3
sub r15, rax
xor eax, eax
mov rcx, rbp
sub rcx, r15
cmovae rax, rcx
cmp rax, 2
mov r12d, 2
cmovb r12, rax
test r12, r12
jne 0x1401556b5
cmp rbp, r15
jne 0x1401554a9
mov rax, qword [rbx + 0xe8]
sub rax, qword [rbx + 0xe0]
cmp rax, 0x800
je 0x1401554a9
mov rcx, qword [rbx + 0x128]
cmp rcx, qword [rbx + 0x130]
je 0x14015596b
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x1401554c7
mov rcx, qword [rbx + 0x110]
cmp rcx, qword [rbx + 0x100]
jae 0x140155bbb
mov word [rbx + 0x78], 0
cmp byte [rbx + 0x148], 0
jne 0x14015559c
mov r15, qword [rbx + 0x58]
mov r14, qword [rbx + 0x118]
test r15, r15
jne 0x1401558a5
xor r15d, r15d
add r15, r14
cmp r15, qword [rbx + 0x108]
ja 0x1401562ab
mov r15, qword [rbx + 0x58]
mov r14, qword [rbx + 0x110]
test r15, r15
jne 0x140155908
xor r15d, r15d
mov r12, qword [rbx + 0x68]
add r12, qword [rbx + 0x60]
je 0x140155637
mov rax, qword [rbx + 8]
mov eax, dword [rax + 0x3c]
cmp eax, 1
ja 0x140155637
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x140156658
mov cl, byte [rax + 0x10]
dec cl
cmp cl, 1
ja 0x140155585
mov rcx, qword [rax]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r13d, 1
lea r8, [method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_64]
mov edx, 1
cmp rax, r8
jne 0x140155ac6
lea rax, [r12 + rdx]
dec rax
cmp rax, 2
cmovae r13, rax
mov r12, r13
add r14, r15
lea rax, [r12 + r14]
inc rax
cmp rax, qword [rbx + 0x100]
ja 0x140155ba9
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1401555b0
add rcx, 0x20
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x38]
test rbx, rbx
jne 0x140155ad4
mov qword [rsp + 0x38], 0
test rbx, rbx
jne 0x140155b03
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14015507a
lock dec dword [rcx + 8]
jne 0x14015507a
mov edx, 1
call fcn.14007bad0
jmp 0x14015507a
xorps xmm0, xmm0
mov r12, qword [rsi + 8]
movups xmmword [rsi], xmm0
lea rdi, [r15 + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x140154f5a
mov rcx, rdi
call fcn.140047ff0
jmp 0x140154f5a
dec qword [rax + 0x118]
jmp 0x14015504c
xor r12d, r12d
jmp 0x140155406
xor r12d, r12d
jmp 0x140155585
mov rcx, qword [rax + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rbx, qword [rsp + 0x78]
mov r14, qword [rsp + 0x80]
cmp rbx, r14
je 0x1401550d5
mov r15, qword [sym.imp.KERNEL32.dll_SetEvent]
mov rdi, qword [rbx]
test rdi, rdi
je 0x1401566ce
lock inc dword [rdi + 8]
mov rcx, qword [rdi + 0x30]
call r15
lock dec dword [rdi + 8]
je 0x1401566e1
add rbx, 8
cmp rbx, r14
je 0x1401550d5
jmp 0x140155666
lock dec dword [rdi + 8]
jne 0x140155132
mov rcx, rdi
call fcn.140114010
mov rcx, rdi
call fcn.14016eccc
jmp 0x140155132
neg r12
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
mov rax, qword [rbx + 0xe8]
sub rax, qword [rbx + 0xe0]
cmp rax, 0x800
je 0x1401556ec
mov rcx, qword [rbx + 0x128]
cmp rcx, qword [rbx + 0x130]
je 0x14015577e
mov rcx, qword [rbx + 0x128]
mov rax, qword [rbx + 0x130]
cmp rcx, rax
je 0x14015576b
lea rdx, [rax - 8]
mov r14, qword [rax - 8]
mov qword [rbx + 0x130], rdx
cmp rcx, rdx
je 0x140155748
mov rdi, rsi
mov rsi, qword [rax - 0x10]
lea r13, [rsi + 0x18]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140156697
mov qword [rsi + 0x28], 0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rsi, rdi
mov rdi, qword [rsp + 0x30]
test r14, r14
je 0x14015576b
lock inc dword [r14 + 8]
mov qword [rsp + 0xe8], r14
cmp qword [rsp + 0x70], 0
jne 0x140155dca
mov qword [rsp + 0x70], r14
inc r12
mov r14, qword [rsp + 0x28]
je 0x14015547a
jmp 0x1401556c2
sar rax, 3
cmp rax, qword [rbx + 0x100]
jae 0x1401556ec
lea r13, [rsp + 0xe8]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r13], rax
lea r8, [rsp + 0x50]
mov rcx, rbx
mov rdx, r13
call fcn.1400dd3a0
mov r13, qword [r13]
mov rcx, r14
mov rdx, r13
call fcn.140107010
test r13, r13
je 0x1401556ec
lock dec dword [r13 + 8]
jne 0x1401556ec
mov rcx, r13
call fcn.140114010
mov rcx, r13
call fcn.14016eccc
jmp 0x1401556ec
mov rdi, qword [rsp + 0x58]
mov rcx, rbx
cmp rdi, rbx
je 0x140155810
add rdi, 0xfffffffffffffff0
mov rcx, rdi
call fcn.140143750
cmp rdi, rbx
jne 0x1401557fa
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rbx
call fcn.14016eccc
jmp 0x140155165
mov rax, qword [rbx + 8]
mov eax, dword [rax + 0x3c]
test eax, eax
jne 0x140155370
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x140156658
cmp byte [rax + 0x10], 0
jne 0x140155373
mov rcx, qword [rax]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r12d, 1
lea r8, [method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_64]
mov edx, 1
cmp rax, r8
jne 0x1401566a4
lea rax, [r14 + rdx]
dec rax
cmp rax, 2
cmovae r12, rax
mov r14, r12
jmp 0x140155373
test byte [rsp + 0x12b], 0x7f
jne 0x14015522a
mov r14, qword [rcx + 0x1d8]
test r14, r14
jne 0x140155231
jmp 0x14015522a
mov rax, qword [rbx + 8]
mov eax, dword [rax + 0x3c]
test eax, eax
jne 0x1401554ee
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x140156658
cmp byte [rax + 0x10], 0
jne 0x1401554f1
mov rcx, qword [rax]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r12d, 1
lea r8, [method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_64]
mov edx, 1
cmp rax, r8
jne 0x1401566b2
lea rax, [r15 + rdx]
dec rax
cmp rax, 2
cmovae r12, rax
mov r15, r12
jmp 0x1401554f1
mov rax, qword [rbx + 8]
mov eax, dword [rax + 0x3c]
test eax, eax
jne 0x140155515
mov rax, qword [rbx + 0x40]
cmp rax, qword [rbx + 0x48]
je 0x140156658
cmp byte [rax + 0x10], 0
jne 0x140155518
mov rcx, qword [rax]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov r12d, 1
lea r8, [method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_64]
mov edx, 1
cmp rax, r8
jne 0x1401566c0
lea rax, [r15 + rdx]
dec rax
cmp rax, 2
cmovae r12, rax
mov r15, r12
jmp 0x140155518
sar rax, 3
cmp rax, qword [rbx + 0x100]
jae 0x1401554a9
lea r15, [rsp + 0xe8]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15], rax
lea r8, [rsp + 0x50]
mov rcx, rbx
mov rdx, r15
call fcn.1400dd3a0
mov r15, qword [r15]
mov rcx, r14
mov rdx, r15
call fcn.140107010
test r15, r15
je 0x1401554a9
lock dec dword [r15 + 8]
jne 0x1401554a9
mov rcx, r15
call fcn.140114010
mov rcx, r15
call fcn.14016eccc
jmp 0x1401554a9
mov r12, qword [rsi + 8]
test r12, r12
je 0x140155171
mov qword [rsi], 0
mov al, byte [rdi + 0x16]
and al, 0x7f
cmp al, 2
je 0x140155ec6
lock dec dword [r12 + 0x38]
je 0x140155bc8
lock dec dword [rdi + 8]
jne 0x140155181
lea rax, [0x1402ff3a8]
mov qword [rdi], rax
mov rdx, qword [rdi + 0xa0]
test rdx, rdx
jne 0x1401563f5
lea rbx, [rdi + 0x78]
mov r14, qword [rdi + 0x78]
mov r15, qword [rdi + 0x80]
mov rdx, r14
cmp r15, r14
jne 0x1401567c6
mov qword [rdi + 0x80], r14
test rdx, rdx
jne 0x1401566f6
mov r14, qword [rdi + 0x60]
mov rbx, qword [rdi + 0x68]
cmp rbx, r14
jne 0x140155fca
mov rdx, qword [rdi + 0x50]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
lea rax, [0x1402ff408]
mov qword [rdi], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x140155a9e
call fcn.1401571d0
mov rcx, rdi
call fcn.14016eccc
jmp 0x140155181
movzx ecx, word [rdx + 0x10]
mov word [rax + 0x78], cx
jmp 0x140155069
call qword [case.0x140211850.0]
mov rdx, rax
jmp 0x1401553f4
call qword [case.0x140211850.0]
mov rdx, rax
jmp 0x140155573
mov r15, qword [rsp + 0x40]
test r15, r15
je 0x1401555be
mov qword [rsp + 0x38], 0
mov al, byte [rbx + 0x16]
and al, 0x7f
cmp al, 2
je 0x140156162
lock dec dword [r15 + 0x38]
je 0x140155d44
lock dec dword [rbx + 8]
jne 0x1401555d0
lea rax, [0x1402ff3a8]
mov qword [rbx], rax
mov rdx, qword [rbx + 0xa0]
test rdx, rdx
jne 0x140156411
lea r14, [rbx + 0x78]
mov r15, qword [rbx + 0x78]
mov r12, qword [rbx + 0x80]
mov rdx, r15
cmp r12, r15
jne 0x140156806
mov qword [rbx + 0x80], r15
test rdx, rdx
jne 0x140156776
mov r15, qword [rbx + 0x60]
mov r14, qword [rbx + 0x68]
cmp r14, r15
jne 0x140156252
mov rdx, qword [rbx + 0x50]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
lea rax, [0x1402ff408]
mov qword [rbx], rax
mov rcx, qword [rbx + 0x38]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x140155b9c
call fcn.1401571d0
mov rcx, rbx
call fcn.14016eccc
jmp 0x1401555d0
cmp dword [rbx + 0x120], 0
jle 0x14015559c
jmp 0x1401562b8
movzx eax, word [rax + 0x10]
mov word [rbx + 0x78], ax
jmp 0x1401554cd
lea r14, [r12 + 0x40]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401564cf
mov rcx, qword [r12 + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015642d
mov rbx, qword [r12 + 0x50]
mov r13, qword [r12 + 0x58]
xorps xmm0, xmm0
movups xmmword [r12 + 0x50], xmm0
mov rbp, qword [r12 + 0x60]
mov r15, qword [r12 + 0x68]
movups xmmword [r12 + 0x60], xmm0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rbp, r15
jne 0x140155c9b
lea rcx, fcn.140055170
mov rdx, rbx
xor r8d, r8d
call fcn.140054930
jmp 0x140155178
lea r8, [rsp + 0x48]
mov rcx, r15
mov rdx, r12
call qword [case.0x140211850.0]
mov ebp, eax
jmp 0x140155297
lea rdx, [rsp + 0x120]
mov qword [rdx], rcx
xorps xmm0, xmm0
mov rax, qword [rsp + 0x40]
movups xmmword [rsp + 0x38], xmm0
mov qword [rdx + 8], rax
lea rcx, [rsp + 0x50]
call fcn.140123210
jmp 0x14015532a
mov rcx, rdi
call fcn.140047ff0
jmp 0x140155019
mov r12, rbp
cmp r13, r12
jb 0x140156691
mov r14, qword [rbx + r12*8]
mov qword [rbx + r12*8], 0
mov rax, qword [r14 + 8]
mov rcx, r14
call qword [case.0x140211850.0]
test r14, r14
jne 0x140155cdb
inc r12
cmp r12, r13
mov eax, 0
cmove r12, rax
cmp r12, r15
jne 0x140155c9e
jmp 0x140155cf0
lock dec dword [r14]
jne 0x140155cc5
mov rax, qword [r14 + 0x10]
mov rcx, r14
call qword [case.0x140211850.0]
jmp 0x140155cc5
cmp r15, rbp
jbe 0x140155f22
cmp r13, r15
jb 0x140156761
cmp r13, rbp
jb 0x140156764
cmp rbp, r15
jg 0x140156767
shl r15, 3
shl rbp, 3
mov rcx, qword [rbx + rbp]
test rcx, rcx
jne 0x140155d33
add rbp, 8
cmp r15, rbp
jne 0x140155d1c
jmp 0x140155c34
lock dec dword [rcx]
jne 0x140155d25
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140155d25
lea r13, [r15 + 0x40]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401564dc
mov rcx, qword [r15 + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015643a
mov rax, qword [r15 + 0x50]
mov qword [rsp + 0x28], rax
mov rbp, qword [r15 + 0x58]
xorps xmm0, xmm0
movups xmmword [r15 + 0x50], xmm0
mov r12, qword [r15 + 0x60]
mov r14, qword [r15 + 0x68]
movups xmmword [r15 + 0x60], xmm0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r12, r14
jne 0x140156023
lea rcx, fcn.140055170
mov rdx, qword [rsp + 0x28]
xor r8d, r8d
call fcn.140054930
jmp 0x1401555c7
mov rax, qword [rsp + 0x80]
cmp rax, qword [rsp + 0x88]
jb 0x14015670b
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0xe8]
call fcn.1400dd900
mov r13, qword [rsp + 0xe8]
test r13, r13
je 0x14015576b
lock dec dword [r13 + 8]
jne 0x14015576b
mov rcx, r13
call fcn.140114010
mov rcx, r13
call fcn.14016eccc
jmp 0x14015576b
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax + 0xa0]
mov r8, qword [rax + 0xa8]
test rdx, rdx
je 0x140155e3f
lock inc dword [rdx + 8]
call fcn.1400ed4e0
mov rcx, qword [rsp + 0x68]
cmp byte [rcx + 0x168], 0
jne 0x140156750
mov rbx, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
cmp rbx, r14
je 0x1401550e6
mov rdi, qword [rbx]
test rdi, rdi
je 0x140155e7b
lock inc dword [rdi + 8]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax + 0xa0]
mov r8, qword [rax + 0xa8]
test rdx, rdx
je 0x140155e97
lock inc dword [rdx + 8]
mov rcx, rdi
call fcn.1400ed4e0
mov rcx, qword [rsp + 0x68]
cmp byte [rcx + 0x168], 0
jne 0x140156821
test rdi, rdi
je 0x140155ec0
lock dec dword [rdi + 8]
je 0x140156832
add rbx, 8
jmp 0x140155e66
mov rax, qword [r12 + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1401559f9
lea rbx, [r12 + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015684c
mov rax, qword [r12 + 0x78]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1401559f9
lea rdx, [rsp + 0x120]
call qword [case.0x140211850.0]
jmp 0x1401552f0
cmp r13, rbp
jb 0x14015676a
jl 0x14015676d
jne 0x14015612e
cmp r13, r15
jb 0x140156770
test r15, r15
js 0x140156773
je 0x140155c34
shl r15, 3
xor r14d, r14d
mov rcx, qword [rbx + r14]
test rcx, rcx
jne 0x140155f6d
add r14, 8
cmp r15, r14
jne 0x140155f56
jmp 0x140155c34
lock dec dword [rcx]
jne 0x140155f5f
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140155f5f
mov rdi, qword [rsp + 0xa0]
mov rcx, rbx
cmp rdi, rbx
jne 0x1401560d6
mov qword [rsp + 0xa0], rbx
call fcn.14016eccc
jmp 0x140155105
mov rdi, qword [rsp + 0x80]
mov rcx, rbx
cmp rdi, rbx
jne 0x1401560f4
mov qword [rsp + 0x80], rbx
call fcn.14016eccc
jmp 0x140155124
mov r15, qword [rdi + 0x58]
jbe 0x1401561a8
cmp r15, rbx
jb 0x14015678b
cmp r15, r14
jb 0x14015678e
cmp r14, rbx
jg 0x140156791
mov r15, qword [rdi + 0x50]
shl rbx, 7
shl r14, 7
mov rcx, qword [r15 + r14]
test rcx, rcx
jne 0x140156012
sub r14, 0xffffffffffffff80
cmp rbx, r14
jne 0x140155ffb
jmp 0x140155a65
lock dec dword [rcx]
jne 0x140156004
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140156004
mov r13, r12
cmp rbp, r13
jb 0x140156694
mov rax, qword [rsp + 0x28]
mov r15, qword [rax + r13*8]
mov qword [rax + r13*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [case.0x140211850.0]
test r15, r15
jne 0x140156068
inc r13
cmp r13, rbp
mov eax, 0
cmove r13, rax
cmp r13, r14
jne 0x140156026
jmp 0x14015607d
lock dec dword [r15]
jne 0x140156052
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [case.0x140211850.0]
jmp 0x140156052
cmp r14, r12
jbe 0x1401561f1
cmp rbp, r14
jb 0x1401567a0
cmp rbp, r12
jb 0x1401567a3
cmp r12, r14
jg 0x1401567a6
shl r14, 3
shl r12, 3
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + r12]
test rcx, rcx
jne 0x1401560c5
add r12, 8
cmp r14, r12
jne 0x1401560a9
jmp 0x140155db1
lock dec dword [rcx]
jne 0x1401560b7
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401560b7
add rdi, 0xfffffffffffffff8
mov rcx, rdi
call fcn.140081c60
cmp rdi, rbx
jne 0x1401560d6
mov rcx, qword [rsp + 0x98]
jmp 0x140155f92
add rdi, 0xfffffffffffffff8
mov rcx, rdi
call fcn.140081c60
cmp rdi, rbx
jne 0x1401560f4
mov rcx, qword [rsp + 0x78]
jmp 0x140155fb8
lock dec dword [rdi + 8]
jne 0x140155116
mov rcx, rdi
call fcn.140114010
mov rcx, rdi
call fcn.14016eccc
jmp 0x140155116
lea r14, [r13*8]
shl rbp, 3
mov rcx, qword [rbx + rbp]
test rcx, rcx
jne 0x140156151
add rbp, 8
cmp r14, rbp
jne 0x14015613a
jmp 0x140155f37
lock dec dword [rcx]
jne 0x140156143
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140156143
mov rax, qword [r15 + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x140155af8
lea r14, [r15 + 0x70]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140156859
mov rax, qword [r15 + 0x78]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140155af8
cmp r15, r14
jb 0x140156794
jl 0x140156797
je 0x1401562d0
mov r12, qword [rdi + 0x50]
shl r15, 7
shl r14, 7
mov rcx, qword [r12 + r14]
test rcx, rcx
jne 0x1401561e0
sub r14, 0xffffffffffffff80
cmp r15, r14
jne 0x1401561c9
jmp 0x1401562cc
lock dec dword [rcx]
jne 0x1401561d2
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401561d2
cmp rbp, r12
jb 0x1401567a9
jl 0x1401567ac
jne 0x14015631b
cmp rbp, r14
jb 0x1401567af
test r14, r14
js 0x1401567b2
je 0x140155db1
shl r14, 3
xor r15d, r15d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x140156241
add r15, 8
cmp r14, r15
jne 0x140156225
jmp 0x140155db1
lock dec dword [rcx]
jne 0x140156233
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140156233
mov r12, qword [rbx + 0x58]
jbe 0x140156354
cmp r12, r14
jb 0x1401567e0
cmp r12, r15
jb 0x1401567e3
cmp r15, r14
jg 0x1401567e6
mov r12, qword [rbx + 0x50]
shl r14, 7
shl r15, 7
mov rcx, qword [r12 + r15]
test rcx, rcx
jne 0x14015629a
sub r15, 0xffffffffffffff80
cmp r14, r15
jne 0x140156283
jmp 0x140155b63
lock dec dword [rcx]
jne 0x14015628c
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14015628c
cmp dword [rbx + 0x124], 0
jle 0x140155501
mov al, 1
mov byte [rsp + 0xb0], al
mov byte [rbx + 0x148], al
jmp 0x14015559c
mov r14, qword [rdi + 0x58]
cmp r14, rbx
jb 0x14015679a
test rbx, rbx
js 0x14015679d
je 0x140155a65
mov r14, qword [rdi + 0x50]
shl rbx, 7
xor r15d, r15d
mov rcx, qword [r14 + r15]
test rcx, rcx
jne 0x14015630a
sub r15, 0xffffffffffffff80
cmp rbx, r15
jne 0x1401562f3
jmp 0x140155a65
lock dec dword [rcx]
jne 0x1401562fc
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401562fc
lea r15, [rbp*8]
shl r12, 3
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + r12]
test rcx, rcx
jne 0x140156343
add r12, 8
cmp r15, r12
jne 0x140156327
jmp 0x140156206
lock dec dword [rcx]
jne 0x140156335
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140156335
cmp r12, r15
jb 0x1401567e9
jl 0x1401567ec
je 0x14015639b
mov r13, qword [rbx + 0x50]
shl r12, 7
shl r15, 7
mov rcx, qword [r13 + r15]
test rcx, rcx
jne 0x140156386
sub r15, 0xffffffffffffff80
cmp r12, r15
jne 0x140156371
jmp 0x140156397
lock dec dword [rcx]
jne 0x14015637b
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14015637b
mov r15, qword [rbx + 0x58]
cmp r15, r14
jb 0x1401567ef
test r14, r14
js 0x1401567f2
je 0x140155b63
mov r15, qword [rbx + 0x50]
shl r14, 7
xor r12d, r12d
mov rcx, qword [r15 + r12]
test rcx, rcx
jne 0x1401563d5
sub r12, 0xffffffffffffff80
cmp r14, r12
jne 0x1401563be
jmp 0x140155b63
lock dec dword [rcx]
jne 0x1401563c7
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401563c7
mov rcx, qword [rsp + 0x68]
call fcn.1400ed890
jmp 0x1401550f4
lea rbx, [rdi + 0xa0]
mov rcx, rbx
call fcn.1401b5410
mov rcx, qword [rbx]
call fcn.14016eccc
jmp 0x140155a29
lea r14, [rbx + 0xa0]
mov rcx, r14
call fcn.1401b5410
mov rcx, qword [r14]
call fcn.14016eccc
jmp 0x140155b27
mov rcx, r14
call fcn.140047ff0
jmp 0x140155c03
mov rcx, r13
call fcn.140047ff0
jmp 0x140155d7d
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x100]
dec rdx
mov qword [rax + 0x100], rdx
cmp rcx, qword [rax + 0x48]
je 0x14015646f
cmp qword [rax + 0x110], rdx
jae 0x1401564bb
mov word [rax + 0x78], 0
cmp byte [rbx + 0x20], 0
je 0x1401564e9
cmp byte [rbx + 0x21], 0
jne 0x1401564ac
mov rax, qword [rbx + 0x30]
dec qword [rax + 0x108]
mov rcx, qword [rax + 0x40]
cmp rcx, qword [rax + 0x48]
je 0x1401564a6
mov rdx, qword [rax + 0x110]
cmp rdx, qword [rax + 0x100]
jae 0x1401564c5
mov word [rax + 0x78], 0
mov word [rbx + 0x40], 0
mov byte [rbx + 0x42], 0
jmp 0x140155023
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x140156475
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x1401564ac
mov rcx, r14
call fcn.140047ff0
jmp 0x140155bde
mov rcx, r13
call fcn.140047ff0
jmp 0x140155d59
ud2
mov rcx, r14
call fcn.140156f20
mov rdi, qword [rbx + 0x30]
jmp 0x140154f9b
cmp byte [rsp + 0xf0], 0
je 0x140156847
mov rax, qword [rsp + 0xf8]
lea rdx, [rsp + 0x120]
mov qword [rdx], rax
mov qword [rsp + 0xf8], 0
movaps xmm0, xmmword [rsp + 0x100]
xorps xmm1, xmm1
movaps xmmword [rsp + 0x100], xmm1
movups xmmword [rdx + 8], xmm0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140211850.0]
mov rcx, qword [rsp + 0x118]
jmp 0x140155096
call fcn.1401571d0
jmp 0x1401550ad
lea rdi, [rsp + 0xf8]
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14015657f
add rcx, 0x20
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rdi
call fcn.140143750
jmp 0x1401550c7
call fcn.1401571d0
jmp 0x14015514e
lock dec dword [rcx + 8]
jne 0x14015518d
mov edx, 1
call fcn.14007bad0
jmp 0x14015518d
lea rdx, [rsp + 0x120]
call qword [case.0x140211850.0]
mov r14, rax
jmp 0x140155231
lea rdx, [rsp + 0x120]
mov qword [rdx], rcx
mov qword [rsp + 0x38], 0
movups xmm0, xmmword [rsp + 0x40]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rdx + 8], xmm0
lea rcx, [rsp + 0xf0]
mov r8, r14
call fcn.140244870
jmp 0x14015559c
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [case.0x140211850.0]
jmp 0x14015559c
call fcn.1400e3f20
mov bpl, 1
mov r13d, 1
test al, al
je 0x140155290
mov rcx, qword [r15 + 0x78]
cmp rcx, qword [r15 + 0x80]
je 0x140156658
lea rdx, [rsp + 0x120]
call fcn.14014bde0
lea rax, [rsp + 0x120]
cmp qword [rax], r12
jg 0x140155279
jmp 0x140155290
lea rax, str.front___called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str._empty__
mov r8d, 0x225
call fcn.1401c469a
mov r13d, 2
xor ebp, ebp
jmp 0x140155290
int3
int3
mov rcx, r13
call fcn.140047ff0
jmp 0x14015572f
call qword [case.0x140211850.0]
mov rdx, rax
jmp 0x14015586b
call qword [case.0x140211850.0]
mov rdx, rax
jmp 0x1401558f1
call qword [case.0x140211850.0]
mov rdx, rax
jmp 0x140155954
mov rcx, qword [0x30]
call qword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x140155687
mov rcx, rdi
call fcn.140114010
mov rcx, rdi
call fcn.14016eccc
jmp 0x140155687
mov rcx, rbx
call fcn.140246d90
mov rcx, qword [rbx]
call fcn.14016eccc
jmp 0x140155a54
test rax, rax
je 0x140156724
mov qword [rax], r14
add rax, 8
mov qword [rsp + 0x80], rax
jmp 0x14015576b
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.1401c469a
add rcx, 0x170
call fcn.140143000
jmp 0x140155e56
int3
int3
int3
int3
int3
int3
int3
mov rcx, r14
call fcn.140246d90
mov rcx, qword [r14]
call fcn.14016eccc
jmp 0x140155b52
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
lock dec dword [rcx]
jne 0x1401567d3
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401567d3
mov rcx, qword [r15 - 0x80]
add r15, 0xffffffffffffff80
test rcx, rcx
jne 0x1401567b5
cmp r15, r14
jne 0x1401567c6
mov rdx, qword [rbx]
jmp 0x140155a44
int3
int3
int3
int3
int3
int3
int3
lock dec dword [rcx]
jne 0x140156814
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140156814
mov rcx, qword [r12 - 0x80]
add r12, 0xffffffffffffff80
test rcx, rcx
jne 0x1401567f5
cmp r12, r15
jne 0x140156806
mov rdx, qword [r14]
jmp 0x140155b42
add rcx, 0x170
call fcn.140143000
jmp 0x140155eb1
mov rcx, rdi
call fcn.140114010
mov rcx, rdi
call fcn.14016eccc
jmp 0x140155ec0
call fcn.1401ca202
mov rcx, rbx
call fcn.140047ff0
jmp 0x140155ef3
mov rcx, r14
call fcn.140047ff0
jmp 0x14015618d