Function at 0x1401c5170
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, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0xc8], rax
cmp byte [rcx + 0x98], 0
jne 0x1401c62cf
movapd xmm0, xmmword [0x140301d60]
movapd xmmword [rsp + 0x80], xmm0
movapd xmmword [rsp + 0x70], xmm0
movapd xmmword [rsp + 0x60], xmm0
movabs r14, 0x4000000000000000
movabs rbp, 0xffffffffffffff
mov qword [rsp + 0x58], rsi
mov rax, qword [rsi + 0x10]
mov rdi, qword [rax]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rcx, [0x140161d70]
movabs rsi, 0xbfffffffffffffff
cmp rax, rcx
jne 0x1401c630c
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb0], rax
movapd xmm0, xmmword [0x140301d60]
movapd xmmword [rsp + 0xa0], xmm0
mov rax, qword [rdi - 0xc0]
mov byte [rsp + 0xa0], 0
mov qword [rsp + 0xb8], rax
cmp byte [rdi + 0x120], 0
je 0x1401c5301
mov eax, dword [0x14035aaf8]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c61d9
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401c5301
mov rcx, qword [0x14035aae8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14035aaf0]
jne 0x1401c5301
mov rbx, qword [rax + rcx]
test rbx, rbx
je 0x1401c5301
cmp byte [rdi + 0x128], 0
je 0x1401c5301
mov rax, qword [rbx]
test rax, rax
js 0x1401c62b8
cmp dword [rbx + 0x14], 1
jne 0x1401c64ab
cmp qword [rbx + 8], 0
jne 0x1401c64ea
mov r12, rsi
lock and qword [rbx], rsi
mov rsi, qword [rdi + 0x130]
cmp qword [rbx + 8], 0
jne 0x1401c6514
mov rax, qword [rbx]
and rax, r14
and rsi, rbp
or rsi, rax
mov qword [rbx], rsi
dec dword [rbx + 0x14]
mov rsi, r12
mov qword [rdi + 0x130], 0
xor eax, eax
mov byte [rdi + 0x138], al
mov byte [rdi + 0x128], al
mov byte [rdi + 0x120], 1
mov rax, qword [rdi + 0xf0]
mov ecx, dword [rax]
inc ecx
mov edx, 1
cmovne edx, ecx
mov dword [rax], edx
mov rax, qword [rdi - 0x10]
cmp qword [rdi - 0x18], rax
je 0x1401c55c6
mov eax, dword [rax - 0x38]
test eax, eax
je 0x1401c5416
cmp eax, 2
je 0x1401c646f
cmp qword [rdi - 0x58], 0
je 0x1401c55a5
mov rax, qword [rdi - 0x70]
test rax, rax
je 0x1401c55a5
mov rcx, qword [rdi - 0x28]
test rcx, rcx
je 0x1401c65d2
mov rdx, qword [rcx + 0xa8]
sub rdx, qword [rcx + 0xa0]
cmp rdx, 0x38
jne 0x1401c55a5
cmp byte [rsp + 0xa0], 0
je 0x1401c549e
mov r12, rsi
mov r14, qword [rsp + 0xa8]
xor edx, edx
cmp r14, rax
setns dl
movabs rsi, 0x7fffffffffffffff
add rdx, rsi
mov rcx, r14
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1401c5588
movabs rax, 0x8000000000000001
lea r8, [rcx + rax]
mov rdx, qword [rdi - 0xa8]
cmp r8, 1
ja 0x1401c5505
lea r8, [rdx + rax]
dec rax
cmp r8, 1
ja 0x1401c5576
cmp rdx, rcx
je 0x1401c5576
int3
cmp qword [rdi - 0x58], 0
je 0x1401c55a5
mov rax, qword [rdi - 0x28]
test rax, rax
je 0x1401c65cf
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1401c55a5
cmp byte [rsp + 0xa0], 0
je 0x1401c54d5
mov rax, qword [rsp + 0xa8]
mov qword [rdi - 0x78], rax
mov qword [rdi - 0x70], rax
test byte [0x140341ec0], 0x19
je 0x1401c55a5
cmp byte [rdi - 0x50], 0
je 0x1401c6850
lea r9, [rdi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140341ec0]
lea r8, [0x1403062fd]
mov cl, 0x45
call fcn.14004d910
jmp 0x1401c55a5
mov r12, rsi
mov rax, qword [fcn.14007a620]
lea rbx, [rsp + 0x98]
mov rcx, rbx
call qword [case.0x140211850.0]
mov r14, qword [rbx]
mov qword [rsp + 0xa8], r14
mov byte [rsp + 0xa0], 1
mov rax, qword [rdi - 0x70]
jmp 0x1401c53ae
mov rax, qword [fcn.14007a620]
lea rbx, [rsp + 0x98]
mov rcx, rbx
call qword [case.0x140211850.0]
mov rax, qword [rbx]
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0xa0], 1
jmp 0x1401c545c
lea rax, [rdx + rcx]
sar rax, 0x3f
btc rax, 0x3f
add rdx, rcx
cmovo rdx, rax
mov qword [rdi - 0xa8], rdx
cmp rdx, 0x186a0
jl 0x1401c557d
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x140309e10]
cvttsd2si ebx, xmm0
mov rcx, qword [rdi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 2
mov r8d, ebx
call qword [case.0x140211850.0]
movsxd rax, ebx
imul rcx, rax, 0x3e8
mov rax, qword [rdi - 0xa8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rsi
sub rax, rcx
cmovo rax, rdx
mov qword [rdi - 0xa8], rax
cmp qword [rdi - 0x28], 0
je 0x1401c6658
mov al, byte [0x140341ec0]
test al, 9
setne r15b
jne 0x1401c65d5
mov byte [rdi - 0x30], r15b
mov qword [rdi - 0x70], r14
mov rsi, r12
mov r14, qword [rdi - 0x10]
cmp qword [rdi - 0x18], r14
je 0x1401c631a
cmp dword [r14 - 0x38], 0
mov dword [r14 - 0x38], 2
je 0x1401c586e
movabs r15, 0xaaaaaaaaaaaaaaaa
mov r13b, byte [0x140341ec0]
test r13b, 0x19
jne 0x1401c631d
xor r14d, r14d
mov r12, r15
mov eax, 1
mov rcx, qword [rsp + 0x58]
cmp byte [rcx + 0x98], 0
jne 0x1401c637d
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0x60]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.USER32.dll_PeekMessageW]
mov ebx, eax
test r13b, 0x19
jne 0x1401c6393
test rdi, rdi
je 0x1401c5a76
mov rax, qword [rdi]
mov rax, qword [rax + 0x28]
lea rcx, [0x1401624b0]
cmp rax, rcx
jne 0x1401c63b0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb0], rax
movapd xmm0, xmmword [0x140301d60]
movapd xmmword [rsp + 0xa0], xmm0
mov rax, qword [rdi - 0xc0]
mov byte [rsp + 0xa0], 0
mov qword [rsp + 0xb8], rax
cmp byte [rdi + 0x120], 0
je 0x1401c574b
mov eax, dword [0x14035aaf8]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c6195
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401c574b
mov rcx, qword [0x14035aae8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14035aaf0]
jne 0x1401c574b
mov r14, qword [rax + rcx]
test r14, r14
je 0x1401c574b
cmp byte [rdi + 0x128], 0
je 0x1401c574b
mov rax, qword [r14]
test rax, rax
js 0x1401c62a7
cmp dword [r14 + 0x14], 1
jne 0x1401c63db
cmp qword [r14 + 8], 0
jne 0x1401c6421
lock and qword [r14], rsi
mov rsi, qword [rdi + 0x130]
cmp qword [r14 + 8], 0
jne 0x1401c644b
mov rax, qword [r14]
movabs rcx, 0x4000000000000000
and rax, rcx
movabs rcx, 0xffffffffffffff
and rsi, rcx
or rsi, rax
mov qword [r14], rsi
dec dword [r14 + 0x14]
mov qword [rdi + 0x130], 0
xor eax, eax
mov byte [rdi + 0x138], al
mov byte [rdi + 0x128], al
mov byte [rdi + 0x120], 1
mov rax, qword [rdi + 0xf0]
mov ecx, dword [rax]
inc ecx
mov edx, 1
cmovne edx, ecx
mov dword [rax], edx
mov rax, qword [rdi - 0x10]
cmp qword [rdi - 0x18], rax
je 0x1401c5a76
cmp dword [rax - 0x38], 2
jne 0x1401c63be
cmp qword [rdi - 0x58], 0
je 0x1401c5a57
mov rax, qword [rdi - 0x70]
test rax, rax
je 0x1401c5a57
mov rcx, qword [rdi - 0x28]
test rcx, rcx
je 0x1401c653e
mov rdx, qword [rcx + 0xa8]
sub rdx, qword [rcx + 0xa0]
cmp rdx, 0x38
jne 0x1401c5a57
mov r12b, byte [rdi - 0x60]
mov ebp, 3
test r12b, r12b
jne 0x1401c57ec
mov byte [rdi - 0x60], 1
mov ebp, 5
cmp byte [rsp + 0xa0], 0
je 0x1401c5985
mov r15, qword [rsp + 0xa8]
xor edx, edx
cmp r15, rax
setns dl
movabs rsi, 0x7fffffffffffffff
add rdx, rsi
mov rcx, r15
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1401c5a3d
movabs rax, 0x8000000000000001
mov r13d, ebp
lea r8, [rcx + rax]
mov rdx, qword [rdi + r13*8 - 0xb8]
cmp r8, 1
ja 0x1401c59b9
lea r8, [rdx + rax]
dec rax
cmp r8, 1
ja 0x1401c5a2a
cmp rdx, rcx
je 0x1401c5a2a
int3
mov r12, rsi
mov r15, qword [r14 - 0x10]
inc r15
mov qword [r14 - 0x10], r15
mov eax, dword [0x14035d2d8]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c5fb9
mov esi, dword [r14 - 0x18]
test esi, esi
je 0x1401c5cf0
mov bpl, 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
test esi, esi
setne r13b
mov r14, qword [r14 - 0x20]
lea rcx, [0x14035d2c8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401c5df4
mov rdx, qword [0x14035d2b8]
test rdx, rdx
mov rsi, r12
je 0x1401c5935
lea rax, [0x14035c670]
xor ecx, ecx
mov r8d, r13d
xor r8b, 1
cmp rcx, 0x32
je 0x1401c62c9
cmp qword [rax - 0x30], r14
jne 0x1401c5929
cmp byte [rax - 0x28], 0
jne 0x1401c5929
mov r9b, byte [rax - 0x10]
test r9b, r9b
sete r10b
or r10b, r8b
jne 0x1401c5c84
cmp dword [rax - 0xc], ebx
je 0x1401c5c94
inc rcx
add rax, 0x40
cmp rdx, rcx
jne 0x1401c58f6
lea r12, [0x14035c630]
mov rcx, r12
call fcn.1400ec550
cmp rax, 0x32
je 0x1401c5ca8
jae 0x1401c6734
shl rax, 6
mov qword [rax + r12 + 0x10], r14
mov byte [rax + r12 + 0x18], 0
mov byte [rax + r12 + 0x30], bpl
mov dword [rax + r12 + 0x34], ebx
mov qword [rax + r12 + 0x40], r15
mov byte [rax + r12 + 8], 1
lock inc qword [0x14035d2b8]
jmp 0x1401c5ca8
mov rax, qword [fcn.14007a620]
lea r14, [rsp + 0x98]
mov rcx, r14
call qword [case.0x140211850.0]
mov r15, qword [r14]
mov qword [rsp + 0xa8], r15
mov byte [rsp + 0xa0], 1
mov rax, qword [rdi - 0x70]
jmp 0x1401c5802
lea rax, [rdx + rcx]
sar rax, 0x3f
btc rax, 0x3f
add rdx, rcx
cmovo rdx, rax
mov qword [rdi + r13*8 - 0xb8], rdx
cmp rdx, 0x186a0
jl 0x1401c5a32
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x140309e10]
cvttsd2si r14d, xmm0
mov rcx, qword [rdi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, ebp
mov r8d, r14d
call qword [case.0x140211850.0]
movsxd rax, r14d
imul rcx, rax, 0x3e8
mov rax, qword [rdi + r13*8 - 0xb8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rsi
sub rax, rcx
cmovo rax, rdx
mov qword [rdi + r13*8 - 0xb8], rax
cmp qword [rdi - 0x28], 0
je 0x1401c6655
mov al, byte [0x140341ec0]
test al, 9
setne bpl
jne 0x1401c6541
mov byte [rdi - 0x30], bpl
mov qword [rdi - 0x70], r15
mov r12, qword [rdi - 0x10]
cmp qword [rdi - 0x18], r12
je 0x1401c63d8
cmp dword [r12 - 0x38], 0
mov dword [r12 - 0x38], 1
je 0x1401c5abb
xor ebp, ebp
mov eax, 0
mov rsi, qword [rsp + 0x58]
xchg byte [rsi + 8], al
test ebx, ebx
jne 0x1401c5bd0
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.140171860
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15, qword [r12 - 0x10]
inc r15
mov qword [r12 - 0x10], r15
mov eax, dword [0x14035d2d8]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c5fef
mov esi, dword [r12 - 0x18]
test esi, esi
je 0x1401c5cf7
mov bpl, 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
test esi, esi
setne r14b
mov r12, qword [r12 - 0x20]
lea rcx, [0x14035d2c8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401c5e05
mov rdx, qword [0x14035d2b8]
test rdx, rdx
je 0x1401c5b80
lea rax, [0x14035c670]
xor ecx, ecx
mov r8d, r14d
xor r8b, 1
cmp rcx, 0x32
je 0x1401c62cc
cmp qword [rax - 0x30], r12
jne 0x1401c5b74
cmp byte [rax - 0x28], 0
jne 0x1401c5b74
mov r9b, byte [rax - 0x10]
test r9b, r9b
sete r10b
or r10b, r8b
jne 0x1401c5cba
cmp dword [rax - 0xc], edi
je 0x1401c5cca
inc rcx
add rax, 0x40
cmp rdx, rcx
jne 0x1401c5b41
lea r14, [0x14035c630]
mov rcx, r14
call fcn.1400ec550
cmp rax, 0x32
je 0x1401c5cde
jae 0x1401c6737
shl rax, 6
mov qword [rax + r14 + 0x10], r12
mov byte [rax + r14 + 0x18], 0
mov byte [rax + r14 + 0x30], bpl
mov dword [rax + r14 + 0x34], edi
mov qword [rax + r14 + 0x40], r15
mov byte [rax + r14 + 8], 1
lock inc qword [0x14035d2b8]
jmp 0x1401c5cde
mov eax, dword [rsp + 0x68]
cmp eax, 0x12
je 0x1401c665b
cmp eax, 0x113
jne 0x1401c5bef
cmp qword [rsp + 0x70], rsi
je 0x1401c6727
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 8], cl
jne 0x1401c5c17
mov rcx, qword [rsi + 0x20]
mov edx, 0x401
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.USER32.dll_PostMessageW]
test eax, eax
je 0x1401c666a
mov eax, dword [rsp + 0x68]
cmp eax, 0x401
je 0x1401c5cfe
cmp eax, 0x12
jne 0x1401c5d0d
mov rcx, qword [0x1403544f8]
test rcx, rcx
jne 0x1401c5c6a
mov dword [rsp + 0x20], 1
lea rcx, [0x14030a290]
mov r9d, 5
mov edx, 1
mov r8d, 4
call fcn.1400cea30
mov rcx, rax
mov qword [0x1403544f8], rax
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
mov edx, 3
call qword [case.0x140211850.0]
mov bpl, 1
jmp 0x1401c5a8d
test r9b, r9b
setne r9b
xor r9b, r13b
jne 0x1401c5929
mov qword [rax], r15
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
jne 0x1401c5ca8
dec qword [0x14035d2c0]
lea rcx, [0x14035d2c8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1401c55c6
test r9b, r9b
setne r9b
xor r9b, r14b
jne 0x1401c5b74
mov qword [rax], r15
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
jne 0x1401c5cde
dec qword [0x14035d2c0]
lea rcx, [0x14035d2c8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1401c5a76
xor ebp, ebp
jmp 0x1401c58b8
xor ebp, ebp
jmp 0x1401c5b05
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsi + 0x20]
je 0x1401c5faa
mov rax, qword [rsi + 0x10]
mov rdi, qword [rax]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x140211850.0]
mov rax, qword [0x140354508]
test rax, rax
je 0x1401c621d
test byte [rax], 0x19
jne 0x1401c6235
mov rsi, qword [rsp + 0x58]
lea rbx, [rsi + 0x58]
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xc0], r13
movaps xmm6, xmmword [0x140301d60]
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
mov rax, qword [rsi + 0x58]
cmp rax, qword [rsi + 0x60]
jne 0x1401c5e16
lea r14, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.USER32.dll_TranslateMessage]
mov rcx, r14
call qword [sym.imp.USER32.dll_DispatchMessageW]
mov qword [rsp + 0xc0], r13
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
mov rax, qword [rsi + 0x58]
cmp rax, qword [rsi + 0x60]
jne 0x1401c5ee3
mov rax, qword [0x140354510]
test rax, rax
je 0x1401c6262
test byte [rax], 0x19
jne 0x1401c627a
mov bpl, 1
test rdi, rdi
je 0x1401c5a8d
mov rax, qword [rdi]
mov rax, qword [rax + 0x28]
mov rcx, rdi
call qword [case.0x140211850.0]
jmp 0x1401c5a8d
lea rcx, [0x14035d2c8]
call fcn.140047ff0
jmp 0x1401c58d7
lea rcx, [0x14035d2c8]
call fcn.140047ff0
jmp 0x1401c5b25
lea r14, [rsp + 0xa0]
mov rcx, r14
mov rdx, rbx
call fcn.140072e30
mov r14, qword [r14 + 0x10]
test r14, r14
je 0x1401c5d7d
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
sar r8, 3
cmp r8, rax
cmovb rax, r8
cmp rcx, rax
jne 0x1401c6025
mov rax, qword [r14 + 0x20]
cmp rax, qword [r14 + 0x18]
mov rsi, qword [rsp + 0x58]
jne 0x1401c5eb3
mov r15, qword [r14 + 8]
mov rdx, qword [r14]
lea r12, [rsp + 0x98]
mov rcx, r12
mov r8, r15
call fcn.14012f740
mov r8, qword [r12]
lea rdx, [rsp + 0x90]
mov rcx, r14
mov r9, r15
call fcn.14008a6cc
cmp qword [rsp + 0xb0], 0
je 0x1401c5d7d
mov qword [rsp + 0xb0], 0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
jmp 0x1401c5d7d
lea rsi, [rsp + 0xa0]
mov rcx, rsi
mov rdx, rbx
call fcn.140072e30
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x1401c5dba
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
sub r8, rdx
sar r8, 3
cmp r8, rax
cmovb rax, r8
cmp rcx, rax
jne 0x1401c60df
mov rax, qword [rsi + 0x20]
cmp rax, qword [rsi + 0x18]
jne 0x1401c5f7a
mov rbx, qword [rsi + 8]
mov rdx, qword [rsi]
lea r14, [rsp + 0x98]
mov rcx, r14
mov r8, rbx
call fcn.14012f740
mov r8, qword [r14]
lea rdx, [rsp + 0x90]
mov rcx, rsi
mov r9, rbx
call fcn.14008a6cc
cmp qword [rsp + 0xb0], 0
je 0x1401c5dba
mov qword [rsp + 0xb0], 0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
jmp 0x1401c5dba
mov rcx, rsi
call fcn.1401c5170
mov ebp, eax
jmp 0x1401c5a8d
lea rcx, [0x14035d2d8]
call fcn.14016f8b4
cmp dword [0x14035d2d8], 0xffffffff
jne 0x1401c58a1
lea rcx, [0x14035c630]
call fcn.1400ec5b0
lea rcx, [0x14035d2d8]
call fcn.14016ef8c
jmp 0x1401c58a1
lea rcx, [0x14035d2d8]
call fcn.14016f8b4
cmp dword [0x14035d2d8], 0xffffffff
jne 0x1401c5aed
lea rcx, [0x14035c630]
call fcn.1400ec5b0
lea rcx, [0x14035d2d8]
call fcn.14016ef8c
jmp 0x1401c5aed
lea r15, [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
cmp r8, rcx
jbe 0x1401c673a
mov rcx, qword [rdx + rcx*8]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r15
call qword [case.0x140211850.0]
mov r14, qword [rsp + 0xb0]
test r14, r14
je 0x1401c5d7d
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
lea rcx, [rdx + 1]
mov qword [rsp + 0xb8], rcx
mov r8, qword [r14 + 8]
sub r8, qword [r14]
sar r8, 3
cmp r8, rax
cmovae r8, rax
cmp rcx, r8
jae 0x1401c60bc
mov r9, qword [r14]
mov r10, qword [r14 + 8]
sub r10, r9
sar r10, 3
cmp r10, rcx
jbe 0x1401c6788
add rdx, 2
cmp qword [r9 + rdx*8 - 8], 0
je 0x1401c6740
dec rdx
mov rcx, rdx
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
sar r8, 3
cmp r8, rax
cmovb rax, r8
cmp rcx, rax
jne 0x1401c602f
jmp 0x1401c5e64
lea rbx, [rsp + 0x60]
cmp r8, rcx
jbe 0x1401c673d
mov rcx, qword [rdx + rcx*8]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov rdx, rbx
call qword [case.0x140211850.0]
mov rsi, qword [rsp + 0xb0]
test rsi, rsi
je 0x1401c5dba
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
lea rcx, [rdx + 1]
mov qword [rsp + 0xb8], rcx
mov r8, qword [rsi + 8]
sub r8, qword [rsi]
sar r8, 3
cmp r8, rax
cmovae r8, rax
cmp rcx, r8
jae 0x1401c6172
mov r9, qword [rsi]
mov r10, qword [rsi + 8]
sub r10, r9
sar r10, 3
cmp r10, rcx
jbe 0x1401c67a9
add rdx, 2
cmp qword [r9 + rdx*8 - 8], 0
je 0x1401c6755
dec rdx
mov rcx, rdx
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
sub r8, rdx
sar r8, 3
cmp r8, rax
cmovb rax, r8
cmp rcx, rax
jne 0x1401c60e4
jmp 0x1401c5f31
lea rcx, [0x14035aaf8]
call fcn.14016f8b4
cmp dword [0x14035aaf8], 0xffffffff
jne 0x1401c56ad
xorpd xmm0, xmm0
movupd xmmword [0x14035aae8], xmm0
lea rcx, [0x14035aae8]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035aaf8]
call fcn.14016ef8c
jmp 0x1401c56ad
lea rcx, [0x14035aaf8]
call fcn.14016f8b4
cmp dword [0x14035aaf8], 0xffffffff
jne 0x1401c5277
xorpd xmm0, xmm0
movupd xmmword [0x14035aae8], xmm0
lea rcx, [0x14035aae8]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035aaf8]
call fcn.14016ef8c
jmp 0x1401c5277
lea rcx, str.base_toplevel
call fcn.140041750
mov qword [0x140354508], rax
jmp 0x1401c5d34
lea rcx, [rsp + 0xa0]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1401b25f0
jmp 0x1401c5d3d
lea rcx, str.base_toplevel
call fcn.140041750
mov qword [0x140354510], rax
jmp 0x1401c5dca
lea rcx, [rsp + 0xa0]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1401b25f0
jmp 0x1401c5dd3
mov rcx, qword [0x14035aae0]
call fcn.140225ee0
jmp 0x1401c56f8
mov rcx, qword [0x14035aae0]
call fcn.140225ee0
jmp 0x1401c52be
int3
int3
mov ecx, dword [rsi + 0x94]
call qword [sym.imp.USER32.dll_GetQueueStatus]
movapd xmm0, xmmword [0x140301d60]
movapd xmmword [rsp + 0x80], xmm0
movapd xmmword [rsp + 0x70], xmm0
movapd xmmword [rsp + 0x60], xmm0
test eax, eax
jne 0x1401c51ca
xor ebp, ebp
xor eax, eax
xchg byte [rsi + 8], al
jmp 0x1401c5a8d
mov rcx, rdi
call qword [case.0x140211850.0]
jmp 0x1401c55c6
int3
lea rbx, [rsp + 0xa0]
mov rcx, rbx
call fcn.14007a620
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea r14, [0x140341ec0]
lea r15, str.MessagePumpForUI::ProcessPumpReplacementMessage_PeekMessage
mov cl, 0x58
mov rdx, r14
mov r8, r15
xor r9d, r9d
call fcn.1401b9550
mov r12, rax
jmp 0x1401c55e7
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x94]
shl eax, 0x10
or eax, 1
jmp 0x1401c55fe
cmp byte [r14], 0
je 0x1401c5621
mov rcx, r14
mov rdx, r15
mov r8, r12
call fcn.1401b32b0
jmp 0x1401c5621
mov rcx, rdi
call qword [case.0x140211850.0]
jmp 0x1401c5a76
lea rcx, [rdi - 0x18]
lea rdx, [rsp + 0xa0]
mov qword [rax - 0x28], rdx
call fcn.14012ca70
jmp 0x1401c5a57
int3
cmp byte [rdi + 0x138], 0
je 0x1401c5712
cmp qword [r14 + 8], 0
je 0x1401c640e
lea rcx, [r14 + 8]
mov rsi, qword [r14]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, rsi
or rcx, rax
mov qword [r14], rcx
movabs rax, 0x4000000000000000
lock or qword [r14], rax
jmp 0x1401c5712
lea rcx, [r14 + 8]
mov r15, rsi
mov rsi, qword [r14]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, rsi
mov rsi, r15
or rcx, rax
mov qword [r14], rcx
jmp 0x1401c570e
lea rcx, [r14 + 8]
mov r15, qword [r14]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [r14], rcx
jmp 0x1401c5724
lea r9, [rdi - 0xb8]
lea rcx, [rdi - 0x18]
lea r8, [rsp + 0x90]
mov byte [r8], 1
lea rdx, [rsp + 0x98]
mov dword [rdx], 2
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call fcn.140138990
jmp 0x1401c55c6
mov r12, rsi
cmp byte [rdi + 0x138], 0
je 0x1401c52da
cmp qword [rbx + 8], 0
je 0x1401c64e1
lea rcx, [rbx + 8]
mov rsi, qword [rbx]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, rsi
or rcx, rax
mov qword [rbx], rcx
lock or qword [rbx], r14
jmp 0x1401c52da
lea rcx, [rbx + 8]
mov r15, rsi
mov rsi, qword [rbx]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, rsi
mov rsi, r15
or rcx, rax
mov qword [rbx], rcx
jmp 0x1401c52d3
lea rcx, [rbx + 8]
mov r15, r14
mov r14, qword [rbx]
call fcn.14003b950
movabs rcx, 0xff00000000000000
and rcx, r14
mov r14, r15
or rcx, rax
mov qword [rbx], rcx
jmp 0x1401c52ec
int3
and al, 0x19
cmp byte [rdi - 0x30], 0
jne 0x1401c6551
test al, al
jne 0x1401c67ac
test al, al
je 0x1401c5a4f
cmp byte [rdi - 0x50], 0
je 0x1401c6850
lea r14, [rdi - 0x48]
test r12b, r12b
mov rax, qword [rdi - 0x70]
lea rcx, str.ApplicationTask
lea r8, str.NativeTask
cmove r8, rcx
mov qword [rsp + 0x20], rax
lea rdx, [0x140341ec0]
mov cl, 0x42
mov r9, r14
call fcn.14004d910
test byte [0x140341ec0], 0x19
je 0x1401c5a4f
cmp byte [rdi - 0x50], 0
je 0x1401c6850
mov qword [rsp + 0x20], r15
lea rdx, [0x140341ec0]
lea r8, [0x1403062fd]
mov cl, 0x45
mov r9, r14
call fcn.14004d910
jmp 0x1401c5a4f
int3
int3
and al, 0x19
cmp byte [rdi - 0x30], 0
jne 0x1401c65e5
test al, al
jne 0x1401c6800
test al, al
je 0x1401c559a
cmp byte [rdi - 0x50], 0
je 0x1401c6850
mov rax, qword [rdi - 0x70]
lea rbx, [rdi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140341ec0]
lea r8, str.PumpOverhead
mov cl, 0x42
mov r9, rbx
call fcn.14004d910
test byte [0x140341ec0], 0x19
je 0x1401c559a
cmp byte [rdi - 0x50], 0
je 0x1401c6850
mov qword [rsp + 0x20], r14
lea rdx, [0x140341ec0]
lea r8, [0x1403062fd]
mov cl, 0x45
mov r9, rbx
call fcn.14004d910
jmp 0x1401c559a
int3
int3
mov ecx, dword [rsp + 0x70]
call qword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x1401c5c7c
xor eax, eax
xchg byte [rsi + 8], al
mov rcx, qword [0x1403544e8]
test rcx, rcx
jne 0x1401c66aa
mov dword [rsp + 0x20], 1
lea rcx, [0x14030a290]
mov r9d, 5
mov edx, 1
mov r8d, 4
call fcn.1400cea30
mov rcx, rax
mov qword [0x1403544e8], rax
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor edx, edx
call qword [case.0x140211850.0]
test byte [0x140341290], 0x19
mov rsi, qword [rsp + 0x58]
je 0x1401c5c17
lea rdi, [rsp + 0xa0]
mov rcx, rdi
call fcn.14007a620
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rdi
mov rsi, qword [rsp + 0x58]
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x140341290]
lea r8, str.Chrome.MessageLoopProblem.MESSAGE_POST_ERROR
mov cl, 0x49
xor r9d, r9d
call fcn.1401b9550
jmp 0x1401c5c17
mov rcx, rsi
call fcn.140211150
jmp 0x1401c5c7c
int3
int3
int3
int3
mov qword [rsp + 0xb8], rdx
cmp r8, rdx
jne 0x1401c676a
mov rcx, r8
jmp 0x1401c60bc
mov qword [rsp + 0xb8], rdx
cmp r8, rdx
jne 0x1401c678b
mov rcx, r8
jmp 0x1401c6172
mov r9, qword [r14]
mov rcx, qword [r14 + 8]
sub rcx, r9
sar rcx, 3
lea r10, [rdx + 1]
cmp rcx, rdx
mov rdx, r10
ja 0x1401c60aa
int3
mov r9, qword [rsi]
mov rcx, qword [rsi + 8]
sub rcx, r9
sar rcx, 3
lea r10, [rdx + 1]
cmp rcx, rdx
mov rdx, r10
ja 0x1401c6160
int3
cmp byte [rdi - 0x50], 0
je 0x1401c6850
mov rax, qword [rdi - 0x70]
mov rcx, 0xfffffffffff0bdc0
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
lea r9, [rdi - 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140341ec0]
lea r8, str.MessagePumpPhases
mov cl, 0x49
call fcn.14004d910
mov al, byte [0x140341ec0]
and al, 0x19
jmp 0x1401c6551
cmp byte [rdi - 0x50], 0
je 0x1401c6850
mov rax, qword [rdi - 0x70]
mov rcx, 0xfffffffffff0bdc0
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
lea r9, [rdi - 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140341ec0]
lea r8, str.MessagePumpPhases
mov cl, 0x49
call fcn.14004d910
mov al, byte [0x140341ec0]
and al, 0x19
jmp 0x1401c65e5
ud2