Function at 0x4025e0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x124
lea eax, [esp + 0x14]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
call fcn.00410184
lea ecx, [esi + 0xed]
lea edi, [esi + 0x774]
push ecx
mov ecx, edi
call fcn.0040a5d0
lea eax, [esi + 0x1f1]
mov ecx, edi
push eax
call fcn.0040a620
mov ecx, edi
call fcn.0040b230
lea ebx, [esi + 0x734]
xor ebp, ebp
push ebx
mov ecx, edi
mov dword [esi + 0xc0], eax
mov dword [esi + 0x730], ebp
mov dword [ebx], ebp
call fcn.0040b3a0
test eax, eax
je 0x40268d
mov eax, dword [ebx]
lea edx, [eax + eax*2]
shl edx, 5
push edx
call fcn.0043afbf
add esp, 4
cmp eax, ebp
mov dword [esi + 0x730], eax
je 0x402685
cmp dword [ebx], ebp
jbe 0x40268d
xor ebx, ebx
mov eax, dword [esi + 0x730]
mov ecx, edi
add eax, ebx
push eax
push ebp
call fcn.0040b380
mov eax, dword [esi + 0x734]
inc ebp
add ebx, 0x60
cmp ebp, eax
jb 0x402662
xor ebp, ebp
jmp 0x40268d
mov dword [esi + 0x730], ebp
mov dword [ebx], ebp
cmp dword [esi + 0xc4], 2
jne 0x4026c8
lea ebx, [esi + 0xd4]
mov ecx, edi
push ebx
call fcn.0040a8d0
test eax, eax
je 0x4026c8
mov ecx, dword [ebx]
push ecx
call fcn.0043afbf
add esp, 4
cmp eax, ebp
mov dword [esi + 0xd0], eax
je 0x4026c8
mov edx, dword [ebx]
mov ecx, edi
push edx
push eax
call fcn.0040a8f0
mov ecx, edi
call fcn.0040a820
mov dword [esi + 0x6fc], eax
mov eax, dword [esi + 0xc4]
mov ebx, 3
cmp eax, ebx
jne 0x4027ab
lea eax, [esi + 0x2f5]
mov ecx, edi
push eax
call fcn.0040a670
lea ecx, [esi + 0x3f9]
push ecx
mov ecx, edi
call fcn.0040a6c0
lea edx, [esi + 0x4fd]
push 0x104
push edx
mov ecx, edi
call fcn.0040a750
lea eax, [esi + 0x651]
push 0x50
push eax
mov ecx, edi
call fcn.0040a710
mov ecx, edi
call fcn.0040a7f0
mov ecx, edi
mov dword [esi + 0x6f8], eax
call fcn.0040b200
mov ecx, edi
mov dword [esi + 0x714], eax
call fcn.0040b260
mov ecx, edi
mov dword [esi + 0x718], eax
call fcn.0040b290
mov ecx, edi
mov dword [esi + 0x71c], eax
call fcn.0040a500
cmp eax, ebp
mov dword [esi + 0x700], eax
mov dword [esi + 0x704], ebp
mov dword [esi + 0x708], ebp
je 0x4027ab
mov ecx, edi
call fcn.0040a550
cmp eax, ebp
mov dword [esi + 0x704], eax
je 0x4027ab
push eax
call fcn.00410dd0
add esp, 4
cmp eax, ebp
mov dword [esi + 0x708], eax
je 0x4027ab
mov ecx, dword [esi + 0x704]
push ecx
push eax
mov ecx, edi
call fcn.0040a530
mov ecx, edi
call fcn.0040b0a0
mov ecx, edi
mov dword [esi + 0x6b0], eax
call fcn.0040b440
mov ecx, edi
mov dword [esi + 0x770], eax
call fcn.0040b040
mov ecx, edi
mov dword [esi + 0x6a4], eax
call fcn.0040b070
mov ecx, edi
mov dword [esi + 0x6a8], eax
call fcn.0040b410
mov ecx, edi
mov dword [esi + 0x76c], eax
call fcn.0040b3e0
mov ecx, edi
mov dword [esi + 0x768], eax
call fcn.0040b0d0
mov dword [esi + 0x6ac], eax
lea eax, [esi + 0x6b4]
push eax
mov ecx, edi
call fcn.0040b100
mov ecx, edi
call fcn.0040b2c0
mov ecx, edi
mov dword [esi + 0x728], eax
call fcn.0040b2f0
mov dword [esi + 0x72c], eax
mov eax, dword [esi + 0xc4]
cmp eax, ebx
mov ecx, edi
jne 0x40286d
call fcn.0040a5a0
cmp eax, ebp
mov dword [esi + 0x6f4], eax
je 0x402885
push eax
call fcn.00410dd0
add esp, 4
cmp eax, ebp
mov dword [esi + 0x6f0], eax
je 0x402885
mov edx, dword [esi + 0x6f4]
mov ecx, edi
push edx
push eax
call fcn.0040a580
jmp 0x402885
call fcn.0040b320
mov ecx, edi
mov dword [esi + 0x720], eax
call fcn.0040b350
mov dword [esi + 0x724], eax
lea eax, [esi + 0x73c]
push 8
push eax
push 0x4513e0
push 0x4513dc
mov ecx, edi
call fcn.00407540
lea eax, [esi + 0x748]
push 8
push eax
push 0x4513d8
push 0x4513dc
mov ecx, edi
call fcn.00407540
mov cl, byte [esi + 0x1f1]
mov ebp, dword [0x446004]
lea eax, [esi + 0x1f1]
mov ebx, 4
test cl, cl
je 0x402abf
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], 0
push ecx
push 0x20019
push 0
push eax
push 0x80000001
call dword [0x44600c]
test eax, eax
jne 0x402abf
mov eax, dword [esi + 0xc4]
cmp eax, 1
je 0x402910
cmp eax, 2
jne 0x402950
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
lea eax, [esi + 0x70c]
push edx
push eax
push 0
push 0
push str.IdxNextImage
push ecx
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
lea eax, [esi + 0x710]
push edx
push eax
push 0
push 0
push str.IdxNextSound
push ecx
mov dword [esp + 0x28], ebx
call ebp
lea edx, [esp + 0x10]
lea eax, [esi + 0x6a4]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 0
push 0
push str.UserWait
push eax
mov dword [esp + 0x28], ebx
call ebp
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
lea eax, [esi + 0x6a8]
push ecx
push eax
push 0
push 0
push str.UserWaitType
push edx
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
lea eax, [esi + 0x6b0]
push eax
push 0
push 0
push str.UserImageSize
push ecx
mov dword [esp + 0x28], ebx
call ebp
lea edx, [esp + 0x10]
lea eax, [esi + 0x770]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 0
push 0
push str.UserVideoSize
push eax
mov dword [esp + 0x28], ebx
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
lea edx, [esi + 0x764]
push ecx
push edx
push 0
push 0
push str.UserMuteSounds
push eax
mov dword [esp + 0x28], ebx
call ebp
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
lea eax, [esi + 0x6ac]
push ecx
push eax
push 0
push 0
push str.UserCaptionLocation
push edx
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
lea eax, [esi + 0x6b4]
push eax
push 0
push 0
push str.UserCaptionLogfont
push ecx
mov dword [esp + 0x28], 0x3c
call ebp
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ebx
push edx
lea eax, [esi + 0x76c]
push eax
mov eax, dword [esp + 0x1c]
push 0
push 0
push str.UserSoundWait
push eax
call ebp
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
lea eax, [esi + 0x768]
push ecx
push eax
push 0
push 0
push str.UserSoundWaitType
push edx
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
lea eax, [esi + 0x728]
push eax
push 0
push 0
push str.UserFadeToBlack
push ecx
mov dword [esp + 0x28], ebx
call ebp
lea edx, [esp + 0x10]
lea eax, [esi + 0x72c]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 0
push 0
push str.UserUseStandardPalette
push eax
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
push ecx
call dword [0x446008]
lea eax, [esi + 0x73c]
lea ecx, [esp + 0x24]
push eax
call fcn.00410244
test eax, eax
je 0x402af1
lea eax, [esi + 0x748]
lea ecx, [esp + 0x24]
push eax
call fcn.00410209
test eax, eax
je 0x402ae7
mov dword [esi + 0x754], 0
mov cl, byte [esi + 0x1f1]
lea eax, [esi + 0x1f1]
test cl, cl
je 0x402bca
push eax
lea edx, [esp + 0x34]
push str._sTransitionEffects
push edx
call dword [0x44648c]
add esp, 0xc
lea eax, [esp + 0x10]
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], 0
push eax
push 0x20019
push 0
push ecx
push 0x80000001
call dword [0x44600c]
test eax, eax
jne 0x402bca
mov ecx, dword [esi + 0x734]
mov dword [esp + 0x20], eax
cmp ecx, eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], eax
jbe 0x402bbf
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 0x730]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x20]
mov dword [esp + 0x24], ebx
push eax
push 0
lea eax, [ecx + edx + 4]
mov ecx, dword [esp + 0x1c]
push 0
push eax
push ecx
call ebp
test eax, eax
jne 0x402ba1
mov edx, dword [esi + 0x730]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [edx + ecx + 0x5c], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x734]
inc eax
add edx, 0x60
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jb 0x402b63
mov edx, dword [esp + 0x10]
push edx
call dword [0x446008]
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push 0x4513bc
push 0x4513dc
mov dword [esi + 0x758], 1
mov dword [esp + 0x24], 0
call fcn.004075c0
test eax, eax
je 0x402c36
cmp dword [esp + 0x18], 1
jne 0x402c36
mov cl, byte [0x4575c8]
lea edx, [esp + 0x10]
push 1
push edx
mov byte [esp + 0x18], cl
push 0x4513bc
push 0x4513dc
mov ecx, edi
mov byte [esp + 0x21], 0
call fcn.00407540
mov cl, byte [esp + 0x10]
xor eax, eax
cmp cl, 0x31
sete al
mov dword [esi + 0xcc], eax
mov eax, dword [esi + 0x6fc]
test eax, eax
je 0x402d2f
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionScreen_Savers
push 0x80000001
call dword [0x44600c]
test eax, eax
jne 0x402d2a
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esi + 0xe8]
push edx
push eax
push 0
push 0
push str.Mouse_Corners
push ecx
mov dword [esp + 0x2c], 5
call ebp
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea edi, [esi + 0xe0]
push edx
push edi
push 0
push 0
push str.Mouse_Threshold
push eax
mov dword [esp + 0x2c], ebx
call ebp
cmp dword [edi], 0
jne 0x402cbf
mov dword [edi], 8
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esi + 0xe4]
push ecx
push edx
push 0
push 0
push str.Mouse_Threshold_Index
push eax
mov dword [esp + 0x2c], ebx
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esi + 0xd8]
push ecx
push edx
push 0
push 0
push str.Password_Delay
push eax
mov dword [esp + 0x2c], ebx
call ebp
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
add esi, 0xdc
push ecx
push esi
push 0
push 0
push str.Password_Delay_Index
push edx
mov dword [esp + 0x2c], ebx
call ebp
mov eax, dword [esp + 0x10]
push eax
call dword [0x446008]
call fcn.0040fa70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret