Function at 0x10012aa0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x664
lea eax, [esp + 4]
push ebx
push esi
push edi
push ebp
push 1
push eax
push str.SoftwarePocketSoftRTPatchRegUndo
push 0x80000002
call fcn.10013230
add esp, 0x10
test eax, eax
jne 0x100130ef
mov eax, dword [esp + 0x678]
lea ecx, [esp + 0x3c]
push eax
push 0x1002fdec
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x48]
add esp, 0xc
push ecx
push edx
call fcn.10018b30
lea ecx, [esp + 0x40]
lea edx, [esp + 0x50]
mov eax, dword [esp + 0x1c]
add esp, 8
push 1
push ecx
push edx
push eax
call fcn.10013260
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x14]
push eax
je 0x10012b2b
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x664
ret
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
lea ecx, [esp + 0x24]
mov eax, dword [esp + 0x38]
push ecx
push str.NumEntries
push eax
call fcn.10013310
add esp, 0xc
test eax, eax
je 0x10012b60
mov eax, dword [esp + 0x38]
push eax
call esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x664
ret
mov eax, dword [esp + 0x24]
dec dword [esp + 0x24]
test eax, eax
je 0x100130ce
xor ebp, ebp
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x3c]
inc eax
push eax
push 0x1002fdec
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x48]
add esp, 0xc
push ecx
push edx
call fcn.10018b30
lea ecx, [esp + 0x18]
lea edx, [esp + 0x50]
mov eax, dword [esp + 0x40]
add esp, 8
push 1
push ecx
push edx
push eax
call fcn.10013260
add esp, 0x10
test eax, eax
jne case.default.0x10012c47
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x10]
push eax
push str.OpCode
push ecx
call fcn.10013310
add esp, 0xc
test eax, eax
jne 0x10012d6e
xor di, di
push 0x104
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x14]
push eax
push str.FileName
push ecx
call fcn.10013340
lea ecx, [esp + 0x274]
mov edx, dword [esp + 0x20]
add esp, 0x10
push 0x104
push ecx
push str.BackupName
push edx
call fcn.10013340
lea ecx, [esp + 0x40]
mov eax, dword [esp + 0x20]
add esp, 0x10
push ecx
push str.Shared
push eax
call fcn.100133e0
add esp, 0xc
test eax, eax
jne 0x10012c3a
mov di, 1
mov eax, dword [esp + 0x34]
cmp eax, 5
ja case.default.0x10012c47
jmp dword [eax*4 + 0x100130fc]
lea eax, [esp + 0x5c]
push ebp
push eax
call fcn.10014400
add esp, 8
jmp case.default.0x10012c47
lea eax, [esp + 0x5c]
push ebp
push eax
call fcn.10014310
add esp, 8
jmp case.default.0x10012c47
lea eax, [esp + 0x5c]
push ebp
push eax
call fcn.100145e0
add esp, 8
jmp case.default.0x10012c47
lea eax, [esp + 0x5c]
push eax
call fcn.10014240
add esp, 4
test ax, ax
push ebp
lea eax, [esp + 0x60]
push eax
je 0x10012cac
call fcn.10014310
add esp, 8
jmp case.default.0x10012c47
call fcn.100144f0
lea eax, [esp + 0x64]
lea ecx, [esp + 0x26c]
add esp, 8
push eax
push ecx
call fcn.10014790
add esp, 8
jmp case.default.0x10012c47
lea eax, [esp + 0x5c]
push 1
push ebp
push edi
push eax
call fcn.100149c0
add esp, 0x10
jmp case.default.0x10012c47
test di, di
lea eax, [esp + 0x5c]
push eax
je 0x10012d41
call fcn.10014240
add esp, 4
test ax, ax
je 0x10012d0e
lea eax, [esp + 0x5c]
push ebp
push eax
call fcn.10014310
add esp, 8
jmp case.default.0x10012c47
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x264]
push eax
push ecx
call fcn.10014790
add esp, 8
test ax, ax
je case.default.0x10012c47
lea eax, [esp + 0x5c]
push ebp
push 1
push eax
call fcn.10014820
add esp, 0xc
jmp case.default.0x10012c47
lea ecx, [esp + 0x268]
push ecx
call fcn.10014790
add esp, 8
test ax, ax
je case.default.0x10012c47
lea eax, [esp + 0x5c]
push ebp
push ebp
push eax
call fcn.10014820
add esp, 0xc
jmp case.default.0x10012c47
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push eax
push str.KeyType
push ecx
call fcn.10013310
add esp, 0xc
test eax, eax
jne case.0x10012f7b.5
mov word [esp + 0x5c], bp
push 0x104
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x14]
push eax
push str.Parm1
push ecx
call fcn.10013340
add esp, 0x10
test eax, eax
jne case.0x10012f7b.5
mov word [esp + 0x264], bp
push 0x104
lea eax, [esp + 0x268]
mov ecx, dword [esp + 0x14]
push eax
push str.Parm2
push ecx
call fcn.10013340
add esp, 0x10
cmp dword [esp + 0x1c], ebp
jne 0x10012e0a
mov word [esp + 0x46c], bp
push 0x104
lea eax, [esp + 0x470]
mov ecx, dword [esp + 0x14]
push eax
push str.Parm3
push ecx
call fcn.10013340
add esp, 0x10
xor di, di
lea eax, [esp + 0x30]
mov ecx, dword [esp + 0x10]
push eax
push str.EntireKey
push ecx
call fcn.100133e0
add esp, 0xc
test eax, eax
jne 0x10012e2c
mov di, 1
xor bx, bx
lea eax, [esp + 0x30]
mov ecx, dword [esp + 0x10]
push eax
push str.Delete
push ecx
call fcn.100133e0
add esp, 0xc
test eax, eax
jne 0x10012e4e
mov bx, 1
cmp dword [esp + 0x1c], ebp
jne 0x10012f69
test bx, bx
je 0x10012e80
lea eax, [esp + 0x46c]
push ebp
lea ecx, [esp + 0x268]
push eax
lea edx, [esp + 0x64]
push ecx
push edx
call fcn.10013df0
add esp, 0x10
jmp case.0x10012f7b.5
cmp word [esp + 0x46c], bp
je 0x10012ef6
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push eax
push 0x1002fe60
push ecx
call fcn.100133e0
mov eax, dword [esp + 0x38]
add esp, 0xc
add eax, eax
push eax
call fcn.1000ddc0
mov ecx, dword [esp + 0x30]
add esp, 4
mov edi, eax
push ecx
mov eax, dword [esp + 0x14]
push edi
push 0x1002fe60
push eax
call fcn.10013340
lea ecx, [esp + 0x47c]
lea edx, [esp + 0x274]
lea eax, [esp + 0x6c]
add esp, 0x10
push edi
push ecx
push edx
push eax
call fcn.10013df0
add esp, 0x10
push edi
call fcn.1001f43e
add esp, 4
jmp case.0x10012f7b.5
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
xor edi, edi
push ebp
push ebp
push ebp
push str.Data
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [esp + 0x20], ebp
je 0x10012f25
mov eax, dword [esp + 0x20]
push eax
call fcn.1000ddc0
add esp, 4
mov edi, eax
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
push edi
push ebp
push ebp
push str.Data
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x264]
push edi
lea edx, [esp + 0x60]
push ecx
push edx
call fcn.10013480
add esp, 0xc
test edi, edi
je case.0x10012f7b.5
push edi
call fcn.1001f43e
add esp, 4
jmp case.0x10012f7b.5
mov ecx, dword [esp + 0x1c]
dec ecx
cmp ecx, 0x63
ja case.0x10012f7b.8
xor eax, eax
mov al, byte [ecx + 0x10013134]
jmp dword [eax*4 + 0x10013114]
mov dword [esp + 0x14], 0x80000000
jmp case.0x10012f7b.8
mov dword [esp + 0x14], 0x80000005
jmp case.0x10012f7b.8
mov dword [esp + 0x14], 0x80000001
jmp case.0x10012f7b.8
mov dword [esp + 0x14], 0x80000002
jmp case.0x10012f7b.8
mov dword [esp + 0x14], 0x80000003
jmp case.0x10012f7b.8
lea eax, [esp + 0x264]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.1000bdc0
add esp, 8
test bx, bx
je 0x10013038
test di, di
je 0x10012ffc
lea eax, [esp + 0x5c]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.10013c60
lea ecx, [esp + 0x64]
mov edx, dword [esp + 0x1c]
add esp, 8
push ecx
push edx
call fcn.10013540
add esp, 8
jmp case.0x10012f7b.5
lea eax, [esp + 0x18]
push ebp
lea ecx, [esp + 0x60]
push eax
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.10013260
add esp, 0x10
test eax, eax
jne case.0x10012f7b.5
lea eax, [esp + 0x264]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call fcn.100135c0
mov ecx, dword [esp + 0x20]
add esp, 8
push ecx
jmp 0x100130b5
lea eax, [esp + 0x18]
push ebp
lea ecx, [esp + 0x60]
push eax
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.10013670
add esp, 0x10
test eax, eax
jne case.0x10012f7b.5
test di, di
je 0x10013091
lea eax, [esp + 0x28]
push 1
mov ecx, dword [esp + 0x14]
push eax
push 0x1002fe60
push ecx
call fcn.10013260
add esp, 0x10
test eax, eax
jne 0x100130b0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.10013740
mov ecx, dword [esp + 0x30]
add esp, 8
push ecx
call esi
jmp 0x100130b0
lea eax, [esp + 0x264]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push eax
push ecx
push 0x1002fe60
push edx
call fcn.100131a0
add esp, 0x10
mov eax, dword [esp + 0x18]
push eax
call esi
mov eax, dword [esp + 0x10]
push eax
call esi
mov eax, dword [esp + 0x24]
dec dword [esp + 0x24]
test eax, eax
jne 0x10012b72
mov eax, dword [esp + 0x38]
push eax
call esi
mov eax, dword [esp + 0x678]
push eax
call fcn.10012a20
add esp, 4
push 0
call fcn.10014cd0
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x664
ret