Function at 0x4050d0
Capabilities:
Copy file
Create directory
Set registry value

Disassembly:
mov eax, 0x2718
call fcn.00407c70
push ebx
push ebp
push esi
mov esi, dword [esp + 0x272c]
push edi
push str.Uninstall
push esi
lea eax, [esp + 0x20]
push 0x41eaf4
push eax
call fcn.00407a78
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
add esp, 0x10
lea ecx, [esp + 0x1288]
push ecx
push esi
call edi
cmp eax, 0xffffffff
jne 0x405129
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push esi
call edi
lea edx, [esp + 0x18]
push 0
push edx
call edi
jmp 0x40514a
lea eax, [esp + 0x630]
lea ecx, [esp + 0x18]
push eax
push ecx
call edi
cmp eax, 0xffffffff
jne 0x40514a
lea edx, [esp + 0x18]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, dword [esp + 0x272c]
push str.setup.exe
push edi
lea eax, [esp + 0x228]
push str._s_s
push eax
call fcn.00407a78
push str.setup.exe
push str.Uninstall
push esi
lea ecx, [esp + 0x34]
push str._s_s_s
push ecx
call fcn.00407a78
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileW]
add esp, 0x24
lea edx, [esp + 0x18]
lea eax, [esp + 0x220]
push 0
push edx
push eax
call ebp
push str.setup.ini
push edi
lea ecx, [esp + 0x228]
push str._s_s
push ecx
call fcn.00407a78
push str.setup.ini
push str.Uninstall
push esi
lea edx, [esp + 0x34]
push str._s_s_s
push edx
call fcn.00407a78
add esp, 0x24
lea eax, [esp + 0x18]
lea ecx, [esp + 0x220]
push 0
push eax
push ecx
call ebp
mov ebx, 0x41e0e4
push ebx
push edi
lea edx, [esp + 0x228]
push str._s_s
push edx
call fcn.00407a78
push ebx
push str.Uninstall
push esi
lea eax, [esp + 0x34]
push str._s_s_s
push eax
call fcn.00407a78
add esp, 0x24
lea ecx, [esp + 0x18]
lea edx, [esp + 0x220]
push 0
push ecx
push edx
call ebp
add ebx, 0x64
cmp ebx, 0x41e3a0
jl 0x4051e8
push str.mingwm10.dll
push str.Application
push edi
lea eax, [esp + 0x22c]
push 0x41e5f8
push eax
call fcn.00407a78
push str.mingwm10.dll
push esi
lea ecx, [esp + 0x34]
push 0x41eaf4
push ecx
call fcn.00407a78
add esp, 0x24
lea edx, [esp + 0x18]
lea eax, [esp + 0x220]
push 0
push edx
push eax
call ebp
lea ebx, [esi + 0x208]
lea ecx, [esp + 0x220]
push ebx
push str.Application
push edi
push 0x41e5f8
push ecx
call fcn.00407a78
push ebx
push esi
lea edx, [esp + 0x34]
push 0x41eaf4
push edx
call fcn.00407a78
add esp, 0x24
lea eax, [esp + 0x18]
lea ecx, [esp + 0x220]
push 0
push eax
push ecx
call ebp
push str.RaidAPTitle.bmp
push str.Application
push edi
lea edx, [esp + 0x22c]
push 0x41e5f8
push edx
call fcn.00407a78
add esp, 0x14
lea eax, [esp + 0x1cd8]
lea ecx, [esp + 0x220]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x405365
push str.RaidAPTitle.bmp
push esi
lea edx, [esp + 0x20]
push 0x41eaf4
push edx
call fcn.00407a78
add esp, 0x10
lea eax, [esp + 0x18]
lea ecx, [esp + 0x220]
push 0
push eax
push ecx
call ebp
push str.title_about.bmp
push str.Application
push edi
lea edx, [esp + 0x22c]
push 0x41e5f8
push edx
call fcn.00407a78
push str.title_about.bmp
push esi
lea eax, [esp + 0x34]
push 0x41eaf4
push eax
call fcn.00407a78
add esp, 0x24
lea ecx, [esp + 0x18]
lea edx, [esp + 0x220]
push 0
push ecx
push edx
call ebp
mov eax, dword [0x4208f0]
test eax, eax
je 0x4053b4
push str.XSrvSetup.exe
push str.Application
push edi
lea eax, [esp + 0x22c]
push 0x41e5f8
push eax
call fcn.00407a78
push str.XSrvSetup.exe
push esi
lea ecx, [esp + 0x34]
push 0x41eaf4
push ecx
call fcn.00407a78
add esp, 0x24
lea edx, [esp + 0x18]
lea eax, [esp + 0x220]
push 0
push edx
push eax
call ebp
mov cx, word [0x420904]
xor eax, eax
mov word [esp + 0xa88], cx
mov ecx, 0x1ff
lea edi, [esp + 0xa8a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x4208ec]
test eax, eax
je 0x4053ed
lea edx, [esp + 0xa88]
push str.SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersion_
push edx
jmp 0x4053fa
lea eax, [esp + 0xa88]
push str.SOFTWAREMicrosoftWindowsCurrentVersion_
push eax
call fcn.00407994
mov cx, word [0x420904]
xor eax, eax
mov word [esp + 0x14e0], cx
mov ecx, 0x1ff
lea edi, [esp + 0x14e2]
add esp, 8
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esi + 0x820]
lea eax, [esp + 0xa88]
push edx
push eax
lea ecx, [esp + 0x14e0]
push str._sUninstall_s
push ecx
call fcn.00407a78
mov eax, dword [0x4208f0]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxW]
add esp, 0x10
test eax, eax
jne 0x4054fe
lea edx, [esp + 0xa88]
push 0x41ee78
push edx
call fcn.0040796a
add esp, 8
lea eax, [esp + 0x14]
lea ecx, [esp + 0xa88]
push eax
push 0x20006
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4054fe
push ebx
push esi
lea edx, [esp + 0x430]
push str._s_s_min
push edx
call fcn.00407a78
lea eax, [esp + 0x438]
push eax
call fcn.00407d7e
add esp, 0x14
lea ecx, [eax + eax + 2]
lea edx, [esp + 0x428]
lea eax, [esi + 0x410]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push 1
push 0
push eax
push ecx
call edi
test eax, eax
je 0x4054ef
push 0x30
push str.Fail
push str.Fail_to_write_the_Run_registry_key_
push 0
call ebp
mov edx, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call ebx
jmp 0x405504
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x10]
push 0
push eax
push 0
push 0x20006
push 0
push 0
lea ecx, [esp + 0x14f0]
push 0
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4056b9
push str.setup.exe
push str.Uninstall
push esi
lea edx, [esp + 0x1f34]
push str._s_s_s_delpkg
push edx
call fcn.00407a78
lea eax, [esp + 0x1f3c]
push eax
call fcn.00407d7e
add esp, 0x18
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1f28]
push ecx
push edx
push 1
push 0
push str.UninstallString
push eax
call edi
test eax, eax
je 0x4055a3
push 0x30
push str.Fail
push str.Fail_to_write_the_UninstallString_registry_key_
push 0
call ebp
mov ecx, dword [esp + 0x10]
push ecx
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2718
ret
lea edx, [esi + 0x410]
lea eax, [esp + 0x428]
push edx
push eax
call fcn.00407994
lea ecx, [esp + 0x430]
push ecx
call fcn.00407d7e
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea edx, [eax + eax + 2]
lea eax, [esp + 0x428]
push edx
push eax
push 1
push 0
push str.DisplayName
push ecx
call edi
test eax, eax
je 0x40560a
push 0x30
push str.Fail
push str.Fail_to_write_the_DisplayName_registry_key_
push 0
call ebp
mov edx, dword [esp + 0x10]
push edx
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2718
ret
lea eax, [esi + 0x618]
lea ecx, [esp + 0x880]
push eax
push ecx
call fcn.00407994
lea edx, [esp + 0x888]
push edx
call fcn.00407d7e
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [eax + eax + 2]
lea ecx, [esp + 0x880]
push eax
push ecx
push 1
push 0
push str.Publisher
push edx
call edi
add esi, 0xa28
lea eax, [esp + 0x630]
push esi
push eax
call fcn.00407994
lea ecx, [esp + 0x638]
push ecx
call fcn.00407d7e
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea edx, [eax + eax + 2]
lea eax, [esp + 0x630]
push edx
push eax
push 1
push 0
push str.DisplayVersion
push ecx
call edi
test eax, eax
je 0x4056b2
push 0x30
push str.Fail
push str.Fail_to_write_the_DisplayVersion_registry_key_
push 0
call ebp
mov edx, dword [esp + 0x10]
push edx
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2718
ret
mov eax, dword [esp + 0x10]
push eax
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2718
ret