Function at 0x14021de2e
Capabilities:
Resume thread
Suspend thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2f8
movaps xmmword [rsp + 0x2e0], xmm7
movaps xmmword [rsp + 0x2d0], xmm6
mov byte [rsp + 0x37], dl
mov rax, qword [0x14030c028]
xor rax, rsp
mov qword [rsp + 0x2c8], rax
mov qword [rsp + 0x48], rcx
mov r14, qword [rcx]
lea r15, [rsp + 0x108]
mov dword [r15], 0xaaaaaaaa
mov ecx, 0x4000
call fcn.140255dbc
mov r12, rax
mov ebp, 0x4000
mov esi, 0x14
mov ebx, 0x1000
mov ecx, 5
mov rdx, r12
mov r8d, ebp
mov r9, r15
call fcn.1401a0012
mov edi, eax
cmp eax, 0xc0000023
je 0x14021dec2
cmp edi, 0xc0000004
jne 0x14021df7e
mov ebp, dword [rsp + 0x108]
add ebp, ebx
test r12, r12
je 0x14021ded8
mov rcx, r12
call fcn.140255dc4
mov ecx, ebp
call fcn.140255dbc
mov r12, rax
dec esi
jne 0x14021de9a
mov ecx, 2
call fcn.1400f6360
test al, al
je 0x14021df3d
mov dword [rsp + 0x20], edi
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
lea rdi, [rsp + 0x180]
mov rcx, rdi
mov r8d, 0x5e
mov r9d, 2
call fcn.1401a0370
lea rcx, [rsp + 0x190]
lea rdx, str.NtQuerySystemInformation
mov r8d, 0x18
call fcn.14001eb4a
mov rcx, rdi
call fcn.1401a039c
test r12, r12
je 0x14021df4a
mov rcx, r12
call fcn.140255dc4
mov rcx, qword [rsp + 0x2c8]
xor rcx, rsp
call fcn.140257200
movaps xmm6, xmmword [rsp + 0x2d0]
movaps xmm7, xmmword [rsp + 0x2e0]
add rsp, 0x2f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test edi, edi
js 0x14021dee6
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcessId]
mov edi, eax
mov rsi, r12
mov rcx, qword [rsp + 0x48]
cmp dword [rsi + 0x50], edi
je 0x14021e025
mov eax, dword [rsi]
test rax, rax
je 0x14021dfae
add rsi, rax
jne 0x14021df99
mov ecx, 2
call fcn.1400f6360
test al, al
je 0x14021df3d
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
lea rbx, [rsp + 0x180]
mov rcx, rbx
mov r8d, 0x70
mov r9d, 2
call fcn.1400f6410
lea rcx, [rsp + 0x190]
lea rdx, str.process
mov r8d, 8
call fcn.14001eb4a
mov rcx, rax
mov edx, edi
call fcn.14001a604
lea rdx, str._not_found
mov r8d, 0xa
mov rcx, rax
call fcn.14001eb4a
mov rcx, rbx
call fcn.1400f68f0
jmp 0x14021df3d
test rsi, rsi
je 0x14021df3d
cmp dword [rsi + 4], 0
je 0x14021df3d
lea r15, [rsp + 0x118]
lea rax, [rcx + 0x90]
mov qword [rsp + 0x58], rax
lea rax, [rcx + 0x130]
mov qword [rsp + 0x38], rax
lea rax, [rcx + 0x148]
mov qword [rsp + 0x50], rax
lea rbp, [rsi + 0x128]
movaps xmm6, xmmword [0x14029de10]
xorps xmm7, xmm7
xor ebx, ebx
xor r14d, r14d
movups xmmword [r15 + 0x58], xmm6
movups xmmword [r15 + 0x48], xmm6
movups xmmword [r15 + 0x38], xmm6
movups xmmword [r15 + 0x28], xmm6
movups xmmword [r15 + 0x18], xmm6
movups xmmword [r15 + 8], xmm6
movups xmmword [r15 - 8], xmm6
mov qword [rsp + 0x108], 0
mov byte [rsp + 0x110], 0
mov dword [r15 + 0x60], ebx
movups xmmword [r15 + 0x50], xmm7
movups xmmword [r15 + 0x40], xmm7
movups xmmword [r15 + 0x30], xmm7
movups xmmword [r15 + 0x20], xmm7
movups xmmword [r15 + 0x10], xmm7
movups xmmword [r15], xmm7
mov rax, qword [rbp + 8]
mov qword [rsp + 0x148], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xd0], rax
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0xa0], xmm6
mov dword [rsp + 0x90], 0x30
lea rax, [rsp + 0x98]
mov dword [rax + 0x10], ebx
movups xmmword [rax], xmm7
movups xmmword [rax + 0x18], xmm7
lea rcx, [rsp + 0xd0]
mov edx, 0x4a
lea r8, [rsp + 0x90]
mov r9, rbp
call fcn.14019ff78
test eax, eax
js 0x14021e2c8
mov r13, qword [rsp + 0xd0]
test r13, r13
je 0x14021e8bd
mov rax, qword [rsp + 0x48]
mov bl, byte [rax + 0x160]
mov rax, qword [rsp + 0x148]
mov rcx, qword gs:[0x30]
cmp rax, qword [rcx + 0x48]
jne 0x14021e32a
mov dword [rsp + 0x170], 0
lea rcx, [rsp + 0x108]
call fcn.14021d5c8
mov dword [rsp + 0x174], 0x20
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0x178], eax
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0x20], 0
mov rcx, r13
xor edx, edx
lea r8, [rsp + 0xd0]
mov r9d, 0x30
call fcn.1401a00aa
test eax, eax
js 0x14021e3dd
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xc0], rax
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x150], rdx
mov qword [rsp + 0x158], 0x1788
mov r8d, 0x38
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x90]
call fcn.14021ec04
test al, al
mov rbx, qword [rsp + 0x38]
je 0x14021e5b3
cmp byte [rsp + 0x37], 0
je 0x14021e4fb
movups xmmword [rsp + 0x18c], xmm6
movaps xmmword [rsp + 0x180], xmm6
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x150], rdx
mov qword [rsp + 0x158], 0xf98
mov r8d, 0x1c
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x180]
call fcn.14021ec04
mov rbx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x184]
mov edi, dword [rsp + 0x188]
test al, al
mov eax, 0
cmove rcx, rax
cmove rdi, rax
jmp 0x14021e50b
mov edi, eax
mov ecx, 2
call fcn.1400f6360
test al, al
je 0x14021e8bd
mov dword [rsp + 0x20], edi
lea rdi, [rsp + 0x180]
mov rcx, rdi
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0x7f
mov r9d, 2
call fcn.1401a0370
mov r8d, 0xc
lea rcx, [rsp + 0x190]
lea rdx, str.NtOpenThread
call fcn.14001eb4a
mov rcx, rdi
call fcn.1401a039c
jmp 0x14021e8bd
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
je 0x14021e444
mov edi, eax
test bl, bl
je 0x14021e4a1
test edi, edi
jne 0x14021e4a1
mov ecx, 1
call fcn.1400f6360
xor edi, edi
test al, al
je 0x14021e4a6
lea rbx, [rsp + 0x180]
mov rcx, rbx
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0xa0
mov r9d, 1
call fcn.1400f6410
mov r8d, 7
lea rcx, [rsp + 0x190]
lea rdx, str.Thread
call fcn.14001eb4a
mov rdx, qword [rsp + 0x148]
mov rcx, rax
call fcn.14001aa5c
mov r8d, 0x34
mov rcx, rax
lea rdx, str._should_be_suspended__but_previous_suspend_count_is
call fcn.14001eb4a
xor edi, edi
mov rcx, rax
xor edx, edx
call fcn.14001a604
mov rcx, rbx
call fcn.1400f68f0
jmp 0x14021e4a6
mov edi, eax
mov ecx, 2
call fcn.1400f6360
test al, al
mov ebx, 0
je 0x14021e8b5
mov dword [rsp + 0x20], edi
lea rdi, [rsp + 0x180]
mov rcx, rdi
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0x1aa
mov r9d, 2
call fcn.1401a0370
mov r8d, 0x18
lea rcx, [rsp + 0x190]
lea rdx, str.NtQueryInformationThread
call fcn.14001eb4a
mov rcx, rdi
call fcn.1401a039c
jmp 0x14021e8b5
mov ecx, 2
call fcn.1400f6360
test al, al
mov ebx, 0
je 0x14021e8b5
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdi, [rsp + 0x180]
mov rcx, rdi
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0x9b
mov r9d, 2
call fcn.1400f7550
mov r8d, 0xd
lea rcx, [rsp + 0x190]
lea rdx, [0x1402c4dcd]
jmp 0x14021e8a8
movzx eax, bl
sub edi, eax
mov dword [rsp + 0x170], edi
cmp byte [rsp + 0x37], 0
mov ebx, 0
je 0x14021e4ce
lea rcx, [rsp + 0x108]
mov rdx, r13
call fcn.14021d722
jmp 0x14021e83f
mov ecx, 0x800
call fcn.1402376ea
test al, al
je 0x14021e82f
mov r8d, 0x800
lea rcx, [rsp + 0x108]
mov rdx, r13
call fcn.14021d822
jmp 0x14021e83f
mov rcx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x160], rdi
mov rax, rcx
sub rax, rdi
jae 0x14021e5ab
mov qword [rsp + 0x40], rcx
mov ecx, 2
call fcn.1400f6360
test al, al
je 0x14021e5a4
lea rbx, [rsp + 0x180]
mov rcx, rbx
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0x1ca
mov r9d, 2
call fcn.1400f6410
mov r8d, 0x15
lea rcx, [rsp + 0x190]
lea rdx, str.invalid_stack_range:
call fcn.14001eb4a
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14001aa5c
mov r8d, 3
mov rcx, rax
lea rdx, [0x1402c4d87]
call fcn.14001eb4a
mov rcx, rax
mov rdx, rdi
call fcn.14001aa5c
mov rcx, rbx
call fcn.1400f68f0
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x168], rax
mov eax, dword [0x14032cde0]
mov ecx, dword [0x14031d424]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14021e8e2
mov rax, qword [0x14032cdd8]
test rax, rax
je 0x14021e72b
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x88], rcx
mov rcx, r13
lea rdx, [rsp + 0x88]
call qword [case.0x140112150.0]
test eax, eax
js 0x14021e684
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x78], rdi
test rdi, rdi
je 0x14021e938
mov rcx, rdi
call fcn.14027a424
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x180]
lea rdx, [rsp + 0x78]
call fcn.140103680
cmp byte [rsp + 0x147], 0
jns 0x14021e65e
mov rcx, qword [rsp + 0x130]
call fcn.140255d7c
mov rax, qword [rsp + 0x190]
mov qword [r15 + 0x28], rax
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [r15 + 0x18], xmm0
mov rcx, rdi
call fcn.1401eecc0
jmp 0x14021e726
mov edi, eax
mov ecx, 1
call fcn.1400f6360
test al, al
je 0x14021e726
lea rcx, [rsp + 0x180]
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0x1db
mov r9d, 1
call fcn.1400f6410
mov r8d, 0x16
lea rcx, [rsp + 0x190]
lea rdx, str.GetThreadDescription:
call fcn.14001eb4a
mov qword [rsp + 0x40], rax
lea rbx, [rsp + 0x60]
mov rcx, rbx
mov edx, edi
call fcn.1400f7380
movzx r8d, byte [rsp + 0x77]
test r8b, r8b
jns 0x14021e6fb
mov r8, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.14001eb4a
cmp byte [rsp + 0x77], 0
jns 0x14021e719
mov rcx, qword [rsp + 0x60]
call fcn.140255d7c
lea rcx, [rsp + 0x180]
call fcn.1400f68f0
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x40], r13
mov r13, qword [rsp + 0x48]
mov rdi, qword [r13 + 0x138]
cmp rdi, qword [r13 + 0x140]
je 0x14021e76a
mov rcx, qword [rsp + 0x50]
mov rdx, rdi
lea r8, [rsp + 0x108]
call fcn.14021ea58
add rdi, 0x78
mov qword [r13 + 0x138], rdi
jmp 0x14021e823
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1a0], rax
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
sub rdi, qword [rbx]
sar rdi, 3
movabs rax, 0xeeeeeeeeeeeeeeef
imul rdi, rax
lea rdx, [rdi + 1]
movabs rcx, 0x222222222222222
cmp rdx, rcx
ja 0x14021e933
lea rax, [rdi + rdi]
cmp rax, rdx
cmova rdx, rax
movabs rax, 0x111111111111111
cmp rdi, rax
cmovae rdx, rcx
lea r13, [rsp + 0x180]
mov rcx, r13
mov r8, rdi
mov rdi, qword [rsp + 0x50]
mov r9, rdi
call fcn.14021eace
mov rdx, qword [rsp + 0x190]
mov rcx, rdi
lea r8, [rsp + 0x108]
call fcn.14021ea58
add qword [rsp + 0x190], 0x78
mov rcx, rbx
mov rdx, r13
call fcn.14021eb3a
mov rcx, r13
call fcn.14021ebc0
mov r13, qword [rsp + 0x40]
xor ebx, ebx
jmp 0x14021e8b5
lea rcx, [rsp + 0x108]
mov rdx, r13
call fcn.14021d622
test al, al
je 0x14021e8b5
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ResumeThread]
test eax, eax
jne 0x14021e191
mov ecx, 2
call fcn.1400f6360
test al, al
mov ebx, 0
je 0x14021e8b5
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdi, [rsp + 0x180]
mov rcx, rdi
lea rdx, str....._third_partycrashpadcrashpad_snapshotwinprocess_reader_win.cc
mov r8d, 0xbf
mov r9d, 2
call fcn.1400f7550
mov r8d, 0xc
lea rcx, [rsp + 0x190]
lea rdx, [0x1402c4e18]
call fcn.14001eb4a
mov rcx, rdi
call fcn.1400f7640
mov rcx, r13
call fcn.1401a058a
lea rcx, [rsp + 0x108]
call fcn.14021ea22
inc r14
mov eax, dword [rsi + 4]
add rbp, 0x50
cmp r14, rax
jb 0x14021e07a
jmp 0x14021df3d
lea rcx, [0x14032cde0]
call fcn.140255ea0
mov rbx, qword [rsp + 0x38]
cmp dword [0x14032cde0], 0xffffffff
jne 0x14021e5d8
lea rcx, [0x1402a9b50]
lea rdx, str.::GetThreadDescription
xor r8d, r8d
call fcn.1401a0f10
mov qword [0x14032cdd8], rax
lea rcx, [0x14032cde0]
call fcn.140255f38
mov rbx, qword [rsp + 0x38]
jmp 0x14021e5d8
call fcn.14026f3e0
mov qword [rsp + 0x80], 0
int3