Function at 0x4081a0
Capabilities:
Copy file
Create directory
Create process on windows
Delete file
Extract resource via kernel32 functions
Impersonate user
Persist via lnk shortcut
Query environment variable
Set current directory
Start service
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x44a65f
mov eax, dword fs:[0]
push eax
sub esp, 0x4a8
mov eax, dword [0x45e560]
xor eax, esp
mov dword [esp + 0x4a0], eax
push ebx
push esi
push edi
mov eax, dword [0x45e560]
xor eax, esp
push eax
lea eax, [esp + 0x4b8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov ecx, ebx
call fcn.0041a4ff
mov ecx, dword [ebx + 0x48]
lea eax, [esp + 0x344]
push eax
call fcn.00403820
mov dword [esp + 0x4c0], 0
mov byte [ebx + 0xa5], 1
call fcn.00446e58
mov esi, eax
mov dword [esp + 0x20], esi
call fcn.00446c86
push 0
lea ecx, [esp + 0x14]
mov edi, eax
call fcn.00446fa8
mov eax, dword [edi + 4]
cmp eax, 0xffffffff
jae 0x40823e
inc eax
mov dword [edi + 4], eax
lea ecx, [esp + 0x10]
call fcn.00446fd0
lea eax, [esp + 0x20]
lea edi, [esp + 0x344]
mov byte [esp + 0x4c0], 1
call fcn.00403890
mov byte [esp + 0x4c0], 0
test esi, esi
je 0x4082a8
push 0
lea ecx, [esp + 0x14]
call fcn.00446fa8
mov eax, dword [esi + 4]
test eax, eax
jbe 0x408286
cmp eax, 0xffffffff
jae 0x408286
dec eax
mov dword [esi + 4], eax
mov edi, dword [esi + 4]
neg edi
sbb edi, edi
not edi
lea ecx, [esp + 0x10]
and edi, esi
call fcn.00446fd0
test edi, edi
je 0x4082a8
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
push 2
push 0x451f14
lea ecx, [esp + 0x34c]
push ecx
xor eax, eax
call fcn.00402340
cmp eax, 0xffffffff
je 0x4082d6
cmp eax, 0xffffffff
je 0x4082d6
mov byte [ebx + 0xa4], 1
mov byte [ebx + 0xa5], 0
push 2
push 0x451f18
lea edx, [esp + 0x34c]
push edx
xor eax, eax
call fcn.00402340
cmp eax, 0xffffffff
je 0x4082fd
cmp eax, 0xffffffff
je 0x4082fd
mov byte [ebx + 0xa5], 1
mov dword [esp + 0x27c], 0xf
mov dword [esp + 0x278], 0
mov byte [esp + 0x268], 0
push 0
mov eax, 0x401
lea edi, [esp + 0x268]
mov byte [esp + 0x4c4], 2
call fcn.00402610
mov eax, dword [esp + 0x278]
test eax, eax
jne 0x408358
mov esi, 0x10
cmp dword [esp + 0x27c], esi
jb 0x408374
mov eax, dword [esp + 0x268]
jmp 0x40837b
ja 0x40835f
call fcn.00446bb1
mov eax, dword [esp + 0x268]
mov esi, 0x10
cmp dword [esp + 0x27c], esi
jae 0x40837b
lea eax, [esp + 0x268]
push 0x400
push eax
push str._temp__scInstallError.txt
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov eax, dword [esp + 0x268]
cmp dword [esp + 0x27c], esi
jae 0x4083a3
lea eax, [esp + 0x268]
test eax, eax
jne 0x4083b8
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x26c]
call fcn.00402a60
jmp 0x4083f5
lea edx, [eax + 1]
jmp 0x4083c0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4083c0
mov ecx, dword [esp + 0x278]
sub eax, edx
cmp eax, ecx
ja 0x4083e5
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x26c]
call fcn.00402a60
jmp 0x4083f5
push 0
sub eax, ecx
lea edi, [esp + 0x268]
call fcn.00402610
mov ecx, dword [esp + 0x268]
cmp dword [esp + 0x27c], esi
jae 0x40840c
lea ecx, [esp + 0x268]
mov edi, 0x462ab0
call fcn.00402f20
push 1
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x30], esp
push eax
mov ecx, str.ServiceInstaller
call fcn.00403820
call fcn.004030c0
add esp, 0x20
push 8
push 0
push 0
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
test edi, edi
je 0x40847a
push edi
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
test eax, eax
je 0x40845c
push eax
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
jmp 0x408469
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x41f
jne 0x40846b
mov bl, 1
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test bl, bl
jne 0x40853c
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0xa4], 0
jne 0x40849b
push 0
push str.Install_Error
push str.You_must_have_administrator_privileges._Install_Aborted.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp byte [0x462aa4], 1
jne 0x4084eb
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x14], str..ServiceInstaller.cpp
call fcn.00403b40
mov eax, dword [eax]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4084d2
lea ebx, [esp + 0x18]
mov ecx, str..ServiceInstaller.cpp
call fcn.004031c0
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x4084eb
cmp eax, 1
jl 0x4084eb
push 1
push str.Install_Aborted__insufficient_user_privileges.
call fcn.00403540
add esp, 8
cmp dword [esp + 0x27c], esi
jb 0x408504
mov eax, dword [esp + 0x268]
push eax
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x27c], 0xf
mov dword [esp + 0x278], 0
mov byte [esp + 0x268], 0
cmp dword [esp + 0x35c], esi
jb 0x409222
mov ecx, dword [esp + 0x348]
push ecx
jmp 0x40921a
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.00407c60
cmp byte [ebx + 0xa5], 0
jne 0x4085a9
call fcn.004075b0
cmp al, 1
jne 0x4085a9
cmp dword [esp + 0x27c], esi
jb 0x408571
mov edx, dword [esp + 0x268]
push edx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x27c], 0xf
mov dword [esp + 0x278], 0
mov byte [esp + 0x268], 0
cmp dword [esp + 0x35c], esi
jb 0x409222
mov eax, dword [esp + 0x348]
push eax
jmp 0x40921a
lea ecx, [esp + 0x24]
push ecx
call fcn.00409650
mov byte [esp + 0x4c0], 3
cmp byte [ebx + 0xa4], 1
je 0x4085da
lea ecx, [esp + 0x24]
call fcn.00411bcb
cmp eax, 1
jne 0x4091bc
mov ebx, dword [esp + 0x1c]
call fcn.00407540
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp al, 1
jne 0x408619
call fcn.004074e0
mov edi, 3
call fcn.00407540
cmp al, 1
jne 0x408619
lea esp, [esp]
test edi, edi
je 0x408698
push 0x3e8
call esi
dec edi
call fcn.00407540
cmp al, 1
je 0x408600
push 0
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x30], esp
push edx
mov ecx, 0x452060
call fcn.00403820
call fcn.00406a80
add esp, 0x20
cmp al, 1
jne 0x40879a
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
mov ecx, 0x452060
call fcn.00403820
call fcn.00406d00
add esp, 0x1c
mov edi, 3
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
mov ecx, 0x452060
call fcn.00403820
call fcn.00406a80
add esp, 0x20
cmp al, 1
jne 0x40879a
test edi, edi
je 0x408776
push 0x3e8
call esi
dec edi
jmp 0x408660
push 0
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x30], esp
push edx
mov ecx, 0x451fe0
call fcn.00403820
call fcn.00406a80
add esp, 0x20
cmp al, 1
jne 0x408619
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
mov ecx, 0x451fe0
call fcn.00403820
call fcn.00406d00
add esp, 0x1c
mov edi, 3
nop
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
mov ecx, 0x451fe0
call fcn.00403820
call fcn.00406a80
add esp, 0x20
cmp al, 1
jne 0x408619
test edi, edi
je 0x408714
push 0x3e8
call esi
dec edi
jmp 0x4086e0
cmp byte [ebx + 0xa4], 0
jne 0x408731
push 0
push str.Install_Error
push str.Could_not_stop_Safe_Connect_Service__Install_Aborted.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push str.Install_Aborted__Could_not_stop_Safe_Connect_Service.
mov edi, 1
mov esi, str..ServiceInstaller.cpp
call fcn.00403700
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c0], 2
call fcn.00410575
lea esi, [esp + 0x264]
call fcn.00403010
lea esi, [esp + 0x344]
call fcn.00403010
jmp 0x409222
cmp byte [ebx + 0xa4], 0
jne 0x408793
push 0
push str.Install_Error
push str.Could_not_stop_scClient.exe__Install_Aborted.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push str.Install_Aborted__Could_not_stop_scClient.exe.
jmp 0x408736
mov dword [esp + 0x298], 0xf
mov dword [esp + 0x294], 0
mov byte [esp + 0x284], 0
push 0x400
lea eax, [esp + 0x284]
mov byte [esp + 0x4c4], 4
call fcn.00409300
push eax
push str._ProgramFiles_SafeConnect
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea ecx, [esp + 0x280]
call fcn.00409350
mov eax, dword [esp + 0x284]
mov edi, 0x10
cmp dword [esp + 0x298], edi
jae 0x408805
lea eax, [esp + 0x284]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, eax
mov eax, dword [esp + 0x284]
cmp dword [esp + 0x298], edi
jae 0x408827
lea eax, [esp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x40888a
cmp byte [ebx + 0xa4], al
jne 0x40884c
push eax
push str.Install_Error
push str.Could_not_find_install_directory__Install_Aborted.
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x284]
cmp dword [esp + 0x298], edi
jae 0x408863
lea eax, [esp + 0x284]
push esi
push eax
push str.Install_Aborted:__Could_not_change_current_directory_to__s__Create_d
mov edx, 0x45fce8
call fcn.00402410
add esp, 0xc
push 1
mov esi, str..ServiceInstaller.cpp
call fcn.004037b0
mov ebx, dword [esp + 0x20]
add esp, 4
cmp byte [ebx + 0xa6], 1
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
jne 0x4088df
cmp dword [ebx + 0xd8], 0
je 0x4088df
cmp dword [ebx + 0xdc], edi
jb 0x4088b2
mov eax, dword [ebx + 0xc8]
jmp 0x4088b8
lea eax, [ebx + 0xc8]
push 1
push str.sc.dat
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
cmp dword [ebx + 0xdc], edi
jb 0x4088d6
mov eax, dword [ebx + 0xc8]
jmp 0x4088dc
lea eax, [ebx + 0xc8]
push eax
call esi
mov dword [esp + 0x340], 0xf
mov dword [esp + 0x33c], 0
mov byte [esp + 0x32c], 0
mov byte [esp + 0x4c0], 5
mov eax, dword [esp + 0x284]
cmp dword [esp + 0x298], edi
jae 0x40891c
lea eax, [esp + 0x284]
push eax
push str._s_nocontact.dat
lea edx, [esp + 0x330]
call fcn.00402410
mov eax, dword [esp + 0x334]
add esp, 8
cmp dword [esp + 0x340], edi
jae 0x408948
lea eax, [esp + 0x32c]
push eax
call esi
push str.ZipFile
push 0x83
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
push edi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push edi
push 0
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push eax
push ebx
call fcn.0040e720
mov edi, eax
push 0xffffffffffffffff
lea eax, [esp + 0x388]
mov ecx, edi
call fcn.0040e830
mov eax, dword [esp + 0x388]
add esp, 0xc
xor ebx, ebx
mov esi, eax
test eax, eax
jle 0x408a2a
lea esp, [esp]
xor eax, eax
mov dword [esp + 0x37c], eax
mov byte [esp + 0x380], al
mov dword [esp + 0x4a4], eax
cmp edi, eax
je 0x408a03
cmp dword [edi], 1
je 0x4089eb
mov dword [0x462aac], 0x80000
cmp dword [edi], 1
je 0x408a0f
mov dword [0x462aac], 0x80000
jmp 0x408a25
mov ecx, dword [edi + 4]
lea edx, [esp + 0x37c]
push edx
push ebx
call fcn.0040dd30
mov dword [0x462aac], eax
jmp 0x4089da
mov dword [0x462aac], 0x10000
jmp 0x408a25
mov eax, dword [edi + 4]
push ebx
push eax
lea ecx, [esp + 0x388]
call fcn.0040e3b0
mov dword [0x462aac], eax
inc ebx
cmp ebx, esi
jl 0x4089b0
test edi, edi
jne 0x408a3a
mov dword [0x462aac], 0x10000
jmp 0x408a6a
cmp dword [edi], 1
je 0x408a4b
mov dword [0x462aac], 0x80000
jmp 0x408a6a
mov esi, dword [edi + 4]
call fcn.0040e6c0
mov dword [0x462aac], eax
test esi, esi
je 0x408a61
call fcn.0040e7e0
push edi
call fcn.0040e8c6
add esp, 4
call fcn.00407420
mov ebx, 0xf
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b0], 0
mov byte [esp + 0x2a0], 0
push 0
mov eax, 0x401
lea edi, [esp + 0x2a0]
mov byte [esp + 0x4c4], 6
call fcn.00402610
mov eax, dword [esp + 0x2b0]
test eax, eax
je 0x408abb
ja 0x408abb
call fcn.00446bb1
mov eax, dword [esp + 0x2a0]
mov esi, 0x10
cmp dword [esp + 0x2b4], esi
jae 0x408ad7
lea eax, [esp + 0x2a0]
push 0x400
push eax
push str._allusersprofile_Start_MenuProgramsStartupSafeConnect.lnk
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov eax, dword [esp + 0x2a0]
cmp dword [esp + 0x2b4], esi
jae 0x408aff
lea eax, [esp + 0x2a0]
test eax, eax
jne 0x408b14
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x2a4]
call fcn.00402a60
jmp 0x408b4c
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408b17
mov ecx, dword [esp + 0x2b0]
sub eax, edx
cmp eax, ecx
ja 0x408b3c
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x2a4]
call fcn.00402a60
jmp 0x408b4c
push 0
sub eax, ecx
lea edi, [esp + 0x2a0]
call fcn.00402610
mov dword [esp + 0x378], ebx
mov dword [esp + 0x374], 0
mov byte [esp + 0x364], 0
mov byte [esp + 0x4c0], 7
mov eax, dword [esp + 0x284]
cmp dword [esp + 0x298], esi
jae 0x408b85
lea eax, [esp + 0x284]
push eax
push str.__s_scClient.exe_
lea edx, [esp + 0x368]
call fcn.00402410
mov ebx, dword [esp + 0x2a8]
add esp, 8
cmp dword [esp + 0x2b4], esi
jae 0x408bb1
lea ebx, [esp + 0x2a0]
mov edi, dword [esp + 0x364]
cmp dword [esp + 0x378], esi
jae 0x408bc8
lea edi, [esp + 0x364]
call fcn.00407340
xor ebx, ebx
mov dword [esp + 0x2ec], 0xf
mov dword [esp + 0x2e8], ebx
mov byte [esp + 0x2d8], bl
mov ecx, str.SafeConnect
lea edi, [esp + 0x2d4]
mov byte [esp + 0x4c0], 8
call fcn.00402f20
mov eax, dword [esp + 0x2d8]
cmp dword [esp + 0x2ec], esi
jae 0x408c18
lea eax, [esp + 0x2d8]
mov ecx, dword [esp + 0x2e8]
push ecx
push eax
mov edi, 1
push edi
mov edx, str.DisplayName
mov ecx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSafeConnect
call fcn.004070f0
add esp, 0xc
mov dword [esp + 0x308], 0xf
mov dword [esp + 0x304], ebx
mov byte [esp + 0x2f4], bl
mov byte [esp + 0x4c0], 9
mov eax, dword [esp + 0x284]
cmp dword [esp + 0x298], esi
jae 0x408c71
lea eax, [esp + 0x284]
push eax
push str.__sUnInstall.exe_
lea edx, [esp + 0x2f8]
call fcn.00402410
mov eax, dword [esp + 0x2fc]
add esp, 8
cmp dword [esp + 0x308], esi
jae 0x408c9d
lea eax, [esp + 0x2f4]
mov edx, dword [esp + 0x304]
push edx
push eax
push edi
mov edx, str.UninstallString
mov ecx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSafeConnect
call fcn.004070f0
add esp, 0xc
push 4
lea eax, [esp + 0x24]
push eax
push 4
mov edx, str.NoModify
mov ecx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSafeConnect
mov dword [esp + 0x2c], edi
call fcn.004070f0
add esp, 0xc
push 4
lea ecx, [esp + 0x24]
push ecx
push 4
mov edx, str.NoRepair
mov ecx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallSafeConnect
call fcn.004070f0
add esp, 0xc
cmp dword [esp + 0x13c], ebx
je 0x408d47
push 4
lea edx, [esp + 0x140]
push edx
push 4
mov edx, str.ExpireTime
mov ecx, str.SOFTWAREImpulseSafeConnect
call fcn.004070f0
add esp, 0xc
cmp byte [esp + 0x140], 1
mov dword [esp + 0x18], ebx
jne 0x408d2c
mov dword [esp + 0x18], edi
push 4
lea eax, [esp + 0x1c]
push eax
push 4
mov edx, str.AbsoluteTime
mov ecx, str.SOFTWAREImpulseSafeConnect
call fcn.004070f0
add esp, 0xc
push 0xf003f
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
cmp edi, ebx
je 0x408d87
push 0x10
push str.SCManager
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov esi, eax
cmp esi, ebx
je 0x408d87
push ebx
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
je 0x408d87
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
mov byte [esp + 0x16], bl
call fcn.0040a0a0
test byte [eax + 0x20], 0xc0
jne 0x408daa
call fcn.0040a0a0
mov ecx, dword [eax + 0x20]
shr ecx, 0xa
test cl, 1
je 0x408eb3
lea edx, [esp + 0x10]
push edx
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x30], esp
push eax
mov ecx, str.explorer.exe
mov byte [esp + 0x3b], bl
call fcn.00403820
call fcn.004079e0
add esp, 0x20
cmp al, 1
jne 0x408ec4
mov ecx, dword [esp + 0x10]
push ecx
push ebx
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
cmp edi, ebx
je 0x408e8a
lea edx, [esp + 0x10]
push edx
push 0xf01ff
push edi
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, 1
jne 0x408e81
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
push 1
push 2
push ebx
push 0xf01ff
push ecx
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
cmp eax, 1
jne 0x408e7a
lea edx, [esp + 0x2b8]
push edx
push ebx
push ebx
push ebx
push ebx
push ebx
push str.scClient.exe
push eax
mov eax, dword [esp + 0x38]
push eax
call dword [sym.imp.ADVAPI32.dll_CreateProcessWithTokenW]
cmp eax, 1
jne 0x408e73
mov ecx, dword [esp + 0x2b8]
push ecx
mov byte [esp + 0x1b], al
call esi
mov edx, dword [esp + 0x2bc]
push edx
call esi
mov eax, dword [esp + 0x18]
push eax
call esi
mov ecx, dword [esp + 0x18]
push ecx
call esi
mov edx, dword [esp + 0x10]
push edx
call esi
push edi
call esi
cmp byte [esp + 0x17], bl
jne 0x408ec4
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x16], 1
cmp byte [esi + 0xa4], bl
jne 0x408f49
push ebx
push str.Safe
push str.In_order_to_complete_the_installation__you_will_need_to_manually_reboot_your_computer.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x408ec8
push 5
push ebx
push ebx
push 0x452060
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov esi, dword [esp + 0x1c]
cmp byte [esi + 0xa4], bl
jne 0x408f49
cmp byte [esp + 0x16], bl
jne 0x408f49
push ebx
push 0x67
push 0x84
lea ecx, [esp + 0x158]
call fcn.004104d6
mov edi, vtable.DoneDialog.1.0
mov dword [esp + method.DoneDialog.virtual_0], vtable.DoneDialog.0
mov dword [esp + 0x1c0], edi
mov byte [esp + 0x4c0], 0xa
mov al, byte [esp + 0x138]
lea ecx, [esp + 0x14c]
mov byte [esp + 0x260], al
call fcn.00411bcb
mov byte [esp + 0x4c0], 9
lea ecx, [esp + 0x14c]
mov dword [esp + method.DoneDialog.virtual_0], vtable.DoneDialog.0
mov dword [esp + 0x1c0], edi
call fcn.00410575
cmp byte [esi + 0xa6], 1
jne 0x4090b3
mov dword [esp + 0x324], 0xf
mov dword [esp + 0x320], ebx
mov byte [esp + 0x310], bl
mov ecx, str.migrate.bat
lea edi, [esp + 0x30c]
mov byte [esp + 0x4c0], 0xb
call fcn.00402f20
mov dword [esp + 0x2d0], 0xf
mov dword [esp + 0x2cc], ebx
mov byte [esp + 0x2bc], bl
lea edx, [esi + 0xa8]
push edx
lea eax, [esp + 0x2bc]
push eax
lea ecx, [esi + 0xe0]
mov eax, edi
mov byte [esp + 0x4c8], 0xc
call fcn.004094b0
cmp dword [esp + 0x324], 0x10
mov eax, dword [esp + 0x310]
jae 0x408fdd
lea eax, [esp + 0x310]
push 0x451c38
push eax
call fcn.0042dd56
mov esi, eax
add esp, 8
mov edi, 0x10
cmp esi, ebx
je 0x409027
mov eax, dword [esp + 0x2bc]
cmp dword [esp + 0x2d0], edi
jae 0x40900d
lea eax, [esp + 0x2bc]
mov ecx, dword [esp + 0x2cc]
push esi
push 1
push ecx
push eax
call fcn.0042decf
push esi
call fcn.0042dfc8
add esp, 0x14
mov ecx, dword [esp + 0x284]
cmp dword [esp + 0x298], edi
jae 0x40903e
lea ecx, [esp + 0x284]
mov eax, dword [esp + 0x310]
cmp dword [esp + 0x324], edi
jae 0x409055
lea eax, [esp + 0x310]
push ebx
push ecx
push ebx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp dword [esp + 0x2d0], edi
jb 0x40907e
mov edx, dword [esp + 0x2bc]
push edx
call fcn.0040e8c6
add esp, 4
mov esi, 0xf
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x2cc], ebx
mov byte [esp + 0x2bc], bl
cmp dword [esp + 0x324], edi
jb 0x4090bd
mov eax, dword [esp + 0x310]
push eax
call fcn.0040e8c6
add esp, 4
jmp 0x4090bd
mov esi, 0xf
mov edi, 0x10
cmp dword [esp + 0x308], edi
jb 0x4090d6
mov ecx, dword [esp + 0x2f4]
push ecx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x308], esi
mov dword [esp + 0x304], ebx
mov byte [esp + 0x2f4], bl
cmp dword [esp + 0x2ec], edi
jb 0x409104
mov edx, dword [esp + 0x2d8]
push edx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x2ec], esi
mov dword [esp + 0x2e8], ebx
mov byte [esp + 0x2d8], bl
cmp dword [esp + 0x378], edi
jb 0x409132
mov eax, dword [esp + 0x364]
push eax
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x378], esi
mov dword [esp + 0x374], ebx
mov byte [esp + 0x364], bl
cmp dword [esp + 0x2b4], edi
jb 0x409160
mov ecx, dword [esp + 0x2a0]
push ecx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x2b4], esi
mov dword [esp + 0x2b0], ebx
mov byte [esp + 0x2a0], bl
cmp dword [esp + 0x340], edi
jb 0x40918e
mov edx, dword [esp + 0x32c]
push edx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x340], esi
mov dword [esp + 0x33c], ebx
mov byte [esp + 0x32c], bl
cmp dword [esp + 0x298], edi
jb 0x4091bc
mov eax, dword [esp + 0x284]
push eax
call fcn.0040e8c6
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c0], 2
call fcn.00410575
mov esi, 0x10
cmp dword [esp + 0x27c], esi
jb 0x4091eb
mov ecx, dword [esp + 0x268]
push ecx
call fcn.0040e8c6
add esp, 4
mov dword [esp + 0x27c], 0xf
mov dword [esp + 0x278], 0
mov byte [esp + 0x268], 0
cmp dword [esp + 0x35c], esi
jb 0x409222
mov edx, dword [esp + 0x348]
push edx
call fcn.0040e8c6
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x4b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4a0]
xor ecx, esp
call fcn.0042d9c5
mov esp, ebp
pop ebp
ret