Function at 0x4642b7
Capabilities:
Query or enumerate registry value
Set current directory

Disassembly:
push 0x2bc
mov eax, 0x4f1854
call fcn.004cb14d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push str.SOFTWARE
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x28c], ebx
call fcn.0044dacf
mov esi, 0x50bfdc
push esi
mov dword [ebp - 4], ebx
call fcn.004ca000
pop ecx
push eax
push esi
lea ecx, [ebp - 0x264]
call fcn.0044da04
mov edi, str.JLSoft
push edi
mov dword [ebp - 0x290], eax
call fcn.004ca000
pop ecx
mov ecx, dword [ebp - 0x290]
push eax
push edi
call fcn.0044da04
push esi
mov edi, eax
call fcn.004ca000
pop ecx
push eax
push esi
mov ecx, edi
call fcn.0044da04
push dword [ebp - 0x284]
call fcn.004ca000
pop ecx
push eax
push dword [ebp - 0x284]
lea ecx, [ebp - 0x264]
call fcn.0044da04
mov esi, 0x103
push esi
lea eax, [ebp - 0x117]
push ebx
push eax
mov byte [ebp - 0x118], bl
call fcn.004ca820
push esi
lea eax, [ebp - 0x21b]
push ebx
push eax
mov byte [ebp - 0x21c], bl
call fcn.004ca820
mov eax, dword [ebp - 0x264]
add esp, 0x18
cmp dword [ebp - 0x250], 0x10
jae 0x4643a0
lea eax, [ebp - 0x264]
lea ecx, [ebp - 0x28c]
push ecx
push 0x20019
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x46441a
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x118]
push eax
push ebx
push ebx
push 0x4f5f1c
push dword [ebp - 0x28c]
mov edi, 0x104
mov dword [ebp - 0x284], edi
call esi
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
push ebx
push str.InstallRoot
push dword [ebp - 0x28c]
mov dword [ebp - 0x284], edi
call esi
push dword [ebp - 0x28c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 0x118], bl
je 0x46466b
cmp byte [ebp - 0x21c], bl
je 0x46443b
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov esi, 0x4f82f0
lea edi, [ebp - 0x248]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x118]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [ebp - 0x248]
push eax
mov byte [ebp - 4], 1
movsd dword es:[edi], dword [esi]
call fcn.00462578
pop ecx
pop ecx
push 0x10
mov esi, 0x4f82f0
lea eax, [ebp - 0x248]
push esi
push eax
call fcn.004c8aab
add esp, 0xc
test eax, eax
jne 0x4644f3
push 0x4f67ec
lea ecx, [ebp - 0x238]
call fcn.0044dacf
lea eax, [ebp - 0x118]
push eax
mov byte [ebp - 4], 2
call fcn.004ca000
pop ecx
push eax
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x238]
call fcn.0044da04
mov esi, 0x4f67dc
push esi
mov edi, eax
call fcn.004ca000
pop ecx
push eax
push esi
mov ecx, edi
call fcn.0044da04
cmp dword [ebp - 0x224], 0x10
mov eax, dword [ebp - 0x238]
jae 0x4644de
lea eax, [ebp - 0x238]
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x238]
jmp 0x464619
lea eax, [ebp - 0x284]
push eax
push 0x4f8350
push 0x15
push ebx
lea eax, [ebp - 0x248]
push eax
mov dword [ebp - 0x284], ebx
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x464532
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.0046424f
cmp dword [eax + 0x14], 0x10
pop ecx
pop ecx
jb 0x4644de
mov eax, dword [eax]
jmp 0x4644de
push dword [ebp - 0x288]
call fcn.004ca000
lea eax, [eax + eax + 2]
push eax
call fcn.004cddf9
push dword [ebp - 0x288]
mov dword [ebp - 0x290], eax
call fcn.004ca000
inc eax
push eax
push dword [ebp - 0x288]
push dword [ebp - 0x290]
call fcn.004ce373
mov eax, dword [ebp - 0x284]
mov ecx, dword [eax]
add esp, 0x18
lea edx, [ebp - 0x294]
push edx
push 0x800
push 1
lea edx, [ebp - 0x290]
push edx
push esi
push eax
call dword [ecx + 0x14]
cmp eax, ebx
jl 0x464519
xor eax, eax
mov dword [ebp - 0x2a8], ebx
lea edi, [ebp - 0x2a4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x284]
lea edx, [ebp - 0x288]
push edx
lea edx, [ebp - 0x2c8]
push edx
lea edx, [ebp - 0x22c]
push edx
lea edx, [ebp - 0x2a8]
push edx
push 1
push 0x800
push esi
push dword [ebp - 0x294]
mov dword [ebp - 0x288], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
cmp eax, ebx
jge 0x46466b
push eax
lea eax, [ebp - 0x280]
push eax
call fcn.0046424f
cmp dword [eax + 0x14], 0x10
pop ecx
pop ecx
jb 0x464609
mov eax, dword [eax]
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x280]
push ebx
push 1
call fcn.0044d2a1
jmp 0x46466b
push ebx
push 1
lea ecx, [ebp - 0x264]
call fcn.0044d2a1
call fcn.004cb1a9
ret