Function at 0x100027b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100042b8
push 0x10003570
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x5d4
call fcn.10003540
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 0x4c8], ebx
mov ecx, 8
mov esi, str.SoftwareMitelOPSManagerVT100
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xd
mov esi, str.SOFTWAREMicrosoftWindows_NTCurrentVersionPorts_
lea edi, [ebp - 0x174]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xd
mov esi, str.SystemCurrentControlSetServicesSerialParameters_
lea edi, [ebp - 0x4c4]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov al, byte [0x10009318]
mov byte [ebp - 0x27c], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x27b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov cx, word [0x10006b78]
mov word [ebp - 0x4d0], cx
mov dword [ebp - 0x4d8], ebx
mov dword [ebp - 0x5e4], ebx
mov edx, dword [0x1000416c]
mov dword [0x10009320], edx
mov dword [ebp - 4], ebx
mov dword [ebp - 4], 1
lea eax, [ebp - 0x5e0]
push eax
push 0x20019
push ebx
lea ecx, [ebp - 0x3c]
push ecx
push Ordinal_4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x5e8], eax
test eax, eax
je 0x1000298e
push ebx
push ebx
lea edx, [ebp - 0x5e4]
push edx
push 0x400
push eax
push ebx
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 1
lea edi, [ebp - 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x1c
push ecx
call dword [sym.imp.MSVCRT.dll_calloc]
mov esi, eax
mov dword [ebp - 0x5dc], esi
lea eax, [ebp - 0x3c]
push eax
push str.Cannot_open_NT_Registry_key__s
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
mov eax, dword [ebp - 0x5e4]
test eax, eax
mov ecx, dword [sym.imp.verbose.dll_verboseFlag]
je 0x10002920
cmp byte [ecx], 0
je 0x1000294c
push eax
push esi
push str._s._Error_is__s
push 0xd0
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER3_message]
add esp, 0x1c
jmp 0x1000294c
cmp byte [ecx], 0
je 0x1000294c
push esi
push str._s._Error_message_not_found.
push 0xd3
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER2_message]
add esp, 0x18
mov ecx, dword [ebp - 0x5e4]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
test esi, esi
je 0x10002967
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov esi, dword [0x1000416c]
push 0xffffffffffffffff
lea edx, [ebp - 0x10]
push edx
call sub.MSVCRT.dll__local_unwind2
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 0x104
mov dword [ebp - 0x284], esi
mov dword [ebp - 0x5ec], esi
cmp ebx, 0x20
jge 0x10002ac2
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x140]
push ecx
push 0
push 0
lea edx, [ebp - 0x5ec]
push edx
lea eax, [ebp - 0x48c]
push eax
mov ecx, dword [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x5e0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov dword [ebp - 0x5e8], eax
test eax, eax
jne 0x10002ac2
mov eax, dword [ebp - 0x5ec]
test eax, eax
jbe 0x10002ab7
mov ecx, dword [ebp - 0x284]
test ecx, ecx
jbe 0x10002ab7
inc eax
push eax
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
call esi
mov dword [ebx*4 + 0x10006c90], eax
mov eax, dword [ebp - 0x284]
inc eax
push eax
call esi
add esp, 8
mov dword [ebx*4 + 0x10006c10], eax
lea edi, [ebp - 0x48c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebx*4 + 0x10006c90]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x140]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebx*4 + 0x10006c10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x1c], ecx
xor eax, eax
mov dword [ebp - 0x4d4], eax
cmp eax, 3
jge 0x10002a96
inc ecx
mov dword [ebp - 0x1c], ecx
inc eax
jmp 0x10002a84
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
dec eax
lea ecx, [ebx + ebx*4]
mov dword [ecx*8 + 0x10006d10], eax
inc ebx
mov dword [ebp - 0x280], ebx
mov esi, 0x104
inc dword [ebp - 0x4d8]
jmp 0x10002993
mov dword [ebp - 0x4c8], ebx
mov edx, dword [ebp - 0x5e0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
mov dword [ebp - 0x280], edi
xor ebx, ebx
mov dword [ebp - 0x4d8], ebx
lea eax, [ebp - 0x5e0]
push eax
push 0x20019
push ebx
lea ecx, [ebp - 0x174]
push ecx
push Ordinal_4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x5e8], eax
test eax, eax
je 0x10002beb
push ebx
push ebx
lea edx, [ebp - 0x5e4]
push edx
push 0x400
push eax
push ebx
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 1
lea edi, [ebp - 0x174]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x1c
push ecx
call dword [sym.imp.MSVCRT.dll_calloc]
mov esi, eax
mov dword [ebp - 0x5dc], esi
lea eax, [ebp - 0x174]
push eax
push str.Cannot_open_NT_Registry_key__s
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
mov eax, dword [ebp - 0x5e4]
test eax, eax
mov ecx, dword [sym.imp.verbose.dll_verboseFlag]
je 0x10002ba5
cmp byte [ecx], 0
je 0x10002bd1
push eax
push esi
push str._s._Error_is__s
push 0xfe
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER3_message]
add esp, 0x1c
jmp 0x10002bd1
cmp byte [ecx], 0
je 0x10002bd1
push esi
push str._s._Error_message_not_found.
push 0x101
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER2_message]
add esp, 0x18
mov ecx, dword [ebp - 0x5e4]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
test esi, esi
je 0x10002967
jmp 0x1000295d
mov dword [ebp - 0x284], esi
mov dword [ebp - 0x5ec], esi
cmp edi, dword [ebp - 0x4c8]
jge 0x10002d47
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x140]
push ecx
push 0
push 0
lea edx, [ebp - 0x5ec]
push edx
lea eax, [ebp - 0x48c]
push eax
push ebx
mov ecx, dword [ebp - 0x5e0]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov dword [ebp - 0x5e8], eax
test eax, eax
jne 0x10002d47
lea edx, [ebp - 0x4d0]
push edx
lea eax, [ebp - 0x48c]
push eax
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x178], eax
mov esi, dword [edi*4 + 0x10006c10]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10002c87
test cl, cl
je 0x10002c83
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10002c87
add eax, 2
add esi, 2
test cl, cl
jne 0x10002c63
xor eax, eax
jmp 0x10002c8c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10002d2a
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x10002d2a
mov byte [ebp + eax - 0x140], 0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + edi*4]
lea edx, [ecx*8 + 0x10006d10]
push edx
call fcn.10003270
add esp, 8
test eax, eax
je 0x10002d23
mov eax, dword [sym.imp.verbose.dll_verboseFlag]
cmp byte [eax], 0
je 0x10002cff
lea ecx, [ebp - 0x174]
push ecx
push str.Basic_Port_Configuration_mismatch_in_Registry__s:
push 0x113
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER2_message]
add esp, 0x18
mov ecx, 0xb
mov esi, str.Corrupted_basic_config_data_in_NT_Registry.
lea edi, [ebp - 0x5d8]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [0x1000416c]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
push ecx
jmp 0x10002973
inc edi
mov dword [ebp - 0x280], edi
inc ebx
mov dword [ebp - 0x4d8], ebx
mov eax, 0x104
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x5ec], eax
jmp 0x10002bf7
mov edx, dword [ebp - 0x5e0]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
mov dword [ebp - 0x280], ebx
mov dword [ebp - 0x4cc], ebx
mov esi, dword [ebp - 0x4c8]
cmp dword [ebp - 0x4cc], esi
jge 0x10003166
lea edi, [ebp - 0x4c4]
lea edx, [ebp - 0x27c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edx, [ebp - 0x27c]
mov eax, dword [ebp - 0x4cc]
mov edi, dword [eax*4 + 0x10006c90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edx, [ebp - 0x27c]
mov edi, 0x10006ac0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x5e0]
push eax
push 0x20019
push 0
lea ecx, [ebp - 0x27c]
push ecx
push Ordinal_4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x5e8], eax
test eax, eax
je 0x10002f54
push 0
push 0
lea edx, [ebp - 0x5e4]
push edx
push 0x400
push eax
push 0
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov eax, dword [sym.imp.verbose.dll_verboseFlag]
cmp byte [eax], 0
je 0x10002e86
lea ecx, [ebp - 0x27c]
push ecx
push str.Could_not_open_NT_Registry__s:
push 0x12f
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov edx, dword [sym.imp.verbose.dll_progName]
mov eax, dword [edx]
push eax
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER2_message]
add esp, 0x18
push 1
lea edi, [ebp - 0x27c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x1c
push ecx
call dword [sym.imp.MSVCRT.dll_calloc]
mov esi, eax
mov dword [ebp - 0x5dc], esi
lea ecx, [ebp - 0x27c]
push ecx
push str.Cannot_open_NT_Registry_key__s
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
mov eax, dword [ebp - 0x5e4]
test eax, eax
mov edx, dword [sym.imp.verbose.dll_verboseFlag]
je 0x10002efd
cmp byte [edx], 0
je 0x10002f28
push eax
push esi
push str._s._Error_is__s
push 0x136
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov eax, dword [sym.imp.verbose.dll_progName]
mov ecx, dword [eax]
push ecx
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER3_message]
add esp, 0x1c
jmp 0x10002f28
cmp byte [edx], 0
je 0x10002f28
push esi
push str._s._Error_message_not_found.
push 0x139
push str.W:NetMgmtOPS_srcC_src_serialPortSerPort.c
mov eax, dword [sym.imp.verbose.dll_progName]
mov ecx, dword [eax]
push ecx
push str._s__s__d:
call dword [sym.imp.verbose.dll_VER2_message]
add esp, 0x18
mov edx, dword [ebp - 0x5e4]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
test esi, esi
je 0x10002f43
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov esi, dword [0x1000416c]
push 0xffffffffffffffff
lea eax, [ebp - 0x10]
push eax
jmp 0x10002973
mov eax, 0x104
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x5ec], eax
mov dword [ebp - 0x4d8], 0
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
lea ecx, [ebp - 0x284]
push ecx
lea edx, [ebp - 0x388]
push edx
push 0
push 0
lea eax, [ebp - 0x5ec]
push eax
lea ecx, [ebp - 0x48c]
push ecx
mov edx, dword [ebp - 0x4d8]
push edx
mov eax, dword [ebp - 0x5e0]
push eax
call edi
mov dword [ebp - 0x5e8], eax
test eax, eax
jne 0x10003147
mov esi, str.DosDevices
lea eax, [ebp - 0x48c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10002fe2
test cl, cl
je 0x10002fde
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10002fe2
add eax, 2
add esi, 2
test cl, cl
jne 0x10002fbe
xor eax, eax
jmp 0x10002fe7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000303b
mov esi, dword [ebx*4 + 0x10006c10]
lea eax, [ebp - 0x388]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x1000301c
test cl, cl
je 0x10003018
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x1000301c
add eax, 2
add esi, 2
test cl, cl
jne 0x10002ff8
xor eax, eax
jmp 0x10003021
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1000312b
mov eax, dword [ebp - 0x5e0]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10002f75
mov esi, str.Interrupt
lea eax, [ebp - 0x48c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x1000306a
test cl, cl
je 0x10003066
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x1000306a
add eax, 2
add esi, 2
test cl, cl
jne 0x10003046
xor eax, eax
jmp 0x1000306f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10003088
lea eax, [ebx + ebx*4]
mov ecx, dword [ebp - 0x388]
mov dword [eax*8 + 0x10006d18], ecx
jmp 0x1000312b
mov esi, str.PortAddress
lea eax, [ebp - 0x48c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100030b7
test cl, cl
je 0x100030b3
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100030b7
add eax, 2
add esi, 2
test cl, cl
jne 0x10003093
xor eax, eax
jmp 0x100030bc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100030d2
lea eax, [ebx + ebx*4]
mov ecx, dword [ebp - 0x388]
mov dword [eax*8 + 0x10006d14], ecx
jmp 0x1000312b
mov esi, str.ForceFifoEnable
lea eax, [ebp - 0x48c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10003101
test cl, cl
je 0x100030fd
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10003101
add eax, 2
add esi, 2
test cl, cl
jne 0x100030dd
xor eax, eax
jmp 0x10003106
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000312b
cmp dword [ebp - 0x388], 1
lea eax, [ebx + ebx*4]
shl eax, 3
mov dword [eax + 0x10006d1c], 0x800
mov dword [eax + 0x10006d20], 0x1000
inc dword [ebp - 0x4d8]
mov eax, 0x104
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x5ec], eax
jmp 0x10002f75
mov eax, dword [ebp - 0x5e0]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc ebx
mov dword [ebp - 0x280], ebx
inc dword [ebp - 0x4cc]
jmp 0x10002d62
mov dword [ebp - 4], 0
call fcn.10003192
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret