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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
lea edi, [ebp - 0x4e]
mov word [ebp - 0x50], bx
push 4
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop esi
mov dword [ebp - 0x10], ecx
stosw word es:[edi], ax
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x6f]
mov byte [ebp - 0x70], bl
mov dword [ebp - 8], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x50]
mov dword [ebp - 0x14], ebx
push eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [ebp - 0x50]
mov eax, ecx
cdq
idiv esi
test edx, edx
jne 0x405bf1
mov eax, ecx
push 0x64
cdq
pop esi
idiv esi
test edx, edx
jne 0x405c04
mov eax, ecx
mov esi, 0x190
cdq
idiv esi
test edx, edx
je 0x405c04
push 1
pop eax
jmp 0x405c06
xor eax, eax
mov di, 2
lea esi, [ecx - 1]
cmp di, word [ebp - 0x4e]
push 0x64
movzx edx, word [ebp - 0x4e]
sbb edi, edi
mov dword [ebp - 0x18], edx
neg edi
inc eax
imul edi, eax
mov ax, 7
mov dword [ebp - 4], edi
cmp ax, word [ebp - 0x4e]
sbb eax, eax
neg eax
add eax, edx
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp - 4]
sar edi, 1
sub edi, eax
mov eax, esi
cdq
mov esi, 0x190
idiv esi
pop esi
push 4
add edi, eax
lea eax, [ecx - 1]
cdq
idiv esi
pop esi
push ebx
push 0x15180
sub edi, eax
lea eax, [ecx - 1]
cdq
imul ecx, ecx, 0x16d
idiv esi
add edi, eax
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x1e
add edi, eax
movzx eax, word [ebp - 0x4a]
add edi, ecx
lea eax, [edi + eax - 0x18c]
cdq
push edx
push eax
call fcn.0040a220
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x48]
imul eax, eax, 0xe10
cdq
add ecx, eax
push ebx
movzx eax, word [ebp - 0x46]
adc esi, edx
imul eax, eax, 0x3c
cdq
add ecx, eax
push 0x3e8
movzx eax, word [ebp - 0x44]
adc esi, edx
cdq
add ecx, eax
adc esi, edx
push esi
push ecx
call fcn.0040a220
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x42]
cdq
add ecx, eax
lea eax, [ebp - 8]
adc esi, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
push eax
push str.SOFTWARERepPopupPage
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov esi, dword [ebp - 0x10]
mov dword [ebp - 4], ebx
test eax, eax
jne 0x405e59
cmp dword [esi + 0x88], ebx
jbe 0x405e1e
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
mov dword [ebp - 0x10], ebx
mov eax, dword [esi + 0xa4]
mov ecx, dword [ebp - 0x10]
add eax, ecx
mov ecx, dword [eax + 4]
cmp ecx, ebx
je 0x405e08
cmp dword [eax], 5
jne 0x405e08
push ebx
push ecx
push dword [eax + 0x10]
mov ecx, esi
call fcn.00404fd0
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0x70]
push str.Open_08X
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 8
mov dword [ebp - 0x28], ebx
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x70]
push ebx
push eax
push dword [ebp - 8]
mov dword [ebp - 0x24], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x24]
jl 0x405d96
jg 0x405d7d
cmp ecx, dword [ebp - 0x28]
jb 0x405d96
sub ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0x8c]
sbb eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
cmp eax, ebx
jl 0x405e08
jg 0x405d96
cmp ecx, edx
jb 0x405e08
push dword [ebp - 0x18]
lea eax, [ebp - 0x70]
push str.Try_08X
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 8
mov dword [ebp - 0x30], ebx
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x70]
push ebx
push eax
push dword [ebp - 8]
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x24]
jl 0x405e2c
jg 0x405de0
cmp edx, dword [ebp - 0x28]
jb 0x405e2c
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
jl 0x405e2c
jg 0x405df0
cmp eax, edx
jb 0x405e2c
sub eax, edx
mov edx, dword [esi + 0x90]
sbb ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
cmp ecx, ebx
jg 0x405e2c
jl 0x405e08
cmp eax, edx
jae 0x405e2c
inc dword [ebp - 4]
add dword [ebp - 0x10], 0x18
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x88]
jb 0x405d07
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x405eb9
lea eax, [ebp - 0x20]
push 8
push eax
push 0xb
lea eax, [ebp - 0x70]
push ebx
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0xa4]
lea eax, [eax + eax*2]
jmp 0x405ec9
cmp dword [esi + 0x88], ebx
jbe 0x405eb9
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
cmp dword [eax + 4], ebx
je 0x405ea5
cmp dword [eax], 5
jne 0x405ea5
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
cmp eax, edi
jl 0x405ec0
jg 0x405e8b
cmp dword [ebp - 0x20], edx
jbe 0x405ec0
mov ecx, dword [ebp - 0x20]
sub ecx, edx
mov edx, dword [esi + 0x90]
sbb eax, edi
cmp eax, ebx
jg 0x405ec0
jl 0x405ea2
cmp ecx, edx
jae 0x405ec0
mov eax, dword [ebp - 0x10]
inc dword [ebp - 4]
add eax, 0x18
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x10], eax
cmp ecx, dword [esi + 0x88]
jb 0x405e6d
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 0x10]
jmp 0x405ebb