Function at 0x10003d62
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 0x10003dcf
mov eax, ecx
push 0x64
cdq
pop esi
idiv esi
test edx, edx
jne 0x10003de2
mov eax, ecx
mov esi, 0x190
cdq
idiv esi
test edx, edx
je 0x10003de2
push 1
pop eax
jmp 0x10003de4
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.10006820
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.10006820
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 0x10004037
cmp dword [esi + 0x88], ebx
jbe 0x10003ffc
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 0x10003fe6
cmp dword [eax], 5
jne 0x10003fe6
push ebx
push ecx
push dword [eax + 0x10]
mov ecx, esi
call fcn.100031ae
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 0x10003f74
jg 0x10003f5b
cmp ecx, dword [ebp - 0x28]
jb 0x10003f74
sub ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0x8c]
sbb eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
cmp eax, ebx
jl 0x10003fe6
jg 0x10003f74
cmp ecx, edx
jb 0x10003fe6
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 0x1000400a
jg 0x10003fbe
cmp edx, dword [ebp - 0x28]
jb 0x1000400a
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
jl 0x1000400a
jg 0x10003fce
cmp eax, edx
jb 0x1000400a
sub eax, edx
mov edx, dword [esi + 0x90]
sbb ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
cmp ecx, ebx
jg 0x1000400a
jl 0x10003fe6
cmp eax, edx
jae 0x1000400a
inc dword [ebp - 4]
add dword [ebp - 0x10], 0x18
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x88]
jb 0x10003ee5
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10004097
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 0x100040a7
cmp dword [esi + 0x88], ebx
jbe 0x10004097
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
cmp dword [eax + 4], ebx
je 0x10004083
cmp dword [eax], 5
jne 0x10004083
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
cmp eax, edi
jl 0x1000409e
jg 0x10004069
cmp dword [ebp - 0x20], edx
jbe 0x1000409e
mov ecx, dword [ebp - 0x20]
sub ecx, edx
mov edx, dword [esi + 0x90]
sbb eax, edi
cmp eax, ebx
jg 0x1000409e
jl 0x10004080
cmp ecx, edx
jae 0x1000409e
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 0x1000404b
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 0x10004099