Function at 0x470680
Capabilities:
Reference wmi statements

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4708f5
push rbp
mov rbp, rsp
sub rsp, 0x40
mov qword [rsp + 0x50], rax
mov edx, dword [rax]
xor ecx, ecx
xor ebx, ebx
xor esi, esi
xor edi, edi
jmp 0x4706a6
mov rax, r8
mov qword [rsp + 0x30], rdi
mov byte [rsp + 0x1e], sil
mov byte [rsp + 0x1d], bl
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x20], edx
mov r8d, edx
and edx, 5
mov dword [rsp + 0x2c], edx
cmp edx, 1
je 0x4706d1
xor r9d, r9d
jmp 0x470700
mov rax, rcx
call sym.sync.runtime_canSpin
mov rcx, qword [rsp + 0x38]
mov edx, dword [rsp + 0x2c]
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x20]
mov r9d, eax
mov rax, qword [rsp + 0x50]
nop
test r9b, r9b
jne 0x47082d
mov r9d, r8d
or r8d, 1
test r9d, 4
mov r10d, r9d
cmove r9d, r8d
lea r8d, [r9 + 8]
test edx, edx
cmovne r9d, r8d
test bl, bl
je 0x470737
bt r10d, 0
jae 0x470737
or r9d, 4
test sil, sil
je 0x470784
bt r9d, 1
jb 0x470780
mov dword [rsp + 0x24], r9d
lea rax, [0x00518407]
mov ebx, 0x1e
call sym.sync.throw
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
mov edx, dword [rsp + 0x2c]
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x20]
and r9d, 0xfffffffd
mov r8, rax
mov eax, r10d
lock cmpxchg dword [r8], r9d
sete r9b
test r9b, r9b
jne 0x4707a5
mov edx, dword [r8]
nop dword [rax + rax]
jmp 0x4706a3
test edx, edx
je 0x4708ef
test rdi, rdi
jne 0x4707c7
call sym.sync.runtime_nanotime
mov rcx, qword [rsp + 0x30]
test rcx, rcx
mov r8, qword [rsp + 0x50]
mov rdi, rax
mov qword [rsp + 0x30], rdi
setne bl
lea rax, [r8 + 4]
mov ecx, 1
call sym.sync.runtime_SemacquireMutex
movzx edx, byte [rsp + 0x1d]
test dl, dl
je 0x4707f2
mov rcx, qword [rsp + 0x30]
mov eax, 1
jmp 0x470808
call sym.sync.runtime_nanotime
mov rcx, qword [rsp + 0x30]
sub rax, rcx
cmp rax, 0xf4240
setg al
mov rdx, qword [rsp + 0x50]
mov esi, dword [rdx]
bt esi, 2
jb 0x470892
mov r8, rdx
mov edx, esi
xor ecx, ecx
mov ebx, eax
mov esi, 1
mov rdi, qword [rsp + 0x30]
jmp 0x4706a3
test sil, sil
jne 0x470862
bt r8d, 1
jb 0x470862
mov edx, r8d
sar r8d, 3
test r8d, r8d
je 0x470862
mov r8d, edx
or edx, 2
mov r9, rax
mov eax, r8d
lock cmpxchg dword [r9], edx
sete dl
test dl, dl
je 0x470862
mov esi, 1
mov byte [rsp + 0x1e], sil
call sym.sync.runtime_doSpin
mov rcx, qword [rsp + 0x38]
inc rcx
mov rax, qword [rsp + 0x50]
mov edx, dword [rax]
mov r8, rax
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
jmp 0x4706a3
mov byte [rsp + 0x1f], al
mov dword [rsp + 0x28], esi
nop word [rax + rax]
test esi, 3
jne 0x4708b1
mov ecx, esi
sar esi, 3
test esi, esi
jne 0x4708d3
lea rax, [0x00518407]
mov ebx, 0x1e
nop dword [rax]
call sym.sync.throw
movzx eax, byte [rsp + 0x1f]
mov ecx, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x50]
test al, al
je 0x4708e6
sar ecx, 3
cmp ecx, 1
je 0x4708e6
mov eax, 0xfffffff9
jmp 0x4708eb
mov eax, 0xfffffff5
lock xadd dword [rdx], eax
add rsp, 0x40
pop rbp
ret
mov qword [rsp + 8], rax
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
jmp sym.sync._Mutex_.lockSlow