Function at 0x4023d0
Capabilities:
Create directory
Set registry value

Disassembly:
mov eax, 0x1254
call fcn.0040aa90
mov eax, dword [0x40f004]
xor eax, esp
mov dword [esp + 0x1250], eax
mov ecx, dword [0x411db0]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea eax, [esp + 0xe4c]
push eax
push 0x65
push ecx
call ebp
lea edx, [esp + 0xe48]
push 0x4121e0
push edx
mov ecx, 0x104
lea ebx, [esp + 0x428]
call fcn.00401030
add esp, 8
test eax, eax
jge 0x402446
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1250]
xor ecx, esp
call fcn.00402e0d
add esp, 0x1254
ret
push esi
push edi
push 0x26
lea edi, [esp + 0x224]
call fcn.00401340
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 4
push str.CanonIJEREG
mov eax, edi
push eax
call esi
push 0x4121e0
mov ecx, edi
push ecx
call esi
push 0x17
lea edi, [esp + 0x1c]
call fcn.00401340
add esp, 4
lea edx, [esp + 0x428]
push edx
mov eax, edi
push eax
call esi
push 0
mov ecx, edi
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4024ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4026ca
mov eax, dword [0x411db0]
push 0x104
lea edx, [esp + 0x634]
push edx
push 0x66
push eax
call ebp
lea ecx, [esp + 0x630]
push ecx
lea edx, [esp + 0x1c]
push edx
push str._s_s.LNK
mov ecx, 0x104
lea ebx, [esp + 0xc54]
call fcn.00401030
add esp, 0xc
test eax, eax
jl 0x4026ca
push str.UNINST.EXE
lea eax, [esp + 0x224]
push eax
push 0x40d5bc
mov ecx, 0x104
lea ebx, [esp + 0xa4c]
call fcn.00401030
add esp, 0xc
test eax, eax
jl 0x4026ca
mov edx, dword [0x411db0]
push 0x104
lea ecx, [esp + 0x634]
push ecx
push 0x67
push edx
call ebp
lea eax, [esp + 0x630]
push eax
lea ecx, [esp + 0x1c]
push ecx
push str._s_s.LNK
mov ecx, 0x104
lea ebx, [esp + 0xc54]
call fcn.00401030
add esp, 0xc
test eax, eax
jl 0x4026ca
push str.IJEREG.exe
lea edx, [esp + 0x224]
push edx
push 0x40d5bc
mov ecx, 0x104
lea ebx, [esp + 0x844]
call fcn.00401030
add esp, 0xc
test eax, eax
jl 0x4026ca
lea eax, [esp + 0xc48]
push eax
mov eax, ebx
call fcn.00401400
add esp, 4
test eax, eax
jl 0x4026ca
lea ecx, [esp + 0x428]
push ecx
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
push str._s_s
mov ecx, 0x104
lea ebx, [esp + 0x1064]
call fcn.00401030
add esp, 0xc
test eax, eax
jl 0x4026ca
lea edx, [esp + 0x14]
push edx
mov eax, ebx
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x4026ca
lea edi, [esp + 0x10]
mov edx, 0x104
lea eax, [esp + 0x428]
call fcn.00401090
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jl 0x402638
mov ecx, dword [esp + 0x10]
lea edx, [ecx + ecx + 2]
mov ecx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x42c]
push eax
push 1
push 0
push str.DisplayName
push ecx
call esi
lea edi, [esp + 0x10]
mov edx, 0x104
lea eax, [esp + 0x838]
call fcn.00401090
test eax, eax
jl 0x402672
mov edx, dword [esp + 0x10]
lea eax, [edx + edx + 2]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x83c]
push ecx
push 1
push 0
push str.DisplayIcon
push edx
call esi
lea edi, [esp + 0x10]
mov edx, 0x104
lea eax, [esp + 0xa40]
call fcn.00401090
test eax, eax
jl 0x4026ac
mov eax, dword [esp + 0x10]
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x14]
push ecx
lea edx, [esp + 0xa44]
push edx
push 1
push 0
push str.UninstallString
push eax
call esi
mov ecx, dword [esp + 0x14]
push 0x16
push 0x40d888
push 1
push 0
push str.Publisher
push ecx
call esi
mov eax, 1
jmp 0x4026cc
xor eax, eax
mov ecx, dword [esp + 0x1260]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00402e0d
add esp, 0x1254
ret