Function at 0x402300
Capabilities:
Query or enumerate registry key
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1030
call fcn.0043d750
mov eax, dword [0x47b014]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
xor eax, eax
mov byte [ebp - 0x1025], 0
mov word [ebp - 0x40c], ax
xor edi, edi
lea eax, [ebp - 0x1020]
mov dword [ebp - 0x1030], edi
push eax
push 9
push edi
push str.SoftwarePassThruSupport
push closesocket
mov ebx, ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x4025e5
lea edi, [ebp - 0xc0c]
mov dword [ebp - 0x102c], eax
lea ecx, [ebp - 0x80c]
sub edi, ecx
nop dword [eax]
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1010]
mov dword [ebp - 0x1010], 0x200
push ecx
lea ecx, [ebp - 0xc0c]
push ecx
push eax
push dword [ebp - 0x1020]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc dword [ebp - 0x102c]
mov esi, eax
mov dword [ebp - 0x1014], esi
lea eax, [ebp - 0x80c]
mov edx, 0x200
movzx ecx, word [edi + eax]
test cx, cx
je 0x4023cb
mov word [eax], cx
dec edx
add eax, 2
cmp edx, 1
ja 0x4023b6
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x80c]
push eax
call fcn.0042cce0
add esp, 4
test esi, esi
jne 0x4025d3
lea eax, [ebp - 0x1018]
mov dword [ebp - 0x1018], esi
push eax
push str.vendor_u
lea eax, [ebp - 0x80c]
push 0x200
push eax
call fcn.00401070
add esp, 0x10
cmp eax, 1
mov eax, dword [ebp - 0x102c]
jne 0x402370
mov ecx, dword [ebp - 0x1030]
lea eax, [ebp - 0x40c]
cmp dword [ebp - 0x1018], ecx
mov esi, str.SoftwarePassThruSupport
mov edx, 0x200
cmova ecx, dword [ebp - 0x1018]
mov dword [ebp - 0x1030], ecx
mov ecx, eax
sub esi, ecx
nop dword [eax]
movzx ecx, word [esi + eax]
test cx, cx
je 0x402465
mov word [eax], cx
dec edx
add eax, 2
cmp edx, 1
ja 0x402450
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
mov dx, word [ebp - 0x40c]
mov ecx, 0x200
test dx, dx
je 0x402498
test ecx, ecx
je 0x4024c1
add eax, 2
dec ecx
cmp word [eax], 0
jne 0x402481
test ecx, ecx
je 0x4024c1
cmp ecx, 1
jbe 0x4024b5
mov esi, 0x4664b4
sub esi, eax
nop
movzx edx, word [esi + eax]
test dx, dx
je 0x4024b5
mov word [eax], dx
dec ecx
add eax, 2
cmp ecx, 1
ja 0x4024a0
xor ecx, ecx
mov word [eax], cx
mov dx, word [ebp - 0x40c]
lea eax, [ebp - 0x40c]
mov ecx, 0x200
test dx, dx
je 0x4024e8
test ecx, ecx
je 0x40250a
add eax, 2
dec ecx
cmp word [eax], 0
jne 0x4024d1
test ecx, ecx
je 0x40250a
cmp ecx, 1
jbe 0x402505
lea esi, [ebp - 0xc0c]
sub esi, eax
movzx edx, word [esi + eax]
test dx, dx
je 0x402505
mov word [eax], dx
dec ecx
add eax, 2
cmp ecx, 1
ja 0x4024f0
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x1024]
push eax
push 1
push 0
lea eax, [ebp - 0x40c]
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
mov eax, dword [ebp - 0x102c]
jne 0x402370
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x1010], 0x400
push eax
lea eax, [ebp - 0x100c]
push eax
lea eax, [ebp - 0x101c]
push eax
push 0
push str.Name
push dword [ebp - 0x1024]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4025af
mov word [ebp - 0xc0e], ax
mov ecx, 0x4662c0
lea eax, [ebp - 0x100c]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4025a6
test dx, dx
je 0x4025a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4025a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x402580
xor eax, eax
jmp 0x4025ab
sbb eax, eax
or eax, 1
test eax, eax
je 0x4025c6
push dword [ebp - 0x1024]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x102c]
jmp 0x402370
mov esi, dword [ebp - 0x1014]
mov byte [ebp - 0x1025], 1
push dword [ebp - 0x1020]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x1030]
cmp esi, 5
je 0x4026ac
cmp byte [ebp - 0x1025], 0
jne 0x4026d8
cmp byte [ebp + 8], 0
je 0x4026c2
lea eax, [edi + 1]
push eax
push str.SoftwarePassThruSupport
push str._sVendor_u
lea eax, [ebp - 0x40c]
push 0x200
push eax
call fcn.004019b0
add esp, 0x14
lea eax, [ebp - 0x1020]
push 0
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x40c]
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4026ac
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea eax, [ebp - 0x1014]
push 4
push eax
push 4
push 0
push 0x466698
push dword [ebp - 0x1020]
mov dword [ebp - 0x1014], 0x20a2
call edi
mov esi, eax
test esi, esi
jne 0x40269c
push 0x14
push 0x4662c0
push 1
push eax
push str.Name
push dword [ebp - 0x1020]
call edi
mov esi, eax
push dword [ebp - 0x1020]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x4026d8
mov eax, 0xe
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret
mov eax, 0x13
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x40270a
lea esi, [ebp - 0x40c]
mov ecx, 0x200
sub esi, ebx
nop dword [eax]
movzx edx, word [esi + ebx]
test dx, dx
je 0x402705
mov word [ebx], dx
dec ecx
add ebx, 2
cmp ecx, 1
ja 0x4026f0
xor ecx, ecx
mov word [ebx], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00422009
mov esp, ebp
pop ebp
ret