Function at 0x403b60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x20
mov ecx, dword [str.SoftwareLucent]
push ebx
push ebp
push esi
lea eax, [esp + 0xc]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
xor esi, esi
push eax
push 0xf003f
push esi
push ecx
push 0x80000002
mov dword [esp + 0x28], 0x40
call edi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x403bc8
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.ModemType
push ecx
call ebx
test eax, eax
jne 0x403bc1
mov esi, 1
mov edx, dword [esp + 0x10]
push edx
call ebp
test esi, esi
jne 0x403c66
mov ecx, dword [str.SoftwareAgere]
lea eax, [esp + 0x10]
push eax
push 0xf003f
push esi
push ecx
push 0x80000002
call edi
test eax, eax
jne 0x403c15
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.ModemType
push ecx
call ebx
test eax, eax
jne 0x403c0e
mov esi, 1
mov edx, dword [esp + 0x10]
push edx
call ebp
test esi, esi
jne 0x403c66
mov ecx, dword [str.SoftwareToshibaSoftModem]
lea eax, [esp + 0x10]
push eax
push 0xf003f
push esi
push ecx
push 0x80000002
call edi
test eax, eax
jne 0x403c5e
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
push esi
push esi
push str.ModemType
push ecx
call ebx
test eax, eax
jne 0x403c57
mov esi, 1
mov edx, dword [esp + 0x10]
push edx
call ebp
test esi, esi
je 0x403d8e
mov esi, 0x40abe8
lea eax, [esp + 0x18]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403c97
test cl, cl
je 0x403c93
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403c97
add eax, 2
add esi, 2
test cl, cl
jne 0x403c6f
xor eax, eax
jmp 0x403c9c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403cb2
mov dword [0x40d7c4], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov esi, 0x40abe4
lea eax, [esp + 0x18]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403ce3
test cl, cl
je 0x403cdf
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403ce3
add eax, 2
add esi, 2
test cl, cl
jne 0x403cbb
xor eax, eax
jmp 0x403ce8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403cfe
mov dword [0x40d7c4], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov esi, 0x40abe0
lea eax, [esp + 0x18]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403d2f
test cl, cl
je 0x403d2b
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403d2f
add eax, 2
add esi, 2
test cl, cl
jne 0x403d07
xor eax, eax
jmp 0x403d34
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403d4a
mov dword [0x40d7c4], 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov esi, 0x40abdc
lea eax, [esp + 0x18]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403d7b
test cl, cl
je 0x403d77
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403d7b
add eax, 2
add esi, 2
test cl, cl
jne 0x403d53
xor eax, eax
jmp 0x403d80
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403d8e
mov dword [0x40d7c4], 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret