Function at 0x4255f0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52d092
mov eax, dword fs:[0]
push eax
sub esp, 0x108
mov eax, dword [0x5c6150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0xc]
push 0x5920ac
mov dword [ebp - 0xe0], eax
call esi
push eax
lea ecx, [ebx + 8]
mov dword [ebp - 0xe4], eax
call fcn.00413c20
test eax, eax
je 0x42568a
mov eax, dword [ebp - 0xe4]
lea esi, [eax + eax]
push esi
push 0x5920ac
push dword [ebx + 8]
call fcn.004d9a60
mov eax, dword [ebx + 8]
add esp, 0xc
mov edx, dword [ebp - 0xe4]
xor ecx, ecx
mov dword [eax - 8], edx
mov eax, dword [ebx + 8]
mov word [esi + eax], cx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x5920ac
call esi
push eax
lea ecx, [ebx + 0xc]
mov dword [ebp - 0xe4], eax
call fcn.00413c20
test eax, eax
je 0x4256d9
mov eax, dword [ebp - 0xe4]
lea esi, [eax + eax]
push esi
push 0x5920ac
push dword [ebx + 0xc]
call fcn.004d9a60
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov edx, dword [ebp - 0xe4]
xor ecx, ecx
mov dword [eax - 8], edx
mov eax, dword [ebx + 0xc]
mov word [esi + eax], cx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x104], fcn.004e1b5b
mov dword [ebp - 0x100], fcn.004e1ae7
mov dword [ebp - 0xfc], fcn.004e1b56
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0x8000
mov dword [ebp - method.allocator_unsigned_char__class_TAllocDefault_.virtual_0], vtable.t_heap.0
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0xec], 0
push 0x3a8
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x108]
push dword [ebx + 0x10]
push dword [ebp - 0xdc]
call fcn.00455f50
test al, al
jne 0x425780
mov ecx, dword [ebp - 0xdc]
mov edi, dword [ebx + 0x10]
call fcn.00450c80
push 0x59502c
mov esi, eax
push 0x5971f4
push esi
call fcn.00450580
push edi
push 0x5971f4
push esi
call fcn.00450580
add esp, 0x18
xor bl, bl
jmp 0x426055
push str.version
push str.product0
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov dword [ebp - 0xe4], eax
test eax, eax
jne 0x4257a9
xor esi, esi
mov dword [ebp - 0xdc], esi
jmp 0x4257b4
push eax
call esi
mov esi, eax
mov dword [ebp - 0xdc], eax
push esi
mov ecx, ebx
call fcn.00413c20
test eax, eax
je 0x4257e6
add esi, esi
push esi
push dword [ebp - 0xe4]
push dword [ebx]
call fcn.004d9a60
mov eax, dword [ebx]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx]
mov word [esi + eax], cx
mov ecx, dword [ebx]
call fcn.004192f0
push ebx
lea ecx, [edi + 0x28]
call fcn.00415170
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
push 0x20019
push str.SoftwareSogouInput
push reloc.WS2_32.dll_bind
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 1
call fcn.00419440
test eax, eax
jne 0x425912
push 0x80
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.004d9fe0
add esp, 0xc
mov dword [ebp - 0xdc], 0x80
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xe4]
push eax
push 0
push str.version
push dword [ebp - 0x114]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x425912
mov eax, dword [ebp - 0xe4]
cmp eax, 1
je 0x425899
cmp eax, 2
jne 0x425912
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4258b6
test al, 1
jne 0x425912
shr eax, 1
cmp word [ebp + eax*2 - 0x92], 0
je 0x4258bf
jmp 0x425912
xor eax, eax
mov word [ebp - 0x90], ax
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x90]
push eax
call esi
push eax
lea ecx, [ebx + 4]
mov dword [ebp - 0xdc], eax
call fcn.00413c20
test eax, eax
je 0x425918
mov eax, dword [ebp - 0xdc]
lea esi, [eax + eax]
push esi
lea eax, [ebp - 0x90]
push eax
push dword [ebx + 4]
call fcn.004d9a60
mov eax, dword [ebx + 4]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [eax - 8], edx
mov eax, dword [ebx + 4]
mov word [esi + eax], cx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0x108]
push 0x59503c
push str.product0
mov byte [eax], 1
call fcn.00455c90
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x42594a
xor esi, esi
mov dword [ebp - 0xdc], esi
jmp 0x425955
push eax
call esi
mov esi, eax
mov dword [ebp - 0xdc], eax
push esi
lea ecx, [ebx + 8]
call fcn.00413c20
test eax, eax
je 0x42598b
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 8]
call fcn.004d9a60
mov eax, dword [ebx + 8]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 8]
mov word [esi + eax], cx
push 0x595044
push str.product0
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x4259b4
xor esi, esi
mov dword [ebp - 0xdc], esi
jmp 0x4259c3
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
mov dword [ebp - 0xdc], eax
push esi
lea ecx, [ebx + 0xc]
call fcn.00413c20
test eax, eax
je 0x4259f9
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0xc]
call fcn.004d9a60
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [eax - 8], edx
mov eax, dword [ebx + 0xc]
mov word [esi + eax], cx
push str.filesize
push str.product0
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov ecx, eax
lea eax, [ebx + 0x34]
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x425a21
xor esi, esi
jmp 0x425a2d
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [ebx + 0x34]
push esi
mov ecx, eax
mov dword [ebp - 0xdc], esi
call fcn.00413c20
test eax, eax
je 0x425a68
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0x34]
call fcn.004d9a60
mov eax, dword [ebx + 0x34]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x34]
mov word [esi + eax], cx
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0x425aac
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xe0], str.sgimeupinfo
push eax
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00457160
test eax, eax
je 0x425aac
cmp dword [eax + 4], 0
je 0x425aac
mov byte [edi], 1
jmp 0x425aaf
mov byte [edi], 0
push str.sharetime
push str.sgimeupinfo
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov dword [ebp - 0xe0], eax
lea ecx, [ebx + 0x38]
test eax, eax
jne 0x425ad5
xor esi, esi
jmp 0x425ae1
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea ecx, [ebx + 0x38]
push esi
mov dword [ebp - 0xdc], esi
call fcn.00413c20
test eax, eax
je 0x425b1a
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0x38]
call fcn.004d9a60
mov eax, dword [ebx + 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x38]
mov word [esi + eax], cx
push str.uploadspeed
push str.sgimeupinfo
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov ecx, eax
lea eax, [ebx + 0x40]
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x425b42
xor esi, esi
jmp 0x425b4e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [ebx + 0x40]
push esi
mov ecx, eax
mov dword [ebp - 0xdc], esi
call fcn.00413c20
test eax, eax
je 0x425b89
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0x40]
call fcn.004d9a60
mov eax, dword [ebx + 0x40]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x40]
mov word [esi + eax], cx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0xf
mov byte [ebp - 0xd8], 0
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 2
mov esi, dword [ebx + 0x34]
mov ecx, esi
push eax
sub esp, 0x18
xor eax, eax
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea eax, [ecx + 2]
mov dword [ebp - 0xe0], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425bd5
sub ecx, dword [ebp - 0xe0]
sar ecx, 1
push ecx
push esi
mov ecx, edx
call fcn.00413520
call fcn.0042ae70
cmp dword [ebp - 0xc4], 0x10
lea eax, [ebp - 0xd8]
cmovae eax, dword [ebp - 0xd8]
push eax
call fcn.004e1a0c
add esp, 4
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 3
mov esi, dword [ebx + 0x38]
mov ecx, esi
push eax
sub esp, 0x18
xor eax, eax
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea eax, [ecx + 2]
mov dword [ebp - 0xe0], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425c65
sub ecx, dword [ebp - 0xe0]
sar ecx, 1
push ecx
push esi
mov ecx, edx
call fcn.00413520
call fcn.0042ae70
cmp dword [ebp - 0xac], 0x10
lea eax, [ebp - 0xc0]
cmovae eax, dword [ebp - 0xc0]
push eax
call fcn.004e1a0c
add esp, 4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
test edx, edx
jg 0x425cc1
jl 0x425cb3
test eax, eax
ja 0x425cc1
mov dword [edi + 0x10], 0x112a880
mov dword [edi + 0x14], 0
push str.sharetime
push str.sgimeupdcshareinfo
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x425ce7
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea ecx, [ebx + 0x3c]
mov dword [ebp - 0xe8], eax
call fcn.00413c20
test eax, eax
je 0x425d2a
mov eax, dword [ebp - 0xe8]
lea esi, [eax + eax]
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0x3c]
call fcn.004d9a60
mov eax, dword [ebx + 0x3c]
add esp, 0xc
mov ecx, dword [ebp - 0xe8]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x3c]
mov word [esi + eax], cx
push str.uploadspeed
push str.sgimeupdcshareinfo
lea ecx, [ebp - 0x108]
call fcn.00455c90
mov ecx, eax
lea eax, [ebx + 0x44]
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x425d52
xor esi, esi
jmp 0x425d5e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [ebx + 0x44]
push esi
mov ecx, eax
mov dword [ebp - 0xdc], esi
call fcn.00413c20
test eax, eax
je 0x425d99
add esi, esi
push esi
push dword [ebp - 0xe0]
push dword [ebx + 0x44]
call fcn.004d9a60
mov eax, dword [ebx + 0x44]
add esp, 0xc
mov ecx, dword [ebp - 0xdc]
mov dword [eax - 8], ecx
xor ecx, ecx
mov eax, dword [ebx + 0x44]
mov word [esi + eax], cx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 4
mov esi, dword [ebx + 0x3c]
mov ecx, esi
push eax
sub esp, 0x18
xor eax, eax
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 7
mov word [edx], ax
lea eax, [ecx + 2]
mov dword [ebp - 0xe0], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425de5
sub ecx, dword [ebp - 0xe0]
sar ecx, 1
push ecx
push esi
mov ecx, edx
call fcn.00413520
call fcn.0042ae70
mov edx, dword [ebp - 0x98]
xor ecx, ecx
mov esi, dword [ebp - 0x94]
test edx, edx
jle 0x425e51
cmp edx, ecx
jbe 0x4260ad
cmp esi, 0x10
lea eax, [ebp - 0xa8]
cmovae eax, dword [ebp - 0xa8]
cmp byte [eax + ecx], 0x39
jg 0x425e7a
cmp esi, 0x10
lea eax, [ebp - 0xa8]
cmovae eax, dword [ebp - 0xa8]
cmp byte [eax + ecx], 0x30
jl 0x425e7a
inc ecx
cmp edx, ecx
jg 0x425e1a
cmp esi, 0x10
lea eax, [ebp - 0xa8]
cmovae eax, dword [ebp - 0xa8]
push eax
call fcn.004e1a0c
add esp, 4
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
test edx, edx
jg 0x425e88
jl 0x425e7a
test eax, eax
ja 0x425e88
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0x112a880
push 0x2f
push dword [ebx + 8]
call fcn.004d9879
add esp, 8
test eax, eax
je 0x425f01
mov ecx, dword [ebx + 8]
sub eax, ecx
sar eax, 1
test eax, eax
jle 0x425f01
lea edx, [eax + 1]
mov eax, dword [ecx - 8]
sub eax, edx
lea ecx, [ebx + 8]
push eax
push edx
lea eax, [ebp - 0xe8]
push eax
call fcn.00419fe0
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebx + 0x1c]
call fcn.00415170
mov eax, dword [ebp - 0xe8]
lea ecx, [eax - 0xc]
cmp ecx, 0x5c6ad4
je 0x425f01
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x425f01
mov eax, dword [ebp - 0xe8]
add eax, 0xfffffff4
push eax
call fcn.004d71b8
add esp, 4
mov byte [ebp - 4], 3
mov bl, 1
mov eax, dword [ebp - 0x94]
cmp eax, 0x10
jb 0x425f53
mov ecx, dword [ebp - 0xa8]
inc eax
cmp eax, 0x1000
jb 0x425f4a
test cl, 0x1f
jne 0x4260b2
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4260b2
sub ecx, eax
cmp ecx, 4
jb 0x4260b2
cmp ecx, 0x23
ja 0x4260b2
mov ecx, eax
push ecx
call fcn.004d6cf8
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
cmp eax, 0x10
jb 0x425fbe
mov ecx, dword [ebp - 0xc0]
inc eax
cmp eax, 0x1000
jb 0x425fb5
test cl, 0x1f
jne 0x4260b2
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4260b2
sub ecx, eax
cmp ecx, 4
jb 0x4260b2
cmp ecx, 0x23
ja 0x4260b2
mov ecx, eax
push ecx
call fcn.004d6cf8
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
cmp eax, 0x10
jb 0x426029
mov ecx, dword [ebp - 0xd8]
inc eax
cmp eax, 0x1000
jb 0x426020
test cl, 0x1f
jne 0x4260b2
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4260b2
sub ecx, eax
cmp ecx, 4
jb 0x4260b2
cmp ecx, 0x23
ja 0x4260b2
mov ecx, eax
push ecx
call fcn.004d6cf8
add esp, 4
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0xf
mov byte [ebp - 0xd8], 0
test eax, eax
je 0x426055
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - method.allocator_unsigned_char__class_TAllocDefault_.virtual_0], vtable.allocator_unsigned_char__class_TAllocDefault_.0
test ecx, ecx
je 0x42608d
mov eax, dword [ecx + 4]
push ecx
mov dword [ebp - 0xf8], eax
call dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf8]
add esp, 4
test ecx, ecx
jne 0x426070
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d6cfd
mov esp, ebp
pop ebp
ret 0xc
call fcn.00422760
call fcn.004e1d90
int3