Function at 0x100040ad
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
lea edi, [ebp - 0x22]
mov word [ebp - 0x24], bx
mov dword [ebp - 0xc], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x43]
mov byte [ebp - 0x44], bl
mov dword [ebp - 4], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x24]
mov dword [ebp - 0x14], ebx
push eax
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [ebp - 0x24]
mov eax, ecx
push 4
cdq
pop esi
idiv esi
test edx, edx
jne 0x10004108
mov eax, ecx
push 0x64
cdq
pop esi
idiv esi
test edx, edx
jne 0x1000411b
mov eax, ecx
mov esi, 0x190
cdq
idiv esi
test edx, edx
je 0x1000411b
push 1
pop eax
jmp 0x1000411d
xor eax, eax
mov dx, 2
lea edi, [ecx - 1]
cmp dx, word [ebp - 0x22]
push 0x64
movzx esi, word [ebp - 0x22]
sbb ebx, ebx
neg ebx
inc eax
imul ebx, eax
mov ax, 7
mov dword [ebp - 8], ebx
cmp ax, word [ebp - 0x22]
sbb eax, eax
neg eax
add eax, esi
imul esi, esi, 0x1e
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [ebp - 8]
sar ebx, 1
sub ebx, eax
mov eax, edi
cdq
mov edi, 0x190
idiv edi
pop edi
push 4
add ebx, eax
lea eax, [ecx - 1]
cdq
idiv edi
pop edi
sub ebx, eax
lea eax, [ecx - 1]
cdq
imul ecx, ecx, 0x16d
idiv edi
xor edi, edi
push edi
push 0x15180
add ebx, eax
movzx eax, word [ebp - 0x1e]
add ebx, esi
add ebx, ecx
lea eax, [ebx + eax - 0x18c]
cdq
push edx
push eax
call fcn.10006820
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x1c]
imul eax, eax, 0xe10
cdq
add ecx, eax
push edi
movzx eax, word [ebp - 0x1a]
adc esi, edx
imul eax, eax, 0x3c
cdq
add ecx, eax
push 0x3e8
movzx eax, word [ebp - 0x18]
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 - 0x16]
cdq
add ecx, eax
push edi
push dword [ebp + 8]
mov dword [ebp - 0x14], ecx
adc esi, edx
mov dword [ebp - 0x10], esi
call sub.MSVCRT.dll_strlen
mov esi, dword [ebp - 0xc]
pop ecx
inc eax
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.100031ae
mov ebx, eax
lea eax, [ebp - 4]
push eax
push str.SOFTWARERepPopupPage
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x10004248
push ebx
lea eax, [ebp - 0x44]
push str.Open_08X
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x14]
push 8
push eax
push 0xb
lea eax, [ebp - 0x44]
push edi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
cmp dword [esi + 0x88], edi
jbe 0x100042a1
mov dword [ebp - 8], edi
mov eax, dword [esi + 0xa4]
mov ecx, dword [ebp - 8]
add eax, ecx
cmp dword [eax + 4], edi
je 0x1000427b
cmp dword [eax], 5
jne 0x1000427b
push dword [ebp + 8]
push dword [eax + 0x10]
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
je 0x1000428a
add dword [ebp - 8], 0x18
inc ebx
cmp ebx, dword [esi + 0x88]
jb 0x10004255
jmp 0x100042a1
mov ecx, dword [esi + 0xa4]
mov edx, dword [ebp - 0x14]
lea eax, [ebx + ebx*2]
mov dword [ecx + eax*8 + 8], edx
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*8 + 0xc], edx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4