Function at 0x10002180
Capabilities:
Set registry value

Disassembly:
sub esp, 0xa14
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0xa10], eax
mov eax, dword [esp + 0xa1c]
test eax, eax
push esi
mov esi, dword [esp + 0xa1c]
push edi
mov edi, dword [esp + 0xa28]
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0
je 0x100025dd
test esi, esi
je 0x100025dd
cmp word [esi], 0x2e
push esi
jne 0x10002200
push 0x100
lea eax, [esp + 0x620]
push eax
call fcn.100010a0
add esi, 2
push esi
push str._sType
lea ecx, [esp + 0x420]
push 0x100
push ecx
call fcn.10001610
add esp, 0x10
jmp 0x10002232
push 0x10010c84
lea edx, [esp + 0x620]
push 0x100
push edx
call fcn.10001610
push esi
push str._sType
lea eax, [esp + 0x430]
push 0x100
push eax
call fcn.10001610
add esp, 0x20
test edi, edi
je 0x10002246
push edi
push 0x100
lea ecx, [esp + 0x820]
push ecx
jmp 0x10002258
push str.__1_
push 0x100
lea edx, [esp + 0x820]
push edx
call fcn.100010a0
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push ebx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x10]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
lea edx, [esp + 0x638]
push edx
push SysReAllocString
call edi
test eax, eax
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jne 0x10002361
mov ecx, 0x100
lea eax, [esp + 0x41c]
cmp word [eax], 0
je 0x10002565
add eax, 2
sub ecx, 1
jne 0x100022a4
xor eax, eax
mov edx, dword [esp + 0xc]
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x420]
push ecx
push 1
push 0
push 0x1001023c
push edx
call ebx
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0
push 0x20006
push 0
push 0
push 0
push str.ShellExBB2E617C_0920_11d1_9A0B_00C04FC2D6C1
push edx
mov dword [esp + 0x34], 0
call edi
test eax, eax
jne 0x10002352
push str.4E5BFBF8_F59A_4e87_9805_1F9B42CC254A
lea eax, [esp + 0x20]
push 0x200
push eax
call fcn.10001610
add esp, 0xc
mov ecx, 0x100
lea eax, [esp + 0x1c]
cmp word [eax], 0
je 0x10002579
add eax, 2
sub ecx, 1
jne 0x10002324
xor eax, eax
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
push 1
push 0
push 0x1001023c
push eax
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10002361
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x10002370
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [esp + 0x438]
push eax
push SysReAllocString
call edi
test eax, eax
jne 0x100024b1
mov ecx, 0x100
mov eax, str.prop:System.Game.RichSaveName_System.Game.RichApplicationName
jmp 0x100023b0
cmp word [eax], 0
je 0x1000258d
add eax, 2
sub ecx, 1
jne 0x100023b0
xor edx, edx
mov ecx, 0x100
mov eax, str.prop:System.Game.RichLevel_System.DateChanged_System.Game.RichComment_System.DisplayName_System.DisplayType
mov edi, edi
cmp word [eax], 0
je 0x100025a1
add eax, 2
sub ecx, 1
jne 0x100023d0
xor esi, esi
lea ecx, [edx + edx + 2]
mov edx, dword [esp + 0xc]
push ecx
push str.prop:System.Game.RichSaveName_System.Game.RichApplicationName
push 1
push 0
push str.PreviewTitle
push edx
call ebx
mov ecx, dword [esp + 0xc]
lea eax, [esi + esi + 2]
push eax
push str.prop:System.Game.RichLevel_System.DateChanged_System.Game.RichComment_System.DisplayName_System.DisplayType
push 1
push 0
push str.PreviewDetails
push ecx
call ebx
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
push 0
push 0x20006
push 0
push 0
push 0
push str.ShellOpenCommand
push ecx
mov dword [esp + 0x34], 0
call edi
test eax, eax
jne 0x100024a2
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x81c]
push edx
push eax
push str._s__s
lea ecx, [esp + 0x28]
push 0x200
push ecx
call fcn.10001610
add esp, 0x14
mov ecx, 0x100
lea eax, [esp + 0x1c]
cmp word [eax], 0
je 0x100025b5
add eax, 2
sub ecx, 1
jne 0x10002474
xor eax, eax
mov ecx, dword [esp + 0x10]
lea edx, [eax + eax + 2]
push edx
lea eax, [esp + 0x20]
push eax
push 1
push 0
push 0x1001023c
push ecx
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x100024b1
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x100024c0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x61c]
push edx
push str.SoftwareMicrosoftWindowsCurrentVersionPropertySystemPropertyHandlers_s
lea eax, [esp + 0x24]
push 0x200
push eax
call fcn.10001610
add esp, 0x10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
push 0x20006
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call edi
test eax, eax
jne 0x10002551
push str.ECDD6472_2B9B_4B4B_AE36_F316DF3C8D60
push 0x200
lea ecx, [esp + 0x24]
push ecx
call fcn.100010a0
mov ecx, 0x100
lea eax, [esp + 0x1c]
cmp word [eax], 0
je 0x100025c9
add eax, 2
sub ecx, 1
jne 0x10002523
xor eax, eax
mov ecx, dword [esp + 0xc]
lea edx, [eax + eax + 2]
push edx
lea eax, [esp + 0x20]
push eax
push 1
push 0
push 0x1001023c
push ecx
call ebx
mov eax, dword [esp + 0xc]
test eax, eax
pop ebx
je 0x10002561
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x100025e2
test ecx, ecx
je 0x100022b6
mov eax, 0x100
sub eax, ecx
jmp 0x100022b8
test ecx, ecx
je 0x10002336
mov eax, 0x100
sub eax, ecx
jmp 0x10002338
test ecx, ecx
je 0x100023c2
mov edx, 0x100
sub edx, ecx
jmp 0x100023c4
test ecx, ecx
je 0x100023e2
mov esi, 0x100
sub esi, ecx
jmp 0x100023e4
test ecx, ecx
je 0x10002486
mov eax, 0x100
sub eax, ecx
jmp 0x10002488
test ecx, ecx
je 0x10002535
mov eax, 0x100
sub eax, ecx
jmp 0x10002537
mov eax, 0x80070057
mov ecx, dword [esp + 0xa18]
pop edi
pop esi
xor ecx, esp
call fcn.100046b7
add esp, 0xa14
ret 0xc