Function at 0x408945
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xf90]
mov eax, 0x1010
call fcn.0040f1a0
mov eax, dword [0x43b2e4]
xor eax, ebp
mov dword [ebp + 0xf8c], eax
push ebx
push esi
xor esi, esi
push edi
mov ebx, 0x44b3c0
cmp dword [0x44fc4c], esi
jne 0x408beb
mov edi, 0x800
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push ebx
call fcn.0041076e
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
xor eax, eax
movzx ecx, word [eax + 0x44b3c0]
mov word [ebp + eax + 0x78c], cx
add eax, 2
cmp cx, si
jne 0x408999
lea eax, [ebp + 0x78c]
push 0x5c
push eax
call fcn.0041076e
pop ecx
pop ecx
test eax, eax
je 0x4089d9
lea eax, [ebp + 0x78c]
push 0x5c
push eax
call fcn.0041076e
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp + 0x78c]
push eax
call fcn.00407e69
pop ecx
test eax, eax
je 0x4089f4
mov dword [0x44fc4c], 1
cmp dword [0x44fc4c], esi
jne 0x408beb
push str.11.161.2
push str.SoftwareJavaSoftJava_Web_Start_
push 0x438144
push 0x400
mov esi, 0x44ebc0
push esi
call fcn.0041018a
add esp, 0x14
lea eax, [ebp - 0x78]
push eax
push 0x20019
push 0
push esi
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x408ab8
lea eax, [ebp - 0x7c]
push eax
push ebx
lea eax, [ebp - 0x80]
push eax
push 0
push str.Home
push dword [ebp - 0x78]
mov dword [ebp - 0x7c], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x408ab8
movzx ecx, word [eax + 0x44b3c0]
mov word [ebp + eax + 0x78c], cx
add eax, 2
test cx, cx
jne 0x408a5d
lea eax, [ebp + 0x78c]
push 0x5c
push eax
call fcn.0041076e
pop ecx
pop ecx
test eax, eax
je 0x408a9d
lea eax, [ebp + 0x78c]
push 0x5c
push eax
call fcn.0041076e
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp + 0x78c]
push eax
call fcn.00407e69
pop ecx
test eax, eax
je 0x408ab8
mov dword [0x44fc4c], 1
cmp dword [0x44fc4c], 0
jne 0x408beb
push edi
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x43815c
push ebx
call fcn.0040f3c7
pop ecx
pop ecx
test eax, eax
je 0x408b96
push str.binjavaws.exe
push ebx
call fcn.0040f3c7
pop ecx
pop ecx
xor ecx, ecx
mov word [eax], cx
xor eax, eax
movzx ecx, word [eax + 0x44b3c0]
mov word [ebp + eax + 0x78c], cx
add eax, 2
test cx, cx
jne 0x408af8
mov eax, 0x43819c
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x408b16
lea edi, [ebp + 0x78c]
sub eax, edx
sub edi, 2
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x408b2c
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, str.jre_bin
rep movsb byte es:[edi], byte [esi]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x408b4f
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x408b5f
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp + 0x78c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00407e69
pop ecx
test eax, eax
je 0x408b96
mov dword [0x44fc4c], 1
cmp dword [0x44fc4c], 0
jne 0x408beb
mov esi, 0x400
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.00408118
pop ecx
pop ecx
test eax, eax
je 0x408bde
lea eax, [ebp - 0x74]
push eax
push str._s_bin
push esi
push ebx
call fcn.0041018a
lea eax, [ebp - 0x74]
push eax
call fcn.00407e69
add esp, 0x14
test eax, eax
je 0x408bde
mov dword [0x44fc4c], 1
cmp dword [0x44fc4c], 0
jne 0x408beb
xor eax, eax
jmp 0x408bed
mov eax, ebx
mov ecx, dword [ebp + 0xf8c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040ee3b
add ebp, 0xf90
leave
ret