Function at 0x402130
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c9a33
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x4fe37c]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x140], 0
lea ecx, [ebp - 0x38]
call fcn.00406c50
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 1
xor eax, eax
mov word [ebp - 0xc4], ax
push 0x7e
push 0
lea ecx, [ebp - 0xc2]
push ecx
call fcn.00445020
add esp, 0xc
mov dword [ebp - 0x18], 0x80
push str.Software_
lea ecx, [ebp - 0xe8]
call fcn.00406f50
mov byte [ebp - 4], 1
push str.SogouGameDownload
lea ecx, [ebp - 0xe8]
call fcn.00407050
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x14]
push ecx
push 0x4e6ea0
lea ecx, [ebp - 0xe8]
call fcn.00407070
push eax
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jne 0x402212
push 0x4e6d7c
lea edx, [ebp - 0xc4]
push edx
call fcn.004451be
add esp, 8
test eax, eax
jne 0x40230e
mov dword [ebp - 0xf8], 0
xor eax, eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov byte [ebp - 0x13c], 0
push 0x3f
push 0
lea ecx, [ebp - 0x13b]
push ecx
call fcn.00445020
add esp, 0xc
lea edx, [ebp - 0xf8]
push edx
call fcn.004be4d0
add esp, 4
movzx eax, al
test eax, eax
je 0x402290
mov ecx, dword [ebp - 0xec]
push ecx
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0xf4]
push eax
mov ecx, dword [ebp - 0xf8]
push ecx
push str._08X_08X_08X_08X
lea edx, [ebp - 0x13c]
push edx
call fcn.00409430
add esp, 0x18
lea eax, [ebp - 0x13c]
push eax
call fcn.004446f0
add esp, 4
push eax
lea ecx, [ebp - 0x13c]
push ecx
push 1
push str.HWID
push 0x4e6ec8
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
lea edx, [ebp - 0x13c]
push edx
lea ecx, [ebp - 0x38]
call fcn.00406d20
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp + 8]
call fcn.00406cc0
mov ecx, dword [ebp - 0x140]
or ecx, 1
mov dword [ebp - 0x140], ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.00406fd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.00406d00
mov eax, dword [ebp + 8]
jmp 0x4023e3
call fcn.004010b0
mov dword [ebp - 0xc8], eax
lea edx, [ebp - 0xc4]
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
jne 0x402334
mov dword [ebp - 0x144], 0
jmp 0x402398
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x3fffffff
jle 0x402359
mov dword [ebp - 0x148], 0
jmp 0x40238c
mov eax, dword [ebp - 0x10]
shl eax, 1
call fcn.00453ce0
mov dword [ebp - 0x14c], esp
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0x10]
shl edx, 1
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x14c]
push ecx
call fcn.00401110
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x144], edx
mov eax, dword [ebp - 0x144]
push eax
lea ecx, [ebp - 0x38]
call fcn.00406d20
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00406cc0
mov edx, dword [ebp - 0x140]
or edx, 1
mov dword [ebp - 0x140], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.00406fd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.00406d00
mov eax, dword [ebp + 8]
lea esp, [ebp - 0x150]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004443e3
mov esp, ebp
pop ebp
ret