Function at 0x41f6e0
Capabilities:
Reference wmi statements

Disassembly:
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x18]
jbe 0x41fe26
push rbp
mov rbp, rsp
sub rsp, 0x120
mov qword [rsp + 0x130], rax
mov edx, dword [rax + 0x90]
bt edx, 0xc
jae 0x41fd85
nop
mov edx, dword [rax + 0x90]
and edx, 0xffffefff
cmp edx, 2
ja 0x41f731
cmp edx, 1
je 0x41f73a
jmp 0x41fcd6
cmp edx, 4
ja 0x41f87c
mov rdx, r14
nop dword [rax]
cmp rdx, rax
je 0x41fcc5
mov r9, qword [rax + 0x70]
test r9, r9
jne 0x41f756
mov r9, qword [rax + 0x38]
mov r10, qword [rax + 8]
sub r10, r9
mov rdx, qword [rdx + 0x30]
mov rdx, qword [rdx + 0xa0]
test byte [rdx], al
add qword [rdx + 0x22d8], r10
inc qword [rdx + 0x22e0]
cmp qword [rax + 0x70], 0
jne 0x41f79a
cmp byte [rax + 0xb4], 0
je 0x41f78c
xor edx, edx
jmp 0x41f79c
nop
mov dl, byte [rax + 0xb9]
test dl, dl
sete dl
jmp 0x41f79c
xor edx, edx
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0xf0], r10
test dl, dl
jne 0x41f7b9
mov byte [rax + 0xb3], 1
jmp 0x41f7d6
call sym.runtime.shrinkstack
mov rax, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x138]
mov r10, qword [rsp + 0xf0]
lea rdi, [rsp + 0xa0]
lea rdi, [rdi - 0x30]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00468830
mov rbp, qword [rbp]
mov rdx, qword [rax]
mov r9, qword [rax + 8]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], r9
cmp qword [rax + 0x50], 0
je 0x41f83e
lea rdx, [rax + 0x50]
lea rcx, [0x005e4441]
mov rdi, rbx
lea rsi, [rsp + 0xa0]
mov ebx, 8
mov rax, rdx
call sym.runtime.scanblock
mov rax, qword [rsp + 0x130]
lea rdi, [rsp + 0x40]
lea rdi, [rdi - 0x20]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046882b
mov rbp, qword [rbp]
mov rbx, 0xffffffffffffffff
mov rcx, rbx
mov rdi, rcx
mov rsi, rax
xor r8d, r8d
lea rax, [rsp + 0x40]
call sym.runtime._unwinder_.initAt
jmp 0x41f951
nop dword [rax]
cmp edx, 6
jne 0x41f890
xor eax, eax
add rsp, 0x120
pop rbp
ret
nop
mov ecx, dword [rax + 0x90]
mov ecx, ecx
mov qword [rsp + 0x108], rcx
mov rdx, qword [rax + 0x98]
mov qword [rsp + 0x100], rdx
call sym.runtime.printlock
lea rax, [0x00511ab0]
mov ebx, 0xc
call sym.runtime.printstring
mov rax, qword [rsp + 0x130]
call sym.runtime.printpointer
lea rax, [0x005109cc]
mov ebx, 7
nop
call sym.runtime.printstring
mov rax, qword [rsp + 0x100]
call sym.runtime.printuint
lea rax, [0x00513e95]
mov ebx, 0x13
nop
call sym.runtime.printstring
mov rax, qword [rsp + 0x108]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x005132f5]
mov ebx, 0x11
call sym.runtime.throw
lea rax, [rsp + 0x40]
lea rbx, [rsp + 0xa0]
mov rcx, qword [rsp + 0x138]
call sym.runtime.scanframeworker
lea rax, [rsp + 0x40]
call sym.runtime._unwinder_.next
cmp qword [rsp + 0x50], 0
jne 0x41f92d
mov rdx, qword [rsp + 0x130]
mov r8, qword [rdx + 0x28]
mov eax, 1
jmp 0x41f974
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x110], r8
nop dword [rax]
test al, al
je 0x41f988
xor eax, eax
jmp 0x41f994
mov r8, qword [r8 + 0x20]
mov qword [rsp + 0x110], r8
mov r8, qword [rsp + 0x110]
nop dword [rax]
test r8, r8
je 0x41fa77
mov byte [rsp + 0x33], al
cmp qword [r8 + 0x18], 0
je 0x41f9e6
lea rax, [r8 + 0x18]
mov ebx, 8
lea rcx, [0x005e4441]
mov rdi, qword [rsp + 0x138]
lea rsi, [rsp + 0xa0]
call sym.runtime.scanblock
movzx eax, byte [rsp + 0x33]
mov rdx, qword [rsp + 0x130]
mov r8, qword [rsp + 0x110]
cmp qword [r8 + 0x20], 0
je 0x41fa27
lea rax, [r8 + 0x20]
mov ebx, 8
lea rcx, [0x005e4441]
mov rdi, qword [rsp + 0x138]
lea rsi, [rsp + 0xa0]
call sym.runtime.scanblock
movzx eax, byte [rsp + 0x33]
mov rdx, qword [rsp + 0x130]
mov r8, qword [rsp + 0x110]
cmp byte [r8], 0
je 0x41f96c
lea rax, [rsp + 0x110]
mov ebx, 8
lea rcx, [0x005e4441]
mov rdi, qword [rsp + 0x138]
lea rsi, [rsp + 0xa0]
nop dword [rax]
call sym.runtime.scanblock
movzx eax, byte [rsp + 0x33]
mov rdx, qword [rsp + 0x130]
jmp 0x41f96c
mov rbx, qword [rdx + 0x20]
nop dword [rax + rax]
test rbx, rbx
je 0x41fa94
lea rax, [rsp + 0xa0]
xor ecx, ecx
call sym.runtime._stackScanState_.putPtr
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe0]
nop
xor ebx, ebx
call sym.runtime.binarySearchTree
mov qword [rsp + 0xe8], rax
lea rax, [rsp + 0xa0]
nop dword [rax]
call sym.runtime._stackScanState_.getPtr
test rax, rax
je 0x41fb26
mov rdx, qword [rsp + 0xa0]
sub rax, rdx
mov rdx, qword [rsp + 0xe8]
nop dword [rax]
jmp 0x41fb76
xor edx, edx
test rdx, rdx
je 0x41fab4
mov r8, qword [rdx + 8]
test r8, r8
je 0x41fab4
xor r9d, r9d
nop
mov qword [rdx + 8], r9
nop
mov r9, r8
lea rax, [0x005e5ea0]
jmp 0x41fbaa
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0xd0], rcx
mov qword [rax + 0x10], 0
call sym.runtime.putempty
mov rax, qword [rsp + 0xd0]
test rax, rax
jne 0x41fb0d
cmp qword [rsp + 0xb8], 0
jne 0x41fb65
cmp qword [rsp + 0xc8], 0
jne 0x41fb65
cmp qword [rsp + 0xc0], 0
jne 0x41fb65
mov rax, qword [rsp + 0xf0]
add rsp, 0x120
pop rbp
ret
lea rax, [0x00516706]
mov ebx, 0x19
call sym.runtime.throw
test rdx, rdx
je 0x41fae5
mov r8d, dword [rdx]
cmp r8d, eax
jbe 0x41fb8d
mov rdx, qword [rdx + 0x10]
jmp 0x41fb76
mov r9d, dword [rdx + 4]
add r8d, r9d
cmp eax, r8d
jb 0x41fae7
mov rdx, qword [rdx + 0x18]
jmp 0x41fb76
mov rax, qword [rax + 0x248]
test rax, rax
je 0x41fbcb
cmp qword [rax + 0x140], r8
ja 0x41fba3
nop dword [rax + rax]
cmp qword [rax + 0x110], r8
jbe 0x41fba3
jmp 0x41fbcd
xor eax, eax
mov r8d, dword [r9 + 0xc]
add r8, qword [rax + 0x138]
mov r10d, dword [r9 + 8]
nop dword [rax]
test r10d, r10d
jl 0x41fbe9
xor eax, eax
jmp 0x41fc1e
mov byte [rsp + 0x32], bl
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x118], r9
neg r10d
movsxd rax, r10d
mov rbx, r8
call sym.runtime.materializeGCProg
mov r8, qword [rax + 0x18]
mov rdx, qword [rsp + 0x38]
movzx ebx, byte [rsp + 0x32]
mov r9, qword [rsp + 0x118]
mov qword [rsp + 0xf8], rax
mov edx, dword [rdx]
add rdx, qword [rsp + 0xa0]
test bl, bl
je 0x41fc68
mov r9d, dword [r9 + 8]
test r9d, r9d
jge 0x41fc45
neg r9d
movsxd r9, r9d
jmp 0x41fc48
movsxd r9, r9d
mov rax, rdx
mov rbx, r9
mov rcx, r8
mov rdi, qword [rsp + 0x138]
lea rsi, [rsp + 0xa0]
call sym.runtime.scanConservative
jmp 0x41fc9a
mov r9d, dword [r9 + 8]
test r9d, r9d
jge 0x41fc79
neg r9d
movsxd r9, r9d
jmp 0x41fc7c
movsxd r9, r9d
mov rax, rdx
mov rbx, r9
mov rcx, r8
mov rdi, qword [rsp + 0x138]
lea rsi, [rsp + 0xa0]
call sym.runtime.scanblock
mov rbx, qword [rsp + 0xf8]
test rbx, rbx
je 0x41fab4
nop
lea rax, [0x00604b20]
mov ecx, 2
call sym.runtime._mheap_.freeManual
nop dword [rax]
jmp 0x41fab4
lea rax, [0x005160fd]
mov ebx, 0x18
call sym.runtime.throw
cmp edx, 2
jne 0x41f890
nop
mov ecx, dword [rax + 0x90]
mov ecx, ecx
mov qword [rsp + 0x108], rcx
mov rdx, qword [rax + 0x98]
mov qword [rsp + 0x100], rdx
nop
call sym.runtime.printlock
lea rax, [0x00511ab0]
mov ebx, 0xc
call sym.runtime.printstring
mov rax, qword [rsp + 0x130]
nop
call sym.runtime.printpointer
lea rax, [0x005109cc]
mov ebx, 7
call sym.runtime.printstring
mov rax, qword [rsp + 0x100]
nop
call sym.runtime.printuint
lea rax, [0x00513e95]
mov ebx, 0x13
call sym.runtime.printstring
mov rax, qword [rsp + 0x108]
nop
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x00518ff5]
mov ebx, 0x20
nop dword [rax + rax]
call sym.runtime.throw
nop
mov ecx, dword [rax + 0x90]
mov dword [rsp + 0x34], ecx
mov rdx, qword [rax + 0x98]
mov qword [rsp + 0x108], rdx
nop
call sym.runtime.printlock
lea rax, [0x0051532a]
mov ebx, 0x16
call sym.runtime.printstring
mov rax, qword [rsp + 0x130]
nop
call sym.runtime.printpointer
lea rax, [0x005109cc]
mov ebx, 7
call sym.runtime.printstring
mov rax, qword [rsp + 0x108]
nop
call sym.runtime.printuint
lea rax, [0x00513e95]
mov ebx, 0x13
call sym.runtime.printstring
mov eax, dword [rsp + 0x34]
mov eax, eax
nop dword [rax]
call sym.runtime.printhex
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x00515340]
mov ebx, 0x16
nop dword [rax + rax]
call sym.runtime.throw
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestackc.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp sym.runtime.scanstack