Function at 0x1005d840
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x608
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, ecx
mov dword [ebp - 4], 0
test esi, esi
je 0x1005dc6b
cmp dword [ebp + 0x10], 0
je 0x1005dc6b
cmp dword [ebx + 0x10c], 0
je 0x1005dc6b
cmp byte [esi], 0x2e
lea eax, [ebp - 0x304]
push edi
jne 0x1005d8b7
mov edi, esi
mov edx, 0x100
mov ecx, eax
sub edi, eax
lea ecx, [ecx]
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x1005d8a9
mov al, byte [edi + ecx]
test al, al
je 0x1005d8a9
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x1005d890
test edx, edx
lea eax, [ecx - 1]
cmovne eax, ecx
inc esi
mov byte [eax], 0
jmp 0x1005d8cb
push esi
push 0x1024f6c4
push 0x100
push eax
call fcn.1005fb70
add esp, 0x10
push esi
push str._sType
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.1005fb70
push dword [ebp + 0x10]
lea eax, [ebp - 0x504]
push dword [ebp + 8]
push str._applaunch_____d__s
push 0x100
push eax
call fcn.100bb550
push dword [ebx + 0x108]
lea eax, [ebx + 4]
push eax
push 0x1024f6dc
lea eax, [ebp - 0x608]
push 0x104
push eax
call fcn.100bb550
add esp, 0x38
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x304]
push eax
push SysReAllocString
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, 0x100
test eax, eax
jne 0x1005da2a
mov edx, ebx
lea eax, [ebp - 0x404]
cmp byte [eax], 0
je 0x1005d970
inc eax
sub edx, 1
jne 0x1005d965
mov ecx, edx
mov eax, ebx
sub eax, edx
neg ecx
sbb ecx, ecx
and ecx, eax
neg edx
lea eax, [ebp - 0x404]
sbb edx, edx
and edx, ecx
inc edx
push edx
push eax
push 1
push 0
push 0x1024cb86
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea eax, [ebp + 0xc]
mov dword [ebp + 0x10], 0
push eax
lea eax, [ebp + 0x10]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.ShellExBB2E617C_0920_11d1_9A0B_00C04FC2D6C1
push dword [ebp - 4]
call esi
test eax, eax
jne 0x1005da20
push str.4E5BFBF8_F59A_4e87_9805_1F9B42CC254A
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.1005fb70
add esp, 0xc
lea eax, [ebp - 0x204]
mov edx, ebx
cmp byte [eax], 0
je 0x1005d9f3
inc eax
sub edx, 1
jne 0x1005d9e8
mov ecx, edx
mov eax, ebx
sub eax, edx
neg ecx
sbb ecx, ecx
and ecx, eax
neg edx
lea eax, [ebp - 0x204]
sbb edx, edx
and edx, ecx
inc edx
push edx
push eax
push 1
push 0
push 0x1024cb86
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1005da2a
push eax
call edi
mov eax, dword [ebp - 4]
test eax, eax
je 0x1005da34
push eax
call edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x404]
push eax
push SysReAllocString
call esi
test eax, eax
jne 0x1005db82
mov edx, ebx
mov eax, str.prop:System.Game.RichSaveName_System.Game.RichApplicationName
cmp byte [eax], 0
je 0x1005da71
inc eax
sub edx, 1
jne 0x1005da66
mov ecx, edx
mov eax, ebx
sub eax, edx
mov esi, ebx
neg ecx
sbb ecx, ecx
and ecx, eax
neg edx
mov eax, str.prop:System.Game.RichLevel_System.DateChanged_System.Game.RichComment_System.DisplayName_System.DisplayType
sbb edx, edx
and edx, ecx
lea ebx, [ebx]
cmp byte [eax], 0
je 0x1005da9b
inc eax
sub esi, 1
jne 0x1005da90
lea eax, [edx + 1]
push eax
push str.prop:System.Game.RichSaveName_System.Game.RichApplicationName
push 1
push 0
push str.PreviewTitle
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, esi
mov eax, ebx
sub eax, esi
neg ecx
sbb ecx, ecx
and ecx, eax
neg esi
sbb esi, esi
and esi, ecx
inc esi
push esi
push str.prop:System.Game.RichLevel_System.DateChanged_System.Game.RichComment_System.DisplayName_System.DisplayType
push 1
push 0
push str.PreviewDetails
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x10]
mov dword [ebp + 0x10], 0
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.ShellOpenCommand
push dword [ebp - 4]
call esi
test eax, eax
jne 0x1005db78
lea eax, [ebp - 0x504]
push eax
lea eax, [ebp - 0x608]
push eax
push 0x1024f820
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.1005fb70
add esp, 0x14
lea eax, [ebp - 0x204]
mov edx, ebx
cmp byte [eax], 0
je 0x1005db4b
inc eax
sub edx, 1
jne 0x1005db40
mov ecx, edx
mov eax, ebx
sub eax, edx
neg ecx
sbb ecx, ecx
and ecx, eax
neg edx
lea eax, [ebp - 0x204]
sbb edx, edx
and edx, ecx
inc edx
push edx
push eax
push 1
push 0
push 0x1024cb86
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1005db82
push eax
call edi
mov eax, dword [ebp - 4]
test eax, eax
je 0x1005db8c
push eax
call edi
lea eax, [ebp - 0x304]
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionPropertySystemPropertyHandlers_s
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.1005fb70
add esp, 0x10
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [ebp - 0x204]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x1005dc56
lea ecx, [ebp - 0x204]
mov esi, str.ECDD6472_2B9B_4B4B_AE36_F316DF3C8D60
mov eax, ecx
mov edx, 0x200
sub esi, eax
jmp 0x1005dbf0
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x1005dc09
mov al, byte [esi + ecx]
test al, al
je 0x1005dc09
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x1005dbf0
lea eax, [ecx - 1]
test edx, edx
cmovne eax, ecx
mov ecx, ebx
mov byte [eax], 0
lea eax, [ebp - 0x204]
lea esp, [esp]
cmp byte [eax], 0
je 0x1005dc2b
inc eax
sub ecx, 1
jne 0x1005dc20
mov eax, ecx
sub ebx, ecx
neg eax
sbb eax, eax
and eax, ebx
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x204]
inc ecx
push ecx
push eax
push 1
push 0
push 0x1024cb86
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 4]
test eax, eax
je 0x1005dc60
push eax
call edi
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0xc