Function at 0x43de60
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e2015
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x663000]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 0
push eax
push 0x20019
push 0
push str.systemcurrentcontrolsetenumusb
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x1c], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43e1fb
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
xor esi, esi
mov dword [ebp - 0x40], eax
push 0x202
mov dword [ebp - 0x3c], 0
movss dword [ebp - 0x10], xmm0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], 0x100
call fcn.00465842
mov ebx, eax
add esp, 4
mov dword [ebp - 0x28], ebx
or edi, 0xffffffff
lea eax, [ebp - 0x34]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x24]
push eax
push ebx
push esi
mov esi, dword [ebp - 0x1c]
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x43e165
call fcn.0040cfd9
test eax, eax
je 0x43e21c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push ebx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.0040d850
test al, al
jne 0x43df5d
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040d9f0
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x18]
mov edi, dword [esi - 0xc]
test edi, edi
js 0x43e212
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x43df8c
push edi
lea ecx, [ebp - 0x18]
call fcn.0040208a
mov esi, dword [ebp - 0x18]
lea eax, [edi + 1]
push eax
push esi
call fcn.005bbfd8
add esp, 8
cmp edi, dword [esi - 8]
jg 0x43e212
mov dword [esi - 0xc], edi
xor eax, eax
mov word [esi + edi*2], ax
lea edi, [esi - 0x10]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
mov ecx, eax
jl 0x43dfce
cmp ecx, dword [edi]
jne 0x43dfce
mov esi, edi
mov dword [ebp - 0x14], esi
lock inc dword [ebx]
jmp 0x43e029
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x43e20d
mov ecx, dword [edi + 4]
lea edx, [edi + 0x10]
mov dword [eax + 4], ecx
add eax, 0x10
mov ecx, dword [edi + 4]
inc ecx
add ecx, ecx
je 0x43e026
test eax, eax
je 0x43e016
push ecx
test edx, edx
je 0x43e00b
push edx
push eax
call fcn.005b31a0
add esp, 0xc
jmp 0x43e026
push 0
push eax
call fcn.005b3720
add esp, 0xc
call fcn.005b68e9
mov dword [eax], 0x16
call fcn.005b680f
mov esi, dword [ebp - 0x14]
add esi, 0x10
mov byte [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x43e044
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, str.root_hub
mov eax, esi
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x43e076
test dx, dx
je 0x43e072
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x43e076
add eax, 4
add ecx, 4
test dx, dx
jne 0x43e050
xor eax, eax
jmp 0x43e07b
sbb eax, eax
or eax, 1
movss xmm1, dword [ebp - 0x10]
test eax, eax
jne 0x43e0a2
movsd xmm2, qword [0x637650]
cvtps2pd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x43e0a2
movss xmm0, dword [0x637648]
jmp 0x43e12c
mov ecx, str.root_hub20
mov eax, esi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x43e0d6
test dx, dx
je 0x43e0d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x43e0d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x43e0b0
xor eax, eax
jmp 0x43e0db
sbb eax, eax
or eax, 1
test eax, eax
jne 0x43e0ec
movss xmm0, dword [0x637660]
comiss xmm0, xmm1
ja 0x43e12c
mov eax, str.root_hub30
mov cx, word [esi]
cmp cx, word [eax]
jne 0x43e117
test cx, cx
je 0x43e113
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x43e117
add esi, 4
add eax, 4
test cx, cx
jne 0x43e0f1
xor eax, eax
jmp 0x43e11c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x43e131
movss xmm0, dword [0x637678]
maxss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
mov esi, dword [ebp - 0x20]
or edi, 0xffffffff
mov edx, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x20], esi
mov eax, edi
mov dword [ebp - 0x24], 0x100
lock xadd dword [edx + 0xc], eax
dec eax
mov ebx, dword [ebp - 0x28]
test eax, eax
jg 0x43df07
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43df07
movss xmm0, dword [ebp - 0x10]
comiss xmm0, dword [0x637638]
jbe 0x43e1e3
call fcn.0040cfd9
mov ecx, eax
test ecx, ecx
je 0x43e21c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
movss xmm0, dword [ebp - 0x10]
lea eax, [ebp - 0x28]
cvtps2pd xmm0, xmm0
sub esp, 8
mov byte [ebp - 4], 3
movsd qword [esp], xmm0
push str._.1f
push eax
call fcn.0043a460
mov esi, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [ebp - 0x2c]
push esi
mov ecx, dword [ecx]
push 0
push 0x115b4
call fcn.0041a6c0
mov byte [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x43e1e0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x1c]
test ebx, ebx
je 0x43e1f0
push ebx
call fcn.0046583d
add esp, 4
test esi, esi
je 0x43e1fb
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00402258
push 0x80070057
call fcn.0040238e
push 0x80004005
call fcn.0040238e
int3