Function at 0x43b939
Capabilities:
Accept command line arguments
Check os version
Contain obfuscated stackstrings
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46fe30
mov eax, dword fs:[0]
push eax
mov eax, 0x10a8
call fcn.004444c0
mov eax, dword [0x49e850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1044], eax
xor eax, eax
mov ebx, eax
push esi
lea ecx, [ebp - 0x1058]
mov dword [ebp - 0x1010], ebx
call fcn.00411850
xor eax, eax
mov dword [ebp - 4], eax
xor ecx, ecx
inc ecx
push ecx
push ecx
push eax
push str.runfromtemp
lea ecx, [ebp - 0x1058]
call fcn.0041225d
and dword [ebp - 0x1038], ebx
mov byte [ebp - 0x1030], al
lea eax, [ebp - 0x1038]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, eax
xor eax, eax
xor edx, edx
inc eax
mov edi, edx
mov dword [ebp - 0x1040], ecx
mov dword [ebp - 0x1074], edi
mov dword [ebp - 0x103c], 0x71
mov dword [ebp - 0x1024], 0x51
mov dword [ebp - 0x1078], 0x2d
mov dword [ebp - 0x1034], 0x2f
cmp dword [ebp - 0x1038], eax
jbe 0x43ba44
movzx eax, word [esi]
cmp ax, word [ebp - 0x1078]
je 0x43ba22
cmp ax, word [ebp - 0x1034]
jne 0x43ba44
movzx eax, word [esi + 2]
cmp ax, word [ebp - 0x103c]
je 0x43ba38
cmp ax, word [ebp - 0x1024]
jne 0x43ba44
mov edi, dword [ecx + 4]
add edi, 4
mov dword [ebp - 0x1074], edi
push edx
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xbf4]
mov dword [ebp - 0xbf4], 0x47d5a4
mov dword [ebp - 0xbcc], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 2
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0xbf4]
call fcn.00411a6c
mov byte [ebp - 4], 3
mov ecx, dword [eax]
xor edx, edx
inc edx
mov byte [eax + 4], dl
call fcn.0040f94d
xor ecx, ecx
push ecx
push ecx
push eax
push str.runprerequisites
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov byte [ebp - 0x100b], al
mov byte [ebp - 4], 2
cmp byte [ebp - 0x101c], 0
je 0x43bace
mov ecx, dword [ebp - 0x1020]
push dword [ecx + 0x24]
call fcn.00403640
mov al, byte [ebp - 0x100b]
xor ecx, ecx
inc ecx
mov byte [ebp - 0x100a], cl
test al, al
je 0x43baf6
push ecx
xor eax, eax
push eax
push eax
push 0x478aa4
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov byte [ebp - 0x100a], al
test edi, edi
je 0x43bb0e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43bb0e
cmp byte [ebp - 0x100a], 0
jne 0x43bb2d
cmp byte [ebp - 0x1030], 0
jne 0x43bb22
push esi
call fcn.0043ad88
pop ecx
test al, al
je 0x43bb2d
lea ecx, [ebp - 0x1009]
call fcn.00439cb2
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov byte [ebp - 4], 5
call fcn.0045853a
cmp eax, 6
jb 0x43bb48
call fcn.0043a4ec
mov eax, dword [ebp - 0x1044]
push eax
lea ecx, [ebp - 0x1008]
mov dword [0x4a5db8], eax
call fcn.00439cdb
mov byte [ebp - 4], 6
push 0
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xa10]
mov dword [ebp - 0xa10], 0x47d5a4
mov dword [ebp - 0x9e8], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 8
push 0x104
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0xa10]
call fcn.0040f9a8
mov byte [ebp - 4], 9
mov ecx, dword [eax]
xor edx, edx
inc edx
mov byte [eax + 4], dl
call fcn.0040f94d
push 0x104
push dword [eax]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
sub esp, 0x30
xor eax, eax
mov ecx, esp
mov dword [ebp - 0x1024], esp
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x484ef8
call fcn.0040cbd7
mov byte [ebp - 4], 0xa
sub esp, 0x30
xor eax, eax
inc eax
mov ecx, esp
mov dword [ebp - 0x103c], esp
push eax
lea eax, [ebp - 0xa10]
push eax
call fcn.0041738c
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1008]
call fcn.0043a7df
push 0x800
lea eax, [ebp - 0x1008]
push 0
push 0x4a5dc0
mov dword [0x4a5dbc], eax
call fcn.00442610
add esp, 0xc
xor eax, eax
push eax
mov dword [0x4a65e4], eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x950]
mov dword [ebp - 0x950], 0x47d5a4
mov dword [ebp - 0x928], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x950]
call fcn.00411a6c
mov byte [ebp - 4], 0xe
mov ecx, dword [eax]
xor edx, edx
inc edx
mov byte [eax + 4], dl
call fcn.004035c0
xor ecx, ecx
inc ecx
push ecx
push 0
push eax
push str.debuglog
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov byte [ebp - 0x1011], al
mov byte [ebp - 4], 0xd
cmp byte [ebp - 0x101c], 0
je 0x43bcd9
mov ecx, dword [ebp - 0x1020]
push dword [ecx + 0x24]
call fcn.00403640
mov al, byte [ebp - 0x1011]
test al, al
je 0x43bd65
call fcn.00402400
push 0
call fcn.004024f0
cmp dword [ebp - 0x93c], 0
lea eax, [ebp - 0x860]
push eax
je 0x43bd41
lea ecx, [ebp - 0x950]
call fcn.0043b726
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x860]
call fcn.00401580
sub esp, 0x30
xor eax, eax
inc eax
mov ecx, esp
mov dword [ebp - 0x1024], esp
push eax
lea eax, [ebp - 0x950]
push eax
call fcn.004036a0
mov byte [ebp - 4], 0x11
mov byte [ebp - 4], 0xd
call fcn.00402410
jmp 0x43bd65
call fcn.00402500
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x950]
call fcn.00402520
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push esi
lea ecx, [ebp - 0x860]
call fcn.004025e0
mov byte [ebp - 4], 0x14
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x43bd8b
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1028]
push str.InstallShield_setup.exe__Unicode__started__cmdline:__s
push eax
mov dword [ebp - 0x1028], str.Setup.cpp
mov dword [ebp - 0x1024], 0xc1
call fcn.00411a9d
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
push eax
push eax
push eax
push str.reboot
lea ecx, [ebp - 0x1058]
call fcn.0041225d
test al, al
je 0x43bf6d
cmp byte [0x4a0228], 0
jne 0x43bdf2
cmp byte [0x4a78a0], 0
je 0x43be65
xor ebx, ebx
inc ebx
push ebx
lea eax, [ebp - 0x1009]
push eax
push str.Setup.cpp
lea ecx, [ebp - 0x890]
call fcn.004025e0
mov byte [ebp - 4], 0x16
push ebx
lea eax, [ebp - 0x1009]
push eax
push str.Running_after_reboot
lea ecx, [ebp - 0x860]
call fcn.004025e0
mov byte [ebp - 4], 0x17
push 0xca
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x860]
push eax
call fcn.004023a0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x860]
call fcn.00401580
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x890]
call fcn.00401580
jmp 0x43be68
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x860]
push eax
call fcn.0041995d
pop ecx
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0xad4]
call fcn.00419379
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x860]
call fcn.00401580
lea ecx, [ebp - 0xad4]
call fcn.00419fdf
test eax, eax
jne 0x43bef4
mov esi, dword [0x4a65e4]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xad4]
call fcn.00419553
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43ddf8
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x1024], esp
push ebx
lea eax, [ebp - 0x1009]
push eax
push esi
call fcn.004025e0
mov byte [ebp - 4], 0x21
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xad4]
call fcn.0041a701
mov esi, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xad4]
call fcn.00419553
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43ddf8
cmp byte [ebp - 0x1030], 0
je 0x43bf93
xor eax, eax
push eax
push eax
push eax
push 0x47e0a4
lea ecx, [ebp - 0x1058]
call fcn.0041225d
test al, al
je 0x43c13d
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xb34]
mov dword [ebp - 0xb34], 0x47d5a4
mov dword [ebp - 0xb0c], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0xb34]
call fcn.00411a6c
mov byte [ebp - 4], 0x27
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.004035c0
xor ecx, ecx
inc ecx
push ecx
push 0
push eax
push str.removeasmajorupgrade
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov byte [ebp - 0x1009], al
mov byte [ebp - 4], 0x26
cmp byte [ebp - 0x101c], 0
je 0x43c021
mov ecx, dword [ebp - 0x1020]
push dword [ecx + 0x24]
call fcn.00403640
mov al, byte [ebp - 0x1009]
test al, al
je 0x43c12e
cmp byte [0x4a0228], 0
jne 0x43c03b
cmp byte [0x4a78a0], 0
je 0x43c0ae
xor ebx, ebx
inc ebx
push ebx
lea eax, [ebp - 0x1009]
push eax
push str.Setup.cpp
lea ecx, [ebp - 0x890]
call fcn.004025e0
mov byte [ebp - 4], 0x29
push ebx
lea eax, [ebp - 0x1009]
push eax
push 0x47e0a8
lea ecx, [ebp - 0x860]
call fcn.004025e0
mov byte [ebp - 4], 0x2a
push 0xd9
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x860]
push eax
call fcn.004023a0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x860]
call fcn.00401580
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x890]
call fcn.00401580
jmp 0x43c0b1
xor ebx, ebx
inc ebx
push dword [ebp - 0x1030]
lea eax, [ebp - 0xb34]
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x1024], esp
push ebx
push eax
call fcn.004036a0
push 0x2d
pop eax
mov byte [ebp - 4], al
mov byte [ebp - 4], 0x26
call fcn.0043a15e
add esp, 0x34
mov esi, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xb34]
call fcn.00401580
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43ddf8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xb34]
call fcn.00401580
xor eax, eax
inc eax
mov dword [ebp - 0x1024], 0x6b
cmp dword [ebp - 0x1038], eax
jbe 0x43c434
movzx eax, word [esi]
push 0x2d
pop edx
push 0x2f
pop ecx
cmp ax, dx
je 0x43c16d
cmp ax, cx
jne 0x43c235
cmp word [esi + 2], 0x25
jne 0x43c235
add esi, 4
mov ax, word [esi]
lea esi, [esi + 2]
cmp ax, cx
jne 0x43c17b
xor eax, eax
mov word [esi - 4], ax
cmp dword [0x4a5d40], 8
lea eax, [esi - 2]
push eax
mov ecx, 0x4a5d2c
cmovae ecx, dword [0x4a5d2c]
push ecx
lea eax, [ebp - 0x830]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
add esp, 0x10
inc eax
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00441402
lea ecx, [ebp - 0x1020]
call fcn.0040cdbe
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x1044]
push eax
lea ecx, [ebp - 0x1020]
call fcn.0040d15a
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1020]
call fcn.0040ceee
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43dbd4
cmp ax, dx
je 0x43c23f
cmp ax, cx
jne 0x43c25c
movzx ecx, word [esi + 2]
cmp cx, word [ebp - 0x1024]
je 0x43c3a5
cmp ecx, 0x4b
je 0x43c3a5
push 0x2f
pop ecx
cmp ax, dx
je 0x43c26a
cmp ax, cx
jne 0x43c434
movzx eax, word [esi + 2]
push 0x67
pop edx
cmp ax, dx
je 0x43c27f
cmp eax, 0x47
jne 0x43c434
lea edi, [esi + 4]
mov ax, word [edi]
lea edi, [edi + 2]
cmp ax, cx
jne 0x43c282
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.00442610
add esp, 0xc
lea eax, [edi + 4]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
movzx ecx, word [ebp + eax*2 - 0x21c]
xor edx, edx
mov ebx, edx
cmp cx, word [ebp - 0x1078]
je 0x43c2e7
cmp cx, word [ebp - 0x1034]
jne 0x43c318
movzx ecx, word [ebp + eax*2 - 0x21a]
cmp ecx, 0x73
je 0x43c2f9
cmp ecx, 0x53
jne 0x43c318
xor ecx, ecx
lea eax, [eax*2 - 4]
lea ebx, [ecx + 1]
cmp eax, 0x208
jae 0x43c3a0
mov word [ebp + eax - 0x218], cx
xor eax, eax
push 0x206
mov word [edi - 4], ax
mov word [ebp - 0x420], ax
push edx
lea eax, [ebp - 0x41e]
push eax
call fcn.00442610
add esp, 0xc
lea eax, [esi + 6]
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.004404fc
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43ddf8
call fcn.00444ed9
xor eax, eax
push 0x206
mov word [ebp - 0x628], ax
xor ebx, ebx
lea eax, [ebp - 0x626]
push ebx
push eax
add esi, 4
call fcn.00442610
mov eax, dword [ebp - 0x1040]
push esi
push dword [eax]
lea eax, [ebp - 0x628]
push 0x478420
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
add esp, 0x1c
inc eax
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.004412e5
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [ebp - 4], bl
mov esi, ebx
jmp 0x43ddfd
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x8f0]
mov dword [ebp - 0x8f0], 0x47d5a4
mov dword [ebp - 0x8c8], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x3e
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x10a4]
call fcn.00439c11
mov byte [ebp - 4], 0x3f
lea eax, [ebp - 0x1028]
push eax
lea ecx, [ebp - 0x10a4]
call fcn.0043a14e
mov eax, dword [eax]
push 0x10
pop ecx
add eax, ecx
xor ecx, ecx
push ecx
push ecx
push eax
push str.tempdisk1folder
lea ecx, [ebp - 0x1058]
call fcn.0041225d
test al, al
je 0x43c4d7
lea ecx, [ebp - 0x10a4]
call fcn.0043b876
cmp dword [ebp - 0x1094], 0
mov eax, 0x484ef8
mov ecx, eax
cmovne ecx, dword [ebp - 0x1094]
test ecx, ecx
cmovne eax, ecx
push eax
lea ecx, [ebp - 0x8ec]
call fcn.00405070
cmp dword [ebp - 0x8dc], 0
jne 0x43c629
push 0x104
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x40
mov ecx, dword [eax]
xor ebx, ebx
inc ebx
mov byte [eax + 4], bl
call fcn.0040f94d
push dword [eax]
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
call fcn.0045dbca
test al, al
je 0x43c544
lea eax, [ebp - 0x890]
push eax
call fcn.00457dcf
pop ecx
mov byte [ebp - 4], 0x41
jmp 0x43c5a9
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x1024], esp
push ebx
lea eax, [ebp - 0x1009]
push eax
push 0x484ef8
call fcn.0040cbd7
mov dword [ebp - 4], 0x42
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x103c], esp
push ebx
lea eax, [ebp - 0x1009]
push eax
push 0x484ef8
call fcn.0040cbd7
mov byte [ebp - 4], 0x43
xor eax, eax
push eax
lea eax, [ebp - 0x860]
push eax
mov byte [ebp - 4], 0x41
call fcn.00458210
add esp, 0x68
mov dword [ebp - 4], 0x44
push 2
pop ebx
push eax
lea ecx, [ebp - 0x8f0]
mov dword [ebp - 0x1010], ebx
call fcn.0040cf65
mov dword [ebp - 4], 0x41
test bl, 2
je 0x43c5e2
and ebx, 0xfffffffd
mov dword [ebp - 0x1010], ebx
mov dword [ebp - 4], 0x41
lea ecx, [ebp - 0x860]
call fcn.00401580
mov dword [ebp - 4], 0x3f
xor eax, eax
inc eax
test al, bl
je 0x43c608
and ebx, 0xfffffffe
mov dword [ebp - 0x1010], ebx
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x890]
call fcn.00401580
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004100e2
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x860]
call fcn.00401580
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.00415597
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0x8d8], 8
lea eax, [ebp - 0x8ec]
cmovae eax, dword [ebp - 0x8ec]
push eax
push 0x4a5dc0
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
sub esp, 0x30
xor eax, eax
inc eax
mov ecx, esp
mov dword [ebp - 0x1024], esp
push eax
lea eax, [ebp - 0x8f0]
push eax
call fcn.0041738c
mov byte [ebp - 4], 0x49
mov byte [ebp - 4], 0x3f
mov ecx, dword [0x4a5dbc]
call fcn.0043ad55
test edi, edi
je 0x43c6b4
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43c6b4
cmp byte [ebp - 0x100a], 0
jne 0x43d990
cmp byte [ebp - 0x1030], 0
jne 0x43c6cc
push esi
call fcn.0043ad88
pop ecx
test al, al
je 0x43d990
mov esi, dword [ebp - 0x1040]
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push dword [esi]
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x4a
push 0
lea ecx, [ebp - 0xb94]
push ecx
mov ecx, eax
call fcn.0040ffde
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
push eax
lea eax, [ebp - 0xb64]
push eax
lea ecx, [ebp - 0xb94]
call fcn.0040ffde
mov byte [ebp - 4], 0x4e
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push dword [esi]
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x4f
xor ecx, ecx
push ecx
push ecx
lea ecx, [ebp - 0x980]
push ecx
mov ecx, eax
call fcn.0040fb92
push 0x51
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0x96c], 0
je 0x43c781
lea ecx, [ebp - 0x980]
call fcn.0043b4be
test al, al
jne 0x43c838
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x890]
mov dword [ebp - 0x890], 0x47d5a4
mov dword [ebp - 0x868], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x54
mov esi, 0x104
push esi
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x890]
call fcn.0040f9a8
mov byte [ebp - 4], 0x55
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push esi
push dword [eax]
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
xor eax, eax
push eax
push eax
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x890]
call fcn.0040fb92
mov byte [ebp - 4], 0x56
push eax
lea ecx, [ebp - 0x980]
call fcn.0040cf65
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x860]
call fcn.00401580
push 0x51
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x890]
call fcn.00401580
lea ecx, [ebp - 0x1064]
call fcn.0040cdbe
mov byte [ebp - 4], 0x59
lea eax, [ebp - 0xb94]
push eax
lea eax, [ebp - 0x920]
push eax
lea ecx, [ebp - 0x980]
call fcn.004105c2
mov byte [ebp - 4], 0x5a
lea eax, [ebp - 0xb64]
push eax
lea eax, [ebp - 0x8c0]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004105c2
mov byte [ebp - 4], 0x5b
cmp dword [ebp - 0x8a8], 8
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
xor edi, edi
push edi
push ecx
push eax
call esi
push 0x104
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x5c
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push dword [0x49e7a4]
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x5d
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x980]
call fcn.004105c2
mov byte [ebp - 4], 0x5e
push eax
lea ecx, [ebp - 0x920]
call fcn.0040cf65
mov byte [ebp - 4], 0x5d
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push dword [0x49e7a4]
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x61
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004105c2
mov byte [ebp - 4], 0x62
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040cf65
mov byte [ebp - 4], 0x61
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0x8a8], 8
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
push edi
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
push ecx
push eax
call esi
push 0x104
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x65
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push str.ISSetup.dll
lea ecx, [ebp - 0x860]
call fcn.0040cac1
mov byte [ebp - 4], 0x66
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x980]
call fcn.004105c2
push 0x67
pop ecx
mov byte [ebp - 4], cl
push eax
lea ecx, [ebp - 0x920]
call fcn.0040cf65
mov byte [ebp - 4], 0x66
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x478678
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x6a
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004105c2
push 0x6b
pop ecx
mov byte [ebp - 4], cl
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040cf65
mov byte [ebp - 4], 0x6a
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0x8a8], 8
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
push edi
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
push ecx
push eax
call esi
mov edi, 0x104
push edi
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x6e
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xa70]
mov dword [ebp - 0xa70], 0x47d5a4
mov dword [ebp - 0xa48], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x70
push edi
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0xa70]
call fcn.0040f9a8
push 0x71
pop ecx
mov byte [ebp - 4], cl
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push edi
push dword [eax]
push str.Skin
push str.Startup
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
cmp dword [ebp - 0xa5c], 0
jne 0x43cc0b
push str.setup.isn
lea ecx, [ebp - 0xa6c]
call fcn.00405070
lea eax, [ebp - 0xa70]
push eax
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x980]
call fcn.004105c2
mov byte [ebp - 4], 0x72
push eax
lea ecx, [ebp - 0x920]
call fcn.0040cf65
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0x860]
call fcn.00401580
lea eax, [ebp - 0xa70]
push eax
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004105c2
mov byte [ebp - 4], 0x74
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040cf65
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0x8a8], 8
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
push 0
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
push ecx
push eax
call esi
test eax, eax
je 0x43cced
push edi
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x76
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0x1020]
call fcn.0040cef5
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xb04]
mov dword [ebp - 0xb04], 0x47d5a4
mov dword [ebp - 0xadc], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x78
mov edi, 0x400
push edi
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0xb04]
call fcn.00402910
mov byte [ebp - 4], 0x79
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.004035c0
push edi
push dword [eax]
push str.Supported
push str.Languages
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x78
lea ecx, [ebp - 0x102c]
call fcn.00403460
xor ecx, ecx
mov dword [ebp - 0x1020], ecx
mov dword [ebp - 0x101c], ecx
mov dword [ebp - 0x1018], ecx
mov byte [ebp - 4], 0x7a
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1020]
push eax
push ecx
push 0x2c
lea ecx, [ebp - 0xb04]
call fcn.0041fbef
mov eax, dword [ebp - 0x101c]
mov edi, dword [ebp - 0x1020]
sub eax, edi
push 0x30
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x1034], eax
test eax, eax
je 0x43cfa9
xor ebx, ebx
add edi, 4
inc ebx
cmp dword [edi + 0x14], 8
jb 0x43cdca
mov eax, dword [edi]
jmp 0x43cdcc
mov eax, edi
push 0x10
push 0
push eax
call fcn.00444a0f
movzx eax, ax
add esp, 0xc
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x1024], eax
jb 0x43cdec
mov ecx, dword [edi]
jmp 0x43cdee
mov ecx, edi
cmp dword [ebp - 0x968], 8
push ecx
lea eax, [ebp - 0x97c]
cmovae eax, dword [ebp - 0x97c]
push eax
lea eax, [ebp - 0x920]
push str._s_s.ini
push eax
call fcn.004182c2
add esp, 0x10
cmp dword [edi + 0x14], 8
jb 0x43ce22
mov ecx, dword [edi]
jmp 0x43ce24
mov ecx, edi
cmp dword [ebp - 0x8d8], 8
push ecx
lea eax, [ebp - 0x8ec]
cmovae eax, dword [ebp - 0x8ec]
push eax
lea eax, [ebp - 0x8c0]
push str._s_s.ini
push eax
call fcn.004182c2
add esp, 0x10
cmp dword [ebp - 0x8a8], 8
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
push 0
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
push ecx
push eax
call esi
test eax, eax
je 0x43cec1
push 0x104
lea eax, [ebp - 0x10b0]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x7b
mov ecx, dword [eax]
mov byte [eax + 4], bl
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0x10b0]
call fcn.0040cef5
mov ecx, dword [ebp - 0x1024]
cmp dword [ebp - 0x968], 8
movzx esi, cx
lea eax, [ebp - 0x97c]
cmovae eax, dword [ebp - 0x97c]
push esi
push eax
lea eax, [ebp - 0x920]
push str._s_.04ld.mst
push eax
call fcn.004182c2
cmp dword [ebp - 0x8d8], 8
lea eax, [ebp - 0x8ec]
cmovae eax, dword [ebp - 0x8ec]
push esi
push eax
lea eax, [ebp - 0x8c0]
push str._s_.04ld.mst
push eax
call fcn.004182c2
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileW]
add esp, 0x20
cmp dword [ebp - 0x8a8], 8
lea ecx, [ebp - 0x8bc]
cmovae ecx, dword [ebp - 0x8bc]
cmp dword [ebp - 0x908], 8
push 0
lea eax, [ebp - 0x91c]
cmovae eax, dword [ebp - 0x91c]
push ecx
push eax
call esi
test eax, eax
je 0x43cf94
push 0x104
lea eax, [ebp - 0x1070]
push eax
lea ecx, [ebp - 0x8c0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x7c
mov ecx, dword [eax]
mov byte [eax + 4], bl
call fcn.0040f94d
push dword [eax]
lea ecx, [ebp - 0x1064]
call fcn.0040e91c
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0x1070]
call fcn.0040cef5
add edi, 0x30
dec dword [ebp - 0x1034]
jne 0x43cdc0
mov ebx, dword [ebp - 0x1010]
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
mov esi, 0x47d5a4
mov edi, 0x47d834
push eax
lea ecx, [ebp - 0xa40]
mov dword [ebp - 0xa40], esi
mov dword [ebp - 0xa18], edi
call fcn.00402580
mov byte [ebp - 4], 0x7e
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0xa40]
call fcn.00411a6c
mov byte [ebp - 4], 0x7f
xor ecx, ecx
inc ecx
push ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
push 0
call fcn.0040f94d
push eax
push 0x47df8c
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov byte [ebp - 4], 0x7e
cmp byte [ebp - 0x1028], 0
je 0x43d02a
mov ecx, dword [ebp - 0x102c]
push dword [ecx + 0x24]
call fcn.00403640
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0xa40]
call fcn.00415597
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0x860]
call fcn.00401580
cmp dword [ebp - 0xa2c], 0
jne 0x43d08c
lea eax, [ebp - 0xb94]
push eax
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x980]
call fcn.004105c2
mov byte [ebp - 4], 0x82
push eax
lea ecx, [ebp - 0xa40]
call fcn.0040cf65
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xaa0]
mov dword [ebp - 0xaa0], esi
mov dword [ebp - 0xa78], edi
call fcn.00402580
mov byte [ebp - 4], 0x85
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0xaa0]
call fcn.00411a6c
mov byte [ebp - 4], 0x86
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push eax
lea ecx, [ebp - 0x1058]
call fcn.00413f54
mov byte [ebp - 4], 0x85
cmp byte [ebp - 0x1028], 0
je 0x43d0fb
mov ecx, dword [ebp - 0x102c]
push dword [ecx + 0x24]
call fcn.00403640
xor eax, eax
push eax
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 0x9b0], esi
mov dword [ebp - 0x988], edi
call fcn.00402580
mov byte [ebp - 4], 0x89
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x4a5dc0
lea ecx, [ebp - 0x890]
call fcn.0040cbd7
mov esi, eax
mov byte [ebp - 4], 0x8a
lea eax, [ebp - 0xb64]
push eax
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.004105c2
mov byte [ebp - 4], 0x8b
cmp dword [ebp - 0xa88], 8
lea edx, [ebp - 0xa9c]
cmovae edx, dword [ebp - 0xa9c]
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x43d17d
mov esi, dword [esi]
cmp dword [ebp - 0xa28], 8
lea ecx, [ebp - 0xa3c]
cmovae ecx, dword [ebp - 0xa3c]
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x43d19c
mov eax, dword [eax]
push edx
push esi
push ecx
push eax
lea eax, [ebp - 0x9b0]
push str._s__q__s___tempdisk1folder__s___s
push eax
call fcn.004182c2
add esp, 0x18
mov byte [ebp - 4], 0x8a
lea ecx, [ebp - 0x860]
call fcn.00401580
mov byte [ebp - 4], 0x89
lea ecx, [ebp - 0x890]
call fcn.00401580
cmp byte [ebp - 0x100b], 0
je 0x43d1f4
mov esi, str.__eprq
push esi
call fcn.00443574
pop ecx
push eax
push esi
lea ecx, [ebp - 0x9ac]
call fcn.004181ea
cmp byte [ebp - 0x1030], 0
jne 0x43d216
mov esi, str.__IS_temp
push esi
call fcn.00443574
pop ecx
push eax
push esi
lea ecx, [ebp - 0x9ac]
call fcn.004181ea
cmp byte [ebp - 0x1011], 0
je 0x43d2bf
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push str.__debuglog
lea ecx, [ebp - 0x860]
call fcn.0040cbd7
mov byte [ebp - 4], 0x8e
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x950]
call fcn.004151c7
mov byte [ebp - 4], 0x8f
xor eax, eax
push eax
push eax
lea eax, [ebp - 0xad0]
push eax
lea ecx, [ebp - 0x890]
call fcn.0041e098
mov byte [ebp - 4], 0x8f
lea ecx, [ebp - 0xad0]
call fcn.00401580
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x860]
call fcn.0041de34
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x9b0]
call fcn.0041de34
mov byte [ebp - 4], 0x8e
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x89
lea ecx, [ebp - 0x860]
call fcn.00401580
xor eax, eax
push eax
mov byte [ebp - 0x1034], al
mov byte [ebp - 0x1030], al
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0xbc4]
mov dword [ebp - 0xbc4], 0x47d5a4
mov dword [ebp - 0xb9c], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x94
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0xbc4]
call fcn.00411a6c
mov byte [ebp - 4], 0x95
xor ecx, ecx
inc ecx
or ebx, 4
mov dword [ebp - 0x1010], ebx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.004035c0
xor ecx, ecx
push ecx
push ecx
push eax
push 0x47ac3c
lea ecx, [ebp - 0x1058]
call fcn.0041225d
test al, al
je 0x43d34b
cmp dword [ebp - 0xb50], 0
jne 0x43d34b
xor eax, eax
inc eax
jmp 0x43d34d
xor eax, eax
mov byte [ebp - 0x100a], al
mov dword [ebp - 4], 0x94
test bl, 4
je 0x43d383
and ebx, 0xfffffffb
mov dword [ebp - 0x1010], ebx
mov byte [ebp - 4], 0x94
cmp byte [ebp - 0x1028], 0
je 0x43d383
mov ecx, dword [ebp - 0x102c]
push dword [ecx + 0x24]
call fcn.00403640
xor ecx, ecx
cmp byte [ebp - 0x100a], cl
movzx eax, cl
push 1
pop edx
cmovne eax, edx
mov edi, ecx
mov esi, edx
test al, al
jne 0x43d6af
push ecx
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x9e0]
mov dword [ebp - 0x9e0], 0x47d5a4
mov dword [ebp - 0x9b8], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0x98
push 0x104
lea eax, [ebp - 0x1070]
push eax
lea ecx, [ebp - 0x9e0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x99
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push 0x104
push dword [eax]
push str.WaitInstallation
push str.StartUp
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0x1070]
call fcn.0040cef5
push 0x478f34
lea ecx, [ebp - 0x9dc]
call fcn.0041520b
neg eax
sbb al, al
inc al
push 0x104
lea ecx, [ebp - 0x9e0]
mov dword [ebp - 0x1034], eax
lea eax, [ebp - 0x1070]
push eax
call fcn.0040f9a8
mov byte [ebp - 4], 0x9a
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push 0x104
push dword [eax]
push str.CustomRetCode
push str.StartUp
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0x1070]
call fcn.0040cef5
push 0x478f34
lea ecx, [ebp - 0x9dc]
call fcn.0041520b
neg eax
sbb al, al
inc al
mov dword [ebp - 0x1030], eax
je 0x43d69d
mov esi, 0x104
push esi
lea eax, [ebp - 0x1070]
push eax
lea ecx, [ebp - 0x9e0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x9b
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push esi
push dword [eax]
push str.CustomRetCodeOnSuccess
push str.StartUp
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0x1070]
call fcn.0040cef5
cmp dword [ebp - 0x9cc], edi
jne 0x43d505
or edi, 0xffffffff
xor esi, esi
jmp 0x43d57e
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x477d14
lea ecx, [ebp - 0xc54]
call fcn.0040cbd7
mov byte [ebp - 4], 0x9c
or ebx, 8
mov dword [ebp - 0x1010], ebx
cmp dword [ebp - 0xc3c], 8
push dword [ebp - 0xc40]
lea eax, [ebp - 0xc50]
cmovae eax, dword [ebp - 0xc50]
xor esi, esi
push esi
push eax
lea ecx, [ebp - 0x9dc]
call fcn.0040f7bb
neg eax
sbb al, al
push 0xa
inc al
pop eax
push 0x10
pop ecx
cmovne eax, ecx
push eax
lea eax, [ebp - 0x1024]
push eax
lea ecx, [ebp - 0x9e0]
call fcn.0041e341
mov edi, dword [ebp - 0x1024]
mov dword [ebp - 4], 0x98
test bl, 8
je 0x43d5a2
and ebx, 0xfffffff7
mov dword [ebp - 0x1010], ebx
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0xc54]
call fcn.00401580
push 0x104
lea eax, [ebp - 0x1070]
push eax
lea ecx, [ebp - 0x9e0]
call fcn.0040f9a8
mov byte [ebp - 4], 0x9e
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.0040f94d
push 0x104
push dword [eax]
push str.CustomRetCodeOnFail
push str.StartUp
call fcn.0043f997
add esp, 0x10
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0x1070]
call fcn.0040cef5
cmp dword [ebp - 0x9cc], 0
jne 0x43d600
or esi, 0xffffffff
jmp 0x43d679
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x477d14
lea ecx, [ebp - 0xc24]
call fcn.0040cbd7
mov byte [ebp - 4], 0x9f
push 0x10
pop eax
or ebx, eax
mov dword [ebp - 0x1010], ebx
push dword [ebp - 0xc10]
cmp dword [ebp - 0xc0c], 8
lea eax, [ebp - 0xc20]
cmovae eax, dword [ebp - 0xc20]
push esi
push eax
lea ecx, [ebp - 0x9dc]
call fcn.0040f7bb
neg eax
sbb al, al
push 0xa
inc al
pop eax
push 0x10
pop ecx
cmovne eax, ecx
push eax
lea eax, [ebp - 0x1024]
push eax
lea ecx, [ebp - 0x9e0]
call fcn.0041e341
mov esi, dword [ebp - 0x1024]
mov dword [ebp - 4], 0x98
test bl, 0x10
je 0x43d69d
and ebx, 0xffffffef
mov dword [ebp - 0x1010], ebx
mov byte [ebp - 4], 0x98
lea ecx, [ebp - 0xc24]
call fcn.00401580
mov byte [ebp - 4], 0x94
lea ecx, [ebp - 0x9e0]
call fcn.00401580
xor edx, edx
inc edx
cmp byte [0x4a0228], 0
jne 0x43d6c1
cmp byte [0x4a78a0], 0
je 0x43d732
push edx
lea eax, [ebp - 0x1009]
push eax
push str.Setup.cpp
lea ecx, [ebp - 0x890]
call fcn.004025e0
mov byte [ebp - 4], 0xa2
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push str.Relaunching_setup_from_temp
lea ecx, [ebp - 0x860]
call fcn.004025e0
mov byte [ebp - 4], 0xa3
push 0x1cf
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x860]
push eax
call fcn.004023a0
mov byte [ebp - 4], 0xa2
lea ecx, [ebp - 0x860]
call fcn.00401580
mov byte [ebp - 4], 0x94
lea ecx, [ebp - 0x890]
call fcn.00401580
xor eax, eax
inc eax
push eax
push eax
xor eax, eax
push eax
push str.clone_wait
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov ecx, dword [ebp - 0x1034]
or cl, al
cmp byte [ebp - 0x100b], 0
jne 0x43dca3
test cl, cl
jne 0x43dca3
cmp dword [ebp - 0x998], 8
lea eax, [ebp - 0x9ac]
cmovae eax, dword [ebp - 0x9ac]
xor ecx, ecx
inc ecx
push ecx
push eax
call fcn.004412e5
test eax, eax
je 0x43d8c5
cmp byte [ebp - 0x1030], 0
je 0x43d79b
cmp edi, 0xffffffff
jne 0x43d79f
xor eax, eax
mov edi, eax
mov byte [ebp - 4], 0x89
lea ecx, [ebp - 0xbc4]
call fcn.00401580
mov byte [ebp - 4], 0x85
lea ecx, [ebp - 0x9b0]
call fcn.00401580
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0xaa0]
call fcn.00401580
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0xa40]
call fcn.00401580
mov byte [ebp - 4], 0x78
lea ecx, [ebp - 0x1020]
call fcn.00410ba0
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0xb04]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0xa70]
call fcn.00401580
mov byte [ebp - 4], 0x5a
lea ecx, [ebp - 0x8c0]
call fcn.00401580
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x920]
call fcn.00401580
push 0x51
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x1064]
call fcn.0040ceee
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x980]
call fcn.00401580
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0xb64]
call fcn.00401580
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0xb94]
call fcn.00401580
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x10a4]
call fcn.00415c35
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x8f0]
call fcn.00401580
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
mov byte [ebp - 4], al
mov esi, edi
jmp 0x43ddfd
mov byte [ebp - 4], 0x89
lea ecx, [ebp - 0xbc4]
call fcn.00401580
mov byte [ebp - 4], 0x85
lea ecx, [ebp - 0x9b0]
call fcn.00401580
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0xaa0]
call fcn.00401580
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0xa40]
call fcn.00401580
mov byte [ebp - 4], 0x78
lea ecx, [ebp - 0x1020]
call fcn.00410ba0
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0xb04]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0xa70]
call fcn.00401580
mov byte [ebp - 4], 0x5a
lea ecx, [ebp - 0x8c0]
call fcn.00401580
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x920]
call fcn.00401580
push 0x51
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x1064]
call fcn.0040ceee
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x980]
call fcn.00401580
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0xb64]
call fcn.00401580
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0xb94]
call fcn.00401580
mov edi, dword [ebp - 0x1074]
call fcn.00441125
lea ecx, [ebp - 0x1088]
call fcn.0041caab
mov byte [ebp - 4], 0xcf
xor eax, eax
cmp byte [ebp - 0x1011], al
je 0x43d9e8
push eax
lea eax, [ebp - 0x950]
push eax
lea ecx, [ebp - 0x890]
mov dword [ebp - 0x890], 0x47d5a4
mov dword [ebp - 0x868], 0x47d834
call fcn.004036a0
mov byte [ebp - 4], 0xcf
lea eax, [ebp - 0x890]
mov byte [ebp - 4], 0xd1
or ebx, 0x20
jmp 0x43da0b
inc eax
push eax
lea eax, [ebp - 0x1009]
push eax
push 0x484ef8
lea ecx, [ebp - 0xad0]
call fcn.004025e0
mov dword [ebp - 4], 0xd2
or ebx, 0x40
lea ecx, [ebp - 0x1008]
push ecx
sub esp, 0x30
xor edx, edx
mov dword [ebp - 0x1010], ebx
mov ecx, esp
mov dword [ebp - 0x1024], esp
inc edx
push edx
push eax
call fcn.004036a0
mov dword [ebp - 4], 0xd3
mov eax, dword [ebp - 0x1040]
push edi
push eax
push dword [ebp - 0x1038]
mov eax, dword [ebp - 0x1044]
push eax
mov byte [ebp - 4], 0xd2
lea ecx, [ebp - 0x1088]
call fcn.0041d608
mov esi, eax
mov eax, 0xd1
mov dword [ebp - 4], eax
test bl, 0x40
je 0x43da7e
and ebx, 0xffffffbf
mov dword [ebp - 0x1010], ebx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0xad0]
call fcn.00401580
mov dword [ebp - 4], 0xcf
test bl, 0x20
je 0x43daa2
and ebx, 0xffffffdf
mov dword [ebp - 0x1010], ebx
mov byte [ebp - 4], 0xcf
lea ecx, [ebp - 0x890]
call fcn.00401580
test esi, esi
je 0x43dbfa
xor ebx, ebx
push ebx
lea eax, [ebp - 0x1009]
push eax
lea ecx, [ebp - 0x890]
mov dword [ebp - 0x890], 0x47d5a4
mov dword [ebp - 0x868], 0x47d834
call fcn.00402580
mov byte [ebp - 4], 0xd7
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x890]
call fcn.00411a6c
mov byte [ebp - 4], 0xd8
xor ecx, ecx
inc ecx
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.004035c0
push ebx
push ebx
push eax
push str.runprerequisites
lea ecx, [ebp - 0x1058]
call fcn.0041225d
mov bl, al
mov byte [ebp - 4], 0xd7
cmp byte [ebp - 0x101c], 0
je 0x43db2a
mov ecx, dword [ebp - 0x1020]
push dword [ecx + 0x24]
call fcn.00403640
test bl, bl
je 0x43dbe0
lea ecx, [ebp - 0x102c]
call fcn.0040cdbe
mov byte [ebp - 4], 0xda
push dword [0x4a5db8]
lea ecx, [ebp - 0x102c]
call fcn.0040d15a
mov byte [ebp - 4], 0xd7
lea ecx, [ebp - 0x102c]
call fcn.0040ceee
mov byte [ebp - 4], 0xcf
lea ecx, [ebp - 0x890]
call fcn.00401580
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x1088]
call fcn.0041caf7
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x10a4]
call fcn.00415c35
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x8f0]
call fcn.00401580
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
mov byte [ebp - 4], al
mov esi, eax
jmp 0x43ddfd
lea ecx, [ebp - 0x1088]
call fcn.0041d45b
mov byte [ebp - 4], 0xcf
lea ecx, [ebp - 0x890]
call fcn.00401580
push dword [0x4a65e4]
lea eax, [ebp - 0x1028]
push str.Setup_returning__d
push eax
mov dword [ebp - 0x1028], str.Setup.cpp
mov dword [ebp - 0x1024], 0x204
call fcn.00411a9d
add esp, 0xc
lea ecx, [ebp - 0x1088]
push 0x4a65e4
call fcn.0041d467
mov esi, eax
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x1088]
call fcn.0041caf7
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x10a4]
call fcn.00415c35
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x8f0]
call fcn.00401580
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43ddf8
cmp dword [ebp - 0x998], 8
lea eax, [ebp - 0x9ac]
cmovae eax, dword [ebp - 0x9ac]
xor ecx, ecx
inc ecx
push ecx
push eax
call fcn.00441402
mov ecx, 0xcccccccc
cmp eax, ecx
jne 0x43dcdc
cmp byte [ebp - 0x1030], 0
je 0x43dcd8
cmp esi, 0xffffffff
jne 0x43dcde
mov esi, ecx
jmp 0x43dcde
mov esi, eax
mov byte [ebp - 4], 0x89
lea ecx, [ebp - 0xbc4]
call fcn.00401580
mov byte [ebp - 4], 0x85
lea ecx, [ebp - 0x9b0]
call fcn.00401580
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0xaa0]
call fcn.00401580
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0xa40]
call fcn.00401580
mov byte [ebp - 4], 0x78
lea ecx, [ebp - 0x1020]
call fcn.00410ba0
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0xb04]
call fcn.00401580
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0xa70]
call fcn.00401580
mov byte [ebp - 4], 0x5a
lea ecx, [ebp - 0x8c0]
call fcn.00401580
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x920]
call fcn.00401580
push 0x51
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x1064]
call fcn.0040ceee
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x980]
call fcn.00401580
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0xb64]
call fcn.00401580
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0xb94]
call fcn.00401580
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x10a4]
call fcn.00415c35
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x8f0]
call fcn.00401580
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x950]
call fcn.00401580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa10]
call fcn.00401580
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1008]
call fcn.00439f52
mov byte [ebp - 4], 2
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0xbf4]
call fcn.00401580
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1058]
call fcn.00411923
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004425f3
leave
ret 0x10