Function at 0x140022658
Capabilities:
Check for time delay via gettickcount
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov r14d, r9d
mov rdi, r8
mov r15, rcx
xor eax, eax
mov dword [rsp + 0x70], eax
movzx ebx, byte [rbp + 0xb0]
test byte [0x1400f8a40], 0x20
je 0x1400226c6
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, ebx
lea rdx, [0x1400cd1b0]
call fcn.14001f364
mov rdx, qword [rbp + 0x98]
lea r8, [0x1400f3190]
mov eax, 5
mov r12, qword [rbp + 0xc8]
mov r13, qword [rbp + 0xb8]
mov rcx, qword [0x1400f3190]
cmp rcx, r8
je 0x140022735
test byte [rcx + 0x1c], 1
je 0x140022735
cmp byte [rcx + 0x19], al
jb 0x140022735
mov rax, qword [rdx + 0x10]
mov r8, qword [rbp + 0xd0]
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov r9, r15
mov rcx, qword [rcx + 0x10]
call fcn.14002055c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x6c], eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x58], xmm0
xor eax, eax
mov qword [rbp - 0x48], rax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
mov dword [rbp - 0x30], 0xa
mov dword [rsp + 0x64], eax
mov dword [rbp - 0x78], 0x32000
mov esi, eax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x20119
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindows_Media_Player_NSS3.0
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, eax
xor ecx, ecx
test eax, eax
jne 0x1400227b1
mov ebx, ecx
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x20], rax
mov r10, qword [0x1400f3190]
lea rdx, [0x1400f3190]
cmp r10, rdx
je 0x140022802
test byte [r10 + 0x1c], 2
je 0x140022802
mov edx, 2
test ebx, ebx
lea eax, [rdx + 3]
cmove edx, eax
movzx eax, byte [r10 + 0x19]
cmp eax, edx
jb 0x140022802
mov edx, 0x48
mov r9d, ebx
lea r8, [0x1400cf620]
mov rcx, qword [r10 + 0x10]
call fcn.1400036a8
mov r10, qword [0x1400f3190]
xor ecx, ecx
test ebx, ebx
jne 0x1400228c3
mov dword [rbp + 0xb8], ecx
mov dword [rbp - 0x68], 4
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x64]
xor r8d, r8d
lea rdx, str.BrowseSearchSizeOverride
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
jne 0x140022857
mov eax, dword [rbp - 0x64]
sub eax, 4
neg eax
sbb ebx, ebx
and ebx, 0xd
mov r10, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp r10, rax
je 0x1400228a1
test byte [r10 + 0x1c], 2
je 0x1400228a1
mov eax, 5
cmp byte [r10 + 0x19], al
jb 0x1400228a1
lea edx, [rax + 0x44]
mov dword [rsp + 0x20], ebx
mov r9d, dword [rbp + 0xb8]
lea r8, [0x1400cf620]
mov rcx, qword [r10 + 0x10]
call fcn.1400056d8
mov r10, qword [0x1400f3190]
test ebx, ebx
jne 0x1400228c3
mov r15d, dword [rbp + 0xb8]
test r15d, r15d
mov eax, 0xffffffff
cmove r15d, eax
mov dword [rbp - 0x78], r15d
mov r15, qword [rbp + 0x90]
lea rax, [0x1400f3190]
cmp r10, rax
je 0x1400228f9
test byte [r10 + 0x1c], 1
je 0x1400228f9
mov edx, 0x25
lea r8, [0x1400cfa38]
mov rcx, qword [r10 + 0x10]
call fcn.1400035e4
mov r10, qword [0x1400f3190]
lea rax, [0x1400f3190]
mov bl, byte [r13 + 0xb0]
cmp r10, rax
je 0x140022935
test byte [r10 + 0x1c], 1
je 0x140022935
mov eax, 5
cmp byte [r10 + 0x19], al
jb 0x140022935
movzx r9d, bl
lea edx, [rax + 0x21]
lea r8, [0x1400cfa38]
mov rcx, qword [r10 + 0x10]
call fcn.1400036a8
mov r10, qword [0x1400f3190]
cmp bl, 1
jne 0x1400229a7
lea rdx, [rbp - 0x58]
mov rcx, qword [rbp + 0xc0]
call fcn.140030258
mov esi, eax
mov r10, qword [0x1400f3190]
lea rax, [0x1400f3190]
xor ebx, ebx
cmp r10, rax
je 0x140022a08
test byte [r10 + 0x1c], 2
je 0x140022a08
movzx edx, byte [r10 + 0x19]
lea ecx, [rbx + 2]
test esi, esi
lea eax, [rbx + 5]
cmovns ecx, eax
cmp edx, ecx
jb 0x140022a08
lea edx, [rbx + 0x4a]
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x20], eax
mov r9d, esi
lea r8, [0x1400cf620]
mov rcx, qword [r10 + 0x10]
call fcn.1400056d8
jmp 0x140022a01
mov rbx, qword [rbp + 0xc0]
test rbx, rbx
je 0x140023243
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x140022a10
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbx + 0x10]
mov rbx, qword [rbx + 8]
mov r9, rcx
xor r8d, r8d
lea rcx, [rbp - 0x58]
call fcn.140027bf0
mov rcx, rax
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x1400229ed
mov qword [rax + 8], rcx
jmp 0x1400229f1
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x58], rcx
test rbx, rbx
jne 0x1400229c4
mov r14d, dword [rbp + 0xa8]
mov r10, qword [0x1400f3190]
test esi, esi
js 0x140022bb7
mov rcx, rbx
mov qword [rbp - 0x70], rbx
test rdi, rdi
je 0x140022a41
mov rax, qword [rdi]
lea r8, [rbp - 0x70]
lea rdx, [0x1400cf5e0]
mov rcx, rdi
mov rax, qword [rax]
call qword [str.__f_]
mov rcx, qword [rbp - 0x70]
mov r10, qword [0x1400f3190]
test rcx, rcx
je 0x140022b9e
mov dword [rsp + 0x68], ebx
lea rcx, str.IsRemoteConnection
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rbp], rax
test rax, rax
je 0x14002324e
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x68]
mov rdx, rdi
mov rax, qword [rax + 0x18]
call qword [str.__f_]
mov ebx, eax
mov rcx, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp rcx, rax
je 0x140022ad4
test byte [rcx + 0x1c], 2
je 0x140022ad4
movzx r8d, byte [rcx + 0x19]
mov edx, 2
test ebx, ebx
lea eax, [rdx + 3]
cmovns edx, eax
cmp r8d, edx
jb 0x140022ad4
lea edx, [rax + 0x46]
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x20], eax
mov r9d, ebx
lea r8, [0x1400cf620]
mov rcx, qword [rcx + 0x10]
call fcn.1400056d8
test ebx, ebx
js 0x140022b86
xor ebx, ebx
cmp dword [rsp + 0x68], ebx
je 0x140022b88
lea rcx, str.LocalPort
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rbp + 8], rax
test rax, rax
je 0x140023259
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
lea r8, [rsp + 0x64]
mov rdx, rbx
mov rax, qword [rax + 0x18]
call qword [str.__f_]
mov esi, eax
mov rcx, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp rcx, rax
je 0x140022b6e
test byte [rcx + 0x1c], 2
je 0x140022b6e
movzx r8d, byte [rcx + 0x19]
mov edx, 2
test esi, esi
lea eax, [rdx + 3]
cmovns edx, eax
cmp r8d, edx
jb 0x140022b6e
lea edx, [rax + 0x47]
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
mov r9d, esi
lea r8, [0x1400cf620]
mov rcx, qword [rcx + 0x10]
call fcn.1400056d8
mov eax, dword [rsp + 0x64]
xor ecx, ecx
test esi, esi
cmovs eax, ecx
mov dword [rsp + 0x64], eax
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
mov esi, ebx
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbp - 0x70]
mov r10, qword [0x1400f3190]
test rcx, rcx
je 0x140022bb7
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str.__f_]
mov r10, qword [0x1400f3190]
mov dword [rsp + 0x60], ebx
test esi, esi
js 0x140023132
mov rax, qword [r15]
lea rdx, [rsp + 0x60]
mov rcx, r15
mov rax, qword [rax + 0x40]
call qword [str.__f_]
mov edi, eax
mov r10, qword [0x1400f3190]
lea r15, [0x1400f3190]
cmp r10, r15
je 0x140022c2f
test byte [r10 + 0x1c], 2
je 0x140022c2f
movzx edx, byte [r10 + 0x19]
mov ecx, 2
test eax, eax
lea eax, [rcx + 3]
cmovns ecx, eax
cmp edx, ecx
jb 0x140022c2f
lea edx, [rax + 0x48]
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
mov r9d, edi
lea r8, [0x1400cf620]
mov rcx, qword [r10 + 0x10]
call fcn.1400056d8
mov r10, qword [0x1400f3190]
test edi, edi
js 0x140023139
mov eax, dword [rsp + 0x60]
test eax, eax
cmovs eax, ebx
mov dword [rsp + 0x60], eax
mov r15d, ebx
mov rcx, r12
call fcn.140004db8
imul edx, dword [rsp + 0x60], 0x1770
add edx, 0xb1
mov rax, qword [r12]
mov r8d, 1
sub r8d, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edx
or ecx, r8d
jge 0x140022c7d
mov rcx, r12
call fcn.140004f6c
lea rdx, str._DIDL_Lite_xmlns:dc_http:__purl.org_dc_elements_1.1___r_nxmlns:upnp_urn:schemas_upnp_org:metadata_1_0_upnp___r_nxmlns_urn:schemas_upnp_org:metadata_1_0_DIDL_Lite___r_n
or rsi, 0xffffffffffffffff
mov rax, rsi
inc rax
cmp word [rdx + rax*2], bx
jne 0x140022c8b
mov r8d, eax
mov rcx, r12
call fcn.140004638
mov rax, qword [r13]
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, r13
mov rax, qword [rax]
call qword [str.__f_]
test al, al
je 0x140022cd6
lea rdx, str.xmlns:microsoft_urn:schemas_microsoft_com:WMPNSS_1_0___r_n
mov rax, rsi
inc rax
cmp word [rdx + rax*2], bx
jne 0x140022cc2
mov r8d, eax
mov rcx, r12
call fcn.140004638
mov rax, qword [r13]
mov edx, 0x4a
mov rcx, r13
mov rax, qword [rax]
call qword [str.__f_]
test al, al
jne 0x140022d08
mov rax, qword [r13]
mov edx, 0x48
mov rcx, r13
mov rax, qword [rax]
call qword [str.__f_]
test al, al
je 0x140022d26
lea rdx, str.xmlns:dlna_urn:schemas_dlna_org:metadata_1_0___r_n
mov rax, rsi
inc rax
cmp word [rdx + rax*2], bx
jne 0x140022d12
mov r8d, eax
mov rcx, r12
call fcn.140004638
lea rdx, [0x1400cf504]
mov rax, rsi
inc rax
cmp word [rdx + rax*2], bx
jne 0x140022d30
mov r8d, eax
mov rcx, r12
call fcn.140004638
mov eax, dword [rsp + 0x60]
test eax, eax
jle 0x14002306e
cmp eax, 1
jne 0x140022d61
btr r14d, 0xc
mov dword [rbp + 0xa8], r14d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14d, eax
sub r14d, dword [rsp + 0x6c]
mov rcx, r12
call fcn.1400225b8
mov esi, eax
xor eax, eax
cmp dword [rsp + 0x60], eax
jbe 0x140023020
mov qword [rbp - 0x80], rax
mov r9, qword [rbp + 0x90]
mov rcx, qword [r9]
mov rax, qword [rcx + 0x38]
lea r8, [rbp - 0x80]
mov edx, ebx
mov rcx, r9
call qword [str.__f_]
mov edi, eax
mov rcx, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp rcx, rax
je 0x140022dfc
test byte [rcx + 0x1c], 2
je 0x140022dfc
movzx edx, byte [rcx + 0x19]
mov eax, 2
test edi, edi
lea r8d, [rax + 3]
cmovns eax, r8d
cmp edx, eax
jb 0x140022dfc
lea edx, [r8 + 0x49]
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
mov r9d, edi
lea r8, [0x1400cf620]
mov rcx, qword [rcx + 0x10]
call fcn.14000aa40
test edi, edi
js 0x14002300a
mov rax, qword [0x1400f6030]
lea rcx, [0x1400f6030]
mov rax, qword [rax + 0x18]
call qword [str.__f_]
add rax, 0x18
mov qword [rsp + 0x78], rax
mov edx, 1
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
mov eax, 0x1770
sub ecx, eax
or ecx, edx
jge 0x140022e47
mov edx, eax
lea rcx, [rsp + 0x78]
call fcn.140004f6c
test byte [0x1400f8a40], 0x20
je 0x140022e5f
mov r8d, ebx
lea rdx, [0x1400cd190]
call fcn.14001f308
lea rcx, [rbp + 0x10]
call fcn.140035fdc
nop
mov qword [rsp + 0x38], r13
mov rax, qword [rbp + 0x98]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov al, byte [rbp + 0xb0]
mov byte [rsp + 0x20], al
mov r9d, dword [rbp + 0xa8]
mov r8d, dword [rsp + 0x64]
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x10]
call fcn.1400361bc
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x10]
call fcn.1400b82bc
test byte [0x1400f8a40], 0x20
je 0x140022ecc
mov r8d, ebx
lea rdx, [0x1400cd180]
call fcn.14001f308
mov rdx, qword [rsp + 0x78]
xor eax, eax
cmp dword [rdx - 0x10], eax
je 0x140022f2d
test dword [rbp + 0xa8], 0x408
jne 0x140022f08
lea rcx, [rsp + 0x78]
call fcn.1400225b8
add eax, 2
add esi, eax
lea eax, [rsi + 0xc]
mov r8d, dword [rbp - 0x78]
cmp eax, r8d
ja 0x140022f89
mov rdx, qword [rsp + 0x78]
inc r15d
mov r8d, dword [rdx - 0x10]
mov rcx, r12
call fcn.140004638
mov r8d, 2
lea rdx, [0x1400cf39c]
mov rcx, r12
call fcn.140004638
nop
lea rcx, [rbp + 0x10]
call fcn.140036108
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022f5e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
nop
mov rcx, qword [rbp - 0x80]
xor eax, eax
test rcx, rcx
je 0x140022f78
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str.__f_]
xor eax, eax
inc ebx
cmp ebx, dword [rsp + 0x60]
jae 0x140023020
jmp 0x140022d85
mov rcx, qword [0x1400f3190]
lea rax, [0x1400f3190]
cmp rcx, rax
je 0x140022fd9
test byte [rcx + 0x1c], 2
je 0x140022fd9
mov eax, 5
cmp byte [rcx + 0x19], al
jb 0x140022fd9
lea eax, [rsi + 0xc]
mov edx, 0x4f
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
mov r9d, ebx
lea r8, [0x1400cf620]
mov rcx, qword [rcx + 0x10]
call fcn.14001fdf0
nop
lea rcx, [rbp + 0x10]
call fcn.140036108
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002300a
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
nop
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x140023020
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str.__f_]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [rsp + 0x6c]
sub eax, esi
mov rcx, qword [0x1400f3190]
lea rdx, [0x1400f3190]
mov r13d, 5
cmp rcx, rdx
je 0x140023078
test byte [rcx + 0x1c], 2
je 0x140023078
cmp byte [rcx + 0x19], r13b
jb 0x140023078
lea edx, [r13 + 0x4b]
mov dword [rsp + 0x20], eax
mov r9d, r14d
lea r8, [0x1400cf620]
mov rcx, qword [rcx + 0x10]
call fcn.1400056d8
jmp 0x140023078
mov esi, dword [rsp + 0x6c]
mov r13d, 5
mov rbx, qword [rbp + 0xd0]
mov dword [rbx], r15d
lea rdx, str.__DIDL_Lite_
or rax, 0xffffffffffffffff
xor r14d, r14d
inc rax
cmp word [rdx + rax*2], r14w
jne 0x140023090
mov r8d, eax
mov rcx, r12
call fcn.140004638
mov rcx, qword [r12]
test rcx, rcx
jne 0x1400230b3
mov eax, r14d
jmp 0x1400230c9
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], r14w
jne 0x1400230b7
test eax, eax
js 0x140023238
cmp eax, dword [rcx - 0xc]
jg 0x140023238
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [r12]
mov word [rax + rcx*2], r14w
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
mov r10, qword [0x1400f3190]
lea r15, [0x1400f3190]
cmp r10, r15
je 0x14002312c
test byte [r10 + 0x1c], 2
je 0x14002312c
cmp byte [r10 + 0x19], r13b
jb 0x14002312c
mov edx, 0x51
mov dword [rsp + 0x20], eax
mov r9d, esi
lea r8, [0x1400cf620]
mov rcx, qword [r10 + 0x10]
call fcn.1400056d8
mov r10, qword [0x1400f3190]
test edi, edi
jns 0x140023145
jmp 0x140023140
lea r15, [0x1400f3190]
mov rbx, qword [rbp + 0xd0]
mov edi, 0x80040365
cmp r10, r15
je 0x1400231a2
test byte [r10 + 0x1c], 1
je 0x1400231a2
mov edx, edi
sar edx, 0x1f
and edx, 0xfffffffd
add edx, 5
movzx eax, byte [r10 + 0x19]
cmp eax, edx
jl 0x1400231a2
mov r8d, 0xf3c
lea rdx, [rbp - 0x28]
mov rcx, r12
call fcn.1400048c4
mov esi, 1
mov rcx, qword [rax]
lea edx, [rsi + 0x51]
mov eax, dword [rbx]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, edi
mov rcx, qword [0x1400f3190]
mov rcx, qword [rcx + 0x10]
call fcn.14001fcc8
jmp 0x1400231a6
mov esi, dword [rsp + 0x70]
test sil, 1
je 0x1400231d1
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400231d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.__f_]
test byte [0x1400f8a40], 0x20
je 0x140023202
test rbx, rbx
je 0x1400231e3
mov eax, dword [rbx]
jmp 0x1400231e6
or eax, 0xffffffff
mov dword [rsp + 0x20], edi
mov r9d, eax
movzx r8d, byte [rbp + 0xb0]
lea rdx, [0x1400cd1a0]
call fcn.14001f364
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140023212
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rcx, [rbp - 0x58]
call fcn.140015958
mov eax, edi
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.1400051a4
int3
mov ecx, 0x80004005
call fcn.1400051a4
nop
mov ecx, 0x8007000e
call fcn.1400051a4
nop
mov ecx, 0x8007000e
call fcn.1400051a4
int3