Function at 0x40ac50
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4585b8
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x478990]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 4], 0
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40acaf
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14c], esi
mov byte [ebp - 4], 1
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40acdf
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x2c], eax
add eax, 0x10
mov dword [ebp - 0x188], eax
mov byte [ebp - 4], 2
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ad12
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1cc], eax
add eax, 0x10
mov dword [ebp - 0x1b4], eax
mov byte [ebp - 4], 3
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ad48
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1e0], eax
add eax, 0x10
mov dword [ebp - 0x164], eax
mov byte [ebp - 4], 4
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ad7e
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x174], eax
add eax, 0x10
mov dword [ebp - 0x168], eax
mov byte [ebp - 4], 5
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40adb4
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1c4], eax
add eax, 0x10
mov dword [ebp - 0x1ac], eax
mov byte [ebp - 4], 6
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40adea
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1d4], eax
add eax, 0x10
mov dword [ebp - 0x1a8], eax
mov byte [ebp - 4], 7
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ae20
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1c0], eax
add eax, 0x10
mov dword [ebp - 0x1a0], eax
mov byte [ebp - 4], 8
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ae56
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x198], ebx
mov byte [ebp - 4], 9
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40ae86
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x184], eax
mov byte [ebp - 4], 0xa
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40aeb6
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18c], eax
mov byte [ebp - 4], 0xb
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40aee6
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x178], eax
mov byte [ebp - 4], 0xc
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40af16
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x180], eax
mov byte [ebp - 4], 0xd
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40af46
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1c8], eax
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov byte [ebp - 4], 0xe
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40af7c
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1dc], eax
add eax, 0x10
mov dword [ebp - 0x1b0], eax
mov byte [ebp - 4], 0xf
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40afb2
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1d8], eax
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov byte [ebp - 4], 0x10
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40afe8
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
mov dword [ebp - 0x1d0], eax
add eax, 0x10
mov dword [ebp - 0x1a4], eax
mov byte [ebp - 4], 0x11
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40b01e
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x190], edi
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.0041a360
mov byte [ebp - 4], 0x13
push 0x469d84
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x148], 0
call fcn.00406740
mov byte [ebp - 4], 0x14
xor al, al
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x159], 0
mov byte [ebp - 0x25], al
mov byte [ebp - 0x191], al
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
call fcn.0041d199
mov byte [ebp - 4], 0x15
mov eax, dword [ebp + 8]
lea edx, [edi - 0x10]
lea ecx, [eax - 0x10]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x19c], edx
cmp ecx, edx
je 0x40b10d
cmp dword [edx + 0xc], 0
lea edi, [edx + 0xc]
jl 0x40b0f8
mov ecx, dword [ecx]
cmp ecx, dword [edx]
jne 0x40b0f8
push dword [ebp - 0x24]
call fcn.00406100
add esp, 4
mov dword [ebp - 0x24], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40b0ed
mov edi, dword [ebp - 0x19c]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + 0x10]
mov dword [ebp - 0x190], edi
jmp 0x40b10d
push dword [eax - 0xc]
lea ecx, [ebp - 0x190]
push eax
call fcn.004065f0
mov edi, dword [ebp - 0x190]
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push 0x469d98
call fcn.00406740
push ecx
mov ecx, esp
push str.Silent
mov byte [ebp - 4], 0x16
call fcn.00406740
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [eax + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
mov byte [ebp - 4], 0x17
mov eax, dword [eax]
lea ecx, [esi - 0x10]
lea edx, [eax - 0x10]
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x24], ecx
cmp edx, ecx
je 0x40b1c1
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x40b1ac
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40b1a6
push edx
call fcn.00406100
add esp, 4
mov dword [ebp - 0x19c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40b19b
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x19c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14c], esi
jmp 0x40b1c1
mov eax, dword [ebp - 0x19c]
push dword [eax - 0xc]
lea ecx, [ebp - 0x14c]
push eax
call fcn.004065f0
mov esi, dword [ebp - 0x14c]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b1e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x469da0
push esi
call fcn.00440cbb
add esp, 8
test eax, eax
je 0x40b20d
push 0x467e10
push esi
call fcn.00440cbb
add esp, 8
mov byte [ebp - 0x14d], 0
test eax, eax
jne 0x40b214
mov byte [ebp - 0x14d], 1
push esi
push str._Silent_mode_from_sia.ini___s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
lea edx, [edi - 0x10]
lea ecx, [esi - 0x10]
add esp, 0x14
mov dword [ebp - 0x19c], edx
mov dword [ebp - 0x24], ecx
cmp edx, ecx
je 0x40b299
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x40b284
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40b284
push edx
call fcn.00406100
or edi, 0xffffffff
add esp, 4
mov dword [ebp - 0x20], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40b279
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14c], esi
jmp 0x40b29c
push dword [edi - 0xc]
lea ecx, [ebp - 0x14c]
push edi
call fcn.004065f0
mov esi, dword [ebp - 0x14c]
or edi, 0xffffffff
mov edx, dword [esi - 0xc]
mov dword [ebp - 0x20], edx
test edx, edx
jns 0x40b2b0
push 0x80070057
call fcn.00406820
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x40b2d6
push edx
lea ecx, [ebp - 0x14c]
call fcn.00406510
mov esi, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x20]
lea eax, [edx + 1]
push eax
push esi
call fcn.0043f2a1
mov eax, dword [ebp - 0x20]
add esp, 8
cmp eax, dword [esi - 8]
jg 0x40b2a6
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
cmp dword [esi - 0xc], ecx
jl 0x40b311
push 0x469de8
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b311
sub eax, esi
sar eax, 1
jns 0x40b355
cmp dword [esi - 0xc], 0
jl 0x40b434
push 0x469df0
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b333
sub eax, esi
sar eax, 1
jns 0x40b355
cmp dword [esi - 0xc], 0
jl 0x40b434
push str._SILENT
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b376
sub eax, esi
sar eax, 1
js 0x40b376
push str._Silent_mode_from_commandline
push dword [ebp - 0x148]
mov byte [ebp - 0x14d], 1
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp dword [esi - 0xc], 0
jl 0x40b434
push str._AFTERREBOOT
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b3b9
sub eax, esi
sar eax, 1
js 0x40b3b9
push str._AfterReboot_mode_detected.
push dword [ebp - 0x148]
mov byte [ebp - 0x159], 1
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp dword [esi - 0xc], 0
jl 0x40b434
push str._ARP
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b3f5
sub eax, esi
sar eax, 1
js 0x40b3f5
push str._ARP_mode_detected.
push dword [ebp - 0x148]
mov byte [ebp - 0x25], 1
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp dword [esi - 0xc], 0
jl 0x40b434
push str._NOPENDINGFILE
push esi
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b434
sub eax, esi
sar eax, 1
js 0x40b434
push str._Check_for_pending_file_rename_operations_deactevated_due__nopendingfile
push dword [ebp - 0x148]
mov byte [ebp - 0x191], 1
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push 0x469da0
call fcn.00406740
push ecx
mov ecx, esp
push str.Reboot
mov byte [ebp - 4], 0x18
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ecx + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
mov byte [ebp - 4], 0x19
mov eax, dword [eax]
lea ecx, [esi - 0x10]
lea edx, [eax - 0x10]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
cmp edx, ecx
je 0x40b4de
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x40b4c9
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40b4c6
push edx
call fcn.00406100
add esp, 4
mov dword [ebp - 0x20], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40b4bb
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14c], esi
jmp 0x40b4de
mov eax, dword [ebp - 0x20]
push dword [eax - 0xc]
lea ecx, [ebp - 0x14c]
push eax
call fcn.004065f0
mov esi, dword [ebp - 0x14c]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x16c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b501
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esi - 0xc]
mov dword [ebp - 0x20], edx
test edx, edx
jns 0x40b515
push 0x80070057
call fcn.00406820
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x40b53b
push edx
lea ecx, [ebp - 0x14c]
call fcn.00406510
mov esi, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x20]
lea eax, [edx + 1]
push eax
push esi
call fcn.0043f2a1
mov eax, dword [ebp - 0x20]
add esp, 8
cmp eax, dword [esi - 8]
jg 0x40b2a6
push esi
mov dword [esi - 0xc], eax
xor ecx, ecx
push str._Reboot_mode_from_sia.ini___s
mov word [esi + eax*2], cx
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
mov ecx, 0x469da0
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40b5a6
test dx, dx
je 0x40b5a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40b5a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40b580
xor eax, eax
jmp 0x40b5ab
sbb eax, eax
or eax, 1
test eax, eax
sete byte [ebp - 0x16d]
mov ecx, 0x469d98
mov eax, esi
jmp 0x40b5c0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40b5e6
test dx, dx
je 0x40b5e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40b5e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40b5c0
xor eax, eax
jmp 0x40b5eb
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
jne 0x40ba24
mov eax, str.SUPRESS
lea ecx, [ecx]
mov cx, word [esi]
cmp cx, word [eax]
jne 0x40b626
test cx, cx
je 0x40b622
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x40b626
add esi, 4
add eax, 4
test cx, cx
jne 0x40b600
xor eax, eax
jmp 0x40b62b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
jne 0x40ba24
lea eax, [ebp - 0x14c]
push str.REALLYSUPRESS
push eax
call fcn.00406030
add esp, 8
test al, al
jne 0x40ba24
lea eax, [ebp - 0x14c]
push str.SUPPRESS
push eax
call fcn.00406030
add esp, 8
test al, al
jne 0x40ba24
lea eax, [ebp - 0x14c]
push str.REALLYSUPPRESS
push eax
call fcn.00406030
add esp, 8
test al, al
jne 0x40ba24
cmp byte [ebp - 0x16d], al
je 0x40ba2b
lea eax, [ebp - 0x190]
push eax
lea ecx, [ebp - 0x14c]
call fcn.00406090
mov esi, dword [ebp - 0x14c]
mov edx, dword [esi - 0xc]
mov dword [ebp - 0x24], edx
test edx, edx
jns 0x40b6c4
push 0x80070057
call fcn.00406820
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x40b6ea
push edx
lea ecx, [ebp - 0x14c]
call fcn.00406510
mov esi, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x24]
lea eax, [edx + 1]
push eax
push esi
call fcn.0043f2a1
mov eax, dword [ebp - 0x24]
add esp, 8
cmp eax, dword [esi - 8]
jg 0x40b2a6
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
lea eax, [ebp - 0x24]
push eax
push 0x4695cc
lea eax, [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
push eax
lea ecx, [ebp - 0x14c]
call fcn.004053d0
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x40ba02
js 0x40b932
push str.REBOOT
push eax
call fcn.0043ed4c
add esp, 8
test eax, eax
je 0x40b932
mov ecx, dword [ebp - 0x20]
sub eax, ecx
sar eax, 1
js 0x40b932
push ecx
push str._Reboot_mode_from_commandline___s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
lea ecx, [ebp - 0x20]
push 0x468518
push str.REBOOT
call fcn.004050a0
push 0x468518
push 0x4684f4
lea ecx, [ebp - 0x20]
call fcn.004050a0
push dword [ebp - 0x20]
push str._Reboot_mode_result_from_commandline___s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
lea ecx, [ebp - 0x20]
call fcn.004059c0
mov ecx, eax
call fcn.00405a40
mov eax, dword [ebp - 0x20]
mov edx, 0x469d98
mov ecx, eax
lea ebx, [ebx]
mov si, word [ecx]
cmp si, word [edx]
jne 0x40b806
test si, si
je 0x40b802
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x40b806
add ecx, 4
add edx, 4
test si, si
jne 0x40b7e0
xor ecx, ecx
jmp 0x40b80b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
jne 0x40b9de
mov edx, str.SUPRESS
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x40b846
test si, si
je 0x40b842
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x40b846
add ecx, 4
add edx, 4
test si, si
jne 0x40b820
xor ecx, ecx
jmp 0x40b84b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
jne 0x40b9de
mov edx, str.REALLYSUPRESS
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x40b886
test si, si
je 0x40b882
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x40b886
add ecx, 4
add edx, 4
test si, si
jne 0x40b860
xor ecx, ecx
jmp 0x40b88b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
jne 0x40b9de
mov edx, str.SUPPRESS
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x40b8c6
test si, si
je 0x40b8c2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x40b8c6
add ecx, 4
add edx, 4
test si, si
jne 0x40b8a0
xor ecx, ecx
jmp 0x40b8cb
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
jne 0x40b9de
mov ecx, str.REALLYSUPPRESS
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40b906
test dx, dx
je 0x40b902
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40b906
add eax, 4
add ecx, 4
test dx, dx
jne 0x40b8e0
xor eax, eax
jmp 0x40b90b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
jne 0x40b9de
push str.____________Reboot_still_allowed
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea eax, [ebp - 0x24]
push eax
push 0x4695cc
lea eax, [ebp - 0x160]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004053d0
mov byte [ebp - 4], 0x1b
mov ecx, dword [eax]
mov esi, dword [ebp - 0x20]
lea edx, [ecx - 0x10]
add esi, 0xfffffff0
cmp edx, esi
je 0x40b9ab
cmp dword [esi + 0xc], 0
jl 0x40b99f
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40b99f
push edx
call fcn.00406100
add esp, 4
mov dword [ebp - 0x16c], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b997
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x16c]
add eax, 0x10
mov dword [ebp - 0x20], eax
jmp 0x40b9ab
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x20]
call fcn.004065f0
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x160]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b9ce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x40b73c
jmp 0x40ba02
push str.____________Reboot_not_allowed
push dword [ebp - 0x148]
mov byte [ebp - 0x16d], 0
push 8
push 0x47d0b4
call fcn.00417de0
mov eax, dword [ebp - 0x20]
add esp, 0x10
lea edx, [eax - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ba2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40ba2e
mov byte [ebp - 0x16d], 0
or esi, 0xffffffff
push ecx
mov ecx, esp
push str.FileNotFound
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x1c
mov edx, dword [eax]
mov edi, dword [ebp - 0x184]
lea ecx, [edx - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
je 0x40bab7
cmp dword [edi + 0xc], 0
jl 0x40baa8
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x40baa8
push ecx
call fcn.00406100
add esp, 4
mov dword [ebp - 0x160], eax
mov ecx, esi
lea edx, [edi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ba9d
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x160]
add eax, 0x10
mov dword [ebp - 0x184], eax
jmp 0x40bab7
push dword [edx - 0xc]
lea ecx, [ebp - 0x184]
push edx
call fcn.004065f0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x16c]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bada
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push str.MinResolution
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x24]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x1d
mov eax, dword [eax]
mov edi, dword [ebp - 0x18c]
lea edx, [eax - 0x10]
lea ecx, [edi - 0x10]
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x160], ecx
cmp edx, ecx
je 0x40bb7e
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x40bb69
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40bb63
push edx
call fcn.00406100
add esp, 4
mov dword [ebp - 0x16c], eax
mov ecx, esi
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x40bb58
mov edi, dword [ebp - 0x160]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x16c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x18c], edi
jmp 0x40bb7e
mov eax, dword [ebp - 0x16c]
push dword [eax - 0xc]
lea ecx, [ebp - 0x18c]
push eax
call fcn.004065f0
mov edi, dword [ebp - 0x18c]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bb9e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push str.RebootMessage
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x1e
mov eax, dword [eax]
mov ecx, dword [ebp - 0x178]
add ecx, 0xfffffff0
lea edx, [eax - 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x16c], ecx
cmp edx, ecx
je 0x40bc3c
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x160], eax
jl 0x40bc2a
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40bc2a
push edx
call fcn.00406100
mov edx, dword [ebp - 0x160]
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40bc1f
mov eax, dword [ebp - 0x16c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x24]
add eax, 0x10
mov dword [ebp - 0x178], eax
jmp 0x40bc3c
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x178]
push dword [eax - 0xc]
push eax
call fcn.004065f0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bc5c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push str.InstallErrorMessage
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x1f
mov eax, dword [eax]
mov ecx, dword [ebp - 0x180]
add ecx, 0xfffffff0
lea edx, [eax - 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x16c], ecx
cmp edx, ecx
je 0x40bcfa
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x160], eax
jl 0x40bce8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40bce8
push edx
call fcn.00406100
mov edx, dword [ebp - 0x160]
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40bcdd
mov eax, dword [ebp - 0x16c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x24]
add eax, 0x10
mov dword [ebp - 0x180], eax
jmp 0x40bcfa
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x180]
push dword [eax - 0xc]
push eax
call fcn.004065f0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bd1a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x159], 0
jne 0x40c22a
push str.Check_for_ReservedPathLength__at_least_50_
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x154], esp
push 0x46a1c0
call fcn.00406740
push ecx
mov ecx, esp
push str.ReservedPathLength
mov byte [ebp - 4], 0x20
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x160]
push eax
lea ecx, [ecx + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x21
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x160]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bdb0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x14c]
push esi
push str.ReservedPathLength:__s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
push 0x5c
push dword [0x47d0a0]
call fcn.0043f3ff
add esp, 0x1c
test eax, eax
jne 0x40bde7
or eax, 0xffffffff
jmp 0x40bdef
sub eax, dword [0x47d0a0]
sar eax, 1
inc eax
push eax
push 0
lea eax, [ebp - 0x16c]
push eax
mov ecx, 0x47d0a0
call fcn.00405610
mov eax, dword [eax]
push esi
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x160], eax
call fcn.0043fc6e
add eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x16c]
add esp, 4
cmp eax, 0x104
setg byte [ebp - 0x179]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40be4a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x179], 0
je 0x40c227
push 0x5c
push dword [0x47d0a0]
call fcn.0043f3ff
add esp, 8
test eax, eax
jne 0x40be70
or eax, 0xffffffff
jmp 0x40be78
sub eax, dword [0x47d0a0]
sar eax, 1
inc eax
push eax
push 0
lea eax, [ebp - 0x154]
push eax
mov ecx, 0x47d0a0
call fcn.00405610
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x20]
push 0x47d0a0
push eax
mov byte [ebp - 4], 0x22
call fcn.00405730
mov dword [ebp - 0x16c], eax
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x160]
push esi
mov ecx, dword [ecx]
mov eax, dword [ecx - 0xc]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x24], eax
call fcn.0043fc6e
add eax, dword [ebp - 0x160]
push eax
mov eax, dword [ebp - 0x16c]
push dword [eax]
push str.Current_path_is_too_long___:__s__Length___d
push dword [ebp - 0x24]
push 0
push 0x47d0b4
call fcn.00417de0
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
add esp, 0x28
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bf1d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bf41
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x14d], 0
jne 0x40bf58
push 0
push 0x10
push str.Current_path_is_too_long__
call fcn.0041da3e
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x48]
mov dword [eax + 0xd0], 3
mov byte [ebp - 4], 0x14
call fcn.0041d344
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x148]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bf95
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
mov edx, dword [ebp - 0x19c]
mov byte [ebp - 4], 0x11
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bfc2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bfe3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0xf
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c004
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1dc]
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c025
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c8]
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c046
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x180]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c06a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x178]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c08e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
or edi, 0xffffffff
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c0ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x184]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c0d1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c0ee
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c10e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d4]
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c12e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c4]
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c14e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x174]
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c16e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1e0]
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c18e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1cc]
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c1ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c1cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c1e8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x40c209
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043e7dc
mov esp, ebp
pop ebp
ret 4
or esi, 0xffffffff
cmp byte [ebp - 0x14d], 0
jne 0x40c28c
push ecx
mov ecx, esp
push str.CheckPrerequisites
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x18]
push dword [eax]
lea ecx, [ecx + 0xd4]
call fcn.00413640
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c28c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Check_for_x64Allowed
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x160], esp
push 0x469da0
call fcn.00406740
push ecx
mov ecx, esp
push str.x64Allowed
mov byte [ebp - 4], 0x25
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x26
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c315
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x14c]
call fcn.00405540
cmp byte [ebp - 0x159], 0
jne 0x40c6cc
cmp dword [0x47d018], 0
mov dword [ebp - 0x24], 0
je 0x40c6cc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x47d018]
cmp dword [ebp - 0x24], 0
je 0x40c6cc
lea eax, [ebp - 0x14c]
push 0x469d98
push eax
call fcn.00406030
add esp, 8
test al, al
je 0x40c6cc
push ecx
mov ecx, esp
push str.Error64Bit
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x27
push dword [eax]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c3d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x14d], 0
jne 0x40c425
push ecx
push 0x30
push ecx
mov ecx, esp
push str.Error64Bit
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x18]
push dword [eax]
lea ecx, [ecx + 0x1ac]
call fcn.00404b60
lea ecx, [ebp - 0x154]
call fcn.00406800
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xd0], 0xd8
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x148]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c461
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
mov edx, dword [ebp - 0x19c]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0x11
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c48d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0x10
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c4ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d8]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0xf
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c4cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1dc]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0xe
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c4ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c8]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0xd
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c50d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x180]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c530
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x178]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c553
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov ecx, esi
lea eax, [edi + 0xc]
mov byte [ebp - 4], 0xa
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c570
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x184]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c593
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov ecx, esi
lea eax, [ebx + 0xc]
mov byte [ebp - 4], 8
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c5b0
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 7
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c5d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d4]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 6
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c5f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c4]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 5
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c610
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x174]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 4
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c630
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1e0]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 3
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c650
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1cc]
mov ecx, esi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 2
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c670
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c68d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x14c]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c6b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jmp 0x40c1ff
push str.Check_for_admin_rights
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov eax, dword [ebp - 0x18]
add esp, 0x10
mov al, byte [eax + 0x1fc]
test al, al
je 0x40c7c4
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x40c7c4
push ecx
mov ecx, esp
push str.AdminError
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x29
push dword [eax]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c765
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x14d], 0
jne 0x40c7b2
push ecx
push 0x30
push ecx
mov ecx, esp
push str.AdminError
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x18]
push dword [eax]
lea ecx, [ecx + 0x1ac]
call fcn.00404b60
lea ecx, [ebp - 0x154]
call fcn.00406800
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xd0], 5
jmp 0x40c432
call fcn.00410300
cmp byte [ebp - 0x159], 0
jne 0x40cb06
push str.Check_for_screen_resolution
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0xc
mov ecx, esp
push str.MinResolutionX
call fcn.00406740
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebx + 0x1ac]
call fcn.00404350
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2b
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c844
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14c]
cmp dword [eax - 0xc], 0
jne 0x40c85c
mov dword [ebp - 0x174], 0
jmp 0x40c86b
push eax
call fcn.0043fc6e
add esp, 4
mov dword [ebp - 0x174], eax
push ecx
mov ecx, esp
push str.MinResolutionY
call fcn.00406740
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebx + 0x1ac]
call fcn.00404350
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2c
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c8bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x14c]
cmp dword [eax - 0xc], 0
jne 0x40c8cd
xor ebx, ebx
jmp 0x40c8d8
push eax
call fcn.0043fc6e
add esp, 4
mov ebx, eax
push ebx
push dword [ebp - 0x174]
push str.DisplaySize_requested:__dx_d
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x18
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
mov esi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push esi
push eax
push str.DisplaySize_found:__dx_d
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x18
cmp byte [ebp - 0x14d], 0
jne 0x40caac
push str.Not_Silent_mode__test_screen_resolution
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esp, 0x10
push 0
call esi
cmp eax, dword [ebp - 0x174]
jl 0x40c96c
push 1
call esi
cmp eax, ebx
jge 0x40cac6
push ebx
push dword [ebp - 0x174]
lea eax, [ebp - 0x188]
push edi
push eax
call fcn.00405f50
push edi
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
mov ebx, dword [ebp - 0x18]
add esp, 0x1c
lea ecx, [ebx + 0x1ac]
push 0x10
push dword [ebp - 0x188]
call fcn.00404b60
lea ecx, [ebp - 0x48]
mov dword [ebx + 0xd0], 0xa
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
push str.Silent_mode__do_not_test_screen_resolution
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
push str.Check_for_installed_IE
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
lea ecx, [ebp - 0x14c]
call fcn.004107a0
push eax
push str.Found_IE:__d
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x24
or esi, 0xffffffff
cmp byte [ebp - 0x14d], 0
jne 0x40cb65
push ecx
mov ecx, esp
push str.CheckPrerequisites
call fcn.00406740
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x2d
push dword [eax]
lea ecx, [ebx + 0xd4]
call fcn.00413640
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40cb65
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Check_for_MSI_version
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov esi, dword [ebp - 0x14c]
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x400
add esp, 0x10
or eax, ecx
jge 0x40cbaf
push 0x400
lea ecx, [ebp - 0x14c]
call fcn.00406510
mov esi, dword [ebp - 0x14c]
push 0x400
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push dword [esi - 8]
push esi
call fcn.0043ea2f
add esp, 8
test eax, eax
js 0x40b2a6
cmp eax, dword [esi - 8]
jg 0x40b2a6
xor ecx, ecx
push ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov eax, esp
push str.msi.dll
lea ecx, [ebp - 0x14c]
push ecx
push eax
call fcn.004057f0
add esp, 0xc
lea eax, [ebp - 0x154]
push eax
call fcn.0041abd0
add esp, 8
push eax
lea ecx, [ebp - 0x198]
mov byte [ebp - 4], 0x2e
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x154]
add edx, 0xfffffff0
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40cc3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x198]
push ebx
push str.MsiVersion_found__s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov eax, dword [ebp - 0x18]
add eax, 0xd4
add esp, 0x14
mov dword [eax + 0xb8], 1
mov al, byte [ebp - 0x25]
test al, al
jne 0x40d7d9
push str.Check_for_installed_.Net_versions
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea ecx, [ebp - 0x25]
call fcn.0041a360
mov byte [ebp - 4], 0x2f
push 0xa
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
call fcn.00428c94
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x25]
mov byte [ebp - 4], 0x30
call fcn.0041a430
lea ecx, [ebp - 0x14c]
call fcn.004063e0
push str.Detected_installed_.NET_versions:
push dword [ebp - 0x148]
xor eax, eax
push 8
push 0x47d0b4
mov dword [ebp - 0x174], eax
call fcn.00417de0
mov esi, dword [ebp - 0x60]
add esp, 0x10
test esi, esi
je 0x40d376
mov eax, esi
test esi, esi
je 0x40d371
mov eax, dword [eax + 8]
mov esi, dword [esi]
sub eax, 0x10
push eax
call fcn.00406100
add eax, 0x10
add esp, 4
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x174]
push 2
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x31
call fcn.004056c0
push 0x46a57c
push eax
call fcn.00406030
mov byte [ebp - 0x179], al
mov eax, dword [ebp - 0x154]
add eax, 0xfffffff0
add esp, 8
mov dword [ebp - 0x160], eax
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd8a
mov ecx, dword [eax]
push dword [ebp - 0x160]
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x179], 0
je 0x40cde1
dec dword [ebp - 0x174]
push str.__not_allowed_for_SIA_
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.004057f0
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x32
call fcn.00406090
mov byte [ebp - 4], 0x31
mov edx, dword [ebp - 0x16c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40cde1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push 0x4695cc
push eax
call fcn.00410d10
mov byte [ebp - 4], 0x33
push dword [eax]
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov byte [ebp - 4], 0x31
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
add esp, 0x1c
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ce2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x30
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ce4e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
jne 0x40cd10
mov eax, dword [ebp - 0x174]
test eax, eax
jle 0x40d376
push str..NET_is_present._SIA_can_start.
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x2f
call fcn.00428cba
lea ecx, [ebp - 0x25]
mov byte [ebp - 4], 0x15
call fcn.00405e80
cmp byte [ebp - 0x191], 0
jne 0x40d366
push str.Check_for_PendingFileRenameOperations
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
call fcn.00415ce0
test al, al
je 0x40d35b
push str.PendingFileRenameOperations_Reboot_is_needed
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
je 0x40cfe4
push str.PendingFileRenameOperations_Messagebox_will_be_not_show__SilentYES
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
push str.PendingFileRenameOperations_Reboot_will_be_started
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x20
push str.PendingFileRenameOperations_Reboot:_select_YES
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x158], esp
push 0x469da0
call fcn.00406740
push ecx
mov ecx, esp
push str.RebootAllowed
mov byte [ebp - 4], 0x3c
call fcn.00406740
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x154]
push eax
lea ecx, [ebx + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x3d
call fcn.00406090
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x15
call fcn.00406800
push dword [ebp - 0x14c]
push str.RebootAllowed_read_from_sia.ini___s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
lea eax, [ebp - 0x14c]
push 0x469da0
push eax
call fcn.00406030
add esp, 0x1c
test al, al
setne al
cmp byte [ebp - 0x16d], 0
jne 0x40d097
push str.Reboot_is_forbidden_by_commandline
jmp 0x40d246
mov byte [ebp - 4], 0x39
mov eax, dword [ebp - 0x18]
push dword [eax + 0x100]
call fcn.00422229
push ecx
lea ecx, [ebp - 0x144]
mov esi, eax
call fcn.0040e440
push esi
push 0x83
lea ecx, [ebp - 0x144]
mov dword [ebp - 0xb0], 0
call fcn.0041dcda
mov eax, dword [ebp - 0x18]
add eax, 0x1ac
mov dword [ebp - method.PendFileOpsDlg.virtual_0], vtable.PendFileOpsDlg.0
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x3a
call fcn.0041e1b9
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x144]
mov esi, eax
mov dword [ebp - method.PendFileOpsDlg.virtual_0], vtable.PendFileOpsDlg.0
call fcn.0041dd0e
mov dword [ebp - 4], 0x15
cmp esi, 6
je 0x40cf22
cmp esi, 1
je 0x40cf22
cmp esi, 7
je 0x40d1ec
cmp esi, 2
je 0x40d1ec
mov esi, dword [ebp - 0x14c]
jmp 0x40d822
test al, al
je 0x40d25b
sub esp, 8
lea eax, [ebp - 0x190]
mov ecx, esp
push eax
mov dword [ebx + 0xd0], 0x2d79
call fcn.00406170
mov ecx, ebx
call fcn.0040ff60
call fcn.0041b200
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
push ecx
mov ecx, esp
push str.RebootHint
call fcn.00406740
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebx + 0x1ac]
call fcn.00403bd0
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x3e
call fcn.00406090
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x15
call fcn.00406800
push ecx
push 0x40
push dword [ebp - 0x14c]
lea ecx, [ebx + 0x1ac]
call fcn.00404b60
push str.PendingFileRenameOperations_Reboot:_select_NO
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea ecx, [ebp - 0x48]
mov dword [ebx + 0xd0], 0x32d2
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
mov esi, dword [ebp - 0x14c]
jmp 0x40d819
mov esi, dword [ebp - 0x14c]
jmp 0x40d7ff
call fcn.0041cb80
push str..NET_is_NOT_present._SIA_cant_start.
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea ecx, [ebp - 0x20]
push 0x468518
mov dword [ebp - 0x20], 0
call fcn.00406740
lea eax, [ebp - 0x20]
push eax
push ecx
mov ecx, esp
push str.OSAllowed
mov byte [ebp - 4], 0x34
call fcn.00406740
mov edi, dword [ebp - 0x18]
push ecx
lea ecx, [edi + 0x1ac]
call fcn.00404550
lea ecx, [ebp - 0x20]
call fcn.00405540
push 2
call fcn.00416910
add esp, 4
test al, al
je 0x40d617
push 0
push str.WINDOWS5
lea ecx, [ebp - 0x20]
call fcn.00405500
test eax, eax
jns 0x40d617
push 0
push str.WINDOWSXP
lea ecx, [ebp - 0x20]
call fcn.00405500
test eax, eax
jns 0x40d617
push 0
push str.WINDOWS2003
lea ecx, [ebp - 0x20]
call fcn.00405500
test eax, eax
jns 0x40d617
push dword [ebp - 0x20]
lea eax, [ebp - 0x14c]
push str.Current_OS_is_not_found_in_list_of_allowed__s_
push eax
call fcn.00405f50
push dword [ebp - 0x14c]
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x18
mov ecx, esp
push str.DNETMissingOS
mov dword [ebp - 0x18], 0
call fcn.00406740
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x18]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00406100
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x158]
push eax
mov ecx, edi
call fcn.0040e4e0
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x36
call fcn.00406090
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x35
call fcn.00406800
push dword [ebp - 0x18]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
jne 0x40d4ef
push ecx
push 0
push dword [ebp - 0x18]
lea ecx, [edi + 0x1ac]
call fcn.00404b60
lea ecx, [ebp - 0x18]
mov dword [edi + 0xd0], 0x661
call fcn.00406800
lea ecx, [ebp - 0x20]
call fcn.00406800
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x2f
call fcn.00428cba
lea ecx, [ebp - 0x25]
mov byte [ebp - 4], 0x15
call fcn.00405e80
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
push ecx
mov ecx, esp
push str.DNETMissingDNET
mov dword [ebp - 0x18], 0
call fcn.00406740
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x18]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00406100
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x158]
push eax
mov ecx, edi
call fcn.0040e4e0
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x38
call fcn.00406090
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x37
call fcn.00406800
push dword [ebp - 0x18]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
jne 0x40d6b1
push ecx
push 0
push dword [ebp - 0x18]
lea ecx, [edi + 0x1ac]
call fcn.00404b60
lea ecx, [ebp - 0x18]
mov dword [edi + 0xd0], 0x643
call fcn.00406800
lea ecx, [ebp - 0x20]
call fcn.00406800
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x2f
call fcn.00428cba
lea ecx, [ebp - 0x25]
mov byte [ebp - 4], 0x15
call fcn.00405e80
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
movzx eax, al
push eax
movzx eax, byte [ebp - 0x159]
push eax
push str.Detection_of_installed_.NET_Versions_is_skipped__AfterRebootMode_d__ARPMode_d_
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x18
push str.Test_for_PendingFileRenameOperations_skipped_in_ARPmode_or_due__nopendingfile
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
jne 0x40d87b
push ecx
mov ecx, esp
push str.InitializingSIA
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x158]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00403bd0
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x18]
push dword [eax]
lea ecx, [ecx + 0xd4]
call fcn.00413640
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d87b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x159], 0
jne 0x40d89f
mov ecx, dword [ebp - 0x18]
add ecx, 0xcc
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
je 0x40d898
push ecx
jmp 0x40d8a4
push 0x47d090
jmp 0x40d8a4
push 0x47d08c
lea ecx, [ebp - 0x164]
call fcn.00406090
push 0x468514
lea ecx, [ebp - 0x164]
call fcn.004055a0
push 0x468514
lea ecx, [ebp - 0x164]
call fcn.00405050
cmp byte [ebp - 0x159], 0
jne 0x40d9a3
push ecx
mov ecx, esp
mov dword [ebp - 0x154], esp
push 0x469d98
call fcn.00406740
push ecx
mov ecx, esp
push str.Wait
mov byte [ebp - 4], 0x40
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x158]
push eax
lea ecx, [ecx + 0x1ac]
mov byte [ebp - 4], 0x15
call fcn.00404410
push eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x41
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d94c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x14c]
push 0x469da0
push esi
call fcn.00440cbb
add esp, 8
test eax, eax
je 0x40d97f
push 0x467e10
lea ecx, [ebp - 0x14c]
call fcn.00410b10
mov byte [ebp - 0x174], 0
test eax, eax
jne 0x40d986
mov byte [ebp - 0x174], 1
push esi
push str._Wait_for_SIA___s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
jmp 0x40d9aa
mov byte [ebp - 0x174], 1
push ecx
mov ecx, esp
push 0x467cbc
call fcn.00406740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x158]
push eax
lea ecx, [ecx + 0x1ac]
call fcn.00404350
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x42
call fcn.00406090
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d9ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x168]
cmp dword [eax - 0xc], 0
jne 0x40da1b
push str.sia.exe
lea ecx, [ebp - 0x168]
call fcn.004066f0
cmp byte [ebp - 0x159], 0
je 0x40da34
push str.sia2.exe
lea ecx, [ebp - 0x168]
call fcn.004066f0
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.00405730
add esp, 0xc
push 0
mov byte [ebp - 4], 0x43
push dword [eax]
lea ecx, [ebp - 0x48]
call fcn.0041d3e0
mov dword [ebp - 0x160], eax
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x158]
add eax, 0xfffffff0
mov dword [ebp - 0x154], eax
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40da95
mov ecx, dword [eax]
push dword [ebp - 0x154]
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.00405730
cmp dword [ebp - 0x160], 0
jne 0x40ddea
mov byte [ebp - 4], 0x44
push dword [eax]
lea eax, [ebp - 0x188]
push str.SIA_executable__s_not_found__
push eax
call fcn.00405f50
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
add esp, 0x18
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40daf9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x188]
push edi
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
jne 0x40db30
push ecx
mov ecx, dword [ebp - 0x18]
push 0x10
push edi
lea ecx, [ecx + 0x1ac]
call fcn.00404b60
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x48]
mov dword [eax + 0xd0], 2
mov byte [ebp - 4], 0x14
call fcn.0041d344
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x148]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40db6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
mov edx, dword [ebp - 0x19c]
mov byte [ebp - 4], 0x11
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40db9a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dbbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0xf
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dbdc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1dc]
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dbfd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c8]
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dc1e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x180]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dc42
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x178]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dc66
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x18c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dc8a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x184]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dcae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dcce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dcee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d4]
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dd0e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c4]
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dd2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x168]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dd51
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x164]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dd74
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1cc]
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40dd94
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ddb1
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ddce
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jmp 0x40c1ff
mov byte [ebp - 4], 0x45
push dword [eax]
push str.Check_signature_of_SIA__s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x158]
add edx, 0xfffffff0
add esp, 0x20
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x40de2b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00416330
cmp eax, 6
jl 0x40e0c7
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x68], 0
call fcn.0041b4a0
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x158]
push eax
mov byte [ebp - 4], 0x46
call fcn.00405730
add esp, 0xc
mov byte [ebp - 4], 0x47
push dword [eax]
lea ecx, [ebp - 0xac]
call fcn.0041b5b0
lea ecx, [ebp - 0x158]
mov esi, eax
mov byte [ebp - 4], 0x46
call fcn.00406800
test esi, esi
jne 0x40deac
push 1
lea ecx, [ebp - 0xac]
call fcn.0041b670
lea ecx, [ebp - 0xac]
call fcn.0041b6d0
mov esi, eax
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x15
call fcn.0041b4c0
test esi, esi
je 0x40e18f
push 0x409
lea eax, [ebp - 0x154]
push esi
push eax
call fcn.00416190
push eax
lea eax, [ebp - 0x158]
push str.File_has_an_invalid_signature:
push eax
mov byte [ebp - 4], 0x4b
call fcn.00410d10
mov byte [ebp - 4], 0x4c
push dword [eax]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x28
lea ecx, [ebp - 0x158]
call fcn.00406800
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x15
call fcn.00406800
push ecx
mov ecx, esp
push str.FileInvalidSignature
mov dword [ebp - 0x2c], 0
call fcn.00406740
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
push eax
lea ecx, [edi + 0x1ac]
call fcn.00403bd0
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x160]
push eax
mov byte [ebp - 4], 0x4d
call fcn.00405730
mov byte [ebp - 4], 0x4e
push dword [eax]
lea eax, [ebp - 0x188]
push dword [ebp - 0x2c]
push eax
call fcn.00405f50
add esp, 0x18
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x4d
call fcn.00406800
mov esi, dword [ebp - 0x188]
push esi
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
cmp byte [ebp - 0x14d], 0
jne 0x40dfbf
push ecx
push 0x10
push esi
lea ecx, [edi + 0x1ac]
call fcn.00404b60
lea ecx, [ebp - 0x2c]
mov dword [edi + 0xd0], 2
call fcn.00406800
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209
push ecx
mov ecx, esp
mov dword [ebp - 0x158], esp
push str.Siemens_AG
call fcn.00406740
push ecx
mov eax, esp
lea ecx, [ebp - 0x168]
push ecx
lea ecx, [ebp - 0x164]
push ecx
push eax
mov byte [ebp - 4], 0x48
call fcn.00405730
add esp, 0xc
mov byte [ebp - 4], 0x15
call fcn.0041b770
mov esi, eax
add esp, 8
test esi, esi
je 0x40e18f
cmp esi, 0x800b010b
je 0x40debb
cmp esi, 0x800b0100
je 0x40debb
cmp esi, 0x80092009
je 0x40debb
push 0x409
lea eax, [ebp - 0x154]
push esi
push eax
call fcn.00416190
push eax
lea eax, [ebp - 0x158]
push str.File_has_an_invalid_signature_but_check_skipped:
push eax
mov byte [ebp - 4], 0x49
call fcn.00410d10
mov byte [ebp - 4], 0x4a
push dword [eax]
push dword [ebp - 0x148]
push 0
push 0x47d0b4
call fcn.00417de0
add esp, 0x28
lea ecx, [ebp - 0x158]
call fcn.00406800
lea ecx, [ebp - 0x154]
mov byte [ebp - 4], 0x15
call fcn.00406800
push str.SIA_has_a_valid_signature
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
lea ecx, [ebp + 8]
push str.__starter
call fcn.00405050
mov bl, byte [ebp - 0x174]
test bl, bl
jne 0x40e1cd
push str.__cleanup
lea ecx, [ebp + 8]
call fcn.00405050
cmp byte [ebp - 0x159], 0
jne 0x40e20a
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00406170
lea eax, [ebp - 0x158]
push eax
call fcn.0040fc10
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x4f
call fcn.00406090
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x15
call fcn.00406800
push dword [ebp + 8]
push str._CommandLine:__s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.00405730
mov byte [ebp - 4], 0x50
push dword [ebp + 8]
push dword [eax]
push str.Start_SIA__s__Param:__s
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x38
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x15
call fcn.00406800
lea ecx, [ebp - 0x48]
call fcn.0041d394
mov eax, dword [ebp + 8]
push 0
push dword [ebp - 0x174]
add eax, 0xfffffff0
push ecx
mov dword [ebp - 0x158], esp
mov esi, esp
push eax
call fcn.00406100
add eax, 0x10
mov dword [esi], eax
mov eax, esp
lea ecx, [ebp - 0x168]
push ecx
lea ecx, [ebp - 0x164]
push ecx
push eax
mov byte [ebp - 4], 0x51
call fcn.00405730
add esp, 0xc
mov byte [ebp - 4], 0x15
call fcn.004172f0
mov esi, dword [ebp - 0x18]
add esp, 0x10
mov dword [esi + 0xd0], eax
test bl, bl
je 0x40e317
push 0x409
push eax
lea eax, [ebp - 0x158]
push eax
call fcn.00416190
mov byte [ebp - 4], 0x52
push dword [eax]
mov ecx, dword [esi + 0xd0]
push ecx
push ecx
push str.SIA_returns__lu__0x_x___message__s__
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x28
lea ecx, [ebp - 0x158]
call fcn.00406800
jmp 0x40e33b
push str.SIAStarter_do_not_wait_for_SIA__return_0
push dword [ebp - 0x148]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
mov dword [esi + 0xd0], 0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
call fcn.0041d344
lea ecx, [ebp - 0x148]
call fcn.00406800
lea ecx, [ebp - 0x19]
mov byte [ebp - 4], 0x12
call fcn.00405e80
lea ecx, [ebp - 0x190]
call fcn.00406800
lea ecx, [ebp - 0x1a4]
call fcn.00406800
lea ecx, [ebp - 0x1bc]
call fcn.00406800
lea ecx, [ebp - 0x1b0]
call fcn.00406800
lea ecx, [ebp - 0x1b8]
call fcn.00406800
lea ecx, [ebp - 0x180]
call fcn.00406800
lea ecx, [ebp - 0x178]
call fcn.00406800
lea ecx, [ebp - 0x18c]
call fcn.00406800
lea ecx, [ebp - 0x184]
call fcn.00406800
lea ecx, [ebp - 0x198]
call fcn.00406800
lea ecx, [ebp - 0x1a0]
call fcn.00406800
lea ecx, [ebp - 0x1a8]
call fcn.00406800
lea ecx, [ebp - 0x1ac]
call fcn.00406800
lea ecx, [ebp - 0x168]
call fcn.00406800
lea ecx, [ebp - 0x164]
call fcn.00406800
lea ecx, [ebp - 0x1b4]
call fcn.00406800
lea ecx, [ebp - 0x188]
call fcn.00406800
lea ecx, [ebp - 0x14c]
call fcn.00406800
lea ecx, [ebp + 8]
call fcn.00406800
jmp 0x40c209