Function at 0x4351e0
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c9eee
mov eax, dword fs:[0]
push eax
sub esp, 0xa18
push esi
mov eax, dword [0x50545c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x990], ecx
mov dword [ebp - 4], 1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0x268]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4352c0
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x38]
call fcn.00412940
mov byte [ebp - 4], 2
mov edx, dword [ebp + 8]
push edx
push str._WARN_._Update_._CopyDirSub__Source_path___s__not_Exists_
lea eax, [ebp - 0x38]
push eax
call fcn.00413630
add esp, 0xc
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.00442d80
add esp, 4
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x26c], edx
mov ecx, dword [ebp - 0x26c]
call fcn.004029d0
mov byte [ebp - 4], 0
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x270]
call fcn.004029d0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp + 0xc]
sub ecx, 0x10
mov dword [ebp - 0x274], ecx
mov ecx, dword [ebp - 0x274]
call fcn.004029d0
jmp 0x438f99
lea ecx, [ebp - 0x24]
call fcn.00452618
mov byte [ebp - 4], 3
push 0x4d3b3c
lea ecx, [ebp - 0xd0]
call fcn.00412370
mov byte [ebp - 4], 4
lea edx, [ebp - 0xd0]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x2c]
push ecx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xd0]
sub edx, 0x10
mov dword [ebp - 0x27c], edx
mov ecx, dword [ebp - 0x27c]
call fcn.004029d0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x280], eax
push 0
mov ecx, dword [ebp - 0x280]
push ecx
lea ecx, [ebp - 0x24]
call fcn.004526d5
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x43539d
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x2c]
sub edx, 0x10
mov dword [ebp - 0x284], edx
mov ecx, dword [ebp - 0x284]
call fcn.004029d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00452641
mov byte [ebp - 4], 0
mov eax, dword [ebp + 8]
sub eax, 0x10
mov dword [ebp - 0x288], eax
mov ecx, dword [ebp - 0x288]
call fcn.004029d0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp + 0xc]
sub ecx, 0x10
mov dword [ebp - 0x28c], ecx
mov ecx, dword [ebp - 0x28c]
call fcn.004029d0
jmp 0x438f99
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x28]
call fcn.00412940
mov byte [ebp - 4], 7
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x34], 0
je 0x438f52
lea ecx, [ebp - 0x24]
call fcn.0045221f
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x24]
call fcn.004525c2
test eax, eax
je 0x4353e5
jmp 0x4353c2
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x40]
call fcn.00412990
mov byte [ebp - 4], 8
push 1
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov dword [ebp - 0x294], eax
mov edx, dword [ebp - 0x294]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x290], ecx
cmp dword [ebp - 0x290], 1
jne 0x43544e
push 0
mov ecx, dword [ebp - 0x294]
call fcn.0040fd40
movzx edx, ax
mov eax, 0x5c
movzx ecx, ax
cmp edx, ecx
jne 0x43544e
mov dword [ebp - 0x994], 0
jmp 0x435458
mov dword [ebp - 0x994], 1
mov dl, byte [ebp - 0x994]
mov byte [ebp - 0xd1], dl
mov eax, dword [ebp - 0xd8]
sub eax, 0x10
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0x298]
call fcn.004029d0
movzx ecx, byte [ebp - 0xd1]
test ecx, ecx
je 0x4354e1
push 0x5c
lea edx, [ebp - 0x40]
push edx
lea eax, [ebp - 0xdc]
push eax
call fcn.00444e30
add esp, 0xc
mov dword [ebp - 0x998], eax
mov ecx, dword [ebp - 0x998]
mov dword [ebp - 0x29c], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x29c]
push edx
lea ecx, [ebp - 0x40]
call fcn.00412a10
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xdc]
sub eax, 0x10
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2a0]
call fcn.004029d0
lea ecx, [ebp - 0xe0]
push ecx
lea ecx, [ebp - 0x24]
call fcn.004529c1
mov dword [ebp - 0x99c], eax
mov edx, dword [ebp - 0x99c]
mov dword [ebp - 0x2ac], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x2a4], edx
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [eax]
mov dword [ebp - 0x2a8], ecx
mov edx, dword [ebp - 0x2a4]
push edx
mov eax, dword [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x40]
call fcn.00411880
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xe0]
sub ecx, 0x10
mov dword [ebp - 0x2b0], ecx
mov ecx, dword [ebp - 0x2b0]
call fcn.004029d0
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 0x3c]
call fcn.00412990
mov byte [ebp - 4], 0xb
push 1
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f040
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x2b4], eax
cmp dword [ebp - 0x2b4], 1
jne 0x4355c2
push 0
mov ecx, dword [ebp - 0x2b8]
call fcn.0040fd40
movzx ecx, ax
mov edx, 0x5c
movzx eax, dx
cmp ecx, eax
jne 0x4355c2
mov dword [ebp - 0x9a0], 0
jmp 0x4355cc
mov dword [ebp - 0x9a0], 1
mov cl, byte [ebp - 0x9a0]
mov byte [ebp - 0xe1], cl
mov edx, dword [ebp - 0xe8]
sub edx, 0x10
mov dword [ebp - 0x2bc], edx
mov ecx, dword [ebp - 0x2bc]
call fcn.004029d0
movzx eax, byte [ebp - 0xe1]
test eax, eax
je 0x435655
push 0x5c
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0xec]
push edx
call fcn.00444e30
add esp, 0xc
mov dword [ebp - 0x9a4], eax
mov eax, dword [ebp - 0x9a4]
mov dword [ebp - 0x2c0], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x2c0]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00412a10
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0xec]
sub edx, 0x10
mov dword [ebp - 0x2c4], edx
mov ecx, dword [ebp - 0x2c4]
call fcn.004029d0
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004529c1
mov dword [ebp - 0x9a8], eax
mov ecx, dword [ebp - 0x9a8]
mov dword [ebp - 0x2d0], ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x2d0]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 0x2d0]
mov eax, dword [edx]
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2c8]
push ecx
mov edx, dword [ebp - 0x2cc]
push edx
lea ecx, [ebp - 0x3c]
call fcn.00411880
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xf0]
sub eax, 0x10
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x2d4]
call fcn.004029d0
push 0x10
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov eax, dword [edx + 0x38]
call eax
test eax, eax
je 0x43574e
mov ecx, dword [ebp + 0x10]
push ecx
push ecx
mov edx, esp
mov dword [ebp - 0xf4], esp
mov dword [ebp - 0x2d8], edx
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x2d8]
call fcn.00412990
mov ecx, dword [ebp - 0x2d8]
mov dword [ebp - 0x9ac], ecx
mov byte [ebp - 4], 0xe
push ecx
mov edx, esp
mov dword [ebp - 0xf8], esp
mov dword [ebp - 0x2dc], edx
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x2dc]
call fcn.00412990
mov ecx, dword [ebp - 0x2dc]
mov dword [ebp - 0x9b0], ecx
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x990]
call fcn.004351e0
jmp 0x438f35
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x4c]
call fcn.00412940
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0xfc]
push edx
lea ecx, [ebp - 0x24]
call fcn.004529c1
mov dword [ebp - 0x9b4], eax
mov eax, dword [ebp - 0x9b4]
mov dword [ebp - 0x2e0], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x2e0]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00412a10
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0xfc]
sub edx, 0x10
mov dword [ebp - 0x2e4], edx
mov ecx, dword [ebp - 0x2e4]
call fcn.004029d0
mov eax, str.UpdatePatch.exe
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2e8], eax
jne 0x4357d5
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x4357b2
xor edx, edx
jne 0x4357d9
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2ec], eax
push str.UpdatePatch.exe
mov ecx, dword [ebp - 0x2ec]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x2f0], eax
cmp dword [ebp - 0x2f0], 0
jne 0x43585f
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x2f4], edx
mov ecx, dword [ebp - 0x2f4]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x2f8], eax
mov ecx, dword [ebp - 0x2f8]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x2fc], ecx
mov ecx, dword [ebp - 0x2fc]
call fcn.004029d0
jmp 0x4353c2
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x304], edx
push 0x2e
mov eax, dword [ebp - 0x304]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x300], eax
cmp dword [ebp - 0x300], 0
jne 0x435894
mov dword [ebp - 0x9b8], 0xffffffff
jmp 0x4358a5
mov ecx, dword [ebp - 0x300]
sub ecx, dword [ebp - 0x4c]
sar ecx, 1
mov dword [ebp - 0x9b8], ecx
mov edx, dword [ebp - 0x9b8]
add edx, 1
push edx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00427550
mov byte [ebp - 4], 0x11
cmp dword [ebp + 0x10], 1
jne 0x4359b8
mov ecx, 0x4da954
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x308], ecx
jne 0x4358ec
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x4358c9
xor eax, eax
jne 0x4358f0
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x30c], ecx
push 0x4da954
mov edx, dword [ebp - 0x30c]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0
jne 0x43593b
push 0
push str.filelock
lea ecx, [ebp - 0x4c]
call fcn.0040eee0
mov ecx, eax
call fcn.0040ee60
cmp eax, 0xffffffff
jne 0x4359b3
mov dword [ebp - 0x30], 1
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x330], eax
mov ecx, dword [ebp - 0x330]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x334], ecx
mov ecx, dword [ebp - 0x334]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x338], edx
mov ecx, dword [ebp - 0x338]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x33c]
call fcn.004029d0
jmp 0x4353c2
jmp 0x435bd7
cmp dword [ebp + 0x10], 2
jne 0x435a8f
mov ecx, 0x4da938
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x340], ecx
jne 0x4359e5
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x4359c2
xor eax, eax
jne 0x4359e9
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x344], ecx
push 0x4da938
mov edx, dword [ebp - 0x344]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x348], eax
cmp dword [ebp - 0x348], 0
je 0x435a8a
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x34c], eax
mov ecx, dword [ebp - 0x34c]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x350], ecx
mov ecx, dword [ebp - 0x350]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x354], edx
mov ecx, dword [ebp - 0x354]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x358], eax
mov ecx, dword [ebp - 0x358]
call fcn.004029d0
jmp 0x4353c2
jmp 0x435bd7
cmp dword [ebp + 0x10], 3
jne 0x435bd7
mov ecx, 0x4da938
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x35c], ecx
jne 0x435abc
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x435a99
xor eax, eax
jne 0x435ac0
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x360], ecx
push 0x4da938
mov edx, dword [ebp - 0x360]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x364], eax
cmp dword [ebp - 0x364], 0
je 0x435b66
mov eax, 0x4da954
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x368], eax
jne 0x435b13
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x435af0
xor edx, edx
jne 0x435b17
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x36c], eax
push 0x4da954
mov ecx, dword [ebp - 0x36c]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x370], eax
cmp dword [ebp - 0x370], 0
jne 0x435bd7
push 0
push str.filelock
lea ecx, [ebp - 0x4c]
call fcn.0040eee0
mov ecx, eax
call fcn.0040ee60
cmp eax, 0xffffffff
je 0x435bd7
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x390], edx
mov ecx, dword [ebp - 0x390]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x394]
call fcn.004029d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x398], ecx
mov ecx, dword [ebp - 0x398]
call fcn.004029d0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x39c], edx
mov ecx, dword [ebp - 0x39c]
call fcn.004029d0
jmp 0x4353c2
cmp dword [ebp - 0x30], 0
je 0x438eed
mov ecx, dword [ebp - 0x990]
call fcn.0043cbb0
test eax, eax
je 0x43778f
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3a4], eax
push 0x2e
mov ecx, dword [ebp - 0x3a4]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x3a0], eax
cmp dword [ebp - 0x3a0], 0
jne 0x435c29
mov dword [ebp - 0x9bc], 0xffffffff
jmp 0x435c3a
mov edx, dword [ebp - 0x3a0]
sub edx, dword [ebp - 0x4c]
sar edx, 1
mov dword [ebp - 0x9bc], edx
push 4
mov eax, dword [ebp - 0x9bc]
sub eax, 4
push eax
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004250f0
mov byte [ebp - 4], 0x12
push str.WINXP
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
jne 0x435c9c
push str.WINSVR2003
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
je 0x4361c7
mov eax, str.XP64
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x3c8], eax
jne 0x435cbf
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x435c9c
xor edx, edx
jne 0x435cc3
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x3cc], eax
push str.XP64
mov ecx, dword [ebp - 0x3cc]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0
je 0x435d83
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x50]
sub edx, 0x10
mov dword [ebp - 0x3d4], edx
mov ecx, dword [ebp - 0x3d4]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d8]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x3dc], ecx
mov ecx, dword [ebp - 0x3dc]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x3e0], edx
mov ecx, dword [ebp - 0x3e0]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x3e4], eax
mov ecx, dword [ebp - 0x3e4]
call fcn.004029d0
jmp 0x4353c2
mov ecx, dword [ebp - 0x990]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x3ec], edx
push 0x2e
mov eax, dword [ebp - 0x3ec]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x3e8], eax
cmp dword [ebp - 0x3e8], 0
jne 0x435dc8
mov dword [ebp - 0x9c0], 0xffffffff
jmp 0x435dd9
mov ecx, dword [ebp - 0x3e8]
sub ecx, dword [ebp - 0x40]
sar ecx, 1
mov dword [ebp - 0x9c0], ecx
mov edx, dword [ebp - 0x9c0]
sub edx, 4
push edx
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3f8], eax
push 0x2e
mov ecx, dword [ebp - 0x3f8]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x3f4], eax
cmp dword [ebp - 0x3f4], 0
jne 0x435e34
mov dword [ebp - 0x9c4], 0xffffffff
jmp 0x435e45
mov edx, dword [ebp - 0x3f4]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9c4], edx
mov eax, dword [ebp - 0x3f0]
sub eax, dword [ebp - 0x9c4]
push eax
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0x5c]
push edx
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x54]
push ecx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x15
push 0x80
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x100]
call fcn.00412370
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x54]
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x400], eax
mov eax, dword [ebp - 0x400]
mov ecx, dword [eax]
mov dword [ebp - 0x404], ecx
mov edx, dword [ebp - 0x404]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x104]
sub eax, 0x10
mov dword [ebp - 0x408], eax
mov ecx, dword [ebp - 0x408]
call fcn.004029d0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x100]
sub ecx, 0x10
mov dword [ebp - 0x40c], ecx
mov ecx, dword [ebp - 0x40c]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x108]
call fcn.00412370
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x108]
push edx
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x10c]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x414], eax
mov edx, dword [ebp - 0x414]
mov eax, dword [edx]
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x418]
push ecx
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x10c]
sub eax, 0x10
mov dword [ebp - 0x41c], eax
mov ecx, dword [ebp - 0x41c]
call fcn.004029d0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x108]
sub ecx, 0x10
mov dword [ebp - 0x420], ecx
mov ecx, dword [ebp - 0x420]
call fcn.004029d0
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x424], edx
push 0
mov eax, dword [ebp - 0x424]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x114]
call fcn.00412370
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x118]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x42c], eax
mov edx, dword [ebp - 0x42c]
mov eax, dword [edx]
mov dword [ebp - 0x430], eax
mov ecx, dword [ebp - 0x430]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x10d], al
mov edx, dword [ebp - 0x118]
sub edx, 0x10
mov dword [ebp - 0x434], edx
mov ecx, dword [ebp - 0x434]
call fcn.004029d0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x114]
sub eax, 0x10
mov dword [ebp - 0x438], eax
mov ecx, dword [ebp - 0x438]
call fcn.004029d0
movzx ecx, byte [ebp - 0x10d]
test ecx, ecx
je 0x4360e5
push 0x4d33a8
lea ecx, [ebp - 0x11c]
call fcn.00412370
mov byte [ebp - 4], 0x19
lea edx, [ebp - 0x11c]
push edx
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x120]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x440], eax
mov edx, dword [ebp - 0x440]
mov eax, dword [edx]
mov dword [ebp - 0x444], eax
push 4
push 0
mov ecx, dword [ebp - 0x444]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x120]
sub edx, 0x10
mov dword [ebp - 0x448], edx
mov ecx, dword [ebp - 0x448]
call fcn.004029d0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x11c]
sub eax, 0x10
mov dword [ebp - 0x44c], eax
mov ecx, dword [ebp - 0x44c]
call fcn.004029d0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x54]
sub ecx, 0x10
mov dword [ebp - 0x450], ecx
mov ecx, dword [ebp - 0x450]
call fcn.004029d0
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x5c]
sub edx, 0x10
mov dword [ebp - 0x454], edx
mov ecx, dword [ebp - 0x454]
call fcn.004029d0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x58]
sub eax, 0x10
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x458]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x50]
sub ecx, 0x10
mov dword [ebp - 0x45c], ecx
mov ecx, dword [ebp - 0x45c]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x460], edx
mov ecx, dword [ebp - 0x460]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp - 0x464]
call fcn.004029d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x468], ecx
mov ecx, dword [ebp - 0x468]
call fcn.004029d0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x46c], edx
mov ecx, dword [ebp - 0x46c]
call fcn.004029d0
jmp 0x4353c2
push str.WIN2000
mov eax, dword [ebp - 0x990]
add eax, 0xd0
push eax
call fcn.00444f00
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x43620c
push str.WINNT4
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
je 0x436737
mov ecx, str.2k64
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x490], ecx
jne 0x43622f
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x43620c
xor eax, eax
jne 0x436233
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x494], ecx
push str.2k64
mov edx, dword [ebp - 0x494]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x498], eax
cmp dword [ebp - 0x498], 0
je 0x4362f3
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x50]
sub eax, 0x10
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x4a0], ecx
mov ecx, dword [ebp - 0x4a0]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x4a4], edx
mov ecx, dword [ebp - 0x4a4]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x4a8], eax
mov ecx, dword [ebp - 0x4a8]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x4ac], ecx
mov ecx, dword [ebp - 0x4ac]
call fcn.004029d0
jmp 0x4353c2
mov edx, dword [ebp - 0x990]
mov dword [edx + 0xd4], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x4b4], eax
push 0x2e
mov ecx, dword [ebp - 0x4b4]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x436338
mov dword [ebp - 0x9c8], 0xffffffff
jmp 0x436349
mov edx, dword [ebp - 0x4b0]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9c8], edx
mov eax, dword [ebp - 0x9c8]
sub eax, 4
push eax
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x40]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x4c0], ecx
push 0x2e
mov edx, dword [ebp - 0x4c0]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x4bc], eax
cmp dword [ebp - 0x4bc], 0
jne 0x4363a4
mov dword [ebp - 0x9cc], 0xffffffff
jmp 0x4363b5
mov eax, dword [ebp - 0x4bc]
sub eax, dword [ebp - 0x40]
sar eax, 1
mov dword [ebp - 0x9cc], eax
mov ecx, dword [ebp - 0x4b8]
sub ecx, dword [ebp - 0x9cc]
push ecx
lea edx, [ebp - 0x68]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x60]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x1c
push 0x80
mov eax, dword [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x124]
call fcn.00412370
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x124]
push ecx
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x128]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4c8]
mov edx, dword [ecx]
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x4cc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x128]
sub ecx, 0x10
mov dword [ebp - 0x4d0], ecx
mov ecx, dword [ebp - 0x4d0]
call fcn.004029d0
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x124]
sub edx, 0x10
mov dword [ebp - 0x4d4], edx
mov ecx, dword [ebp - 0x4d4]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x12c]
call fcn.00412370
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x130]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x4dc], eax
mov eax, dword [ebp - 0x4dc]
mov ecx, dword [eax]
mov dword [ebp - 0x4e0], ecx
mov edx, dword [ebp - 0x4e0]
push edx
mov eax, dword [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0x130]
sub ecx, 0x10
mov dword [ebp - 0x4e4], ecx
mov ecx, dword [ebp - 0x4e4]
call fcn.004029d0
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x12c]
sub edx, 0x10
mov dword [ebp - 0x4e8], edx
mov ecx, dword [ebp - 0x4e8]
call fcn.004029d0
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x4ec], eax
push 0
mov ecx, dword [ebp - 0x4ec]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x138]
call fcn.00412370
mov byte [ebp - 4], 0x1f
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x13c]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x4f4], eax
mov eax, dword [ebp - 0x4f4]
mov ecx, dword [eax]
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x4f8]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x131], al
mov eax, dword [ebp - 0x13c]
sub eax, 0x10
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x4fc]
call fcn.004029d0
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x138]
sub ecx, 0x10
mov dword [ebp - 0x500], ecx
mov ecx, dword [ebp - 0x500]
call fcn.004029d0
movzx edx, byte [ebp - 0x131]
test edx, edx
je 0x436655
push 0x4d33a8
lea ecx, [ebp - 0x140]
call fcn.00412370
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x144]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x508], eax
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax]
mov dword [ebp - 0x50c], ecx
push 4
push 0
mov edx, dword [ebp - 0x50c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x144]
sub eax, 0x10
mov dword [ebp - 0x510], eax
mov ecx, dword [ebp - 0x510]
call fcn.004029d0
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x140]
sub ecx, 0x10
mov dword [ebp - 0x514], ecx
mov ecx, dword [ebp - 0x514]
call fcn.004029d0
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x60]
sub edx, 0x10
mov dword [ebp - 0x518], edx
mov ecx, dword [ebp - 0x518]
call fcn.004029d0
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x68]
sub eax, 0x10
mov dword [ebp - 0x51c], eax
mov ecx, dword [ebp - 0x51c]
call fcn.004029d0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x64]
sub ecx, 0x10
mov dword [ebp - 0x520], ecx
mov ecx, dword [ebp - 0x520]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x50]
sub edx, 0x10
mov dword [ebp - 0x524], edx
mov ecx, dword [ebp - 0x524]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x528]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x52c], ecx
mov ecx, dword [ebp - 0x52c]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x530], edx
mov ecx, dword [ebp - 0x530]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x534], eax
mov ecx, dword [ebp - 0x534]
call fcn.004029d0
jmp 0x4353c2
push str.WINVISTA
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
je 0x436c87
mov eax, str.LH64
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x548], eax
jne 0x43677f
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x43675c
xor edx, edx
jne 0x436783
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x54c], eax
push str.LH64
mov ecx, dword [ebp - 0x54c]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x550], eax
cmp dword [ebp - 0x550], 0
je 0x436843
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x50]
sub edx, 0x10
mov dword [ebp - 0x554], edx
mov ecx, dword [ebp - 0x554]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x558]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x55c], ecx
mov ecx, dword [ebp - 0x55c]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x560], edx
mov ecx, dword [ebp - 0x560]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x564], eax
mov ecx, dword [ebp - 0x564]
call fcn.004029d0
jmp 0x4353c2
mov ecx, dword [ebp - 0x990]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x56c], edx
push 0x2e
mov eax, dword [ebp - 0x56c]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x568], eax
cmp dword [ebp - 0x568], 0
jne 0x436888
mov dword [ebp - 0x9d0], 0xffffffff
jmp 0x436899
mov ecx, dword [ebp - 0x568]
sub ecx, dword [ebp - 0x40]
sar ecx, 1
mov dword [ebp - 0x9d0], ecx
mov edx, dword [ebp - 0x9d0]
sub edx, 4
push edx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x570], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x578], eax
push 0x2e
mov ecx, dword [ebp - 0x578]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x574], eax
cmp dword [ebp - 0x574], 0
jne 0x4368f4
mov dword [ebp - 0x9d4], 0xffffffff
jmp 0x436905
mov edx, dword [ebp - 0x574]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9d4], edx
mov eax, dword [ebp - 0x570]
sub eax, dword [ebp - 0x9d4]
push eax
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x22
lea edx, [ebp - 0x74]
push edx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x6c]
push ecx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x23
push 0x80
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x148]
call fcn.00412370
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x6c]
push ecx
lea edx, [ebp - 0x14c]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x580], eax
mov eax, dword [ebp - 0x580]
mov ecx, dword [eax]
mov dword [ebp - 0x584], ecx
mov edx, dword [ebp - 0x584]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x14c]
sub eax, 0x10
mov dword [ebp - 0x588], eax
mov ecx, dword [ebp - 0x588]
call fcn.004029d0
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x148]
sub ecx, 0x10
mov dword [ebp - 0x58c], ecx
mov ecx, dword [ebp - 0x58c]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x150]
call fcn.00412370
mov byte [ebp - 4], 0x25
lea edx, [ebp - 0x150]
push edx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x154]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x594], eax
mov edx, dword [ebp - 0x594]
mov eax, dword [edx]
mov dword [ebp - 0x598], eax
mov ecx, dword [ebp - 0x598]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x154]
sub eax, 0x10
mov dword [ebp - 0x59c], eax
mov ecx, dword [ebp - 0x59c]
call fcn.004029d0
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x150]
sub ecx, 0x10
mov dword [ebp - 0x5a0], ecx
mov ecx, dword [ebp - 0x5a0]
call fcn.004029d0
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x5a4], edx
push 0
mov eax, dword [ebp - 0x5a4]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x15c]
call fcn.00412370
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0x15c]
push edx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x160]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x5ac], eax
mov edx, dword [ebp - 0x5ac]
mov eax, dword [edx]
mov dword [ebp - 0x5b0], eax
mov ecx, dword [ebp - 0x5b0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x155], al
mov edx, dword [ebp - 0x160]
sub edx, 0x10
mov dword [ebp - 0x5b4], edx
mov ecx, dword [ebp - 0x5b4]
call fcn.004029d0
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x15c]
sub eax, 0x10
mov dword [ebp - 0x5b8], eax
mov ecx, dword [ebp - 0x5b8]
call fcn.004029d0
movzx ecx, byte [ebp - 0x155]
test ecx, ecx
je 0x436ba5
push 0x4d33a8
lea ecx, [ebp - 0x164]
call fcn.00412370
mov byte [ebp - 4], 0x27
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x168]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x5c0], eax
mov edx, dword [ebp - 0x5c0]
mov eax, dword [edx]
mov dword [ebp - 0x5c4], eax
push 4
push 0
mov ecx, dword [ebp - 0x5c4]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x168]
sub edx, 0x10
mov dword [ebp - 0x5c8], edx
mov ecx, dword [ebp - 0x5c8]
call fcn.004029d0
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x164]
sub eax, 0x10
mov dword [ebp - 0x5cc], eax
mov ecx, dword [ebp - 0x5cc]
call fcn.004029d0
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x6c]
sub ecx, 0x10
mov dword [ebp - 0x5d0], ecx
mov ecx, dword [ebp - 0x5d0]
call fcn.004029d0
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x74]
sub edx, 0x10
mov dword [ebp - 0x5d4], edx
mov ecx, dword [ebp - 0x5d4]
call fcn.004029d0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x70]
sub eax, 0x10
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x5d8]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x50]
sub ecx, 0x10
mov dword [ebp - 0x5dc], ecx
mov ecx, dword [ebp - 0x5dc]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x5e0], edx
mov ecx, dword [ebp - 0x5e0]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x5e4], eax
mov ecx, dword [ebp - 0x5e4]
call fcn.004029d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x5e8], ecx
mov ecx, dword [ebp - 0x5e8]
call fcn.004029d0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x5ec], edx
mov ecx, dword [ebp - 0x5ec]
call fcn.004029d0
jmp 0x4353c2
push str.WINDOWS7
mov eax, dword [ebp - 0x990]
add eax, 0xd0
push eax
call fcn.00444f00
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x436ccc
push str.WINDOWS8
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
je 0x4371f7
mov ecx, str.W764
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x610], ecx
jne 0x436cef
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x436ccc
xor eax, eax
jne 0x436cf3
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x614], ecx
push str.W764
mov edx, dword [ebp - 0x614]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x618], eax
cmp dword [ebp - 0x618], 0
je 0x436db3
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x50]
sub eax, 0x10
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x61c]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x620], ecx
mov ecx, dword [ebp - 0x620]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x624], edx
mov ecx, dword [ebp - 0x624]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x628], eax
mov ecx, dword [ebp - 0x628]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x62c], ecx
mov ecx, dword [ebp - 0x62c]
call fcn.004029d0
jmp 0x4353c2
mov edx, dword [ebp - 0x990]
mov dword [edx + 0xd4], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x634], eax
push 0x2e
mov ecx, dword [ebp - 0x634]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0
jne 0x436df8
mov dword [ebp - 0x9d8], 0xffffffff
jmp 0x436e09
mov edx, dword [ebp - 0x630]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9d8], edx
mov eax, dword [ebp - 0x9d8]
sub eax, 4
push eax
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x40]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x638], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x640], ecx
push 0x2e
mov edx, dword [ebp - 0x640]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x63c], eax
cmp dword [ebp - 0x63c], 0
jne 0x436e64
mov dword [ebp - 0x9dc], 0xffffffff
jmp 0x436e75
mov eax, dword [ebp - 0x63c]
sub eax, dword [ebp - 0x40]
sar eax, 1
mov dword [ebp - 0x9dc], eax
mov ecx, dword [ebp - 0x638]
sub ecx, dword [ebp - 0x9dc]
push ecx
lea edx, [ebp - 0x80]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x7c]
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x2a
push 0x80
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x16c]
call fcn.00412370
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x78]
push edx
lea eax, [ebp - 0x170]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x648], eax
mov ecx, dword [ebp - 0x648]
mov edx, dword [ecx]
mov dword [ebp - 0x64c], edx
mov eax, dword [ebp - 0x64c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x170]
sub ecx, 0x10
mov dword [ebp - 0x650], ecx
mov ecx, dword [ebp - 0x650]
call fcn.004029d0
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0x16c]
sub edx, 0x10
mov dword [ebp - 0x654], edx
mov ecx, dword [ebp - 0x654]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x174]
call fcn.00412370
mov byte [ebp - 4], 0x2c
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x78]
push ecx
lea edx, [ebp - 0x178]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x65c], eax
mov eax, dword [ebp - 0x65c]
mov ecx, dword [eax]
mov dword [ebp - 0x660], ecx
mov edx, dword [ebp - 0x660]
push edx
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0x178]
sub ecx, 0x10
mov dword [ebp - 0x664], ecx
mov ecx, dword [ebp - 0x664]
call fcn.004029d0
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0x174]
sub edx, 0x10
mov dword [ebp - 0x668], edx
mov ecx, dword [ebp - 0x668]
call fcn.004029d0
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x66c], eax
push 0
mov ecx, dword [ebp - 0x66c]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x180]
call fcn.00412370
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x78]
push ecx
lea edx, [ebp - 0x184]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x674]
mov ecx, dword [eax]
mov dword [ebp - 0x678], ecx
mov edx, dword [ebp - 0x678]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x179], al
mov eax, dword [ebp - 0x184]
sub eax, 0x10
mov dword [ebp - 0x67c], eax
mov ecx, dword [ebp - 0x67c]
call fcn.004029d0
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x180]
sub ecx, 0x10
mov dword [ebp - 0x680], ecx
mov ecx, dword [ebp - 0x680]
call fcn.004029d0
movzx edx, byte [ebp - 0x179]
test edx, edx
je 0x437115
push 0x4d33a8
lea ecx, [ebp - 0x188]
call fcn.00412370
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0x78]
push ecx
lea edx, [ebp - 0x18c]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x688], eax
mov eax, dword [ebp - 0x688]
mov ecx, dword [eax]
mov dword [ebp - 0x68c], ecx
push 4
push 0
mov edx, dword [ebp - 0x68c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x18c]
sub eax, 0x10
mov dword [ebp - 0x690], eax
mov ecx, dword [ebp - 0x690]
call fcn.004029d0
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x188]
sub ecx, 0x10
mov dword [ebp - 0x694], ecx
mov ecx, dword [ebp - 0x694]
call fcn.004029d0
mov byte [ebp - 4], 0x29
mov edx, dword [ebp - 0x78]
sub edx, 0x10
mov dword [ebp - 0x698], edx
mov ecx, dword [ebp - 0x698]
call fcn.004029d0
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x80]
sub eax, 0x10
mov dword [ebp - 0x69c], eax
mov ecx, dword [ebp - 0x69c]
call fcn.004029d0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x7c]
sub ecx, 0x10
mov dword [ebp - 0x6a0], ecx
mov ecx, dword [ebp - 0x6a0]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x50]
sub edx, 0x10
mov dword [ebp - 0x6a4], edx
mov ecx, dword [ebp - 0x6a4]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x6a8], eax
mov ecx, dword [ebp - 0x6a8]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x6ac], ecx
mov ecx, dword [ebp - 0x6ac]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x6b0], edx
mov ecx, dword [ebp - 0x6b0]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x6b4], eax
mov ecx, dword [ebp - 0x6b4]
call fcn.004029d0
jmp 0x4353c2
push str.WINDOWS10
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
je 0x43776f
mov eax, str.W864
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x6c8], eax
jne 0x43723f
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x43721c
xor edx, edx
jne 0x437243
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x6cc], eax
push str.W864
mov ecx, dword [ebp - 0x6cc]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6d0], eax
cmp dword [ebp - 0x6d0], 0
je 0x437303
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x50]
sub edx, 0x10
mov dword [ebp - 0x6d4], edx
mov ecx, dword [ebp - 0x6d4]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x6d8], eax
mov ecx, dword [ebp - 0x6d8]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x6dc], ecx
mov ecx, dword [ebp - 0x6dc]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x6e0], edx
mov ecx, dword [ebp - 0x6e0]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x6e4], eax
mov ecx, dword [ebp - 0x6e4]
call fcn.004029d0
jmp 0x4353c2
mov ecx, dword [ebp - 0x990]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x6ec], edx
push 0x2e
mov eax, dword [ebp - 0x6ec]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x6e8], eax
cmp dword [ebp - 0x6e8], 0
jne 0x437348
mov dword [ebp - 0x9e0], 0xffffffff
jmp 0x437359
mov ecx, dword [ebp - 0x6e8]
sub ecx, dword [ebp - 0x40]
sar ecx, 1
mov dword [ebp - 0x9e0], ecx
mov edx, dword [ebp - 0x9e0]
sub edx, 4
push edx
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x6f0], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x6f8], eax
push 0x2e
mov ecx, dword [ebp - 0x6f8]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x6f4], eax
cmp dword [ebp - 0x6f4], 0
jne 0x4373b7
mov dword [ebp - 0x9e4], 0xffffffff
jmp 0x4373c8
mov edx, dword [ebp - 0x6f4]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9e4], edx
mov eax, dword [ebp - 0x6f0]
sub eax, dword [ebp - 0x9e4]
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x30
lea edx, [ebp - 0x8c]
push edx
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x84]
push ecx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x31
push 0x80
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x190]
call fcn.00412370
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0x190]
push eax
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x194]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
mov ecx, dword [eax]
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x704]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x194]
sub eax, 0x10
mov dword [ebp - 0x708], eax
mov ecx, dword [ebp - 0x708]
call fcn.004029d0
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x190]
sub ecx, 0x10
mov dword [ebp - 0x70c], ecx
mov ecx, dword [ebp - 0x70c]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x198]
call fcn.00412370
mov byte [ebp - 4], 0x33
lea edx, [ebp - 0x198]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x19c]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x714], eax
mov edx, dword [ebp - 0x714]
mov eax, dword [edx]
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x718]
push ecx
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x19c]
sub eax, 0x10
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x71c]
call fcn.004029d0
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x198]
sub ecx, 0x10
mov dword [ebp - 0x720], ecx
mov ecx, dword [ebp - 0x720]
call fcn.004029d0
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x724], edx
push 0
mov eax, dword [ebp - 0x724]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x1a4]
call fcn.00412370
mov byte [ebp - 4], 0x34
lea edx, [ebp - 0x1a4]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x1a8]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x72c], eax
mov edx, dword [ebp - 0x72c]
mov eax, dword [edx]
mov dword [ebp - 0x730], eax
mov ecx, dword [ebp - 0x730]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x19d], al
mov edx, dword [ebp - 0x1a8]
sub edx, 0x10
mov dword [ebp - 0x734], edx
mov ecx, dword [ebp - 0x734]
call fcn.004029d0
mov byte [ebp - 4], 0x31
mov eax, dword [ebp - 0x1a4]
sub eax, 0x10
mov dword [ebp - 0x738], eax
mov ecx, dword [ebp - 0x738]
call fcn.004029d0
movzx ecx, byte [ebp - 0x19d]
test ecx, ecx
je 0x437689
push 0x4d33a8
lea ecx, [ebp - 0x1ac]
call fcn.00412370
mov byte [ebp - 4], 0x35
lea edx, [ebp - 0x1ac]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x1b0]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x740], eax
mov edx, dword [ebp - 0x740]
mov eax, dword [edx]
mov dword [ebp - 0x744], eax
push 4
push 0
mov ecx, dword [ebp - 0x744]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x1b0]
sub edx, 0x10
mov dword [ebp - 0x748], edx
mov ecx, dword [ebp - 0x748]
call fcn.004029d0
mov byte [ebp - 4], 0x31
mov eax, dword [ebp - 0x1ac]
sub eax, 0x10
mov dword [ebp - 0x74c], eax
mov ecx, dword [ebp - 0x74c]
call fcn.004029d0
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x84]
sub ecx, 0x10
mov dword [ebp - 0x750], ecx
mov ecx, dword [ebp - 0x750]
call fcn.004029d0
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x8c]
sub edx, 0x10
mov dword [ebp - 0x754], edx
mov ecx, dword [ebp - 0x754]
call fcn.004029d0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x88]
sub eax, 0x10
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 0x758]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x50]
sub ecx, 0x10
mov dword [ebp - 0x75c], ecx
mov ecx, dword [ebp - 0x75c]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x760], edx
mov ecx, dword [ebp - 0x760]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x764], eax
mov ecx, dword [ebp - 0x764]
call fcn.004029d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x768], ecx
mov ecx, dword [ebp - 0x768]
call fcn.004029d0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x76c], edx
mov ecx, dword [ebp - 0x76c]
call fcn.004029d0
jmp 0x4353c2
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x50]
sub eax, 0x10
mov dword [ebp - 0x770], eax
mov ecx, dword [ebp - 0x770]
call fcn.004029d0
jmp 0x438eed
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x778], ecx
push 0x2e
mov edx, dword [ebp - 0x778]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x774], eax
cmp dword [ebp - 0x774], 0
jne 0x4377c4
mov dword [ebp - 0x9e8], 0xffffffff
jmp 0x4377d5
mov eax, dword [ebp - 0x774]
sub eax, dword [ebp - 0x4c]
sar eax, 1
mov dword [ebp - 0x9e8], eax
push 2
mov ecx, dword [ebp - 0x9e8]
sub ecx, 2
push ecx
lea edx, [ebp - 0x90]
push edx
lea ecx, [ebp - 0x4c]
call fcn.004250f0
mov byte [ebp - 4], 0x36
push str.WINXP
mov eax, dword [ebp - 0x990]
add eax, 0xd0
push eax
call fcn.00444f00
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x437839
push str.WINSVR2003
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
je 0x437d9a
mov ecx, 0x4da8f4
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x79c], ecx
jne 0x43785c
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x437839
xor eax, eax
jne 0x437860
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x7a0], ecx
push 0x4da8f4
mov edx, dword [ebp - 0x7a0]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x7a4], eax
cmp dword [ebp - 0x7a4], 0
je 0x437926
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x90]
sub eax, 0x10
mov dword [ebp - 0x7a8], eax
mov ecx, dword [ebp - 0x7a8]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x7ac], ecx
mov ecx, dword [ebp - 0x7ac]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x7b0], edx
mov ecx, dword [ebp - 0x7b0]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x7b4], eax
mov ecx, dword [ebp - 0x7b4]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x7b8], ecx
mov ecx, dword [ebp - 0x7b8]
call fcn.004029d0
jmp 0x4353c2
mov edx, dword [ebp - 0x990]
mov dword [edx + 0xd4], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x7c0], eax
push 0x2e
mov ecx, dword [ebp - 0x7c0]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x7bc], eax
cmp dword [ebp - 0x7bc], 0
jne 0x43796b
mov dword [ebp - 0x9ec], 0xffffffff
jmp 0x43797c
mov edx, dword [ebp - 0x7bc]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9ec], edx
mov eax, dword [ebp - 0x9ec]
sub eax, 2
push eax
lea ecx, [ebp - 0x98]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x37
mov edx, dword [ebp - 0x40]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x7c4], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x7cc], ecx
push 0x2e
mov edx, dword [ebp - 0x7cc]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x7c8], eax
cmp dword [ebp - 0x7c8], 0
jne 0x4379da
mov dword [ebp - 0x9f0], 0xffffffff
jmp 0x4379eb
mov eax, dword [ebp - 0x7c8]
sub eax, dword [ebp - 0x40]
sar eax, 1
mov dword [ebp - 0x9f0], eax
mov ecx, dword [ebp - 0x7c4]
sub ecx, dword [ebp - 0x9f0]
push ecx
lea edx, [ebp - 0x9c]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x98]
push ecx
lea edx, [ebp - 0x94]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x39
push 0x80
mov eax, dword [ebp - 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x1b4]
call fcn.00412370
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x1b4]
push ecx
lea edx, [ebp - 0x94]
push edx
lea eax, [ebp - 0x1b8]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x7d4], eax
mov ecx, dword [ebp - 0x7d4]
mov edx, dword [ecx]
mov dword [ebp - 0x7d8], edx
mov eax, dword [ebp - 0x7d8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x1b8]
sub ecx, 0x10
mov dword [ebp - 0x7dc], ecx
mov ecx, dword [ebp - 0x7dc]
call fcn.004029d0
mov byte [ebp - 4], 0x39
mov edx, dword [ebp - 0x1b4]
sub edx, 0x10
mov dword [ebp - 0x7e0], edx
mov ecx, dword [ebp - 0x7e0]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x1bc]
call fcn.00412370
mov byte [ebp - 4], 0x3b
lea eax, [ebp - 0x1bc]
push eax
lea ecx, [ebp - 0x94]
push ecx
lea edx, [ebp - 0x1c0]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x7e8], eax
mov eax, dword [ebp - 0x7e8]
mov ecx, dword [eax]
mov dword [ebp - 0x7ec], ecx
mov edx, dword [ebp - 0x7ec]
push edx
mov eax, dword [ebp - 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0x1c0]
sub ecx, 0x10
mov dword [ebp - 0x7f0], ecx
mov ecx, dword [ebp - 0x7f0]
call fcn.004029d0
mov byte [ebp - 4], 0x39
mov edx, dword [ebp - 0x1bc]
sub edx, 0x10
mov dword [ebp - 0x7f4], edx
mov ecx, dword [ebp - 0x7f4]
call fcn.004029d0
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x7f8], eax
push 0
mov ecx, dword [ebp - 0x7f8]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x1c8]
call fcn.00412370
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x94]
push ecx
lea edx, [ebp - 0x1cc]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x800], eax
mov eax, dword [ebp - 0x800]
mov ecx, dword [eax]
mov dword [ebp - 0x804], ecx
mov edx, dword [ebp - 0x804]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x1c1], al
mov eax, dword [ebp - 0x1cc]
sub eax, 0x10
mov dword [ebp - 0x808], eax
mov ecx, dword [ebp - 0x808]
call fcn.004029d0
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x1c8]
sub ecx, 0x10
mov dword [ebp - 0x80c], ecx
mov ecx, dword [ebp - 0x80c]
call fcn.004029d0
movzx edx, byte [ebp - 0x1c1]
test edx, edx
je 0x437cac
push 0x4d33a8
lea ecx, [ebp - 0x1d0]
call fcn.00412370
mov byte [ebp - 4], 0x3d
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0x94]
push ecx
lea edx, [ebp - 0x1d4]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x814], eax
mov eax, dword [ebp - 0x814]
mov ecx, dword [eax]
mov dword [ebp - 0x818], ecx
push 4
push 0
mov edx, dword [ebp - 0x818]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x1d4]
sub eax, 0x10
mov dword [ebp - 0x81c], eax
mov ecx, dword [ebp - 0x81c]
call fcn.004029d0
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x1d0]
sub ecx, 0x10
mov dword [ebp - 0x820], ecx
mov ecx, dword [ebp - 0x820]
call fcn.004029d0
mov byte [ebp - 4], 0x38
mov edx, dword [ebp - 0x94]
sub edx, 0x10
mov dword [ebp - 0x824], edx
mov ecx, dword [ebp - 0x824]
call fcn.004029d0
mov byte [ebp - 4], 0x37
mov eax, dword [ebp - 0x9c]
sub eax, 0x10
mov dword [ebp - 0x828], eax
mov ecx, dword [ebp - 0x828]
call fcn.004029d0
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x98]
sub ecx, 0x10
mov dword [ebp - 0x82c], ecx
mov ecx, dword [ebp - 0x82c]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x90]
sub edx, 0x10
mov dword [ebp - 0x830], edx
mov ecx, dword [ebp - 0x830]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x834], eax
mov ecx, dword [ebp - 0x834]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x838], ecx
mov ecx, dword [ebp - 0x838]
call fcn.004029d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x83c], edx
mov ecx, dword [ebp - 0x83c]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x840], eax
mov ecx, dword [ebp - 0x840]
call fcn.004029d0
jmp 0x4353c2
push str.WIN2000
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
jne 0x437ddf
push str.WINNT4
mov eax, dword [ebp - 0x990]
add eax, 0xd0
push eax
call fcn.00444f00
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x438340
mov edx, 0x4da8ec
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x864], edx
jne 0x437e02
push 0x80004005
call fcn.00405b70
xor eax, eax
jne 0x437ddf
xor ecx, ecx
jne 0x437e06
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x868], edx
push 0x4da8ec
mov eax, dword [ebp - 0x868]
push eax
call fcn.00494296
add esp, 8
mov dword [ebp - 0x86c], eax
cmp dword [ebp - 0x86c], 0
je 0x437ecc
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x90]
sub ecx, 0x10
mov dword [ebp - 0x870], ecx
mov ecx, dword [ebp - 0x870]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x874], edx
mov ecx, dword [ebp - 0x874]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x878], eax
mov ecx, dword [ebp - 0x878]
call fcn.004029d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x87c], ecx
mov ecx, dword [ebp - 0x87c]
call fcn.004029d0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x880], edx
mov ecx, dword [ebp - 0x880]
call fcn.004029d0
jmp 0x4353c2
mov eax, dword [ebp - 0x990]
mov dword [eax + 0xd4], 1
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x888], ecx
push 0x2e
mov edx, dword [ebp - 0x888]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
jne 0x437f11
mov dword [ebp - 0x9f4], 0xffffffff
jmp 0x437f22
mov eax, dword [ebp - 0x884]
sub eax, dword [ebp - 0x40]
sar eax, 1
mov dword [ebp - 0x9f4], eax
mov ecx, dword [ebp - 0x9f4]
sub ecx, 2
push ecx
lea edx, [ebp - 0xa4]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x88c], ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x894], edx
push 0x2e
mov eax, dword [ebp - 0x894]
push eax
call fcn.00494159
add esp, 8
mov dword [ebp - 0x890], eax
cmp dword [ebp - 0x890], 0
jne 0x437f80
mov dword [ebp - 0x9f8], 0xffffffff
jmp 0x437f91
mov ecx, dword [ebp - 0x890]
sub ecx, dword [ebp - 0x40]
sar ecx, 1
mov dword [ebp - 0x9f8], ecx
mov edx, dword [ebp - 0x88c]
sub edx, dword [ebp - 0x9f8]
push edx
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0xa8]
push ecx
lea edx, [ebp - 0xa4]
push edx
lea eax, [ebp - 0xa0]
push eax
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x40
push 0x80
mov ecx, dword [ebp - 0xa0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x1d8]
call fcn.00412370
mov byte [ebp - 4], 0x41
lea edx, [ebp - 0x1d8]
push edx
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x1dc]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x89c], eax
mov edx, dword [ebp - 0x89c]
mov eax, dword [edx]
mov dword [ebp - 0x8a0], eax
mov ecx, dword [ebp - 0x8a0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x1dc]
sub edx, 0x10
mov dword [ebp - 0x8a4], edx
mov ecx, dword [ebp - 0x8a4]
call fcn.004029d0
mov byte [ebp - 4], 0x40
mov eax, dword [ebp - 0x1d8]
sub eax, 0x10
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x8a8]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x1e0]
call fcn.00412370
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x1e0]
push ecx
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0x1e4]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x8b0], eax
mov ecx, dword [ebp - 0x8b0]
mov edx, dword [ecx]
mov dword [ebp - 0x8b4], edx
mov eax, dword [ebp - 0x8b4]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov edx, dword [ebp - 0x1e4]
sub edx, 0x10
mov dword [ebp - 0x8b8], edx
mov ecx, dword [ebp - 0x8b8]
call fcn.004029d0
mov byte [ebp - 4], 0x40
mov eax, dword [ebp - 0x1e0]
sub eax, 0x10
mov dword [ebp - 0x8bc], eax
mov ecx, dword [ebp - 0x8bc]
call fcn.004029d0
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x8c0], ecx
push 0
mov edx, dword [ebp - 0x8c0]
push edx
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x1ec]
call fcn.00412370
mov byte [ebp - 4], 0x43
lea ecx, [ebp - 0x1ec]
push ecx
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0x1f0]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8c8]
mov edx, dword [ecx]
mov dword [ebp - 0x8cc], edx
mov eax, dword [ebp - 0x8cc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x1e5], al
mov ecx, dword [ebp - 0x1f0]
sub ecx, 0x10
mov dword [ebp - 0x8d0], ecx
mov ecx, dword [ebp - 0x8d0]
call fcn.004029d0
mov byte [ebp - 4], 0x40
mov edx, dword [ebp - 0x1ec]
sub edx, 0x10
mov dword [ebp - 0x8d4], edx
mov ecx, dword [ebp - 0x8d4]
call fcn.004029d0
movzx eax, byte [ebp - 0x1e5]
test eax, eax
je 0x438252
push 0x4d33a8
lea ecx, [ebp - 0x1f4]
call fcn.00412370
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x1f4]
push ecx
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0x1f8]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x8dc]
mov edx, dword [ecx]
mov dword [ebp - 0x8e0], edx
push 4
push 0
mov eax, dword [ebp - 0x8e0]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 0x1f8]
sub ecx, 0x10
mov dword [ebp - 0x8e4], ecx
mov ecx, dword [ebp - 0x8e4]
call fcn.004029d0
mov byte [ebp - 4], 0x40
mov edx, dword [ebp - 0x1f4]
sub edx, 0x10
mov dword [ebp - 0x8e8], edx
mov ecx, dword [ebp - 0x8e8]
call fcn.004029d0
mov byte [ebp - 4], 0x3f
mov eax, dword [ebp - 0xa0]
sub eax, 0x10
mov dword [ebp - 0x8ec], eax
mov ecx, dword [ebp - 0x8ec]
call fcn.004029d0
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0xa8]
sub ecx, 0x10
mov dword [ebp - 0x8f0], ecx
mov ecx, dword [ebp - 0x8f0]
call fcn.004029d0
mov byte [ebp - 4], 0x36
mov edx, dword [ebp - 0xa4]
sub edx, 0x10
mov dword [ebp - 0x8f4], edx
mov ecx, dword [ebp - 0x8f4]
call fcn.004029d0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x90]
sub eax, 0x10
mov dword [ebp - 0x8f8], eax
mov ecx, dword [ebp - 0x8f8]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x8fc], ecx
mov ecx, dword [ebp - 0x8fc]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x900], edx
mov ecx, dword [ebp - 0x900]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x904], eax
mov ecx, dword [ebp - 0x904]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x908], ecx
mov ecx, dword [ebp - 0x908]
call fcn.004029d0
jmp 0x4353c2
push str.WINVISTA
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
je 0x438814
mov ecx, 0x4da8e4
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x91c], ecx
jne 0x438388
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x438365
xor eax, eax
jne 0x43838c
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x920], ecx
push 0x4da8e4
mov edx, dword [ebp - 0x920]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x924], eax
cmp dword [ebp - 0x924], 0
je 0x438452
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x90]
sub eax, 0x10
mov dword [ebp - 0x928], eax
mov ecx, dword [ebp - 0x928]
call fcn.004029d0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x92c], ecx
mov ecx, dword [ebp - 0x92c]
call fcn.004029d0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x930], edx
mov ecx, dword [ebp - 0x930]
call fcn.004029d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x934], eax
mov ecx, dword [ebp - 0x934]
call fcn.004029d0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x938], ecx
mov ecx, dword [ebp - 0x938]
call fcn.004029d0
jmp 0x4353c2
mov edx, dword [ebp - 0x990]
mov dword [edx + 0xd4], 1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x940], eax
push 0x2e
mov ecx, dword [ebp - 0x940]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x93c], eax
cmp dword [ebp - 0x93c], 0
jne 0x438497
mov dword [ebp - 0x9fc], 0xffffffff
jmp 0x4384a8
mov edx, dword [ebp - 0x93c]
sub edx, dword [ebp - 0x40]
sar edx, 1
mov dword [ebp - 0x9fc], edx
mov eax, dword [ebp - 0x9fc]
sub eax, 2
push eax
lea ecx, [ebp - 0xb0]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x45
mov edx, dword [ebp - 0x40]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x944], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x94c], ecx
push 0x2e
mov edx, dword [ebp - 0x94c]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x948], eax
cmp dword [ebp - 0x948], 0
jne 0x438506
mov dword [ebp - 0xa00], 0xffffffff
jmp 0x438517
mov eax, dword [ebp - 0x948]
sub eax, dword [ebp - 0x40]
sar eax, 1
mov dword [ebp - 0xa00], eax
mov ecx, dword [ebp - 0x944]
sub ecx, dword [ebp - 0xa00]
push ecx
lea edx, [ebp - 0xb4]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0xb0]
push ecx
lea edx, [ebp - 0xac]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x47
push 0x80
mov eax, dword [ebp - 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x1fc]
call fcn.00412370
mov byte [ebp - 4], 0x48
lea ecx, [ebp - 0x1fc]
push ecx
lea edx, [ebp - 0xac]
push edx
lea eax, [ebp - 0x200]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x954], eax
mov ecx, dword [ebp - 0x954]
mov edx, dword [ecx]
mov dword [ebp - 0x958], edx
mov eax, dword [ebp - 0x958]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x200]
sub ecx, 0x10
mov dword [ebp - 0x95c], ecx
mov ecx, dword [ebp - 0x95c]
call fcn.004029d0
mov byte [ebp - 4], 0x47
mov edx, dword [ebp - 0x1fc]
sub edx, 0x10
mov dword [ebp - 0x960], edx
mov ecx, dword [ebp - 0x960]
call fcn.004029d0
push 0x4d33a8
lea ecx, [ebp - 0x204]
call fcn.00412370
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0xac]
push ecx
lea edx, [ebp - 0x208]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x968], eax
mov eax, dword [ebp - 0x968]
mov ecx, dword [eax]
mov dword [ebp - 0x96c], ecx
mov edx, dword [ebp - 0x96c]
push edx
mov eax, dword [ebp - 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0x208]
sub ecx, 0x10
mov dword [ebp - 0x970], ecx
mov ecx, dword [ebp - 0x970]
call fcn.004029d0
mov byte [ebp - 4], 0x47
mov edx, dword [ebp - 0x204]
sub edx, 0x10
mov dword [ebp - 0x974], edx
mov ecx, dword [ebp - 0x974]
call fcn.004029d0
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x978], eax
push 0
mov ecx, dword [ebp - 0x978]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x210]
call fcn.00412370
mov byte [ebp - 4], 0x4a
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0xac]
push ecx
lea edx, [ebp - 0x214]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x980], eax
mov eax, dword [ebp - 0x980]
mov ecx, dword [eax]
mov dword [ebp - 0x984], ecx
mov edx, dword [ebp - 0x984]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x209], al
lea ecx, [ebp - 0x214]
call fcn.004129d0
mov byte [ebp - 4], 0x47
mov eax, dword [ebp - 0x210]
sub eax, 0x10
mov dword [ebp - 0x98c], eax
mov ecx, dword [ebp - 0x98c]
call fcn.004029d0
movzx ecx, byte [ebp - 0x209]
test ecx, ecx
je 0x43879e
push 0x4d33a8
lea ecx, [ebp - 0x218]
call fcn.00412370
mov byte [ebp - 4], 0x4b
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa04], eax
push 4
push 0
mov ecx, dword [ebp - 0xa04]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x21c]
call fcn.00412420
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x218]
call fcn.00412420
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0xac]
call fcn.00412420
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0xb4]
call fcn.00412420
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0xb0]
call fcn.00412420
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
push str.WINDOWS7
mov edx, dword [ebp - 0x990]
add edx, 0xd0
push edx
call fcn.00444f00
add esp, 8
movzx eax, al
test eax, eax
jne 0x43885a
push str.WINDOWS8
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
je 0x438b8c
push 0x4da8dc
lea ecx, [ebp - 0x90]
call fcn.00425d20
test eax, eax
je 0x4388b2
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
mov eax, dword [ebp - 0x990]
mov dword [eax + 0xd4], 1
push 0x2e
lea ecx, [ebp - 0x40]
call fcn.00444d60
sub eax, 2
push eax
lea ecx, [ebp - 0xbc]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x40]
call fcn.00445140
mov esi, eax
push 0x2e
lea ecx, [ebp - 0x40]
call fcn.00444d60
sub esi, eax
push esi
lea edx, [ebp - 0xc0]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x4d
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0xbc]
push ecx
lea edx, [ebp - 0xb8]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x4e
push 0x80
lea ecx, [ebp - 0xb8]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x220]
call fcn.00412370
mov byte [ebp - 4], 0x4f
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0xb8]
push ecx
lea edx, [ebp - 0x224]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa08], eax
mov ecx, dword [ebp - 0xa08]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x224]
call fcn.00412420
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x220]
call fcn.00412420
push 0x4d33a8
lea ecx, [ebp - 0x228]
call fcn.00412370
mov byte [ebp - 4], 0x50
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0xb8]
push ecx
lea edx, [ebp - 0x22c]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa0c], eax
mov ecx, dword [ebp - 0xa0c]
call fcn.004450d0
push eax
lea ecx, [ebp - 0xb8]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea ecx, [ebp - 0x22c]
call fcn.00412420
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x228]
call fcn.00412420
push 0
lea ecx, [ebp - 0xb8]
call fcn.004450d0
push eax
lea ecx, [ebp - 0x3c]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x234]
call fcn.00412370
mov byte [ebp - 4], 0x51
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0xb8]
push ecx
lea edx, [ebp - 0x238]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa10], eax
mov ecx, dword [ebp - 0xa10]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x22d], al
lea ecx, [ebp - 0x238]
call fcn.00412420
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x234]
call fcn.00412420
movzx eax, byte [ebp - 0x22d]
test eax, eax
je 0x438b16
push 0x4d33a8
lea ecx, [ebp - 0x23c]
call fcn.00412370
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x23c]
push ecx
lea edx, [ebp - 0xb8]
push edx
lea eax, [ebp - 0x240]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa14], eax
push 4
push 0
mov ecx, dword [ebp - 0xa14]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x240]
call fcn.00412420
mov byte [ebp - 4], 0x4e
lea ecx, [ebp - 0x23c]
call fcn.00412420
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0xb8]
call fcn.00412420
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0xc0]
call fcn.00412420
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0xbc]
call fcn.00412420
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
push str.WINDOWS10
mov ecx, dword [ebp - 0x990]
add ecx, 0xd0
push ecx
call fcn.00444f00
add esp, 8
movzx edx, al
test edx, edx
je 0x438ede
push 0x4da8d4
lea ecx, [ebp - 0x90]
call fcn.00425d20
test eax, eax
je 0x438c09
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
mov eax, dword [ebp - 0x990]
mov dword [eax + 0xd4], 1
push 0x2e
lea ecx, [ebp - 0x40]
call fcn.00444d60
sub eax, 2
push eax
lea ecx, [ebp - 0xc8]
push ecx
lea ecx, [ebp - 0x40]
call fcn.0040f0f0
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0x40]
call fcn.00445140
mov esi, eax
push 0x2e
lea ecx, [ebp - 0x40]
call fcn.00444d60
sub esi, eax
push esi
lea edx, [ebp - 0xcc]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f040
mov byte [ebp - 4], 0x54
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0xc8]
push ecx
lea edx, [ebp - 0xc4]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 0x55
push 0x80
lea ecx, [ebp - 0xc4]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4d33a8
lea ecx, [ebp - 0x244]
call fcn.00412370
mov byte [ebp - 4], 0x56
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0xc4]
push ecx
lea edx, [ebp - 0x248]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa18], eax
mov ecx, dword [ebp - 0xa18]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x248]
call fcn.00412420
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x244]
call fcn.00412420
push 0x4d33a8
lea ecx, [ebp - 0x24c]
call fcn.00412370
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0xc4]
push ecx
lea edx, [ebp - 0x250]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa1c], eax
mov ecx, dword [ebp - 0xa1c]
call fcn.004450d0
push eax
lea ecx, [ebp - 0xc4]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea ecx, [ebp - 0x250]
call fcn.00412420
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x24c]
call fcn.00412420
push 0
lea ecx, [ebp - 0xc4]
call fcn.004450d0
push eax
lea ecx, [ebp - 0x3c]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4d33a8
lea ecx, [ebp - 0x258]
call fcn.00412370
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0xc4]
push ecx
lea edx, [ebp - 0x25c]
push edx
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa20], eax
mov ecx, dword [ebp - 0xa20]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x251], al
lea ecx, [ebp - 0x25c]
call fcn.00412420
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x258]
call fcn.00412420
movzx eax, byte [ebp - 0x251]
test eax, eax
je 0x438e6d
push 0x4d33a8
lea ecx, [ebp - 0x260]
call fcn.00412370
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x260]
push ecx
lea edx, [ebp - 0xc4]
push edx
lea eax, [ebp - 0x264]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0xa24], eax
push 4
push 0
mov ecx, dword [ebp - 0xa24]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x264]
call fcn.00412420
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x260]
call fcn.00412420
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0xc4]
call fcn.00412420
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0xcc]
call fcn.00412420
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0xc8]
call fcn.00412420
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x90]
call fcn.00412420
push 0x80
lea ecx, [ebp - 0x40]
call fcn.004450d0
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x40]
push ecx
lea edx, [ebp - 0x3c]
push edx
mov ecx, dword [ebp - 0x990]
call fcn.00434960
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x44]
call fcn.00412420
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4c]
call fcn.00412420
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x3c]
call fcn.00412420
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00412420
jmp 0x4353c2
lea ecx, [ebp - 0x24]
call fcn.00452139
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00412420
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00412420
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00452641
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00412420
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00412420
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0xc