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

Disassembly:
sub esp, 0xc5c
mov eax, dword [0x6d5e2a5c]
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 0x6d598472
cmp esi, ebx
je 0x6d598472
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.6d5b54b0
add esp, 0x2c
test eax, eax
je 0x6d598472
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x24]
call fcn.6d592e00
push str.javaws.exe
lea ecx, [esp + 0x18]
call fcn.6d592e00
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.6d594760
lea ecx, [esp + 0x14]
call fcn.6d592330
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.6d595db0
test eax, eax
jne 0x6d59845a
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.6d592e60
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, ebx
je 0x6d5980d2
mov eax, dword [eax]
jmp 0x6d5980d4
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.6d595db0
test eax, eax
jne 0x6d598442
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 0x6d59815e
lea ecx, [esp + 0x468]
push 0x6d5cf53c
push ecx
call dword [sym.imp.MSVCR100.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x6d59815e
lea ecx, [esp + 0x14]
call fcn.6d592330
lea ecx, [esp + 0x3c]
call fcn.6d593ce0
lea ecx, [esp + 0x48]
call fcn.6d593ce0
jmp 0x6d598469
cmp byte [esp + 0x13], 1
jne 0x6d59816a
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.6d592e60
mov eax, dword [eax]
add esp, 0xc
cmp eax, ebx
je 0x6d598187
mov ecx, dword [eax]
jmp 0x6d598189
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x6d598195
mov eax, dword [eax]
jmp 0x6d598197
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.6d592330
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 0x6d5981f5
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x6d5981ff
push 0x80004005
call fcn.6d595d00
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 0x6d59823f
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x24], 1
call fcn.6d592e60
add esp, 0xc
jmp 0x6d598261
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], eax
test eax, eax
je 0x6d59825d
add eax, 8
push eax
call dword [sym.imp.kernel32.dll_InterlockedIncrement]
lea eax, [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6d598271
mov eax, dword [eax]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x6d59827b
push 0x80004005
call fcn.6d595d00
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 0x6d5982aa
and dword [esp + 0x18], 0xfffffffd
lea ecx, [esp + 0x1c]
call fcn.6d592330
test byte [esp + 0x18], 1
je 0x6d5982ba
lea ecx, [esp + 0x30]
call fcn.6d592330
push str.NoModify
push 1
lea ecx, [esp + 0x44]
call fcn.6d596bf0
push str.NoRepair
push 1
lea ecx, [esp + 0x44]
or esi, eax
call fcn.6d596bf0
or esi, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x6d598339
mov edx, dword [esp + 0x24]
push eax
push edx
lea eax, [esp + 0x38]
push eax
call fcn.6d592e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x6d598309
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x6d598313
push 0x80004005
call fcn.6d595d00
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.6d592330
jmp 0x6d598345
push str.Publisher
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x6d5983a0
push eax
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.6d592e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x6d598370
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x6d59837a
push 0x80004005
call fcn.6d595d00
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.6d592330
jmp 0x6d5983ac
push str.Comments
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x6d598406
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.6d592e60
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x6d5983d7
mov eax, dword [eax]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x6d5983e1
push 0x80004005
call fcn.6d595d00
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.6d592330
jmp 0x6d598412
push str.URLInfoAbout
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea ecx, [esp + 0x3c]
call fcn.6d593160
test esi, esi
je 0x6d598437
mov eax, dword [esp + 0x14]
test eax, eax
je 0x6d59842b
mov eax, dword [eax]
jmp 0x6d59842d
xor eax, eax
push eax
lea ecx, [esp + 0x4c]
call fcn.6d593d00
lea ecx, [esp + 0x48]
call fcn.6d593160
xor ebx, ebx
lea ecx, [esp + 0x14]
call fcn.6d592330
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x6d59845a
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x6d598469
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x20]
call fcn.6d592330
mov ecx, dword [esp + 0xc68]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.6d5ca6ac
add esp, 0xc5c
ret 0x24