Function at 0x41c8e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xfc
mov eax, dword [sym.imp.QtCore4.dll_QListData::shared_null]
mov edx, dword [ebp + 8]
mov dword [edx], eax
lock inc dword [eax]
setne dl
mov ecx, dword [sym.imp.QtCore4.dll_QString::shared_null]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xd4], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xd4]
shl eax, 4
add eax, 0x493800
mov dword [esp], eax
call dword [sym.imp.setupapi.dll_SetupDiGetClassDevsW]
sub esp, 0x10
mov dword [ebp - 0xcc], eax
inc eax
je 0x41cffa
lea edi, [ebp - 0xa4]
mov dword [ebp - 0xdc], edi
mov ecx, 7
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp - 0xa4], 0x1c
nop
lea edx, [eax + 1]
mov dword [ebp - 0xd0], edx
lea ecx, [ebp - 0xa4]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov edi, dword [ebp - 0xcc]
mov dword [esp], edi
call dword [sym.imp.setupapi.dll_SetupDiEnumDeviceInfo]
sub esp, 0xc
test eax, eax
je 0x41cfdd
lea eax, [ebp - 0x20]
mov dword [esp], eax
call fcn.0041d3a4
mov dword [esp + 0x14], 0x20019
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
lea edx, [ebp - 0xa4]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0xcc]
mov dword [esp], ecx
call dword [sym.imp.setupapi.dll_SetupDiOpenDevRegKey]
sub esp, 0x18
mov dword [ebp - 0xc4], eax
mov edi, dword [ebp - 0xb0]
mov dword [ebp - 0x24], edi
mov edx, dword [ebp - 0xac]
lock inc dword [edx]
setne al
cmp dword [ebp - 0xc4], 0xffffffff
je 0x41cf78
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4000
lea ecx, [ebp - 0x3c]
mov dword [esp], ecx
mov esi, dword [method.QByteArray.QByteArray_int__char_]
lea ebx, [ebp - 0x24]
call esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4000
lea edi, [ebp - 0x40]
mov dword [esp], edi
call esi
xor esi, esi
mov eax, dword [method.QByteArray.realloc_int_]
mov dword [ebp - 0xc8], eax
jmp 0x41caff
mov dword [esp + 4], ecx
lea edx, [ebp - 0x40]
mov dword [esp], edx
lea ebx, [ebp - 0x24]
call dword [method.QByteArray.realloc_int_]
mov eax, dword [ebp - 0x40]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
dec edx
je 0x41cb38
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
lea ecx, [ebp - 0x3c]
mov dword [esp], ecx
lea ebx, [ebp - 0x24]
call dword [ebp - 0xc8]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0xc]
lea eax, [esi + 1]
mov dword [ebp - 0xc0], eax
lea ecx, [ebp - 0x48]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
lea edi, [ebp - 0x4c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
lea ebx, [ebp - 0x24]
call sub.ADVAPI32.DLL_RegEnumValueW
sub esp, 0x20
test eax, eax
jne 0x41cc7c
cmp dword [ebp - 0x4c], 1
je 0x41cb4c
mov esi, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 8]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x40]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], 0
mov ebx, dword [edx]
dec ebx
jne 0x41ca64
mov edi, dword [edx + 0xc]
add edx, 0x10
cmp edi, edx
jne 0x41ca64
mov edx, dword [eax]
dec edx
jne 0x41ca89
mov edx, dword [eax + 0xc]
lea ecx, [eax + 0x10]
cmp edx, ecx
jne 0x41ca89
jmp 0x41caa5
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
dec edx
je 0x41cd3c
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
lea edx, [ebp - 0x3c]
mov dword [esp], edx
lea ebx, [ebp - 0x24]
call dword [method.QByteArray.realloc_int_]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0xc]
lea edi, [ebp - 0x50]
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], edi
mov esi, dword [method.QString.fromUtf16_unsigned_short_const__int_]
lea ebx, [ebp - 0x24]
call esi
push edx
mov dword [esp + 8], 0xffffffff
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], eax
lea ecx, [ebp - 0x54]
mov dword [esp], ecx
call esi
push eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], str.PortName
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x58], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ebx, [ebp - 0x58]
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [method.QString.indexOf_QString_const__int__Qt::CaseSensitivity__const]
inc eax
setne al
mov byte [ebp - 0x19], al
test al, al
je 0x41cc3c
lea esi, [ebp - 0x19]
mov eax, dword [ebp - 0x58]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cc40
test esi, esi
jne 0x41cc53
mov eax, dword [ebp - 0x54]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cd28
mov eax, dword [ebp - 0x50]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x41caf9
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
lea ebx, [ebp - 0x24]
call dword [method.QString.free_QString::Data_]
jmp 0x41caf9
xor esi, esi
jmp 0x41cbf2
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
lea ebx, [ebp - 0x24]
call dword [method.QString.free_QString::Data_]
test esi, esi
je 0x41cc03
lea eax, [ebp - 0x54]
mov dword [esp + 4], eax
lea ebx, [ebp - 0x24]
mov dword [esp], ebx
call dword [method.QString.operator_QString_const_]
lea ecx, [ebp - 0x54]
mov dword [esp], ecx
call fcn.00437570
mov dword [esp], edi
call fcn.00437570
lea esi, [esi]
mov edi, dword [ebp - 0xc4]
mov dword [esp], edi
call sub.ADVAPI32.DLL_RegCloseKey
push esi
mov eax, dword [ebp - 0x40]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cd76
mov eax, dword [ebp - 0x3c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cd87
mov dword [esp + 4], ebx
lea esi, [ebp - 0x68]
mov dword [esp], esi
call dword [method.QVariant.QVariant_QString_const_]
mov eax, dword [ebp - 0x24]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cd50
lea edi, [ebp - 0x28]
mov dword [esp + 4], esi
mov dword [esp], edi
mov eax, dword [method.QVariant.toString___const]
mov dword [ebp - 0xbc], eax
mov ebx, dword [method.QVariant.QVariant__]
call eax
push ecx
xor ebx, ebx
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
test edx, edx
jne 0x41cd98
mov ebx, dword [method.QVariant.QVariant__]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cd68
mov dword [esp], esi
call ebx
lea edi, [ebp - 0x20]
mov dword [esp], edi
call method.SerialPortInfo.SerialPortInfo__
mov eax, dword [ebp - 0xd0]
jmp 0x41c978
mov eax, dword [ebp - 0x54]
mov dword [esp], eax
lea ebx, [ebp - 0x24]
call dword [method.QString.free_QString::Data_]
jmp 0x41cc14
mov edx, dword [eax + 0xc]
lea ecx, [eax + 0x10]
cmp edx, ecx
jne 0x41cb5b
jmp 0x41cb77
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov ebx, dword [method.QVariant.QVariant__]
call dword [method.QString.free_QString::Data_]
jmp 0x41ccce
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x41cd0c
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call dword [sym.imp.QtCore4.dll_qFree_void_]
jmp 0x41cc9c
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call dword [sym.imp.QtCore4.dll_qFree_void_]
jmp 0x41ccad
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x4937e9
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0x2c], eax
mov bl, 1
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea eax, [ebp - 0x2c]
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [method.QString.indexOf_QString_const__int__Qt::CaseSensitivity__const]
inc eax
setne byte [ebp - 0xc0]
mov eax, dword [ebp - 0x2c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cfb6
cmp byte [ebp - 0xc0], 0
jne 0x41cfd5
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov edx, dword [method.QString.operator_QString_const_]
mov dword [ebp - 0xb8], edx
mov ebx, dword [method.QVariant.QVariant__]
call edx
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0x4937ed
lea ecx, [ebp - 0x30]
mov dword [esp], ecx
mov ebx, dword [method.QVariant.QVariant__]
call dword [method.QString.fromAscii_char_const__int_]
push ecx
mov dword [esp + 4], edi
lea eax, [ebp - 0x30]
mov dword [esp], eax
call dword [method.QString.append_QString_const_]
lea ecx, [ebp - 0x30]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [esp], eax
call dword [ebp - 0xb8]
mov eax, dword [ebp - 0x30]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cf9f
mov dword [esp], 0
mov ebx, dword [method.QVariant.QVariant__]
lea ecx, [ebp - 0xa4]
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0x78]
call fcn.0041c334
lea ecx, [ebp - 0x78]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov eax, dword [method.QVariant.operator_QVariant_const_]
mov dword [ebp - 0xb4], eax
call eax
lea ecx, [ebp - 0x78]
mov dword [esp], ecx
mov ebx, dword [method.QVariant.QVariant__]
call ebx
mov dword [esp + 4], esi
lea eax, [ebp - 0x34]
mov dword [esp], eax
call dword [ebp - 0xbc]
push edx
lea edx, [ebp - 0x34]
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x20]
add eax, 8
mov dword [esp], eax
call dword [ebp - 0xb8]
mov eax, dword [ebp - 0x34]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cf8e
mov dword [esp], 0xb
lea ecx, [ebp - 0xa4]
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0x88]
call fcn.0041c334
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [ebp - 0xb4]
lea ecx, [ebp - 0x88]
mov dword [esp], ecx
call ebx
mov dword [esp + 4], esi
lea eax, [ebp - 0x38]
mov dword [esp], eax
call dword [ebp - 0xbc]
push eax
lea edx, [ebp - 0x38]
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x20]
add eax, 0xc
mov dword [esp], eax
call dword [ebp - 0xb8]
mov eax, dword [ebp - 0x38]
lock dec dword [eax]
setne dl
test dl, dl
je 0x41cf80
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.00436c00
mov eax, dword [ebp - 0x28]
jmp 0x41cd02
lea ebx, [ebp - 0x24]
jmp 0x41ccad
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x41cf5e
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x41ceee
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov ebx, dword [method.QVariant.QVariant__]
call dword [method.QString.free_QString::Data_]
jmp 0x41ce70
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov ebx, dword [method.QVariant.QVariant__]
call dword [method.QString.free_QString::Data_]
cmp byte [ebp - 0xc0], 0
je 0x41cdf8
mov eax, dword [ebp - 0x28]
jmp 0x41ccfc
mov dword [esp], edi
call dword [sym.imp.setupapi.dll_SetupDiDestroyDeviceInfoList]
push ebx
inc dword [ebp - 0xd4]
cmp dword [ebp - 0xd4], 4
jne 0x41c918
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret 4