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

Disassembly:
push 0x280
mov eax, 0x4f16c8
call fcn.004cb117
mov esi, dword [ebp + 8]
call fcn.00462a1c
mov byte [esi], al
call fcn.00461e76
xor ebx, ebx
mov byte [esi + 1], al
cmp dword [esi + 0x4c], ebx
jne 0x463528
mov edi, 0x4f5ae0
push edi
call fcn.004ca000
pop ecx
push eax
push edi
lea ecx, [esi + 0x3c]
call fcn.0044d934
mov edi, 0x4f67a4
push edi
call fcn.004ca000
pop ecx
push eax
push edi
lea ecx, [esi + 0x74]
call fcn.0044d934
mov edi, 0x4f5ae0
push edi
mov word [esi + 0xe4], 0x100
mov word [esi + 0xf8], bx
mov dword [esi + 0xfc], 0x3c
mov word [esi + 0x100], 0x101
call fcn.004ca000
pop ecx
push eax
push edi
lea ecx, [esi + 0x58]
call fcn.0044d934
lea eax, [esi + 0x130]
push str.SOFTWARE
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x28c], eax
mov dword [eax], ebx
mov byte [esi + 0x134], 1
call fcn.0044dacf
mov edi, 0x50bfdc
push edi
mov dword [ebp - 4], ebx
call fcn.004ca000
pop ecx
push eax
push edi
lea ecx, [ebp - 0x234]
call fcn.0044da04
push str.JLSoft
mov dword [ebp - 0x284], eax
call fcn.004ca000
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push str.JLSoft
call fcn.0044da04
cmp dword [ebp - 0x220], 0x10
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x278], ebx
mov dword [ebp - 0x274], ebx
jae 0x4635fb
lea eax, [ebp - 0x234]
lea ecx, [ebp - 0x278]
push ecx
push 0x2001f
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x463638
lea eax, [ebp - 0x274]
push eax
push 0x2001f
push ebx
push 0x4f5ae0
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
jmp 0x463670
cmp dword [ebp - 0x220], 0x10
mov eax, dword [ebp - 0x234]
jae 0x46364d
lea eax, [ebp - 0x234]
lea ecx, [ebp - 0x288]
push ecx
lea ecx, [ebp - 0x278]
push ecx
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp dword [ebp - 0x278], ebx
je 0x4636a8
cmp dword [ebp - 0x274], ebx
jne 0x4636b4
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x274]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push 0x4f5ae0
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp dword [ebp - 0x274], ebx
je 0x46383c
push 0x103
lea eax, [ebp - 0x217]
push ebx
push eax
mov dword [ebp - 0x270], 0x104
mov byte [ebp - 0x218], bl
call fcn.004ca820
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x270], eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
mov dword [ebp - 0x284], eax
lea ecx, [ebp - 0x218]
sub eax, ecx
mov ecx, dword [ebp - 0x270]
sub ecx, eax
push ecx
push dword [ebp - 0x284]
mov dword [ebp - 0x280], eax
push 1
push ebx
push 0x4f6128
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x284]
mov byte [eax - 1], bl
lea eax, [ebp - 0x218]
push eax
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [esi + 4]
call fcn.0044d934
mov eax, dword [ebp - 0x280]
dec eax
push eax
lea eax, [ebp - 0x218]
push eax
push 1
push ebx
push str.InstallRoot
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [esi + 0xa0], ebx
jne 0x4637fa
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push str.CachePath
push dword [ebp - 0x274]
mov dword [ebp - 0x270], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4637d6
lea eax, [ebp - 0x218]
push eax
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x218]
lea ecx, [esi + 0x90]
push eax
call fcn.0044d934
cmp dword [esi + 0xa0], ebx
jne 0x4637fa
push str.c:udownload
call fcn.004ca000
pop ecx
push eax
lea ecx, [esi + 0x90]
push str.c:udownload
call fcn.0044d934
mov ecx, dword [esi + 0xa0]
cmp ecx, ebx
je 0x463828
lea eax, [esi + 0x90]
cmp dword [eax + 0x14], 0x10
jb 0x463812
mov eax, dword [eax]
push ecx
push eax
push 1
push ebx
push str.CachePath
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x274], ebx
je 0x46383c
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x278], ebx
je 0x463850
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x234]
call fcn.0044d2a1
cmp dword [esi + 0x4c], ebx
je 0x463acb
push str.SOFTWARE
lea ecx, [ebp - 0x250]
mov dword [ebp - 0x27c], ebx
call fcn.0044dacf
push edi
mov dword [ebp - 4], 1
call fcn.004ca000
pop ecx
push eax
push edi
lea ecx, [ebp - 0x250]
call fcn.0044da04
push str.JLSoft
mov dword [ebp - 0x280], eax
call fcn.004ca000
pop ecx
mov ecx, dword [ebp - 0x280]
push eax
push str.JLSoft
call fcn.0044da04
push edi
mov dword [ebp - 0x280], eax
call fcn.004ca000
pop ecx
mov ecx, dword [ebp - 0x280]
push eax
push edi
call fcn.0044da04
push 0xffffffffffffffff
push ebx
lea eax, [esi + 0x3c]
push eax
lea ecx, [ebp - 0x250]
call fcn.0044d801
push 0x103
lea eax, [ebp - 0x113]
push ebx
push eax
mov byte [ebp - 0x114], bl
call fcn.004ca820
mov eax, dword [ebp - 0x250]
add esp, 0xc
cmp dword [ebp - 0x23c], 0x10
jae 0x46391a
lea eax, [ebp - 0x250]
lea ecx, [ebp - 0x27c]
push ecx
push 0x20019
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x463abd
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push ebx
push 0x4f6128
push dword [ebp - 0x27c]
mov dword [ebp - 0x270], 0x104
call edi
test eax, eax
jne 0x46398c
lea eax, [ebp - 0x114]
push eax
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 0xc8]
call fcn.0044d934
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push ebx
push str.InstallRoot
push dword [ebp - 0x27c]
mov dword [ebp - 0x270], 0x104
call edi
test eax, eax
jne 0x4639d7
lea eax, [ebp - 0x114]
push eax
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 0xac]
call fcn.0044d934
cmp dword [esi + 0x30], ebx
jne 0x463a24
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push ebx
push 0x4f6124
push dword [ebp - 0x27c]
mov dword [ebp - 0x270], 0x104
call edi
test eax, eax
jne 0x463a24
lea eax, [ebp - 0x114]
push eax
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 0x20]
call fcn.0044d934
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push ebx
push str.Interval
push dword [ebp - 0x27c]
mov dword [ebp - 0x270], 0x104
call edi
test eax, eax
jne 0x463ab1
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x26c]
call fcn.0044dacf
mov byte [ebp - 4], 2
cmp dword [ebp - 0x25c], ebx
je 0x463aa3
push 1
push 3
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x1bc]
call fcn.00453bab
push dword [ebp - 0x28c]
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.004625e8
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 2
call fcn.00450717
push ebx
push 1
lea ecx, [ebp - 0x26c]
call fcn.0044d2a1
push dword [ebp - 0x27c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
push 1
lea ecx, [ebp - 0x250]
call fcn.0044d2a1
xor al, al
call fcn.004cb19a
ret