Function at 0x485fe0
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc50
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push edi
mov dword [ebp - 8], esi
mov byte [ebp - 2], 1
mov byte [ebp - 1], 0
call edx
mov byte [ebp - 3], al
test al, al
je 0x48602f
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
push eax
lea eax, [ebp - 0xc50]
push str._applaunch__u
push eax
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
lea edx, [ebp + eax - 0xc50]
jmp 0x48603c
mov byte [ebp - 0xc50], 0
lea edx, [ebp - 0xc50]
cmp byte [0x6e9fe0], 0
je 0x48605c
mov eax, 0x6e9fe0
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x486050
jmp 0x48608a
cmp byte [0x6e9d78], 0
jne 0x48606f
mov eax, dword [esi + 0xce0]
test eax, eax
jne 0x486079
mov eax, dword [esi + 0xcdc]
test eax, eax
je 0x48608a
sub edx, eax
jmp 0x486080
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x486080
mov ecx, dword [esi + 0xc30]
mov edx, dword [esi + 0xc34]
mov eax, ecx
mov dword [ebp - 0xc], edx
and eax, 0x10000000
xor edx, edx
or eax, edx
je 0x4860a9
mov byte [ebp - 2], dl
and ecx, 0x8000000
xor eax, eax
or ecx, eax
je 0x4860b9
mov byte [ebp - 1], 1
lea eax, [ebp - 0x450]
push eax
mov ecx, esi
call fcn.00482e60
cmp byte [ebp - 1], 0
je 0x4860e2
push 0x400
lea ecx, [ebp - 0x450]
push ecx
mov edx, ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea eax, [ebp - 0x450]
lea edx, [eax + 1]
jmp 0x4860f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4860f0
mov edi, dword [ebp + 8]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x450]
push eax
push 1
push 0
push str.CurrentDirectory
push edi
call ebx
test eax, eax
je 0x486129
push eax
push str.RegCreateKeyEx_CurrentDirectory_failed_with_err:__d_n
call fcn.00481590
add esp, 8
lea eax, [esi + 0x40b]
lea edx, [ebp - 0x450]
mov dword [ebp + 8], eax
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x486140
lea ecx, [ebp - 0x450]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
cmp byte [ebp - 1], 0
je 0x486172
push 0x400
lea edx, [ebp - 0x450]
push edx
mov eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea eax, [ebp - 0x450]
lea edx, [eax + 1]
jmp 0x486180
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x486180
sub eax, edx
inc eax
push eax
lea ecx, [ebp - 0x450]
push ecx
push 1
push 0
push str.Path
push edi
call ebx
test eax, eax
je 0x4861b0
push eax
push str.RegCreateKeyEx_Path_failed_with_err:__d_n
call fcn.00481590
add esp, 8
mov eax, dword [esi + 0xc30]
and eax, 0x40000000
xor ecx, ecx
or eax, ecx
lea eax, [esi + 0xd60]
jne 0x4861cc
mov eax, 0x60cc08
push eax
lea edx, [ebp - 0x50]
push edx
call fcn.0045cc90
lea eax, [ebp - 0x50]
add esp, 8
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4861e0
sub eax, edx
inc eax
push eax
lea eax, [ebp - 0x50]
push eax
push 1
push 0
push str.Guid
push edi
call ebx
test eax, eax
je 0x48620d
push eax
push str.RegCreateKeyEx_Guid_failed_with_err:__d_n
call fcn.00481590
add esp, 8
mov ecx, dword [ebp + 8]
push ecx
call sym.GameRanger.exe_char_const____cdecl_GetSpecPathFile_struct_FileSpec_const__
add esp, 4
cmp byte [ebp - 2], 0
mov esi, eax
mov dword [ebp + 8], esi
je 0x48627d
cmp byte [ebp - 3], 0
mov edx, 0x60cd10
jne 0x486231
mov edx, esi
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x486236
sub eax, esi
inc eax
push eax
push edx
push 1
push 0
push str.Launcher
push edi
call ebx
test eax, eax
je 0x486260
push eax
push str.RegCreateKeyEx_Launcher_failed_with_err:__d_n
call fcn.00481590
add esp, 8
mov edx, dword [ebp - 8]
cmp byte [edx + 0xd41], 0
je 0x48628b
mov eax, edx
mov eax, dword [eax + 0xd44]
cmp byte [eax], 0
je 0x48628b
mov esi, eax
jmp 0x48628e
push str.Launcher
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
jmp 0x48628e
mov esi, dword [ebp + 8]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x486293
sub eax, edx
inc eax
push eax
push esi
push 1
push 0
push 0x60d330
push edi
call ebx
test eax, eax
je 0x4862bd
push eax
push str.RegCreateKeyEx_File_failed_with_err:__d_n
call fcn.00481590
add esp, 8
lea ecx, [ebp - 0xc50]
push ecx
mov ecx, dword [ebp - 8]
call fcn.00489090
lea eax, [ebp - 0xc50]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4862d5
sub eax, edx
inc eax
push eax
lea edx, [ebp - 0xc50]
push edx
push 1
push 0
push str.CommandLine
push edi
call ebx
test eax, eax
je 0x486305
push eax
push str.RegCreateKeyEx_CommandLine_failed_with_err:__d_n
call fcn.00481590
add esp, 8
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4