Function at 0x46b970
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x2e0]
sub esp, 0x360
mov eax, dword [0x4b1120]
xor eax, ebp
mov dword [ebp + 0x2dc], eax
cmp dword [ebp + 0x2f8], 0
push ebx
mov ebx, dword [ebp + 0x2ec]
push esi
mov esi, dword [ebp + 0x2e8]
push edi
mov edi, dword [ebp + 0x2f4]
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x68], edi
je 0x46b9c0
push esi
push str._ReadAPSerial__d
call fcn.00469110
add esp, 8
mov eax, dword [ebp + 0x2f0]
push eax
push 0
push ebx
call fcn.00447660
add esp, 0xc
test edi, edi
je 0x46b9dc
mov dword [edi], 0
lea ecx, [ebp + 0x19c]
push ecx
push str.VPh_sCF
push esi
mov dword [ebp - 0x74], 0
call fcn.0046ad00
add esp, 0xc
test eax, eax
jne 0x46bbaf
lea edx, [ebp + 0x19c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
call fcn.0044a220
mov edi, esp
push esi
push edi
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp + 0x19c]
push ecx
push eax
push eax
mov word [edi], ax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
push 0x4a2220
push str.SOFTWAREClassesCLSID_
lea edx, [ebp - 0x64]
push 0x4a2c18
push edx
call fcn.00447b9e
add esp, 0x14
lea eax, [ebp - 0x7c]
push eax
push 1
push 0
lea ecx, [ebp - 0x64]
push ecx
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46bc5f
cmp dword [ebp + 0x2f8], eax
je 0x46ba87
push eax
lea edx, [ebp - 0x64]
push edx
push str._ReadAPSerial____RegOpenKeyEx_HKEY_LOCAL_MACHINE____s__...______dwError___ld
call fcn.00469110
add esp, 0xc
push 0x40
call fcn.004710a0
mov dword [ebp - 0x80], eax
add eax, 8
add esp, 4
cmp eax, 0x400
ja 0x46bab1
call fcn.0044a220
mov eax, esp
test eax, eax
je 0x46bac7
mov dword [eax], 0xcccc
jmp 0x46bac4
push eax
call fcn.00448217
add esp, 4
test eax, eax
je 0x46bac7
mov dword [eax], 0xdddd
add eax, 8
mov ebx, eax
test ebx, ebx
je 0x46bc53
mov ecx, dword [ebp - 0x7c]
lea eax, [ebp - 0x80]
push eax
push ebx
push 0
push 0
push str.GlobalS
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x46bc3b
push 0x40
lea edx, [ebp + 0x29c]
push edx
push ebx
call fcn.00471650
mov edi, eax
add esp, 0xc
test edi, edi
jbe 0x46bb81
cmp dword [ebp + 0x2f0], edi
jbe 0x46bb81
lea eax, [ebp + 0x29c]
push eax
mov dword [ebp - 0x74], 1
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
call fcn.0044a220
mov eax, esp
push esi
lea ecx, [ebp + 0x29c]
push ecx
push eax
call fcn.0040a2d0
mov esi, dword [ebp - 0x78]
mov edx, esi
jmp 0x46bb50
movzx ecx, word [eax]
mov word [edx], cx
add eax, 2
add edx, 2
test cx, cx
jne 0x46bb50
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x46bb6a
mov dword [eax], edi
cmp dword [ebp + 0x2f8], 0
je 0x46bb81
push esi
push str._ReadAPSerial____lpszSerial__s
call fcn.00469110
add esp, 8
cmp dword [ebx - 8], 0xdddd
lea eax, [ebx - 8]
jne 0x46bb96
push eax
call fcn.004482e1
add esp, 4
mov edx, dword [ebp - 0x7c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x74], 0
jne 0x46bc1d
mov ebx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp + 0x2f8]
mov eax, dword [ebp + 0x2f0]
push ecx
push eax
push eax
push 0
push ebx
call fcn.00447660
add esp, 0xc
push eax
push esi
call fcn.00469ab0
add esp, 0x10
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x46bc1d
cmp word [ebx], ax
je 0x46bc1d
test edi, edi
je 0x46bc01
mov eax, ebx
lea edx, [eax + 2]
jmp 0x46bbf0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46bbf0
sub eax, edx
sar eax, 1
mov dword [edi], eax
call fcn.0046fca0
test eax, eax
je 0x46bc1d
mov edx, dword [ebp + 0x2f8]
push edx
push 0
push ebx
push esi
call fcn.0046b680
add esp, 0x10
cmp dword [ebp + 0x2f8], 0
je 0x46bc83
mov esi, dword [ebp - 0x6c]
push esi
push str._ReadAPSerial__fin___return_error___d_
call fcn.00469110
add esp, 8
mov eax, esi
jmp 0x46bc86
cmp dword [ebp + 0x2f8], 0
je 0x46bb81
push eax
push str._ReadAPSerial____RegQueryValueEx_hKey___GlobalS__...______dwError___ld
jmp 0x46bb79
mov dword [ebp - 0x6c], 8
jmp 0x46bb96
cmp dword [ebp + 0x2f8], 0
je 0x46bba9
push eax
lea eax, [ebp - 0x64]
push eax
push str._ReadAPSerial____RegOpenKeyEx_HKEY_LOCAL_MACHINE____s__...______dwError___ld
call fcn.00469110
add esp, 0xc
jmp 0x46bba9
mov eax, dword [ebp - 0x6c]
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x2dc]
xor ecx, ebp
call fcn.00447645
add ebp, 0x2e0
mov esp, ebp
pop ebp
ret