Function at 0x100290f0
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x1844
call fcn.100378e0
mov eax, dword [0x1004f860]
xor eax, esp
mov dword [esp + 0x1840], eax
mov eax, dword [esp + 0x1848]
push ebx
mov ebx, dword [esp + 0x1850]
push edi
xor edi, edi
push 0x7fe
lea edx, [esp + 0x4e]
xor ecx, ecx
push edi
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov word [esp + 0x54], cx
call sub.MSVCR100.dll_memset
push 0x7fe
lea ecx, [esp + 0x105a]
xor eax, eax
push edi
push ecx
mov word [esp + 0x1060], ax
call sub.MSVCR100.dll_memset
add esp, 0x18
push 0x20019
push str.Software
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], edi
call fcn.10003190
test eax, eax
je 0x100291d1
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x100291b8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1840]
xor ecx, esp
call fcn.1003779c
add esp, 0x1844
ret
push ebp
mov ebp, dword [esp + 0x34]
push esi
push 0x20019
push str.JavaSoft
push ebp
lea ecx, [esp + 0x38]
call fcn.10003190
test eax, eax
je 0x10029210
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, edi
je 0x10029200
push eax
call esi
cmp ebp, edi
je 0x1002949a
push ebp
call esi
jmp 0x1002949a
mov esi, dword [esp + 0x2c]
push 0x20019
push str.Java_Runtime_Environment
push esi
lea ecx, [esp + 0x20]
call fcn.10003190
test eax, eax
je 0x10029254
mov eax, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, edi
je 0x1002923d
push eax
call ebx
cmp esi, edi
je 0x10029244
push esi
call ebx
cmp ebp, edi
je 0x1002949a
push ebp
call ebx
jmp 0x1002949a
mov edx, dword [esp + 0x1860]
lea eax, [esp + 0x4c]
push eax
push str.CurrentVersion
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x58], edx
call fcn.10026d90
test eax, eax
je 0x100292a3
mov eax, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, edi
je 0x1002928c
push eax
call ebx
cmp esi, edi
je 0x10029293
push esi
call ebx
cmp ebp, edi
je 0x1002949a
push ebp
call ebx
jmp 0x1002949a
mov esi, dword [esp + 0x14]
push 0x20019
lea edx, [esp + 0x54]
push edx
push esi
lea ecx, [esp + 0x2c]
call fcn.10003190
test eax, eax
jne 0x100292f1
lea eax, [esp + 0x1860]
push eax
push str.JavaHome
push ebx
lea ecx, [esp + 0x2c]
call fcn.10026d90
test eax, eax
jne 0x100292f1
push ebx
call fcn.10027000
add esp, 4
test eax, eax
je 0x100292f1
cmp dword [esp + 0x44], edi
je 0x1002944b
push 0x7fe
lea edx, [esp + 0x856]
xor ecx, ecx
push edi
push edx
mov word [esp + 0x85c], cx
call sub.MSVCR100.dll_memset
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
add esp, 0xc
push 0x400
lea eax, [esp + 0x54]
push eax
push edi
push esi
call ebx
mov ebp, dword [sym.imp.USER32.dll_wsprintfW]
test eax, eax
jne 0x100293fc
lea ecx, [esp + 0x850]
push ecx
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x1868], 0x400
call dword [sym.imp.MSVCR100.dll__wcsicmp]
add esp, 8
test eax, eax
jle 0x100293e2
push 0x20019
lea eax, [esp + 0x54]
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.10003190
test eax, eax
jne 0x100293de
lea ecx, [esp + 0x1860]
push ecx
push str.JavaHome
lea edx, [esp + 0x1058]
push edx
lea ecx, [esp + 0x2c]
call fcn.10026d90
test eax, eax
jne 0x100293de
cmp dword [esp + 0x1860], edi
jbe 0x100293de
lea eax, [esp + 0x1050]
push eax
call fcn.10027000
add esp, 4
test eax, eax
je 0x100293de
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x854]
push 0x1003c898
push edx
call ebp
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x105c]
push eax
push 0x1003c898
push ecx
call ebp
add esp, 0x18
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push 0x400
lea edx, [esp + 0x54]
push edx
push eax
push esi
call ebx
test eax, eax
je 0x10029333
lea eax, [esp + 0x850]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x10029406
sub eax, edx
sar eax, 1
je 0x10029476
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x850]
push ecx
push 0x1003c898
push edx
call ebp
mov eax, dword [esp + 0x54]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x10029435
sub eax, edx
sar eax, 1
mov dword [esp + 0x1860], eax
lea ecx, [esp + 0x20]
call fcn.10003ce0
lea ecx, [esp + 0x14]
call fcn.10003ce0
lea ecx, [esp + 0x2c]
call fcn.10003ce0
lea ecx, [esp + 0x38]
call fcn.10003ce0
mov eax, 1
jmp 0x1002949c
lea ecx, [esp + 0x20]
call fcn.10003ce0
lea ecx, [esp + 0x14]
call fcn.10003ce0
lea ecx, [esp + 0x2c]
call fcn.10003ce0
lea ecx, [esp + 0x38]
call fcn.10003ce0
xor eax, eax
mov ecx, dword [esp + 0x1850]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.1003779c
add esp, 0x1844
ret