Function at 0x958d30
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x53c
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x538], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 0x103
mov esi, ecx
lea ecx, [esp + 0x25]
mov edi, edx
push 0
push ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ebx
mov byte [esp + 0x2c], 0
call fcn.00a7ffb0
add esp, 0xc
cmp dword [0xbd85f0], 0
je 0x958d96
push edi
push esi
push str._WIN.INI____s____s_
push 0
call fcn.0096a780
add esp, 0x10
test esi, esi
je 0x959181
mov eax, 0xaa154c
mov ecx, esi
call fcn.0094c330
test eax, eax
je 0x958dc2
mov eax, 0xaa1ad0
mov ecx, esi
call fcn.0094c330
test eax, eax
jne 0x95900a
mov eax, str.progressover
mov ecx, edi
call fcn.0094c330
test eax, eax
je 0x95900a
cmp dword [0xbd85f8], 0
jne 0x9590d5
push 0x103
lea edx, [esp + 0x235]
push 0
push edx
mov byte [esp + 0x23c], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x207
lea eax, [esp + 0x33d]
push 0
push eax
mov byte [esp + 0x344], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x103
lea ecx, [esp + 0x12d]
push 0
push ecx
mov byte [esp + 0x134], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x208
lea edx, [esp + 0x33c]
push edx
push 0
mov dword [0xbd85f8], 1
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
lea ecx, [esp + 0x234]
lea edx, [esp + 0x33c]
call fcn.009580e0
add esp, 4
test eax, eax
je 0x958e94
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x33c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x128]
lea edx, [esp + 0x338]
call fcn.009597a0
xor ecx, ecx
lea edi, [esp + 0x128]
call fcn.0095a6d0
mov edx, edi
push edx
push str._sWIN.INI
push 0xbd8600
call fcn.00a78f30
add esp, 0xc
push 1
push 0
xor edx, edx
mov ecx, 0xbd8600
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x958f86
mov edi, dword [esp + 0x10]
test ebx, ebx
je 0x958f5b
test edi, edi
je 0x958f5b
push str.InstallDirectory
push edi
call fcn.00a88f66
add esp, 8
test eax, eax
jne 0x958f5b
push str.InstallDirectory
push edi
call fcn.00a88f66
add esp, 8
push 0xbd8600
test eax, eax
jne 0x9590e7
mov eax, dword [ebp + 0x10]
push eax
push ebx
mov ebx, dword [esp + 0x18]
call fcn.00958c20
mov ecx, dword [esp + 0x28]
add esp, 0xc
cmp byte [ecx], 0
jne 0x959198
mov dword [0xbd85f8], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
push 0xbd8600
push eax
push ebx
mov ebx, dword [esp + 0x18]
call fcn.00958c20
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
cmp byte [0xbd8368], 0
je 0x958fff
push 0xbd8368
push 0xbd8600
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, 0xbd8600
call fcn.00960910
push str.WIN.INI
push 0xbd8600
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 1
push 0
xor edx, edx
mov ecx, 0xbd8600
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x958fff
mov ecx, dword [ebp + 0x10]
mov edi, dword [esp + 0x10]
push 0xbd8600
push ecx
push ebx
mov ebx, dword [esp + 0x18]
call fcn.00958c20
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
mov byte [0xbd8600], 0
call fcn.00963540
test eax, eax
je 0x959181
push str.SoftwareMicroWorldWIN.INI
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x14]
push ecx
push 1
push 0
lea edx, [esp + 0x2c]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
jne 0x95917d
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0xaa1564
lea ecx, [esp + 0x24]
push ecx
call edi
push esi
lea edx, [esp + 0x24]
push edx
call edi
lea eax, [esp + 0x14]
push eax
push 1
push 0
lea ecx, [esp + 0x2c]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
je 0x95910d
mov edx, dword [esp + 0xc]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
call fcn.0095ad70
add esp, 4
cmp byte [ebx], 0
mov eax, ebx
je 0x9590be
inc eax
cmp byte [eax], 0
jne 0x9590b8
sub eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
cmp byte [0xbd8600], 0
je 0x95900a
push 0xbd8600
mov edx, dword [ebp + 0x10]
push edx
push ebx
mov ebx, dword [esp + 0x18]
call fcn.00958c20
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0
push 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x959147
mov ecx, dword [esp + 0xc]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
call fcn.0095ad70
add esp, 4
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebx], 0
mov eax, ebx
je 0x959166
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x959160
sub eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x538]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0xc]
push 0
push eax
mov edx, ebx
push esi
mov ebx, edi
call fcn.00958780
add esp, 0xc
mov ecx, dword [esp + 0x544]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret