Function at 0x416530
Capabilities:
Accept command line arguments
Check if file exists
Create directory
Create process on windows
Delete file
Get common file path
Get startup folder
Move file
Write file to startup folder

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xefc
mov eax, dword [0x4ea080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0xedc], ecx
call fcn.00413910
mov edi, eax
xor ebx, ebx
push 0x40
mov dword [ebp - 0xee0], edi
mov dword [ebp - 0xeec], ebx
call fcn.0048eae1
mov esi, eax
add esp, 4
mov dword [ebp - 0xee4], esi
cmp esi, ebx
je 0x41767d
mov dword [esi], esi
mov dword [esi + 4], esi
mov dword [ebp - 0xef0], esi
lea eax, [ebx + 7]
cmp dword [edi + 0x34], ebx
jbe 0x416805
cmp byte [ebp + 8], bl
je 0x416805
xor ecx, ecx
push 0x206
mov word [ebp - 0xeb0], cx
mov dword [ebp - 0xe9c], eax
mov dword [ebp - 0xe80], eax
lea ecx, [ebp - 0x24a]
xor edx, edx
xor eax, eax
push ebx
push ecx
mov dword [ebp - 0xea0], ebx
mov dword [ebp - 0xe84], ebx
mov word [ebp - 0xe94], dx
mov word [ebp - 0x24c], ax
call fcn.0048f070
push 0x206
lea eax, [ebp - 0x452]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x454], dx
call fcn.0048f070
push 0x206
lea edx, [ebp - 0x65a]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x65c], cx
call fcn.0048f070
lea eax, [edi + 0x64]
add esp, 0x24
cmp dword [eax + 0x14], 8
jb 0x416624
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x65c]
push 0x104
push eax
call fcn.0048f4e8
add esp, 0xc
lea ecx, [ebp - 0x65c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xed4], ebx
mov ebx, dword [eax]
cmp ebx, eax
je 0x4167b6
lea esp, [esp]
push 0x208
lea edx, [ebp - 0x24c]
push 0
push edx
call fcn.0048f070
push 0x208
lea eax, [ebp - 0x454]
push 0
push eax
call fcn.0048f070
add esp, 0x18
mov ecx, edi
call fcn.004146b0
push eax
lea ecx, [ebp - 0x24c]
push 0x104
push ecx
call fcn.0048f4e8
lea eax, [ebx + 8]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x4166b0
mov eax, dword [eax]
push eax
lea edx, [ebp - 0x24c]
push 0x104
push edx
call fcn.0048f473
mov eax, dword [ebp - 0xed4]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea ecx, [ebp - 0x65c]
push ecx
push str._s_d__d
lea edx, [ebp - 0x454]
push 0x104
push edx
call fcn.0048f18c
inc dword [ebp - 0xed4]
add esp, 0x18
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0x24c]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4167ab
lea eax, [ebp - 0x454]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x416720
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x454]
push edx
lea ecx, [ebp - 0xeb0]
call fcn.004110e0
lea eax, [ebp - 0x24c]
lea edx, [eax + 2]
jmp 0x416750
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x416750
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0xe94]
call fcn.004110e0
mov edx, dword [esi + 4]
lea ecx, [ebp - 0xeb0]
push ecx
push edx
push esi
lea ecx, [ebp - 0xef0]
call fcn.004131a0
mov ecx, 0x4924923
sub ecx, dword [ebp - 0xeec]
cmp ecx, 1
jb 0x416922
inc dword [ebp - 0xeec]
mov dword [esi + 4], eax
mov edx, dword [eax + 4]
mov dword [edx], eax
mov ebx, dword [ebx]
cmp ebx, dword [edi + 0x30]
jne 0x416660
cmp dword [ebp - 0xe80], 8
jb 0x4167ce
mov eax, dword [ebp - 0xe94]
push eax
call fcn.0048e224
add esp, 4
xor ecx, ecx
cmp dword [ebp - 0xe9c], 8
mov dword [ebp - 0xe80], 7
mov dword [ebp - 0xe84], 0
mov word [ebp - 0xe94], cx
jb 0x416803
mov edx, dword [ebp - 0xeb0]
push edx
call fcn.0048e224
add esp, 4
xor ebx, ebx
mov eax, dword [ebp - 0xedc]
mov ecx, edi
mov byte [eax + 0x54], 0
call fcn.004146b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x416830
push ebx
mov ecx, edi
call fcn.004146b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x206
lea edx, [ebp - 0x65a]
xor ecx, ecx
push ebx
push edx
mov word [ebp - 0x65c], cx
call fcn.0048f070
add esp, 0xc
mov ecx, edi
call fcn.00414750
push eax
lea eax, [ebp - 0x65c]
push 0x104
push eax
call fcn.0048f4e8
lea eax, [ebp - 0x65c]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x416873
sub eax, edx
sar eax, 1
je 0x4168e2
lea ecx, [ebp - 0xed4]
push ecx
lea edx, [ebp - 0x65c]
xor ebx, ebx
push edx
mov dword [ebp - 0xed4], ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 0xed4], ebx
jle 0x4168e2
mov edi, eax
lea ebx, [ebx]
xor esi, esi
mov eax, dword [edi]
mov ecx, dword [ebp - 0xee0]
push eax
call fcn.004125b0
test eax, eax
je 0x4168d6
mov ecx, dword [ebp - 0xee0]
push eax
call fcn.00412560
inc esi
cmp esi, 0x1e
jl 0x4168b2
inc ebx
add edi, 4
cmp ebx, dword [ebp - 0xed4]
jl 0x4168b0
mov ecx, dword [ebp - 0xee0]
mov eax, dword [ecx + 0x18]
mov edi, dword [eax]
mov dword [ebp - 0xed4], edi
cmp edi, eax
je 0x416bb1
jmp 0x416900
mov esi, dword [edi + 0x18]
add edi, 8
mov eax, esi
cmp eax, esi
jae 0x41690c
mov edx, esi
cmp esi, 0x12
jb 0x416918
mov edx, 0x12
cmp dword [edi + 0x14], 8
jb 0x41692c
mov ecx, dword [edi]
jmp 0x41692e
push str.list_T__too_long
call fcn.00425a9a
mov ecx, edi
mov eax, str.HKEY_LOCAL_MACHINE
test edx, edx
je 0x416952
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x41694a
add ecx, 2
add eax, 2
dec edx
jne 0x416937
jmp 0x416952
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x41695f
cmp esi, 0x12
jb 0x41696d
xor eax, eax
cmp esi, 0x12
setne al
test eax, eax
jne 0x41696d
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
jmp 0x416aee
mov ecx, dword [ebp - 0xed4]
mov esi, dword [ecx + 0x34]
add ecx, 0x24
mov eax, esi
mov edx, esi
cmp esi, 0xa
jb 0x416987
mov edx, 0xa
cmp dword [ecx + 0x14], 8
jb 0x41698f
mov ecx, dword [ecx]
mov eax, str.HKEY_USERS
test edx, edx
je 0x4169b3
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x4169ab
add ecx, 2
add eax, 2
dec edx
jne 0x416998
jmp 0x4169b3
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x4169c0
cmp esi, 0xa
jb 0x4169ce
xor eax, eax
cmp esi, 0xa
setne al
test eax, eax
jne 0x4169ce
mov ecx, reloc.WS2_32.dll_closesocket
jmp 0x416aee
mov esi, dword [edi + 0x10]
mov eax, esi
cmp eax, esi
jae 0x4169d7
mov edx, esi
cmp esi, 0x13
jb 0x4169e3
mov edx, 0x13
cmp dword [edi + 0x14], 8
jb 0x4169ed
mov ecx, dword [edi]
jmp 0x4169ef
mov ecx, edi
mov eax, str.HKEY_CURRENT_CONFIG
test edx, edx
je 0x416a13
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x416a0b
add ecx, 2
add eax, 2
dec edx
jne 0x4169f8
jmp 0x416a13
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x416a20
cmp esi, 0x13
jb 0x416a2e
xor eax, eax
cmp esi, 0x13
setne al
test eax, eax
jne 0x416a2e
mov ecx, reloc.WS2_32.dll_getpeername
jmp 0x416aee
mov esi, dword [edi + 0x10]
mov eax, esi
cmp eax, esi
jae 0x416a37
mov edx, esi
cmp esi, 0x11
jb 0x416a43
mov edx, 0x11
cmp dword [edi + 0x14], 8
jb 0x416a4d
mov ecx, dword [edi]
jmp 0x416a4f
mov ecx, edi
mov eax, str.HKEY_CURRENT_USER
test edx, edx
je 0x416a73
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x416a6b
add ecx, 2
add eax, 2
dec edx
jne 0x416a58
jmp 0x416a73
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x416a80
cmp esi, 0x11
jb 0x416a8b
xor eax, eax
cmp esi, 0x11
setne al
test eax, eax
jne 0x416a8b
mov ecx, reloc.WS2_32.dll_accept
jmp 0x416aee
mov esi, dword [edi + 0x10]
mov eax, esi
cmp eax, esi
jae 0x416a94
mov edx, esi
cmp esi, 0x11
jb 0x416aa0
mov edx, 0x11
cmp dword [edi + 0x14], 8
jb 0x416aaa
mov ecx, dword [edi]
jmp 0x416aac
mov ecx, edi
mov eax, str.HKEY_CLASSES_ROOT
test edx, edx
je 0x416ad0
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x416ac8
add ecx, 2
add eax, 2
dec edx
jne 0x416ab5
jmp 0x416ad0
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x416ae1
cmp esi, 0x11
jb 0x416b66
xor eax, eax
cmp esi, 0x11
setne al
test eax, eax
jne 0x416b66
mov ecx, accept
mov ebx, dword [ebp - 0xed4]
cmp dword [ebx + 0x54], 8
lea esi, [ebx + 0x40]
jb 0x416b01
mov edx, dword [esi]
jmp 0x416b03
mov edx, esi
cmp dword [ebx + 0x38], 8
lea eax, [ebx + 0x24]
jb 0x416b0e
mov eax, dword [eax]
push edx
push eax
push ecx
call fcn.00419ee0
add esp, 0xc
test al, al
mov eax, 8
jne 0x416b44
cmp dword [esi + 0x14], eax
jb 0x416b29
mov esi, dword [esi]
cmp dword [edi + 0x14], eax
jb 0x416b39
mov eax, dword [edi]
push esi
push eax
push 0x4b2204
jmp 0x416b8d
push esi
mov eax, edi
push eax
push 0x4b2204
jmp 0x416b8d
cmp dword [esi + 0x14], eax
jb 0x416b4b
mov esi, dword [esi]
cmp dword [edi + 0x14], eax
jb 0x416b5b
mov eax, dword [edi]
push esi
push eax
push 0x4b21e0
jmp 0x416b8d
push esi
mov eax, edi
push eax
push 0x4b21e0
jmp 0x416b8d
mov ebx, dword [ebp - 0xed4]
lea eax, [ebx + 0x40]
mov ecx, 8
cmp dword [eax + 0x14], ecx
jb 0x416b7b
mov eax, dword [eax]
cmp dword [edi + 0x14], ecx
jb 0x416b84
mov ecx, dword [edi]
jmp 0x416b86
mov ecx, edi
push eax
push ecx
push 0x4b21b8
push str.SMSetup
call fcn.0041a1c0
mov edi, dword [ebx]
mov eax, dword [ebp - 0xee0]
add esp, 0x10
mov dword [ebp - 0xed4], edi
cmp edi, dword [eax + 0x18]
jne 0x416900
mov ecx, dword [ebp - 0xedc]
call fcn.00414960
xor edi, edi
cmp byte [ebp + 8], 0
je 0x416d0c
push 0x7fe
lea edx, [ebp - 0xe5a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0xe5c], cx
call fcn.0048f070
mov ebx, dword [ebp - 0xee0]
add esp, 0xc
lea eax, [ebp - 0xed4]
push eax
lea ecx, [ebp - 0xe5c]
push ecx
mov ecx, ebx
mov dword [ebp - 0xed4], 0x400
call fcn.00414670
push eax
call fcn.00411560
add esp, 0xc
mov ecx, ebx
test al, al
je 0x416c64
call fcn.004146b0
lea ecx, [ebp - 0xe5c]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x416c4b
cmp dx, di
je 0x416c47
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x416c4b
add ecx, 4
add eax, 4
cmp dx, di
jne 0x416c25
xor eax, eax
jmp 0x416c50
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, ebx
cmp eax, edi
je 0x416c64
lea edx, [ebp - 0xe5c]
push edx
call fcn.00412750
jmp 0x416c76
push str.data
call fcn.004146b0
push eax
mov ecx, ebx
call fcn.00412ae0
mov ecx, ebx
call fcn.004146b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x416c97
push edi
mov ecx, ebx
call fcn.004146b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp byte [ebx + 0x2c], 0
mov ecx, ebx
je 0x416cb9
mov esi, dword [ebx + 0x24]
mov edi, dword [ebx + 0x28]
call fcn.004146b0
push eax
push esi
push edi
call fcn.0041edd0
add esp, 0xc
xor edi, edi
jmp 0x416cd0
call fcn.004146b0
push eax
push edi
mov ecx, ebx
call fcn.004146f0
push eax
call fcn.0041ed10
add esp, 0xc
cmp eax, edi
jne 0x416d12
push str.InstallDataFun
push 0x4b1f40
call fcn.0041a0c0
add esp, 8
push 0xa
push 0x4b2170
lea ecx, [ebx + 0x80]
call fcn.004110e0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xedc]
push eax
call fcn.00415840
jmp 0x41758b
mov ebx, dword [ebp - 0xee0]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov dword [ebp - 0xed4], ecx
cmp ecx, eax
je 0x416f14
push 0x3c
xor edi, edi
lea ecx, [ebp - 0xeb4]
push edi
push ecx
call fcn.0048f070
add esp, 0xc
push 1
xor edx, edx
push 0x4b216c
lea ecx, [ebp - 0xe78]
mov dword [ebp - 0xeb4], 0x3c
mov dword [ebp - 0xeb0], 0x8040
mov dword [ebp - 0xeac], edi
mov dword [ebp - 0xea8], edi
mov dword [ebp - 0xe64], 7
mov dword [ebp - 0xe68], edi
mov word [ebp - 0xe78], dx
call fcn.004110e0
mov ecx, ebx
call fcn.004146b0
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x416d90
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xe78]
call fcn.004111d0
push 1
push 0x4b1930
lea ecx, [ebp - 0xe78]
call fcn.004111d0
mov esi, dword [ebp - 0xed4]
add esi, 8
cmp dword [esi + 0x14], 8
jb 0x416dd1
mov edx, dword [esi]
jmp 0x416dd3
mov edx, esi
mov eax, edx
lea edi, [eax + 2]
jmp 0x416de0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x416de0
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0xe78]
call fcn.004111d0
push 1
push 0x4b216c
lea ecx, [ebp - 0xe78]
call fcn.004111d0
cmp dword [ebp - 0xe64], 8
jb 0x416e25
mov eax, dword [ebp - 0xe78]
mov dword [ebp - 0xea4], eax
jmp 0x416e31
lea ecx, [ebp - 0xe78]
mov dword [ebp - 0xea4], ecx
mov eax, dword [ebp - 0xed4]
add eax, 0x24
mov edi, 8
cmp dword [eax + 0x14], edi
jb 0x416e4e
mov edx, dword [eax]
mov dword [ebp - 0xea0], edx
jmp 0x416e54
mov dword [ebp - 0xea0], eax
mov dword [ebp - 0xe98], 5
cmp dword [eax + 0x14], edi
jb 0x416e65
mov eax, dword [eax]
cmp dword [esi + 0x14], edi
jb 0x416e6c
mov esi, dword [esi]
push eax
push esi
push str.param_setup_s__param_s
push str.SMSetup
call fcn.0041a1c0
add esp, 0x10
lea eax, [ebp - 0xeb4]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x416ee4
mov eax, dword [ebp - 0xe7c]
test eax, eax
je 0x416ee4
cmp eax, 0xffffffff
je 0x416ee4
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0xe7c]
lea ecx, [ebp - 0xee0]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x416ed7
cmp dword [ebp - 0xee0], 0xbc2
jne 0x416ed7
mov eax, dword [ebp - 0xedc]
mov byte [eax + 0x54], 1
mov ecx, dword [ebp - 0xe7c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0xe64], edi
jb 0x416efb
mov edx, dword [ebp - 0xe78]
push edx
call fcn.0048e224
add esp, 4
mov eax, dword [ebp - 0xed4]
mov eax, dword [eax]
mov dword [ebp - 0xed4], eax
cmp eax, dword [ebx + 0xc]
jne 0x416d25
xor edi, edi
mov ecx, ebx
mov esi, 0x4b2128
call fcn.00414670
mov cx, word [eax]
cmp cx, word [esi]
jne 0x416f46
cmp cx, di
je 0x416f42
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x416f46
add eax, 4
add esi, 4
cmp cx, di
jne 0x416f20
xor eax, eax
jmp 0x416f4b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x416fb2
mov ecx, ebx
mov esi, str.smromv3
call fcn.00414670
nop
mov cx, word [eax]
cmp cx, word [esi]
jne 0x416f86
cmp cx, di
je 0x416f82
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x416f86
add eax, 4
add esi, 4
cmp cx, di
jne 0x416f60
xor eax, eax
jmp 0x416f8b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x416fb2
mov ecx, ebx
call fcn.00414730
push eax
mov ecx, ebx
call fcn.00414690
push eax
mov ecx, ebx
call fcn.00414670
mov ecx, dword [ebp - 0xedc]
push eax
call fcn.00414ee0
mov ecx, ebx
call fcn.00414710
push eax
mov ecx, ebx
call fcn.00414770
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
push str.UninstallString
push 0x4b1988
call esi
mov ecx, ebx
call fcn.00414710
push eax
mov ecx, ebx
call fcn.00414790
push eax
push str.UninstallPathString
push 0x4b1988
call esi
lea ecx, [ebp - 0xed5]
call fcn.0040c600
push 0x3f
lea ecx, [ebp - 0x43]
push edi
push ecx
mov byte [ebp - 0x44], 0
call fcn.0048f070
add esp, 0xc
push 0x40
lea edx, [ebp - 0x44]
push edx
lea ecx, [ebp - 0xed5]
call fcn.00425240
lea eax, [ebp - 0xed0]
push eax
mov dword [ebp - 0xebc], 0xf
mov dword [ebp - 0xec0], edi
mov byte [ebp - 0xed0], 0
call fcn.00411370
add esp, 4
test al, al
jne 0x41707b
sub esp, 0x1c
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], edi
mov byte [ecx], al
lea eax, [ebp - 0x44]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417060
sub eax, esi
push eax
lea edx, [ebp - 0x44]
push edx
call fcn.00404620
call fcn.00410e70
add esp, 0x1c
mov ecx, ebx
call fcn.004146b0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x417085
sub eax, edx
sar eax, 1
push eax
mov ecx, ebx
call fcn.00414670
push eax
mov ecx, ebx
call fcn.004146b0
push eax
call fcn.00411650
add esp, 0xc
test al, al
jne 0x417104
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InstallDataFun_
push 0x4b1f40
call fcn.0041a0c0
add esp, 0xc
push 8
push 0x4b20b8
lea ecx, [ebx + 0x80]
call fcn.004110e0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xedc]
push eax
call fcn.00415840
cmp dword [ebp - 0xebc], 0x10
jb 0x417569
mov ecx, dword [ebp - 0xed0]
push ecx
jmp 0x417561
mov ecx, ebx
call fcn.004146b0
mov ecx, ebx
mov esi, eax
call fcn.004146c0
mov cx, word [eax]
cmp cx, word [esi]
jne 0x41713a
cmp cx, di
je 0x417136
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x41713a
add eax, 4
add esi, 4
cmp cx, di
jne 0x417114
xor eax, eax
jmp 0x41713f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4172b4
push 0x24
mov dword [ebp - 0xef8], edi
call fcn.0048eae1
add esp, 4
cmp eax, edi
je 0x417488
mov dword [eax], eax
mov dword [ebp - 0xefc], eax
mov dword [eax + 4], eax
lea eax, [ebx + 0x3c]
lea edx, [ebp - 0xefc]
cmp edx, eax
je 0x41719f
mov esi, dword [eax]
mov edi, dword [esi]
mov ecx, edx
call fcn.00411760
mov ecx, dword [ebp - 0xee4]
mov eax, dword [ebp - 0xefc]
mov eax, dword [eax]
push ecx
push esi
push edi
push eax
lea ecx, [ebp - 0xefc]
call fcn.00415ce0
mov eax, dword [ebp - 0xefc]
mov edi, dword [eax]
cmp edi, eax
je 0x417298
nop
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x24a]
push eax
mov word [ebp - 0x24c], dx
call fcn.0048f070
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x452]
push edx
mov word [ebp - 0x454], cx
call fcn.0048f070
lea esi, [edi + 8]
add esp, 0x18
cmp dword [esi + 0x14], 8
jb 0x4171f6
mov eax, dword [esi]
jmp 0x4171f8
mov eax, esi
push eax
mov ecx, ebx
call fcn.004146b0
push eax
push 0x4b18f0
lea eax, [ebp - 0x24c]
push 0x104
push eax
call fcn.0048f18c
add esp, 0x14
cmp dword [esi + 0x14], 8
jb 0x417224
mov eax, dword [esi]
jmp 0x417226
mov eax, esi
push eax
mov ecx, ebx
call fcn.004146c0
push eax
push 0x4b18f0
lea ecx, [ebp - 0x454]
push 0x104
push ecx
call fcn.0048f18c
mov ecx, dword [ebp - 0xedc]
add esp, 0x14
lea edx, [ebp - 0x454]
push edx
lea eax, [ebp - 0x24c]
push eax
call fcn.00415da0
cmp dword [esi + 0x14], 8
jb 0x417269
mov esi, dword [esi]
lea ecx, [ebp - 0x454]
push ecx
lea edx, [ebp - 0x24c]
push edx
push esi
push str.COPY_FILE__s__s_____s
push str.SMSetup
call fcn.0041a1c0
mov edi, dword [edi]
add esp, 0x14
cmp edi, dword [ebp - 0xefc]
jne 0x4171b0
lea ecx, [ebp - 0xefc]
call fcn.00411760
mov eax, dword [ebp - 0xefc]
push eax
call fcn.0048e224
add esp, 4
xor edi, edi
mov eax, dword [ebp - 0xedc]
cmp byte [eax + 0x55], 0
je 0x417523
cmp byte [ebx + 8], 0
je 0x417546
push 0x1fc
lea edx, [ebp - 0x242]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x244], cx
call fcn.0048f070
add esp, 0xc
push edi
push 0x10
lea eax, [ebp - 0x244]
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x4b1930
lea ecx, [ebp - 0x244]
push 0xff
push ecx
call fcn.0048f473
add esp, 0xc
mov ecx, ebx
call fcn.00414690
push eax
lea edx, [ebp - 0x244]
push 0xff
push edx
call fcn.0048f473
push 0x4b1f60
lea eax, [ebp - 0x244]
push 0xff
push eax
call fcn.0048f473
add esp, 0x18
mov ecx, ebx
call fcn.004146b0
xor ecx, ecx
mov word [ebp - 0xe94], cx
mov ecx, eax
mov dword [ebp - 0xe80], 7
mov dword [ebp - 0xe84], edi
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x417370
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xe94]
call fcn.004110e0
push 9
push str.ICON.ico
lea ecx, [ebp - 0xe94]
call fcn.004111d0
mov ecx, ebx
call fcn.004146b0
xor edx, edx
mov ecx, eax
mov dword [ebp - 0xe64], 7
mov dword [ebp - 0xe68], edi
mov word [ebp - 0xe78], dx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x4173c3
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xe78]
call fcn.004110e0
push 1
push 0x4b1930
lea ecx, [ebp - 0xe78]
call fcn.004111d0
mov ecx, ebx
call fcn.004146d0
mov ecx, eax
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x417400
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xe78]
call fcn.004111d0
cmp dword [ebp - 0xe80], 8
mov ecx, dword [ebp - 0xe94]
jae 0x417431
lea ecx, [ebp - 0xe94]
mov eax, dword [ebp - 0xe78]
mov esi, 8
cmp dword [ebp - 0xe64], esi
jae 0x41744a
lea eax, [ebp - 0xe78]
push ecx
lea ecx, [ebp - 0x244]
push ecx
push eax
mov ecx, ebx
call fcn.00412470
test al, al
jne 0x4174bb
push 0x4b1f48
push 0x4b1f40
call fcn.0041a0c0
add esp, 8
push 0xb
push 0x4b1f28
lea ecx, [ebx + 0x80]
call fcn.004110e0
jmp 0x4174da
lea ecx, [ebp - 0xee4]
push ecx
lea ecx, [ebp - 0xef0]
mov dword [ebp - 0xee4], edi
call fcn.0048e2c2
push 0x4cdfd8
lea edx, [ebp - 0xef0]
push edx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.0048eb61
mov ecx, ebx
call fcn.00414710
push eax
lea edx, [ebp - 0x244]
push edx
push str.DeskLnk
push 0x4b1988
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0xe64], esi
jb 0x4174f1
mov eax, dword [ebp - 0xe78]
push eax
call fcn.0048e224
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xe64], 7
mov dword [ebp - 0xe68], edi
mov word [ebp - 0xe78], cx
cmp dword [ebp - 0xe80], esi
jb 0x417546
mov edx, dword [ebp - 0xe94]
push edx
call fcn.0048e224
add esp, 4
jmp 0x417546
cmp byte [ebx + 8], 0
je 0x417546
mov ecx, eax
call fcn.004151e0
test al, al
jne 0x417546
push 0x4b206c
push 0x4b1f40
call fcn.0041a0c0
add esp, 8
mov ecx, dword [ebp - 0xedc]
call fcn.004147b0
cmp dword [ebp - 0xebc], 0x10
jb 0x417569
mov eax, dword [ebp - 0xed0]
push eax
call fcn.0048e224
add esp, 4
lea ecx, [ebp - 0xed5]
mov dword [ebp - 0xebc], 0xf
mov dword [ebp - 0xec0], edi
mov byte [ebp - 0xed0], 0
call sym.SMAllSetup.exe_public_virtual:_void___thiscall_DuiLib::WindowImplBase::InitWindow_void_
cmp byte [ebp + 8], 0
je 0x41763c
mov eax, dword [ebp - 0xee4]
mov esi, dword [eax]
mov dword [ebp - 0xed4], esi
cmp esi, eax
je 0x41763c
jmp 0x4175b6
mov esi, dword [ebp - 0xed4]
add esi, 0x24
mov edi, 8
cmp dword [esi + 0x14], edi
jb 0x4175c7
mov eax, dword [esi]
jmp 0x4175c9
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esi + 0x14], edi
jb 0x4175d9
mov ecx, dword [esi]
jmp 0x4175db
mov ecx, esi
mov edi, dword [ebp - 0xed4]
add edi, 8
mov ebx, 8
cmp dword [edi + 0x14], ebx
jb 0x4175f2
mov eax, dword [edi]
jmp 0x4175f4
mov eax, edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x417622
cmp dword [esi + 0x14], ebx
jb 0x417607
mov esi, dword [esi]
cmp dword [edi + 0x14], ebx
jb 0x41760e
mov edi, dword [edi]
push esi
push edi
push 0x4b2020
push str.SMSetup
call fcn.0041a1c0
add esp, 0x10
mov ecx, dword [ebp - 0xed4]
mov eax, dword [ecx]
mov dword [ebp - 0xed4], eax
cmp eax, dword [ebp - 0xee4]
jne 0x4175b0
push 0x4b2008
push 0x4b1f40
call fcn.0041a0c0
add esp, 8
lea ecx, [ebp - 0xef0]
call fcn.004130b0
mov edx, dword [ebp - 0xef0]
push edx
call fcn.0048e224
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0048ef91
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0xee4]
push eax
lea ecx, [ebp - 0xef0]
mov dword [ebp - 0xee4], ebx
call fcn.0048e2c2
push 0x4cdfd8
lea ecx, [ebp - 0xef0]
push ecx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.0048eb61
int3