Function at 0x6d1c62a0
Capabilities:
Query or enumerate registry key

Disassembly:
sub esp, 0xc44
mov eax, dword [0x6d1d54cc]
xor eax, esp
mov dword [esp + 0xc40], eax
mov eax, dword [esp + 0xc48]
push ebx
xor ebx, ebx
push edi
mov edi, dword [esp + 0xc54]
push 0x3ff
lea ecx, [esp + 0x4d]
push ebx
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x54], bl
call sub.MSVCR100.dll_memset
push 0x3ff
lea edx, [esp + 0x859]
push ebx
push edx
mov byte [esp + 0x860], bl
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], ebx
call fcn.6d1b2d40
test eax, eax
je 0x6d1c6377
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x6d1c635e
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xc40]
xor ecx, esp
call fcn.6d1c932c
add esp, 0xc44
ret
push ebp
mov ebp, dword [esp + 0x34]
push esi
push 0x20019
push str.JavaSoft
push ebp
lea ecx, [esp + 0x38]
call fcn.6d1b2d40
test eax, eax
je 0x6d1c63b6
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x6d1c63a6
push eax
call esi
cmp ebp, ebx
je 0x6d1c6633
push ebp
call esi
jmp 0x6d1c6633
mov esi, dword [esp + 0x2c]
push 0x20019
push str.Java_Runtime_Environment
push esi
lea ecx, [esp + 0x20]
call fcn.6d1b2d40
test eax, eax
je 0x6d1c63fa
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x6d1c63e3
push eax
call edi
cmp esi, ebx
je 0x6d1c63ea
push esi
call edi
cmp ebp, ebx
je 0x6d1c6633
push ebp
call edi
jmp 0x6d1c6633
mov eax, dword [esp + 0xc60]
lea ecx, [esp + 0x4c]
push ecx
push str.CurrentVersion
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x20]
mov dword [esp + 0x58], eax
call fcn.6d1b2e10
test eax, eax
je 0x6d1c6449
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x6d1c6432
push eax
call edi
cmp esi, ebx
je 0x6d1c6439
push esi
call edi
cmp ebp, ebx
je 0x6d1c6633
push ebp
call edi
jmp 0x6d1c6633
mov esi, dword [esp + 0x14]
push 0x20019
lea eax, [esp + 0x54]
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.6d1b2d40
test eax, eax
jne 0x6d1c6497
lea ecx, [esp + 0xc60]
push ecx
push str.JavaHome
push edi
lea ecx, [esp + 0x2c]
call fcn.6d1b2e10
test eax, eax
jne 0x6d1c6497
push edi
call fcn.6d1c4550
add esp, 4
test eax, eax
je 0x6d1c6497
cmp dword [esp + 0x44], ebx
je 0x6d1c65e4
push 0x3ff
lea edx, [esp + 0x455]
push ebx
push edx
mov byte [esp + 0x45c], bl
call sub.MSVCR100.dll_memset
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
add esp, 0xc
push 0x400
lea eax, [esp + 0x54]
push eax
push ebx
push esi
call edi
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
test eax, eax
jne 0x6d1c65a6
jmp 0x6d1c64e0
lea ecx, [esp + 0x450]
push ecx
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0xc68], 0x400
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
jle 0x6d1c658c
push 0x20019
lea eax, [esp + 0x54]
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.6d1b2d40
test eax, eax
jne 0x6d1c6588
lea ecx, [esp + 0xc60]
push ecx
push str.JavaHome
lea edx, [esp + 0x858]
push edx
lea ecx, [esp + 0x2c]
call fcn.6d1b2e10
test eax, eax
jne 0x6d1c6588
cmp dword [esp + 0xc60], ebx
jbe 0x6d1c6588
lea eax, [esp + 0x850]
push eax
call fcn.6d1c4550
add esp, 4
test eax, eax
je 0x6d1c6588
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x454]
push 0x6d1ccc48
push edx
call ebp
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x85c]
push eax
push 0x6d1ccc48
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 edi
test eax, eax
je 0x6d1c64e0
lea eax, [esp + 0x450]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x6d1c65b0
sub eax, edx
je 0x6d1c660f
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x450]
push ecx
push 0x6d1ccc48
push edx
call ebp
mov eax, dword [esp + 0x54]
add esp, 0xc
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
mov dword [esp + 0xc60], eax
lea ecx, [esp + 0x20]
call fcn.6d1b31a0
lea ecx, [esp + 0x14]
call fcn.6d1b31a0
lea ecx, [esp + 0x2c]
call fcn.6d1b31a0
lea ecx, [esp + 0x38]
call fcn.6d1b31a0
mov eax, 1
jmp 0x6d1c6635
lea ecx, [esp + 0x20]
call fcn.6d1b31a0
lea ecx, [esp + 0x14]
call fcn.6d1b31a0
lea ecx, [esp + 0x2c]
call fcn.6d1b31a0
lea ecx, [esp + 0x38]
call fcn.6d1b31a0
xor eax, eax
mov ecx, dword [esp + 0xc50]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.6d1c932c
add esp, 0xc44
ret