Function at 0x10001000
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b8
mov eax, dword [0x10053008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x298], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp + 0x20]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp + 0x24]
push edi
mov dword [ebp - 0x2ac], eax
mov edi, 1
mov eax, dword [ebp + 0x28]
push 0x80
mov dword [ebp - 0x2b0], eax
lea eax, [ebp - 0x84]
push 0
push eax
mov dword [ebp - 0x294], 0
call fcn.10005470
push 0x1004794c
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea eax, [ebp - 0x294]
push eax
push 0x201
push 0
push str.SOFTWAREBiometric_CenterID_CenterIDC_SmartCard_ConnectorMada
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1000156a
mov eax, dword [ebp - 0x294]
test eax, eax
je 0x1000156a
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x28c]
push ecx
lea ecx, [ebp - 0x290]
mov dword [ebp - 0x288], 0
push ecx
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x28c], 4
push ecx
push 0
push str.BaudRate
push eax
call ebx
test eax, eax
jne 0x1000111c
cmp dword [ebp - 0x288], 4
jne 0x1000111c
mov ecx, dword [ebp - 0x298]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x1000111e
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.TimeOutSend
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x10001169
cmp dword [ebp - 0x288], 4
jne 0x10001169
mov ecx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x1000116b
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.SendRetry
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x100011b6
cmp dword [ebp - 0x288], 4
jne 0x100011b6
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x100011b8
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.TimeOutReadPersNumber
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x10001203
cmp dword [ebp - 0x288], 4
jne 0x10001203
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x10001205
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.TimeOutReadSerial
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x10001250
cmp dword [ebp - 0x288], 4
jne 0x10001250
mov ecx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x10001252
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.TimeOutReadCardState
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x1000129d
cmp dword [ebp - 0x288], 4
jne 0x1000129d
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
jmp 0x1000129f
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.ByteSize
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x100012ea
cmp dword [ebp - 0x288], 4
jne 0x100012ea
mov ecx, dword [ebp - 0x2b4]
mov al, byte [ebp - 0x290]
mov byte [ecx], al
jmp 0x100012ec
xor edi, edi
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.StopBits
push dword [ebp - 0x294]
call ebx
test eax, eax
jne 0x10001337
cmp dword [ebp - 0x288], 4
jne 0x10001337
mov ecx, dword [ebp - 0x2b8]
mov al, byte [ebp - 0x290]
mov byte [ecx], al
jmp 0x10001339
xor edi, edi
lea eax, [ebp - 0x29c]
push eax
push 1
push 0
push str.SYSTEMCurrentControlSet_servicesusbserEnum
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x100014ab
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.Count
push dword [ebp - 0x29c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000149d
cmp dword [ebp - 0x288], 4
jne 0x1000149d
mov eax, dword [ebp - 0x290]
push eax
push str.Count_of_COM_ports:__d
cmp eax, 1
jb 0x10001495
call fcn.10002f20
add esp, 8
mov dword [ebp - 0x28c], 0x80
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push 0x10047ab0
push dword [ebp - 0x29c]
call ebx
test eax, eax
jne 0x1000149f
cmp dword [ebp - 0x288], 1
jne 0x1000149f
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x284]
push str.SYSTEMCurrentControlSetEnum_sDevice_Parameters
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push 1
push 0
lea eax, [ebp - 0x284]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1000149f
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.PortName
push dword [ebp - 0x298]
call ebx
test eax, eax
jne 0x10001487
cmp dword [ebp - 0x288], 1
jne 0x10001487
lea eax, [ebp - 0x84]
push eax
push str.._s
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push dword [ebp - 0x298]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1000149f
call fcn.10002f20
add esp, 8
xor edi, edi
push dword [ebp - 0x29c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], 0x80
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x288]
push eax
push 0
push str.COMPort
push dword [ebp - 0x294]
call ebx
pop ebx
test eax, eax
jne 0x1000151b
cmp dword [ebp - 0x288], 1
jne 0x1000151b
lea eax, [ebp - 0x84]
push eax
push str.._s
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push dword [ebp - 0x294]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100034e6
mov esp, ebp
pop ebp
ret
mov eax, 0x1004794c
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001540
test cl, cl
je 0x1000153c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001540
add esi, 2
add eax, 2
test cl, cl
jne 0x10001520
xor eax, eax
jmp 0x10001545
sbb eax, eax
or eax, 1
push dword [ebp - 0x294]
xor ecx, ecx
test eax, eax
cmove edi, ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100034e6
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.100034e6
mov esp, ebp
pop ebp
ret