Function at 0x408582
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x1010
call fcn.00410410
mov eax, dword [0x4566b4]
xor eax, esp
mov dword [esp + 0x100c], eax
cmp dword [0x465574], 0
push ebx
push ebp
push esi
push edi
mov ebx, 0x465d78
jne 0x408837
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ebp, ebp
push 0x800
push ebx
push ebp
call esi
push 0x5c
push ebx
call fcn.0041201a
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
movzx eax, word [ecx + 0x465d78]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x1a], ax
test ax, ax
jne 0x4085d0
lea eax, [esp + 0x1c]
push 0x5c
push eax
call fcn.0041201a
pop ecx
pop ecx
test eax, eax
je 0x408609
lea eax, [esp + 0x1c]
push 0x5c
push eax
call fcn.0041201a
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x1c]
push eax
call fcn.00409506
xor edx, edx
inc edx
test eax, eax
pop ecx
mov ecx, dword [0x465574]
cmovne ecx, edx
mov dword [0x465574], ecx
test ecx, ecx
jne 0x408837
push str.11.421.2
push str.SoftwareJavaSoftJava_Web_Start_
push 0x453274
push 0x400
mov edi, 0x466578
push edi
call fcn.00409a4f
add esp, 0x14
lea eax, [esp + 0x14]
push eax
push 0x20019
push ebp
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4086f4
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x800
push eax
push ebx
lea eax, [esp + 0x20]
push eax
push ebp
push str.Home
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4086f4
mov ecx, ebp
movzx eax, word [ecx + 0x465d78]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x1a], ax
test ax, ax
jne 0x40869a
lea eax, [esp + 0x1c]
push 0x5c
push eax
call fcn.0041201a
pop ecx
pop ecx
test eax, eax
je 0x4086d3
lea eax, [esp + 0x1c]
push 0x5c
push eax
call fcn.0041201a
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x1c]
push eax
call fcn.00409506
pop ecx
mov ecx, dword [0x465574]
test eax, eax
push 1
pop eax
cmovne ecx, eax
mov dword [0x465574], ecx
jmp 0x4086fa
mov ecx, dword [0x465574]
test ecx, ecx
jne 0x408837
push 0x800
push ebx
push ebp
call esi
push 0x45328c
push ebx
call fcn.004116d0
pop ecx
pop ecx
test eax, eax
je 0x4087cd
push str.binjavaws.exe
push ebx
call fcn.004116d0
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
movzx eax, word [ecx + 0x465d78]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x1a], ax
test ax, ax
jne 0x408732
mov edx, 0x4532cc
mov esi, edx
mov ax, word [edx]
add edx, 2
cmp ax, bp
jne 0x40874d
lea edi, [esp + 0x1c]
sub edx, esi
sub edi, 2
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x408761
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, str.jre_bin
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, edx
mov ax, word [edx]
add edx, 2
cmp ax, bp
jne 0x408782
sub edx, esi
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x408792
mov ecx, edx
lea eax, [esp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00409506
pop ecx
mov ecx, dword [0x465574]
test eax, eax
push 1
pop ebp
cmovne ecx, ebp
mov dword [0x465574], ecx
jmp 0x4087d6
mov ecx, dword [0x465574]
xor ebp, ebp
inc ebp
test ecx, ecx
jne 0x408837
mov esi, 0x400
lea eax, [esp + 0x81c]
push esi
push eax
call fcn.004095e6
pop ecx
pop ecx
test eax, eax
je 0x40882a
lea eax, [esp + 0x81c]
push eax
push str._s_bin
push esi
push ebx
call fcn.00409a4f
lea eax, [esp + 0x82c]
push eax
call fcn.00409506
mov ecx, dword [0x465574]
add esp, 0x14
test eax, eax
cmovne ecx, ebp
mov dword [0x465574], ecx
jmp 0x408830
mov ecx, dword [0x465574]
xor eax, eax
test ecx, ecx
cmove ebx, eax
mov ecx, dword [esp + 0x101c]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00410400
add esp, 0x1010
ret