Function at 0x406f09
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xbc0]
sub esp, 0xc40
mov eax, dword [0x428934]
xor eax, ebp
mov dword [ebp + 0xbbc], eax
cmp dword [0x433b94], 0
push ebx
mov ebx, 0x431f48
jne 0x407198
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, 0x400
push esi
push ebx
push 0
call edi
push 0x5c
push ebx
call fcn.0040ae50
pop ecx
mov byte [eax], 0
pop ecx
xor eax, eax
mov cl, byte [eax + 0x431f48]
mov byte [ebp + eax + 0x7bc], cl
inc eax
test cl, cl
jne 0x406f59
lea eax, [ebp + 0x7bc]
push 0x5c
push eax
call fcn.0040ae50
pop ecx
pop ecx
test eax, eax
je 0x406f92
lea eax, [ebp + 0x7bc]
push 0x5c
push eax
call fcn.0040ae50
pop ecx
pop ecx
mov byte [eax], 0
push str.javaws.jar
push 0x5c
push 0x42795c
push 0x5c
lea eax, [ebp + 0x7bc]
push eax
lea eax, [ebp - 0x44]
push 0x427960
push eax
call fcn.0040a7da
push str.deploy.jar
push 0x5c
push 0x427978
push 0x5c
lea eax, [ebp + 0x7bc]
push eax
lea eax, [ebp + 0x3bc]
push 0x42797c
push eax
call fcn.0040a7da
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004099fb
add esp, 0x40
test eax, eax
jne 0x407009
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x3bc]
push eax
call fcn.004099fb
pop ecx
pop ecx
test eax, eax
je 0x40718c
push str.bundles
push 0x5c
push 0x427990
push 0x5c
lea eax, [ebp + 0x7bc]
push eax
lea eax, [ebp + 0x3bc]
push str._s_c_s_c_s
push eax
call fcn.0040a7da
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x3bc]
push eax
call fcn.004099fb
add esp, 0x24
test eax, eax
jne 0x407050
mov dword [0x433b94], 1
cmp dword [0x433b94], 0
jne 0x407196
push str.10.0.0
push str.SoftwareJavaSoftJava_Web_Start_
push 0x4279cc
push 0x432f48
call fcn.0040a7da
add esp, 0x10
lea eax, [ebp - 0x7c]
push eax
push 0x20019
push 0
push 0x432f48
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4070c2
lea eax, [ebp - 0x78]
push eax
push ebx
lea eax, [ebp - 0x80]
push eax
push 0
push str.Home
push dword [ebp - 0x7c]
mov dword [ebp - 0x78], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4070c2
mov dword [0x433b94], 1
cmp dword [0x433b94], 0
jne 0x407196
push esi
push ebx
push 0
call edi
push 0x4279dc
push ebx
call fcn.00409ec0
pop ecx
pop ecx
test eax, eax
je 0x407196
push str.binjavaws.exe
push ebx
call fcn.00409ec0
pop ecx
mov byte [eax], 0
pop ecx
xor eax, eax
mov cl, byte [eax + 0x431f48]
mov byte [ebp + eax + 0x7bc], cl
inc eax
test cl, cl
jne 0x4070fc
mov eax, str.jrelib
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407115
lea edi, [ebp + 0x7bc]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x407125
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 esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407144
sub eax, esi
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x407150
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x74]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004099fb
pop ecx
pop ecx
test eax, eax
jne 0x407196
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x7bc]
push eax
call fcn.004099fb
pop ecx
pop ecx
test eax, eax
jne 0x407196
mov dword [0x433b94], 1
pop edi
pop esi
mov ecx, dword [ebp + 0xbbc]
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.00409e73
add ebp, 0xbc0
leave
ret