Function at 0x4663e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x530ce1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x340
mov eax, dword [0x5c6150]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x340], esi
lea ecx, [ebp - 0x338]
call fcn.0044fd40
push 1
lea ecx, [ebp - 0x330]
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x334], 0
call fcn.00450b00
cmp byte [ebp - 0x21c], 0
lea eax, [ebp - 0x32c]
cmove eax, dword [ebp - 0x330]
xor ecx, ecx
mov word [eax + 4], cx
mov dword [ebp - 4], ecx
mov byte [ebp - 0x344], cl
mov dword [ebp - 0x348], ecx
lea ecx, [ebp - 0x204]
mov dword [ebp - method.t_reg.virtual_0], vtable.t_reg.0
call fcn.0044fd40
push 8
lea ecx, [ebp - 0x1fc]
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x208], reloc.WS2_32.dll_bind
mov dword [ebp - 0x200], 7
call fcn.00450b00
cmp byte [ebp - 0xe8], 0
lea eax, [ebp - 0x1f8]
movups xmm0, xmmword [str.MACHINE]
cmove eax, dword [ebp - 0x1fc]
movups xmmword [eax + 4], xmm0
push 1
push 0
push 0
push str.SoftwareSogouInput
lea eax, [ebp - 0x348]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x210]
call fcn.0044f620
test al, al
je 0x466611
push 0x105
lea ecx, [esi + 8]
mov dword [esi + 0x120], 0x105
call fcn.00450b00
cmp byte [esi + 0x11c], 0
lea eax, [esi + 0xc]
jne 0x46652c
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x350]
mov dword [ebp - 0x34c], 0
push ecx
add eax, 4
mov dword [ebp - 0x350], 0x208
push eax
lea eax, [ebp - 0x34c]
push eax
push 0
push 0
push dword [ebp - 0x20c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x4665b3
cmp byte [ebp - 0xe8], 0
lea edi, [ebp - 0x1f8]
push eax
cmove edi, dword [ebp - 0x1fc]
lea ecx, [ebp - 0x348]
call fcn.00450c80
mov ecx, eax
call fcn.00450ff0
lea ecx, [ebp - 0x348]
call fcn.00450c80
push 0x59d0a8
mov esi, eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
lea ecx, [edi + 4]
push ecx
jmp 0x4665f8
cmp dword [ebp - 0x34c], 1
je 0x4666c4
cmp byte [ebp - 0xe8], 0
lea edi, [ebp - 0x1f8]
lea ecx, [ebp - 0x348]
cmove edi, dword [ebp - 0x1fc]
call fcn.00450c80
push 0x59d0b8
mov esi, eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
lea edx, [edi + 4]
push edx
push 0x5971f4
push esi
call fcn.00450580
mov ecx, dword [ebp - 0x340]
add esp, 0xc
call fcn.0044ff00
mov byte [ebp - 0x339], 0
mov eax, dword [ebp - 0x20c]
mov dword [ebp - method.t_reg.virtual_0], vtable.t_reg.0
test eax, eax
je 0x466633
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 0xe8], 0
mov dword [ebp - 0x20c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x466669
mov eax, dword [ebp - 0x1fc]
lea ecx, [ebp - 0x1f8]
cmp eax, ecx
je 0x466669
push eax
call fcn.004e1b56
add esp, 4
lea ecx, [ebp - 0x348]
call fcn.00450c20
cmp byte [ebp - 0x21c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4666a0
mov eax, dword [ebp - 0x330]
lea ecx, [ebp - 0x32c]
cmp eax, ecx
je 0x4666a0
push eax
call fcn.004e1b56
add esp, 4
mov al, byte [ebp - 0x339]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d6cfd
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, esi
call fcn.004502b0
push 0xc8
lea eax, [ebp - 0xe0]
push 0
push eax
call fcn.004d9fe0
add esp, 0xc
mov dword [ebp - 0x340], 0xc8
lea eax, [ebp - 0x340]
lea ecx, [ebp - 0x210]
push 1
push str.Version
push eax
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.0044f780
test al, al
je 0x466611
push 0x597154
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
lea eax, [ebp - 0xe0]
push eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
mov byte [ebp - 0x339], 1
jmp 0x466618