Function at 0x10007c60
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0xc5c
mov eax, dword [0x1004f860]
xor eax, esp
mov dword [esp + 0xc58], eax
mov eax, dword [esp + 0xc70]
mov ecx, dword [esp + 0xc74]
mov edx, dword [esp + 0xc78]
push ebx
push ebp
mov ebp, dword [esp + 0xc70]
push esi
mov esi, dword [esp + 0xc78]
xor ebx, ebx
push edi
mov edi, dword [esp + 0xc70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8c]
mov dword [esp + 0x2c], ecx
mov cl, byte [esp + 0xc90]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x13], cl
mov dword [esp + 0x18], ebx
cmp ebp, ebx
je 0x10008172
cmp esi, ebx
je 0x10008172
push 0x206
lea eax, [esp + 0x5e]
xor edx, edx
push ebx
push eax
mov word [esp + 0x64], dx
call sub.MSVCR100.dll_memset
push 0x206
lea edx, [esp + 0x272]
xor ecx, ecx
push ebx
push edx
mov word [esp + 0x278], cx
call sub.MSVCR100.dll_memset
push ebx
push 0x104
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x284]
push 0x104
push ecx
call fcn.10022570
add esp, 0x2c
test eax, eax
je 0x10008172
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x24]
call fcn.10002e00
push str.javaws.exe
lea ecx, [esp + 0x18]
call fcn.10002e00
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.10004760
lea ecx, [esp + 0x14]
call fcn.10002330
mov ecx, dword [str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall]
push ebx
xor edx, edx
cmp byte [esp + 0x17], 1
push ebx
push 0x2001f
sete dl
push ebx
push ebx
push ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
add edx, 0x80000001
push edx
mov dword [esp + 0x6c], ebx
call fcn.10005c00
test eax, eax
jne 0x1000815a
push esi
lea eax, [esp + 0x18]
push edi
push eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
call fcn.10002e60
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, ebx
je 0x10007dd2
mov eax, dword [eax]
jmp 0x10007dd4
xor eax, eax
mov ecx, dword [esp + 0x48]
push ebx
push ebx
push 0x2001f
push ebx
push ebx
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.10005c00
test eax, eax
jne 0x10008142
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x46c]
push eax
push ebx
push ebx
push str.UninstallString
push edi
mov esi, str._s__uninstall__prompt__s
mov dword [esp + 0x6c], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10007e5e
lea ecx, [esp + 0x468]
push 0x1003c394
push ecx
call dword [sym.imp.MSVCR100.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x10007e5e
lea ecx, [esp + 0x14]
call fcn.10002330
lea ecx, [esp + 0x3c]
call fcn.10003ce0
lea ecx, [esp + 0x48]
call fcn.10003ce0
jmp 0x10008169
cmp byte [esp + 0x13], 1
jne 0x10007e6a
mov esi, str._s__system__uninstall__prompt__s
mov edx, dword [esp + 0x24]
push ebp
push edx
lea eax, [esp + 0x24]
push eax
call fcn.10002e60
mov eax, dword [eax]
add esp, 0xc
cmp eax, ebx
je 0x10007e87
mov ecx, dword [eax]
jmp 0x10007e89
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x10007e95
mov eax, dword [eax]
jmp 0x10007e97
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x470]
push esi
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [esp + 0x1c]
call fcn.10002330
mov ebp, dword [sym.imp.kernel32.dll_lstrlenW]
lea edx, [esp + 0x468]
push edx
call ebp
inc eax
add eax, eax
push eax
lea ecx, [esp + 0x46c]
push ecx
push 1
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.UninstallString
push edi
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10007ef5
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10007eff
push 0x80004005
call fcn.10005b50
push eax
call ebp
lea edx, [eax + eax + 2]
mov eax, dword [esp + 0x1c]
push edx
push eax
push 1
push 0
push str.DisplayName
push edi
call ebx
or esi, eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10007f3f
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x24], 1
call fcn.10002e60
add esp, 0xc
jmp 0x10007f61
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10007f5d
add eax, 8
push eax
call dword [sym.imp.kernel32.dll_InterlockedIncrement]
lea eax, [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x10007f71
mov eax, dword [eax]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x10007f7b
push 0x80004005
call fcn.10005b50
push eax
call ebp
mov ecx, dword [esp + 0x34]
inc eax
add eax, eax
push eax
push ecx
push 1
push 0
push str.DisplayIcon
push edi
call ebx
or esi, eax
test byte [esp + 0x18], 2
je 0x10007faa
and dword [esp + 0x18], 0xfffffffd
lea ecx, [esp + 0x1c]
call fcn.10002330
test byte [esp + 0x18], 1
je 0x10007fba
lea ecx, [esp + 0x30]
call fcn.10002330
push str.NoModify
push 1
lea ecx, [esp + 0x44]
call fcn.100068f0
push str.NoRepair
push 1
lea ecx, [esp + 0x44]
or esi, eax
call fcn.100068f0
or esi, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x10008039
mov edx, dword [esp + 0x24]
push eax
push edx
lea eax, [esp + 0x38]
push eax
call fcn.10002e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x10008009
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x10008013
push 0x80004005
call fcn.10005b50
push eax
call ebp
mov edx, dword [esp + 0x2c]
lea ecx, [eax + eax + 2]
push ecx
push edx
push 1
push 0
push str.Publisher
push edi
call ebx
lea ecx, [esp + 0x30]
or esi, eax
call fcn.10002330
jmp 0x10008045
push str.Publisher
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x100080a0
push eax
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.10002e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x10008070
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1000807a
push 0x80004005
call fcn.10005b50
push eax
call ebp
lea edx, [eax + eax + 2]
mov eax, dword [esp + 0x28]
push edx
push eax
push 1
push 0
push str.Comments
push edi
call ebx
lea ecx, [esp + 0x2c]
or esi, eax
call fcn.10002330
jmp 0x100080ac
push str.Comments
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10008106
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.10002e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x100080d7
mov eax, dword [eax]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x100080e1
push 0x80004005
call fcn.10005b50
push eax
call ebp
mov ecx, dword [esp + 0x38]
inc eax
add eax, eax
push eax
push ecx
push 1
push 0
push str.URLInfoAbout
push edi
call ebx
lea ecx, [esp + 0x28]
or esi, eax
call fcn.10002330
jmp 0x10008112
push str.URLInfoAbout
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea ecx, [esp + 0x3c]
call fcn.10003160
test esi, esi
je 0x10008137
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000812b
mov eax, dword [eax]
jmp 0x1000812d
xor eax, eax
push eax
lea ecx, [esp + 0x4c]
call fcn.10003d00
lea ecx, [esp + 0x48]
call fcn.10003160
xor ebx, ebx
lea ecx, [esp + 0x14]
call fcn.10002330
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x1000815a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x10008169
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x20]
call fcn.10002330
mov ecx, dword [esp + 0xc68]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003779c
add esp, 0xc5c
ret 0x24