Function at 0x14004db40
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
movaps xmmword [rsp + 0x230], xmm6
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x228], rax
mov rdi, qword [rcx + 0x168]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14004eaab
mov rcx, qword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 8]
jne 0x14004eaab
mov rax, qword [rax + rcx]
cmp rax, rsi
jne 0x14004dc1a
mov rdi, qword [rsi + 0x168]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14004dbe0
mov rcx, qword [rdi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rdi + 8]
mov rdx, qword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov r12d, dword [rsi]
xor edi, edi
test r12d, r12d
sete dil
mov r13, qword [rsi + 0x148]
mov rbp, qword [rsi + 0x150]
cmp r13, rbp
jne 0x14004e146
mov rbp, qword [rsi + 0xd8]
mov r14, qword [rsi + 0xe0]
cmp rbp, r14
jne 0x14004dccf
mov r13, qword [rsi + 0x148]
test r13, r13
je 0x14004dc5d
mov rbp, qword [rsi + 0x150]
mov rcx, r13
cmp rbp, r13
jne 0x14004e507
mov qword [rsi + 0x150], r13
mov rax, qword [rsi + 0x160]
test rax, rax
je 0x14004ea92
cmp rax, rcx
jne 0x14004ea92
mov byte [rcx + 0x40], 0
mov r13, qword [rsi + 0xd8]
test r13, r13
je 0x14004dca3
mov rbp, qword [rsi + 0xe0]
mov rcx, r13
cmp rbp, r13
jne 0x14004e10a
mov qword [rsi + 0xe0], r13
mov rax, qword [rsi + 0xf0]
test rax, rax
je 0x14004ea38
cmp rax, rcx
jne 0x14004ea38
mov byte [rcx + 0xc0], 0
mov rcx, qword [rsp + 0x228]
xor rcx, rsp
call fcn.140171860
movaps xmm6, xmmword [rsp + 0x230]
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [rsp + 0xb8]
mov r13, qword [sym.imp.KERNEL32.dll_TlsGetValue]
movaps xmm6, xmmword [0x140301d60]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x30], edi
mov r8d, 0x170
mov rcx, r15
mov dl, 0xaa
call fcn.140173760
mov eax, dword [rsi]
mov dword [rsp + 0xb8], eax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x1a8], rax
mov byte [rsp + 0x180], 1
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x198], rax
lea rax, [rsp + 0x180]
mov qword [rsp + 0x1a0], rax
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x218], rax
mov byte [rsp + 0x1f0], 1
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rax
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x210], rax
mov rbx, qword [0x140351380]
cmp rbx, 1
jbe 0x14004eab2
mov qword [rsp + 0x220], rbx
mov ecx, dword [0x1403411e0]
call r13
and rax, 0xfffffffffffffffc
je 0x14004ddc6
mov rcx, qword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 8]
jne 0x14004ddc6
cmp qword [rax + rcx], 0
jne 0x14004ddfa
mov rbx, qword [rsp + 0x220]
mov ecx, dword [0x1403411e0]
call r13
and rax, 0xfffffffffffffffc
je 0x14004eb0d
mov rcx, qword [rbx]
shl rcx, 4
mov qword [rax + rcx], r15
mov ecx, dword [rbx + 8]
mov rdx, qword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rbx, qword [rbp]
mov eax, dword [rbp + 8]
mov dword [rsp + 0x40], eax
lea rcx, [rbx + 0x38]
mov qword [rsp + 0x38], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004ea9c
cmp byte [rbx + 0x40], 0
jne 0x14004e0e5
mov edi, dword [rsp + 0x40]
cmp edi, 1
je 0x14004eb17
mov r13, qword [rbx + 8]
mov rcx, qword [rbx + 0x18]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x50], 0x20
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x60], edi
mov r12, qword [rbp + 0xc]
mov qword [rsp + 0x64], r12
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x54], eax
lea r15, [r13 + 0x18]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004ea78
movzx ebx, byte [r13 + 0x21]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp edi, 1
mov r15d, edi
mov edi, dword [rsp + 0x30]
je 0x14004dea8
test bl, bl
jne 0x14004e0d1
mov rax, qword [r13 + 0x10]
lea rcx, [0x140120c40]
cmp rax, rcx
jne 0x14004e8b6
mov qword [rsp + 0xa8], r12
cmp dword [rsp + 0x28], 0
mov rbx, qword [rsp + 0x48]
je 0x14004df59
mov rcx, qword [rbx + 0x18]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [case.0x140211850.0]
test al, al
je 0x14004df59
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004df59
movzx eax, byte [rax + 4]
test al, al
jne 0x14004df59
cmp qword [rbx + 0x10], 0
je 0x14004df59
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004eb7d
movzx eax, byte [rax + 4]
test al, al
jne 0x14004eb7d
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x10], 0
je 0x14004df59
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004eb80
movzx eax, byte [rax + 4]
test al, al
jne 0x14004eb80
mov rcx, qword [rbx + 0x10]
mov edx, dword [rbx + 0x20]
mov r8d, r15d
lea r9, [rsp + 0xa8]
call fcn.140167d40
jmp 0x14004e0c6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xa0], rax
movaps xmmword [rsp + 0x90], xmm6
mov rdx, qword [rbx + 0x28]
lea rcx, [rsp + 0x90]
call fcn.14004f290
mov r15, qword [rbx + 0x18]
mov ecx, 0x48
call fcn.14016ecd4
mov r13, rax
mov dword [rax], 1
lea rax, [0x1400a6c20]
mov qword [r13 + 8], rax
lea rax, [0x14004f400]
mov qword [r13 + 0x10], rax
lea rax, [0x14009e1c0]
mov qword [r13 + 0x18], rax
lea rax, [fcn.140167d40]
mov qword [r13 + 0x20], rax
mov rax, qword [rbx + 8]
mov qword [r13 + 0x28], rax
test rax, rax
je 0x14004dfd7
lock inc dword [rax]
mov rax, qword [rbx + 0x10]
mov qword [r13 + 0x30], rax
mov eax, dword [rbx + 0x20]
mov dword [r13 + 0x38], eax
mov eax, dword [rsp + 0x40]
mov dword [r13 + 0x3c], eax
mov rax, qword [rsp + 0xa8]
mov qword [r13 + 0x40], rax
lea rbx, [rsp + 0x70]
mov rcx, rbx
lea rdx, str.Notify
lea r8, str.....mojopubliccpp_system_simple_watcher.cc
mov r9d, 0x66
call fcn.14004f270
mov qword [rsp + 0xb0], r13
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
mov rdx, rbx
lea r8, [rsp + 0xb0]
xor r9d, r9d
call qword [case.0x140211850.0]
mov eax, dword [0x14035c0b0]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14004eb83
mov r15, qword [rsp + 0x90]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14004ebc5
mov rcx, qword [0x14035c0a0]
shl rcx, 4
mov qword [rax + rcx], r15
mov ecx, dword [0x14035c0a8]
mov rdx, qword [0x14035c0a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x90]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x14004ebd8
cmp dword [rsp + 0x60], 1
je 0x14004eb20
mov r12d, dword [rsp + 0x28]
lea r15, [rsp + 0xb8]
mov r13, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r15
call fcn.14004db40
add rbp, 0x18
cmp rbp, r14
je 0x14004dc1a
jmp 0x14004dcee
lea r15, [0x140044f30]
lea rdi, [0x1403007d0]
lea r12, [fcn.140097f60]
mov rbx, qword [rbp - 0x18]
test rbx, rbx
je 0x14004e131
lock dec dword [rbx]
je 0x14004e669
add rbp, 0xffffffffffffffe8
cmp rbp, r13
jne 0x14004e11f
mov rcx, qword [rsi + 0xd8]
jmp 0x14004dc7c
lea r14, [rsp + 0xb8]
mov r15, qword [sym.imp.KERNEL32.dll_TlsGetValue]
movaps xmm6, xmmword [0x140301d60]
mov dword [rsp + 0x28], r12d
mov eax, dword [0x140351378]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14004e9dd
mov r8d, 0x170
mov rcx, r14
mov dl, 0xaa
call fcn.140173760
mov dword [rsp + 0xb8], 0
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x1a8], rax
mov byte [rsp + 0x180], 1
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x198], rax
lea rax, [rsp + 0x180]
mov qword [rsp + 0x1a0], rax
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x218], rax
mov byte [rsp + 0x1f0], 1
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rax
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x210], rax
mov rbx, qword [0x140351380]
cmp rbx, 1
jbe 0x14004ebe2
mov qword [rsp + 0x220], rbx
mov ecx, dword [0x1403411e0]
call r15
and rax, 0xfffffffffffffffc
je 0x14004e260
mov rcx, qword [rbx]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rbx + 8]
jne 0x14004e260
cmp qword [rax + rcx], 0
jne 0x14004e294
mov rbx, qword [rsp + 0x220]
mov ecx, dword [0x1403411e0]
call r15
and rax, 0xfffffffffffffffc
je 0x14004ec3d
mov rcx, qword [rbx]
shl rcx, 4
mov qword [rax + rcx], r14
mov ecx, dword [rbx + 8]
mov rdx, qword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rbx, qword [r13]
lea rcx, [rbx + 0x38]
mov qword [rsp + 0x40], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004ea42
cmp byte [rbx + 0x40], 0
jne 0x14004e4e2
mov byte [rbx + 0x40], 1
mov r15, qword [rbx + 8]
mov rbx, qword [rbx + 0x18]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x50], 0x20
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x60], 1
mov r12, qword [0x140351370]
mov qword [rsp + 0x64], r12
mov dword [rsp + 0x54], edi
lea r14, [r15 + 0x18]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004ea85
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r15 + 0x10]
lea rcx, [0x140120c40]
cmp rax, rcx
jne 0x14004e81f
mov qword [rsp + 0xa8], r12
mov r12d, dword [rsp + 0x28]
test r12d, r12d
mov qword [rsp + 0x38], rbx
jne 0x14004e56f
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xa0], rax
movaps xmmword [rsp + 0x90], xmm6
mov rdx, qword [rbx + 0x28]
lea rcx, [rsp + 0x90]
call fcn.14004f290
mov r14, qword [rbx + 0x18]
mov ecx, 0x48
call fcn.14016ecd4
mov r15, rax
mov dword [rax], 1
lea rax, [0x1400a6c20]
mov qword [r15 + 8], rax
lea rax, [0x14004f400]
mov qword [r15 + 0x10], rax
lea rax, [0x14009e1c0]
mov qword [r15 + 0x18], rax
lea rax, [fcn.140167d40]
mov qword [r15 + 0x20], rax
mov rax, qword [rbx + 8]
mov qword [r15 + 0x28], rax
test rax, rax
je 0x14004e3c4
lock inc dword [rax]
mov rax, qword [rbx + 0x10]
mov qword [r15 + 0x30], rax
mov eax, dword [rbx + 0x20]
mov dword [r15 + 0x38], eax
mov dword [r15 + 0x3c], 1
mov rax, qword [rsp + 0xa8]
mov qword [r15 + 0x40], rax
lea rbx, [rsp + 0x70]
mov rcx, rbx
lea rdx, str.Notify
lea r8, str.....mojopubliccpp_system_simple_watcher.cc
mov r9d, 0x66
call fcn.14004f270
mov qword [rsp + 0xb0], r15
mov rax, qword [r14]
mov rax, qword [rax]
mov rcx, r14
mov rdx, rbx
lea r8, [rsp + 0xb0]
xor r9d, r9d
call qword [case.0x140211850.0]
mov eax, dword [0x14035c0b0]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14004ec4d
mov r14, qword [rsp + 0x90]
mov ecx, dword [0x1403411e0]
mov r15, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call r15
and rax, 0xfffffffffffffffc
je 0x14004ec8f
mov rcx, qword [0x14035c0a0]
shl rcx, 4
mov qword [rax + rcx], r14
mov ecx, dword [0x14035c0a8]
mov rdx, qword [0x14035c0a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x90]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x14004eca7
lea r14, [rsp + 0xb8]
cmp dword [rsp + 0x60], 1
jne 0x14004e4e2
mov eax, 0xffffffff
lock xadd dword [rbx], eax
test rbx, rbx
je 0x14004e4e2
cmp eax, 1
je 0x14004e637
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r14
call fcn.14004db40
add r13, 8
cmp r13, rbp
je 0x14004dc03
jmp 0x14004e161
lea r15, [0x140044f30]
lea rdi, [0x1403007d0]
lea r12, [fcn.140097f60]
mov rbx, qword [rbp - 8]
test rbx, rbx
je 0x14004e55a
lock dec dword [rbx]
jne 0x14004e55a
mov r14, qword [rbx + 0x10]
test r14, r14
je 0x14004e53e
lock dec dword [r14 + 8]
je 0x14004e8c6
mov r14, qword [rbx + 8]
test r14, r14
je 0x14004e552
lock dec dword [r14 + 8]
je 0x14004e843
mov rcx, rbx
call fcn.14016eccc
add rbp, 0xfffffffffffffff8
cmp rbp, r13
jne 0x14004e51c
mov rcx, qword [rsi + 0x148]
jmp 0x14004dc39
mov rcx, qword [rbx + 0x18]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
call qword [case.0x140211850.0]
test al, al
je 0x14004e346
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004e346
mov al, byte [rax + 4]
test al, al
jne 0x14004e346
cmp qword [rbx + 0x10], 0
je 0x14004e346
mov dword [rsp + 0x30], edi
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004ec47
mov al, byte [rax + 4]
test al, al
jne 0x14004ec47
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x10], 0
mov r12d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x30]
je 0x14004e346
mov rax, qword [rbx + 8]
test rax, rax
je 0x14004ec4a
mov al, byte [rax + 4]
test al, al
jne 0x14004ec4a
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rbx + 0x10]
mov edx, dword [rbx + 0x20]
lea r9, [rsp + 0xa8]
mov r8d, 1
call fcn.140167d40
mov r12d, dword [rsp + 0x28]
lea r14, [rsp + 0xb8]
mov r15, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, dword [rsp + 0x30]
jmp 0x14004e4c4
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14004e64a
lock dec dword [rcx + 8]
je 0x14004ecb1
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004e65c
lock dec dword [rcx]
je 0x14004ecbb
mov rcx, rbx
call fcn.14016eccc
jmp 0x14004e4e2
mov r14, qword [rbx + 0x10]
test r14, r14
je 0x14004e794
lock dec dword [r14 + 8]
jne 0x14004e794
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
cmp rax, r12
jne 0x14004ea25
lea rax, method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_40
mov qword [r14], rax
mov r12, qword [r14 + 0x68]
test r12, r12
je 0x14004e6c0
mov r15, qword [r14 + 0x70]
mov rcx, r12
cmp r15, r12
jne 0x14004ed2e
mov qword [r14 + 0x70], r12
call fcn.14016eccc
mov rcx, qword [r14 + 0x58]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x14004e6dc
call fcn.1401571d0
mov qword [r14 + 0x58], 0
mov r15, qword [r14 + 0x28]
test r15, r15
je 0x14004e77e
lock dec dword [r15]
jne 0x14004e77e
lea rcx, [r15 + 0xf0]
mov rdx, qword [r15 + 0xf8]
call fcn.1400709a0
mov rcx, qword [r15 + 0xe0]
test rcx, rcx
jne 0x14004ed48
mov r12, qword [r15 + 0xd8]
mov qword [r15 + 0xd8], 0
test r12, r12
jne 0x14004ed68
mov rax, qword [r15 + 0xc8]
mov r12, qword [r15 + 0xd0]
cmp r12, rax
jne 0x14004ed8c
mov rdx, qword [r15 + 0xb8]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
mov r12, qword [r15 + 0x88]
test r12, r12
jne 0x14004ee12
mov rcx, r15
call fcn.14016eccc
mov rcx, r14
call fcn.14016eccc
lea r15, [0x140044f30]
lea r12, [fcn.140097f60]
mov r14, qword [rbx + 8]
test r14, r14
je 0x14004e812
lock dec dword [r14 + 8]
jne 0x14004e812
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
cmp rax, r15
jne 0x14004ecc5
mov qword [r14], rdi
lea rcx, [r14 + 0x68]
mov rdx, qword [r14 + 0x70]
call fcn.140044fe0
mov r12, qword [r14 + 0x50]
test r12, r12
je 0x14004e7ef
mov rdi, r15
mov r15, qword [r14 + 0x58]
mov rcx, r12
cmp r15, r12
jne 0x14004ecd8
mov qword [r14 + 0x58], r12
call fcn.14016eccc
mov r15, rdi
mov r12, qword [r14 + 0x30]
test r12, r12
lea rdi, [0x1403007d0]
jne 0x14004ecf2
mov rcx, r14
call fcn.14016eccc
lea r12, [fcn.140097f60]
mov rcx, rbx
call fcn.14016eccc
jmp 0x14004e131
lea rcx, [rsp + 0x50]
call qword [case.0x140211850.0]
mov r12d, dword [rsp + 0x28]
lea r14, [rsp + 0xb8]
mov r15, qword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x14004e4e2
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
cmp rax, r15
jne 0x14004ee6d
mov qword [r14], rdi
lea rcx, [r14 + 0x68]
mov rdx, qword [r14 + 0x70]
call fcn.140044fe0
mov r12, qword [r14 + 0x50]
test r12, r12
je 0x14004e88e
mov rdi, r15
mov r15, qword [r14 + 0x58]
mov rcx, r12
cmp r15, r12
jne 0x14004ee80
mov qword [r14 + 0x58], r12
call fcn.14016eccc
mov r15, rdi
mov r12, qword [r14 + 0x30]
test r12, r12
jne 0x14004ee9a
mov rcx, r14
call fcn.14016eccc
lea rdi, [0x1403007d0]
lea r12, [fcn.140097f60]
jmp 0x14004e552
lea rcx, [rsp + 0x50]
call qword [case.0x140211850.0]
jmp 0x14004e0d1
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
cmp rax, r12
jne 0x14004ea12
mov r12, r15
lea rax, method.std::Cr::codecvt_char__char__struct__Mbstatet_.virtual_40
mov qword [r14], rax
mov r15, qword [r14 + 0x68]
test r15, r15
je 0x14004e908
mov rax, qword [r14 + 0x70]
mov rcx, r15
cmp rax, r15
jne 0x14004ea51
mov qword [r14 + 0x70], r15
call fcn.14016eccc
mov rcx, qword [r14 + 0x58]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x14004e924
call fcn.1401571d0
mov qword [r14 + 0x58], 0
mov r15, qword [r14 + 0x28]
test r15, r15
je 0x14004e9c6
lock dec dword [r15]
jne 0x14004e9c6
lea rcx, [r15 + 0xf0]
mov rdx, qword [r15 + 0xf8]
call fcn.1400709a0
mov rcx, qword [r15 + 0xe0]
test rcx, rcx
jne 0x14004efc4
mov rax, qword [r15 + 0xd8]
mov qword [r15 + 0xd8], 0
test rax, rax
jne 0x14004efe4
mov rax, qword [r15 + 0xc8]
mov rcx, qword [r15 + 0xd0]
cmp rcx, rax
jne 0x14004f00d
mov rdx, qword [r15 + 0xb8]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
mov rax, qword [r15 + 0x88]
test rax, rax
jne 0x14004f0ae
mov rcx, r15
call fcn.14016eccc
mov rcx, r14
call fcn.14016eccc
mov r15, r12
lea r12, [fcn.140097f60]
jmp 0x14004e53e
lea rcx, [0x140351378]
call fcn.14016f8b4
cmp dword [0x140351378], 0xffffffff
jne 0x14004e186
mov qword [0x140351370], 0
lea rcx, [0x140351378]
call fcn.14016ef8c
jmp 0x14004e186
mov rcx, r14
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e53e
mov rcx, r14
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e786
call fcn.14016eccc
jmp 0x14004dca3
mov rcx, qword [rsp + 0x40]
call fcn.140047ff0
jmp 0x14004e2af
mov rcx, rax
add rcx, 0xffffffffffffffd8
mov qword [rsp + 0x28], rcx
call fcn.140098270
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rcx, r15
jne 0x14004ea51
mov rcx, qword [r14 + 0x68]
jmp 0x14004e8ff
mov rcx, r15
call fcn.140047ff0
jmp 0x14004de86
mov rcx, r14
call fcn.140047ff0
jmp 0x14004e30e
call fcn.14016eccc
jmp 0x14004dc5d
mov rcx, qword [rsp + 0x38]
call fcn.140047ff0
jmp 0x14004de1c
xor eax, eax
jmp 0x14004dba5
lea rcx, [0x140351380]
call fcn.14006d330
test al, al
je 0x14004f244
xorps xmm0, xmm0
movups xmmword [0x140351388], xmm0
lea r15, [0x140351380]
lea rbx, [0x140351388]
mov rcx, rbx
xor edx, edx
call fcn.140041af0
mov rcx, r15
mov rdx, rbx
xor r8d, r8d
mov r9, r15
call fcn.14006d410
lea r15, [rsp + 0xb8]
mov r13, qword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x14004dd98
call fcn.140001120
jmp 0x14004dde1
mov byte [rbx + 0x40], 1
jmp 0x14004de33
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x48]
lock xadd dword [rcx], eax
test rcx, rcx
je 0x14004e0d1
cmp eax, 1
jne 0x14004e0d1
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14004eb58
lock dec dword [rcx + 8]
je 0x14004f250
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14004ee5a
mov rcx, qword [rsp + 0x48]
call fcn.14016eccc
mov edi, dword [rsp + 0x30]
jmp 0x14004e0d1
int3
int3
lea rcx, [0x14035c0b0]
call fcn.14016f8b4
cmp dword [0x14035c0b0], 0xffffffff
jne 0x14004e065
xorps xmm0, xmm0
movups xmmword [0x14035c0a0], xmm0
lea rcx, [0x14035c0a0]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035c0b0]
call fcn.14016ef8c
jmp 0x14004e065
test r15, r15
je 0x14004e0a7
call fcn.140001120
jmp 0x14004e083
call fcn.1401571d0
jmp 0x14004e0c6
lea rcx, [0x140351380]
call fcn.14006d330
test al, al
je 0x14004f25a
xorps xmm0, xmm0
movups xmmword [0x140351388], xmm0
lea r14, [0x140351380]
lea rbx, [0x140351388]
mov rcx, rbx
xor edx, edx
call fcn.140041af0
mov rcx, r14
mov rdx, rbx
xor r8d, r8d
mov r9, r14
call fcn.14006d410
lea r14, [rsp + 0xb8]
mov r15, qword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x14004e232
call fcn.140001120
jmp 0x14004e27b
int3
int3
lea rcx, [0x14035c0b0]
call fcn.14016f8b4
cmp dword [0x14035c0b0], 0xffffffff
jne 0x14004e452
xorps xmm0, xmm0
movups xmmword [0x14035c0a0], xmm0
lea rcx, [0x14035c0a0]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035c0b0]
call fcn.14016ef8c
jmp 0x14004e452
test r14, r14
mov rbx, qword [rsp + 0x38]
je 0x14004e49d
call fcn.140001120
jmp 0x14004e474
call fcn.1401571d0
jmp 0x14004e4bc
call fcn.14008a550
jmp 0x14004e64a
call fcn.14016eccc
jmp 0x14004e65c
mov rcx, r14
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e80b
add r15, 0xfffffffffffffff0
mov rcx, r15
call fcn.1400a4eb0
cmp r15, r12
jne 0x14004ecd8
mov rcx, qword [r14 + 0x50]
jmp 0x14004e7e3
mov rdi, r15
mov r15, qword [r14 + 0x38]
mov rcx, r12
cmp r15, r12
je 0x14004ed16
add r15, 0xfffffffffffffff0
mov rcx, r15
call fcn.1400a4eb0
cmp r15, r12
jne 0x14004ed01
mov rcx, qword [r14 + 0x30]
mov qword [r14 + 0x38], r12
call fcn.14016eccc
mov r15, rdi
lea rdi, [0x1403007d0]
jmp 0x14004e803
add r15, 0xffffffffffffffd8
mov rcx, r15
call fcn.140098270
cmp r15, r12
jne 0x14004ed2e
mov rcx, qword [r14 + 0x68]
jmp 0x14004e6b7
lock dec dword [rcx + 8]
jne 0x14004e71e
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e71e
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x10], 0
test rcx, rcx
jne 0x14004f218
mov rcx, r12
call fcn.14016eccc
jmp 0x14004e739
mov rcx, qword [r15 + 0xc0]
jbe 0x14004eecf
cmp rcx, r12
jb 0x14004ee0c
cmp rcx, rax
jb 0x14004ee0f
cmp rax, r12
jg 0x14004ee09
mov rcx, qword [r15 + 0xb8]
mov qword [rsp + 0x28], rcx
shl r12, 3
lea rcx, [r12 + r12*2]
mov qword [rsp + 0x30], rcx
shl rax, 3
lea r12, [rax + rax*2]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + r12 + 0x10]
mov qword [rax + r12 + 0x10], 0
test rcx, rcx
je 0x14004edf2
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
add r12, 0x18
cmp qword [rsp + 0x30], r12
lea rdi, [0x1403007d0]
jne 0x14004edc9
jmp 0x14004e750
int3
int3
int3
mov rdx, qword [r15 + 0x90]
mov rcx, r12
cmp rdx, r12
je 0x14004ee42
mov rax, rdx
mov rdi, rax
add rdi, 0xfffffffffffffff8
mov rcx, rdi
call fcn.1400a2ee0
mov rax, rdi
cmp rdi, r12
jne 0x14004ee24
mov rcx, qword [r15 + 0x88]
mov qword [r15 + 0x90], r12
call fcn.14016eccc
lea rdi, [0x1403007d0]
jmp 0x14004e776
lock dec dword [rcx]
jne 0x14004eb6a
call fcn.14016eccc
jmp 0x14004eb6a
mov rcx, r14
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e8aa
add r15, 0xfffffffffffffff0
mov rcx, r15
call fcn.1400a4eb0
cmp r15, r12
jne 0x14004ee80
mov rcx, qword [r14 + 0x50]
jmp 0x14004e882
mov rdi, r15
mov r15, qword [r14 + 0x38]
mov rcx, r12
cmp r15, r12
je 0x14004eebe
add r15, 0xfffffffffffffff0
mov rcx, r15
call fcn.1400a4eb0
cmp r15, r12
jne 0x14004eea9
mov rcx, qword [r14 + 0x30]
mov qword [r14 + 0x38], r12
call fcn.14016eccc
mov r15, rdi
jmp 0x14004e89b
cmp rcx, rax
jb 0x14004efbb
jl 0x14004efbe
je 0x14004ef45
mov rdx, qword [r15 + 0xb8]
mov qword [rsp + 0x30], rdx
shl rcx, 3
lea rcx, [rcx + rcx*2]
mov qword [rsp + 0x28], rcx
shl rax, 3
lea rdi, [rax + rax*2]
mov rax, rdi
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rdx + rdi + 0x10]
mov qword [rdx + rdi + 0x10], 0
test rcx, rcx
je 0x14004ef2d
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rax, rdi
add rax, 0x18
mov rdi, rax
cmp qword [rsp + 0x28], rax
jne 0x14004ef01
mov rax, qword [r15 + 0xc0]
cmp rax, r12
jb 0x14004efc1
test r12, r12
js 0x14004efb8
lea rdi, [0x1403007d0]
je 0x14004e750
mov rax, qword [r15 + 0xb8]
mov qword [rsp + 0x28], rax
shl r12, 3
lea rax, [r12 + r12*2]
mov qword [rsp + 0x30], rax
xor r12d, r12d
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + r12 + 0x10]
mov qword [rax + r12 + 0x10], 0
test rcx, rcx
je 0x14004efa1
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
add r12, 0x18
cmp qword [rsp + 0x30], r12
lea rdi, [0x1403007d0]
jne 0x14004ef78
jmp 0x14004e750
int3
int3
int3
int3
lock dec dword [rcx + 8]
jne 0x14004e966
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004e966
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x28], rax
mov qword [rax + 0x10], 0
test rcx, rcx
jne 0x14004f22e
mov rcx, qword [rsp + 0x28]
call fcn.14016eccc
jmp 0x14004e981
mov qword [rsp + 0x38], rcx
mov rcx, qword [r15 + 0xc0]
jbe 0x14004f102
cmp rcx, qword [rsp + 0x38]
jb 0x14004f0a5
cmp rcx, rax
jb 0x14004f0a8
cmp rax, qword [rsp + 0x38]
jg 0x14004f0ab
mov rcx, qword [r15 + 0xb8]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x38]
shl rcx, 3
lea rcx, [rcx + rcx*2]
mov qword [rsp + 0x40], rcx
shl rax, 3
lea rax, [rax + rax*2]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax + rdx + 0x10]
mov qword [rax + rdx + 0x10], 0
test rcx, rcx
je 0x14004f08b
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0x28]
add rax, 0x18
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x40], rax
jne 0x14004f05d
jmp 0x14004e998
int3
int3
int3
mov r8, qword [r15 + 0x90]
mov rcx, rax
mov qword [rsp + 0x30], rax
cmp r8, rax
je 0x14004f0ec
mov rdx, r8
mov rcx, rdx
add rcx, 0xfffffffffffffff8
mov qword [rsp + 0x28], rcx
call fcn.1400a2ee0
mov rax, qword [rsp + 0x28]
mov rdx, rax
cmp rax, qword [rsp + 0x30]
jne 0x14004f0c5
mov rcx, qword [r15 + 0x88]
mov rax, qword [rsp + 0x30]
mov qword [r15 + 0x90], rax
call fcn.14016eccc
jmp 0x14004e9be
cmp rcx, rax
jb 0x14004f20c
jl 0x14004f20f
je 0x14004f183
mov rdx, qword [r15 + 0xb8]
mov qword [rsp + 0x30], rdx
shl rcx, 3
lea rcx, [rcx + rcx*2]
mov qword [rsp + 0x40], rcx
shl rax, 3
lea rax, [rax + rax*2]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax + rdx + 0x10]
mov qword [rax + rdx + 0x10], 0
test rcx, rcx
je 0x14004f167
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0x28]
add rax, 0x18
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x40], rax
jne 0x14004f139
mov rax, qword [r15 + 0xc0]
cmp rax, qword [rsp + 0x38]
jb 0x14004f212
cmp qword [rsp + 0x38], 0
js 0x14004f215
mov rax, qword [rsp + 0x38]
je 0x14004e998
mov rcx, qword [r15 + 0xb8]
mov qword [rsp + 0x30], rcx
shl rax, 3
lea rax, [rax + rax*2]
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax + rdx + 0x10]
mov qword [rax + rdx + 0x10], 0
test rcx, rcx
je 0x14004f1ef
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
mov rcx, qword [rsp + 0x28]
add rcx, 0x18
mov rax, rcx
mov qword [rsp + 0x28], rcx
cmp qword [rsp + 0x40], rcx
jne 0x14004f1c1
jmp 0x14004e998
int3
int3
int3
int3
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004ed7f
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004effe
mov rbx, qword [0x140351380]
jmp 0x14004eaf9
call fcn.14008a550
jmp 0x14004eb58
mov rbx, qword [0x140351380]
jmp 0x14004ec29