Function at 0x402620
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x318
push ebx
push ebp
mov ebp, dword [esp + 0x324]
push esi
cmp ebp, 3
push edi
je 0x40264d
cmp ebp, 2
je 0x402652
cmp ebp, 1
je 0x40264d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
cmp ebp, 2
jne 0x40265f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
mov edi, 0x104
lea eax, [esp + 0x224]
push edi
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x224]
push 0x5c
push ecx
call fcn.00402d1a
add esp, 8
lea edx, [esp + 0x224]
mov byte [eax + 1], 0
push str.TruePlayer.exe
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp ebp, 3
mov eax, 0x40876c
je 0x4026ad
mov eax, str.AudioCD
lea ecx, [esp + 0x18]
push 0
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push 0x80000000
call esi
test eax, eax
je 0x4026e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
cmp ebp, 3
mov eax, str.DVDdefaultIcon
je 0x4026ef
mov eax, str.AudioCDdefaultIcon
lea edx, [esp + 0x10]
push 0
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push 0x80000000
call esi
test eax, eax
je 0x40271c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
mov eax, dword [esp + 0x330]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
test eax, eax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], edi
push eax
push ecx
push 0
push 0
je 0x4027b0
push 0x40ac90
push edx
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + 0x1c]
push eax
call esi
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 1
push 0
push str.BofulPlayer_BAK
push edx
call edi
lea eax, [esp + 0x224]
lea ecx, [esp + 0x120]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x120]
push 0x40872c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x120]
push eax
call esi
lea ecx, [esp + 0x120]
jmp 0x4027cf
push str.BofulPlayer_BAK
push edx
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esp + 0x1c]
push eax
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [esp + 0x1c]
mov edx, dword [esp + 0x10]
push eax
push ecx
push 1
push 0
push 0x40ac90
push edx
call edi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, 3
mov eax, str.DVDShell
je 0x4027fb
mov eax, str.AudioCDShell
lea ecx, [esp + 0x10]
push 0
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x40282c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
mov eax, dword [esp + 0x330]
mov dword [esp + 0x14], 0x104
test eax, eax
je 0x402885
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x1c]
push edx
push eax
push 0
push 0
push 0x40ac90
push ecx
call ebx
lea edx, [esp + 0x1c]
push edx
call esi
mov ecx, dword [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
push 1
push 0
push str.BofulPlayer_BAK
push ecx
call edi
push 0x408700
call esi
push eax
push 0x408700
jmp 0x4028ac
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0
push 0
push str.BofulPlayer_BAK
push edx
call ebx
lea eax, [esp + 0x1c]
push eax
call esi
lea ecx, [esp + 0x1c]
push eax
push ecx
mov edx, dword [esp + 0x18]
push 1
push 0
push 0x40ac90
push edx
call edi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, 3
mov eax, str.DVDShellplaycommand
je 0x4028d6
mov eax, str.AudioCDShellplaycommand
lea ecx, [esp + 0x10]
push 0
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x402907
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x318
ret
mov eax, dword [esp + 0x330]
mov dword [esp + 0x14], 0x104
test eax, eax
je 0x4029aa
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x1c]
push edx
push eax
push 0
push 0
push 0x40ac90
push ecx
call ebx
lea edx, [esp + 0x1c]
push edx
call esi
mov ecx, dword [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push eax
push 1
push 0
push str.BofulPlayer_BAK
push ecx
call edi
lea edx, [esp + 0x224]
lea eax, [esp + 0x120]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp ebp, 3
jne 0x40297f
lea ecx, [esp + 0x120]
push str._dvd:___L
push ecx
jmp 0x402991
cmp ebp, 1
jne 0x402997
lea edx, [esp + 0x120]
push str._cd:___L
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x120]
push eax
call esi
lea ecx, [esp + 0x120]
jmp 0x4029cf
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0
push 0
push str.BofulPlayer_BAK
push edx
call ebx
lea eax, [esp + 0x1c]
push eax
call esi
lea ecx, [esp + 0x1c]
mov edx, dword [esp + 0x10]
push eax
push ecx
push 1
push 0
push 0x40ac90
push edx
call edi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x318
ret