Function at 0x140157932
Capabilities:
Access peb ldr_data
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x68], rax
cmp qword [rcx + 0x20], 0
je 0x140157b84
mov rsi, rcx
call fcn.1401b2682
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x50], rax
mov rbx, qword [rsi + 0x40]
xor eax, eax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
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 0x140157b9e
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140157c3f
mov rcx, qword [0x14035c0a0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14035c0a8]
jne 0x140157c3f
mov rdi, qword [rax + rcx]
mov rax, qword [0x1403428e0]
and rax, rdi
cmp rax, qword [0x1403428c8]
je 0x140157c46
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x58], rbx
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140157c22
mov rcx, qword [0x14035c0a0]
shl rcx, 4
lea rdx, [rsp + 0x48]
mov qword [rax + rcx], rdx
mov ecx, dword [0x14035c0a8]
mov rdx, qword [0x14035c0a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [rsi + 8]
mov rbx, qword [rsi + 0x48]
mov r15, qword [rsi + 0x50]
test rbx, rbx
je 0x140157a68
lock inc dword [rbx]
lock inc dword [rbx]
lock dec dword [rbx]
je 0x140157c53
mov ecx, 0x48
call fcn.14016ecd4
mov r14, rax
mov dword [rax], 1
lea rax, [0x1400a6c20]
mov qword [r14 + 8], rax
lea rax, [0x14004f400]
mov qword [r14 + 0x10], rax
lea rax, [0x14009e1c0]
mov qword [r14 + 0x18], rax
lea rax, [fcn.140167d40]
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rbx
mov qword [r14 + 0x30], r15
mov eax, dword [rsi + 0x30]
mov dword [r14 + 0x38], eax
mov dword [r14 + 0x3c], 0xaaaaaaaa
mov qword [r14 + 0x40], 0
lea rdx, str.ArmOrNotify
lea r8, str.....mojopubliccpp_system_simple_watcher.cc
lea rsi, [rsp + 0x28]
mov rcx, rsi
mov r9d, 0xee
call fcn.14004f270
lea r8, [rsp + 0x60]
mov qword [r8], r14
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
mov rdx, rsi
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 0x140157be0
mov rsi, qword [rsp + 0x48]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140157c2c
mov rcx, qword [0x14035c0a0]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14035c0a8]
mov rdx, qword [0x14035c0a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x48]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x140157c60
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140171860
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
lea rcx, [0x14035c0b0]
call fcn.14016f8b4
cmp dword [0x14035c0b0], 0xffffffff
jne 0x1401579ab
xorps xmm0, xmm0
movups xmmword [0x14035c0a0], xmm0
lea rcx, [0x14035c0a0]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035c0b0]
call fcn.14016ef8c
jmp 0x1401579ab
lea rcx, [0x14035c0b0]
call fcn.14016f8b4
cmp dword [0x14035c0b0], 0xffffffff
jne 0x140157b29
xorps xmm0, xmm0
movups xmmword [0x14035c0a0], xmm0
lea rcx, [0x14035c0a0]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035c0b0]
call fcn.14016ef8c
jmp 0x140157b29
call fcn.140001120
jmp 0x140157a1f
test rsi, rsi
je 0x140157b68
call fcn.140001120
jmp 0x140157b44
xor edi, edi
jmp 0x1401579e0
mov rcx, rdi
call fcn.140156f20
jmp 0x1401579f7
mov rcx, rbx
call fcn.14016eccc
jmp 0x140157a68
call fcn.1401571d0
jmp 0x140157b84