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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c1323
mov eax, dword fs:[0]
push eax
sub esp, 0xa1c
push esi
mov eax, dword [0x4f7458]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x998], ecx
mov dword [ebp - 4], 1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x264], eax
mov ecx, dword [ebp - 0x264]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42d67e
mov byte [ebp - 4], 0
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x268], edx
mov ecx, dword [ebp - 0x268]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
sub eax, 0x10
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
call fcn.00403de0
jmp 0x431343
lea ecx, [ebp - 0x24]
call fcn.00449fa0
mov byte [ebp - 4], 2
push 0x4ca748
lea ecx, [ebp - 0xcc]
call fcn.00411370
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xcc]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xcc]
sub ecx, 0x10
mov dword [ebp - 0x274], ecx
mov ecx, dword [ebp - 0x274]
call fcn.00403de0
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x278], edx
push 0
mov eax, dword [ebp - 0x278]
push eax
lea ecx, [ebp - 0x24]
call fcn.0044a05d
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x42d75b
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x27c], ecx
mov ecx, dword [ebp - 0x27c]
call fcn.00403de0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00449fc9
mov byte [ebp - 4], 0
mov edx, dword [ebp + 8]
sub edx, 0x10
mov dword [ebp - 0x280], edx
mov ecx, dword [ebp - 0x280]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
sub eax, 0x10
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
call fcn.00403de0
jmp 0x431343
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call fcn.00447437
push eax
lea ecx, [ebp - 0x28]
call fcn.00411850
mov byte [ebp - 4], 6
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x34], 0
je 0x4312fc
lea ecx, [ebp - 0x24]
call fcn.00449bbe
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x24]
call fcn.00449f61
test eax, eax
je 0x42d7a3
jmp 0x42d780
lea edx, [ebp + 0xc]
push edx
lea ecx, [ebp - 0x3c]
call fcn.004118a0
mov byte [ebp - 4], 7
push 1
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 1
jne 0x42d80c
push 0
mov ecx, dword [ebp - 0x28c]
call fcn.0040ff20
movzx ecx, ax
mov edx, 0x5c
movzx eax, dx
cmp ecx, eax
jne 0x42d80c
mov dword [ebp - 0x99c], 0
jmp 0x42d816
mov dword [ebp - 0x99c], 1
mov cl, byte [ebp - 0x99c]
mov byte [ebp - 0xcd], cl
mov edx, dword [ebp - 0xd4]
sub edx, 0x10
mov dword [ebp - 0x290], edx
mov ecx, dword [ebp - 0x290]
call fcn.00403de0
movzx eax, byte [ebp - 0xcd]
test eax, eax
je 0x42d89f
push 0x5c
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0xd8]
push edx
call fcn.0043bfa0
add esp, 0xc
mov dword [ebp - 0x9a0], eax
mov eax, dword [ebp - 0x9a0]
mov dword [ebp - 0x294], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x294]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.004118e0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xd8]
sub edx, 0x10
mov dword [ebp - 0x298], edx
mov ecx, dword [ebp - 0x298]
call fcn.00403de0
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0x24]
call fcn.0044a349
mov dword [ebp - 0x9a4], eax
mov ecx, dword [ebp - 0x9a4]
mov dword [ebp - 0x2a4], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x29c]
push ecx
mov edx, dword [ebp - 0x2a0]
push edx
lea ecx, [ebp - 0x3c]
call fcn.00410800
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xdc]
sub eax, 0x10
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
call fcn.00403de0
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004118a0
mov byte [ebp - 4], 0xa
push 1
lea edx, [ebp - 0xe4]
push edx
lea ecx, [ebp - 0x38]
call fcn.0040f740
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x2ac], edx
cmp dword [ebp - 0x2ac], 1
jne 0x42d980
push 0
mov ecx, dword [ebp - 0x2b0]
call fcn.0040ff20
movzx eax, ax
mov ecx, 0x5c
movzx edx, cx
cmp eax, edx
jne 0x42d980
mov dword [ebp - 0x9a8], 0
jmp 0x42d98a
mov dword [ebp - 0x9a8], 1
mov al, byte [ebp - 0x9a8]
mov byte [ebp - 0xdd], al
mov ecx, dword [ebp - 0xe4]
sub ecx, 0x10
mov dword [ebp - 0x2b4], ecx
mov ecx, dword [ebp - 0x2b4]
call fcn.00403de0
movzx edx, byte [ebp - 0xdd]
test edx, edx
je 0x42da13
push 0x5c
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0xe8]
push ecx
call fcn.0043bfa0
add esp, 0xc
mov dword [ebp - 0x9ac], eax
mov edx, dword [ebp - 0x9ac]
mov dword [ebp - 0x2b8], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x38]
call fcn.004118e0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xe8]
sub ecx, 0x10
mov dword [ebp - 0x2bc], ecx
mov ecx, dword [ebp - 0x2bc]
call fcn.00403de0
lea edx, [ebp - 0xec]
push edx
lea ecx, [ebp - 0x24]
call fcn.0044a349
mov dword [ebp - 0x9b0], eax
mov eax, dword [ebp - 0x9b0]
mov dword [ebp - 0x2c8], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x2c8]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2c8]
mov edx, dword [ecx]
mov dword [ebp - 0x2c4], edx
mov eax, dword [ebp - 0x2c0]
push eax
mov ecx, dword [ebp - 0x2c4]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00410800
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0xec]
sub edx, 0x10
mov dword [ebp - 0x2cc], edx
mov ecx, dword [ebp - 0x2cc]
call fcn.00403de0
push 0x10
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov edx, dword [eax + 0x38]
call edx
test eax, eax
je 0x42db0c
mov eax, dword [ebp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0xf0], esp
mov dword [ebp - 0x2d0], ecx
lea edx, [ebp - 0x3c]
push edx
mov ecx, dword [ebp - 0x2d0]
call fcn.004118a0
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x9b4], eax
mov byte [ebp - 4], 0xd
push ecx
mov ecx, esp
mov dword [ebp - 0xf4], esp
mov dword [ebp - 0x2d4], ecx
lea edx, [ebp - 0x38]
push edx
mov ecx, dword [ebp - 0x2d4]
call fcn.004118a0
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x9b8], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x998]
call fcn.0042d5f0
jmp 0x4312df
call fcn.00447437
push eax
lea ecx, [ebp - 0x48]
call fcn.00411850
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xf8]
push ecx
lea ecx, [ebp - 0x24]
call fcn.0044a349
mov dword [ebp - 0x9bc], eax
mov edx, dword [ebp - 0x9bc]
mov dword [ebp - 0x2d8], edx
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x2d8]
push eax
lea ecx, [ebp - 0x48]
call fcn.004118e0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xf8]
sub ecx, 0x10
mov dword [ebp - 0x2dc], ecx
mov ecx, dword [ebp - 0x2dc]
call fcn.00403de0
mov edx, str.UpdatePatch.exe
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x2e0], edx
jne 0x42db93
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42db70
xor ecx, ecx
jne 0x42db97
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x2e4], edx
push str.UpdatePatch.exe
mov eax, dword [ebp - 0x2e4]
push eax
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x2e8], eax
cmp dword [ebp - 0x2e8], 0
jne 0x42dc1d
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x2ec], ecx
mov ecx, dword [ebp - 0x2ec]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x2f0], edx
mov ecx, dword [ebp - 0x2f0]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x2f4]
call fcn.00403de0
jmp 0x42d780
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x2fc], ecx
push 0x2e
mov edx, dword [ebp - 0x2fc]
push edx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x2f8], eax
cmp dword [ebp - 0x2f8], 0
jne 0x42dc52
mov dword [ebp - 0x9c0], 0xffffffff
jmp 0x42dc63
mov eax, dword [ebp - 0x2f8]
sub eax, dword [ebp - 0x48]
sar eax, 1
mov dword [ebp - 0x9c0], eax
mov ecx, dword [ebp - 0x9c0]
add ecx, 1
push ecx
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x48]
call fcn.0043be10
mov byte [ebp - 4], 0x10
cmp dword [ebp + 0x10], 1
jne 0x42dd76
mov eax, 0x4cf4dc
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x300], eax
jne 0x42dcaa
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42dc87
xor edx, edx
jne 0x42dcae
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x304], eax
push 0x4cf4dc
mov ecx, dword [ebp - 0x304]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
jne 0x42dcf9
push 0
push str.filelock
lea ecx, [ebp - 0x48]
call fcn.0043bce0
mov ecx, eax
call fcn.0040f610
cmp eax, 0xffffffff
jne 0x42dd71
mov dword [ebp - 0x30], 1
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x328], edx
mov ecx, dword [ebp - 0x328]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x32c], eax
mov ecx, dword [ebp - 0x32c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x330], ecx
mov ecx, dword [ebp - 0x330]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x334], edx
mov ecx, dword [ebp - 0x334]
call fcn.00403de0
jmp 0x42d780
jmp 0x42df95
cmp dword [ebp + 0x10], 2
jne 0x42de4d
mov eax, 0x4cf4c0
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x338], eax
jne 0x42dda3
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42dd80
xor edx, edx
jne 0x42dda7
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x33c], eax
push 0x4cf4c0
mov ecx, dword [ebp - 0x33c]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 0
je 0x42de48
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x344], edx
mov ecx, dword [ebp - 0x344]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x348], eax
mov ecx, dword [ebp - 0x348]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x34c], ecx
mov ecx, dword [ebp - 0x34c]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x350], edx
mov ecx, dword [ebp - 0x350]
call fcn.00403de0
jmp 0x42d780
jmp 0x42df95
cmp dword [ebp + 0x10], 3
jne 0x42df95
mov eax, 0x4cf4c0
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x354], eax
jne 0x42de7a
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42de57
xor edx, edx
jne 0x42de7e
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x358], eax
push 0x4cf4c0
mov ecx, dword [ebp - 0x358]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x35c], eax
cmp dword [ebp - 0x35c], 0
je 0x42df24
mov edx, 0x4cf4dc
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x360], edx
jne 0x42ded1
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42deae
xor ecx, ecx
jne 0x42ded5
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x364], edx
push 0x4cf4dc
mov eax, dword [ebp - 0x364]
push eax
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x368], eax
cmp dword [ebp - 0x368], 0
jne 0x42df95
push 0
push str.filelock
lea ecx, [ebp - 0x48]
call fcn.0043bce0
mov ecx, eax
call fcn.0040f610
cmp eax, 0xffffffff
je 0x42df95
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x388], ecx
mov ecx, dword [ebp - 0x388]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x48]
sub edx, 0x10
mov dword [ebp - 0x38c], edx
mov ecx, dword [ebp - 0x38c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38]
sub eax, 0x10
mov dword [ebp - 0x390], eax
mov ecx, dword [ebp - 0x390]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x394], ecx
mov ecx, dword [ebp - 0x394]
call fcn.00403de0
jmp 0x42d780
cmp dword [ebp - 0x30], 0
je 0x431297
mov ecx, dword [ebp - 0x998]
call fcn.00434fb0
test eax, eax
je 0x42fb31
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x39c], edx
push 0x2e
mov eax, dword [ebp - 0x39c]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x398], eax
cmp dword [ebp - 0x398], 0
jne 0x42dfe7
mov dword [ebp - 0x9c4], 0xffffffff
jmp 0x42dff8
mov ecx, dword [ebp - 0x398]
sub ecx, dword [ebp - 0x48]
sar ecx, 1
mov dword [ebp - 0x9c4], ecx
push 4
mov edx, dword [ebp - 0x9c4]
sub edx, 4
push edx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x48]
call fcn.0043be60
mov byte [ebp - 4], 0x11
push str.WINXP
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
jne 0x42e059
push str.WINSVR2003
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x42e584
mov edx, str.XP64
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x3c0], edx
jne 0x42e07c
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42e059
xor ecx, ecx
jne 0x42e080
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x3c4], edx
push str.XP64
mov eax, dword [ebp - 0x3c4]
push eax
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
je 0x42e140
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x3cc], ecx
mov ecx, dword [ebp - 0x3cc]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x3d0], edx
mov ecx, dword [ebp - 0x3d0]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp - 0x3d4]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x3d8], ecx
mov ecx, dword [ebp - 0x3d8]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x3dc], edx
mov ecx, dword [ebp - 0x3dc]
call fcn.00403de0
jmp 0x42d780
mov eax, dword [ebp - 0x998]
mov dword [eax + 0xd4], 1
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3e4], ecx
push 0x2e
mov edx, dword [ebp - 0x3e4]
push edx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x3e0], eax
cmp dword [ebp - 0x3e0], 0
jne 0x42e185
mov dword [ebp - 0x9c8], 0xffffffff
jmp 0x42e196
mov eax, dword [ebp - 0x3e0]
sub eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0x9c8], eax
mov ecx, dword [ebp - 0x9c8]
sub ecx, 4
push ecx
lea edx, [ebp - 0x54]
push edx
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x3e8], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x3f0], edx
push 0x2e
mov eax, dword [ebp - 0x3f0]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x3ec], eax
cmp dword [ebp - 0x3ec], 0
jne 0x42e1f1
mov dword [ebp - 0x9cc], 0xffffffff
jmp 0x42e202
mov ecx, dword [ebp - 0x3ec]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9cc], ecx
mov edx, dword [ebp - 0x3e8]
sub edx, dword [ebp - 0x9cc]
push edx
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x54]
push edx
lea eax, [ebp - 0x50]
push eax
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x14
push 0x80
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0xfc]
call fcn.00411370
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0xfc]
push edx
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x100]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x3f8], eax
mov edx, dword [ebp - 0x3f8]
mov eax, dword [edx]
mov dword [ebp - 0x3fc], eax
mov ecx, dword [ebp - 0x3fc]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x100]
sub edx, 0x10
mov dword [ebp - 0x400], edx
mov ecx, dword [ebp - 0x400]
call fcn.00403de0
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0xfc]
sub eax, 0x10
mov dword [ebp - 0x404], eax
mov ecx, dword [ebp - 0x404]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x104]
call fcn.00411370
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x104]
push ecx
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x40c], eax
mov ecx, dword [ebp - 0x40c]
mov edx, dword [ecx]
mov dword [ebp - 0x410], edx
mov eax, dword [ebp - 0x410]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov edx, dword [ebp - 0x108]
sub edx, 0x10
mov dword [ebp - 0x414], edx
mov ecx, dword [ebp - 0x414]
call fcn.00403de0
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x104]
sub eax, 0x10
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x418]
call fcn.00403de0
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x41c], ecx
push 0
mov edx, dword [ebp - 0x41c]
push edx
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x110]
call fcn.00411370
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x110]
push ecx
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x114]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x424]
mov edx, dword [ecx]
mov dword [ebp - 0x428], edx
mov eax, dword [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x109], al
mov ecx, dword [ebp - 0x114]
sub ecx, 0x10
mov dword [ebp - 0x42c], ecx
mov ecx, dword [ebp - 0x42c]
call fcn.00403de0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x110]
sub edx, 0x10
mov dword [ebp - 0x430], edx
mov ecx, dword [ebp - 0x430]
call fcn.00403de0
movzx eax, byte [ebp - 0x109]
test eax, eax
je 0x42e4a2
push 0x4c9f28
lea ecx, [ebp - 0x118]
call fcn.00411370
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x118]
push ecx
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x11c]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x438], eax
mov ecx, dword [ebp - 0x438]
mov edx, dword [ecx]
mov dword [ebp - 0x43c], edx
push 4
push 0
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 0x11c]
sub ecx, 0x10
mov dword [ebp - 0x440], ecx
mov ecx, dword [ebp - 0x440]
call fcn.00403de0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x118]
sub edx, 0x10
mov dword [ebp - 0x444], edx
mov ecx, dword [ebp - 0x444]
call fcn.00403de0
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x50]
sub eax, 0x10
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x448]
call fcn.00403de0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x58]
sub ecx, 0x10
mov dword [ebp - 0x44c], ecx
mov ecx, dword [ebp - 0x44c]
call fcn.00403de0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x54]
sub edx, 0x10
mov dword [ebp - 0x450], edx
mov ecx, dword [ebp - 0x450]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x454], eax
mov ecx, dword [ebp - 0x454]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x458], ecx
mov ecx, dword [ebp - 0x458]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x48]
sub edx, 0x10
mov dword [ebp - 0x45c], edx
mov ecx, dword [ebp - 0x45c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38]
sub eax, 0x10
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x464], ecx
mov ecx, dword [ebp - 0x464]
call fcn.00403de0
jmp 0x42d780
push str.WIN2000
mov edx, dword [ebp - 0x998]
add edx, 0xd0
push edx
call fcn.0043c070
add esp, 8
movzx eax, al
test eax, eax
jne 0x42e5ca
push str.WINNT4
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
je 0x42eaf5
mov eax, str.2k64
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x488], eax
jne 0x42e5ed
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42e5ca
xor edx, edx
jne 0x42e5f1
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48c], eax
push str.2k64
mov ecx, dword [ebp - 0x48c]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x490], eax
cmp dword [ebp - 0x490], 0
je 0x42e6b1
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x494], edx
mov ecx, dword [ebp - 0x494]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x498]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x49c], ecx
mov ecx, dword [ebp - 0x49c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x4a0], edx
mov ecx, dword [ebp - 0x4a0]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x4a4], eax
mov ecx, dword [ebp - 0x4a4]
call fcn.00403de0
jmp 0x42d780
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x4ac], edx
push 0x2e
mov eax, dword [ebp - 0x4ac]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 0
jne 0x42e6f6
mov dword [ebp - 0x9d0], 0xffffffff
jmp 0x42e707
mov ecx, dword [ebp - 0x4a8]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9d0], ecx
mov edx, dword [ebp - 0x9d0]
sub edx, 4
push edx
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4b8], eax
push 0x2e
mov ecx, dword [ebp - 0x4b8]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x4b4], eax
cmp dword [ebp - 0x4b4], 0
jne 0x42e762
mov dword [ebp - 0x9d4], 0xffffffff
jmp 0x42e773
mov edx, dword [ebp - 0x4b4]
sub edx, dword [ebp - 0x3c]
sar edx, 1
mov dword [ebp - 0x9d4], edx
mov eax, dword [ebp - 0x4b0]
sub eax, dword [ebp - 0x9d4]
push eax
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x1a
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x5c]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x1b
push 0x80
mov edx, dword [ebp - 0x5c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x120]
call fcn.00411370
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x5c]
push ecx
lea edx, [ebp - 0x124]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x4c0], eax
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax]
mov dword [ebp - 0x4c4], ecx
mov edx, dword [ebp - 0x4c4]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x124]
sub eax, 0x10
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4c8]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x120]
sub ecx, 0x10
mov dword [ebp - 0x4cc], ecx
mov ecx, dword [ebp - 0x4cc]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x128]
call fcn.00411370
mov byte [ebp - 4], 0x1d
lea edx, [ebp - 0x128]
push edx
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x12c]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x4d4], eax
mov edx, dword [ebp - 0x4d4]
mov eax, dword [edx]
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x5c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x12c]
sub eax, 0x10
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4dc]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x128]
sub ecx, 0x10
mov dword [ebp - 0x4e0], ecx
mov ecx, dword [ebp - 0x4e0]
call fcn.00403de0
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x4e4], edx
push 0
mov eax, dword [ebp - 0x4e4]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x134]
call fcn.00411370
mov byte [ebp - 4], 0x1e
lea edx, [ebp - 0x134]
push edx
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x138]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x4ec], eax
mov edx, dword [ebp - 0x4ec]
mov eax, dword [edx]
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0x4f0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x12d], al
mov edx, dword [ebp - 0x138]
sub edx, 0x10
mov dword [ebp - 0x4f4], edx
mov ecx, dword [ebp - 0x4f4]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x134]
sub eax, 0x10
mov dword [ebp - 0x4f8], eax
mov ecx, dword [ebp - 0x4f8]
call fcn.00403de0
movzx ecx, byte [ebp - 0x12d]
test ecx, ecx
je 0x42ea13
push 0x4c9f28
lea ecx, [ebp - 0x13c]
call fcn.00411370
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x13c]
push edx
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x140]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x500], eax
mov edx, dword [ebp - 0x500]
mov eax, dword [edx]
mov dword [ebp - 0x504], eax
push 4
push 0
mov ecx, dword [ebp - 0x504]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x140]
sub edx, 0x10
mov dword [ebp - 0x508], edx
mov ecx, dword [ebp - 0x508]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x13c]
sub eax, 0x10
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp - 0x50c]
call fcn.00403de0
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x5c]
sub ecx, 0x10
mov dword [ebp - 0x510], ecx
mov ecx, dword [ebp - 0x510]
call fcn.00403de0
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x64]
sub edx, 0x10
mov dword [ebp - 0x514], edx
mov ecx, dword [ebp - 0x514]
call fcn.00403de0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x60]
sub eax, 0x10
mov dword [ebp - 0x518], eax
mov ecx, dword [ebp - 0x518]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x51c], ecx
mov ecx, dword [ebp - 0x51c]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x520], edx
mov ecx, dword [ebp - 0x520]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x524], eax
mov ecx, dword [ebp - 0x524]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x528], ecx
mov ecx, dword [ebp - 0x528]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x52c], edx
mov ecx, dword [ebp - 0x52c]
call fcn.00403de0
jmp 0x42d780
push str.WINVISTA
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x42f044
mov edx, str.LH64
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x540], edx
jne 0x42eb3c
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42eb19
xor ecx, ecx
jne 0x42eb40
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x544], edx
push str.LH64
mov eax, dword [ebp - 0x544]
push eax
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x548], eax
cmp dword [ebp - 0x548], 0
je 0x42ec00
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x54c], ecx
mov ecx, dword [ebp - 0x54c]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x550], edx
mov ecx, dword [ebp - 0x550]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x554]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x558], ecx
mov ecx, dword [ebp - 0x558]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x55c], edx
mov ecx, dword [ebp - 0x55c]
call fcn.00403de0
jmp 0x42d780
mov eax, dword [ebp - 0x998]
mov dword [eax + 0xd4], 1
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x564], ecx
push 0x2e
mov edx, dword [ebp - 0x564]
push edx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
jne 0x42ec45
mov dword [ebp - 0x9d8], 0xffffffff
jmp 0x42ec56
mov eax, dword [ebp - 0x560]
sub eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0x9d8], eax
mov ecx, dword [ebp - 0x9d8]
sub ecx, 4
push ecx
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x568], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x570], edx
push 0x2e
mov eax, dword [ebp - 0x570]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x56c], eax
cmp dword [ebp - 0x56c], 0
jne 0x42ecb1
mov dword [ebp - 0x9dc], 0xffffffff
jmp 0x42ecc2
mov ecx, dword [ebp - 0x56c]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9dc], ecx
mov edx, dword [ebp - 0x568]
sub edx, dword [ebp - 0x9dc]
push edx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x70]
push ecx
lea edx, [ebp - 0x6c]
push edx
lea eax, [ebp - 0x68]
push eax
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x22
push 0x80
mov ecx, dword [ebp - 0x68]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x144]
call fcn.00411370
mov byte [ebp - 4], 0x23
lea edx, [ebp - 0x144]
push edx
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x148]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x578], eax
mov edx, dword [ebp - 0x578]
mov eax, dword [edx]
mov dword [ebp - 0x57c], eax
mov ecx, dword [ebp - 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x148]
sub edx, 0x10
mov dword [ebp - 0x580], edx
mov ecx, dword [ebp - 0x580]
call fcn.00403de0
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x144]
sub eax, 0x10
mov dword [ebp - 0x584], eax
mov ecx, dword [ebp - 0x584]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x14c]
call fcn.00411370
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x14c]
push ecx
lea edx, [ebp - 0x68]
push edx
lea eax, [ebp - 0x150]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x58c], eax
mov ecx, dword [ebp - 0x58c]
mov edx, dword [ecx]
mov dword [ebp - 0x590], edx
mov eax, dword [ebp - 0x590]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov edx, dword [ebp - 0x150]
sub edx, 0x10
mov dword [ebp - 0x594], edx
mov ecx, dword [ebp - 0x594]
call fcn.00403de0
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x14c]
sub eax, 0x10
mov dword [ebp - 0x598], eax
mov ecx, dword [ebp - 0x598]
call fcn.00403de0
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x59c], ecx
push 0
mov edx, dword [ebp - 0x59c]
push edx
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x158]
call fcn.00411370
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x68]
push edx
lea eax, [ebp - 0x15c]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x5a4], eax
mov ecx, dword [ebp - 0x5a4]
mov edx, dword [ecx]
mov dword [ebp - 0x5a8], edx
mov eax, dword [ebp - 0x5a8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x151], al
mov ecx, dword [ebp - 0x15c]
sub ecx, 0x10
mov dword [ebp - 0x5ac], ecx
mov ecx, dword [ebp - 0x5ac]
call fcn.00403de0
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x158]
sub edx, 0x10
mov dword [ebp - 0x5b0], edx
mov ecx, dword [ebp - 0x5b0]
call fcn.00403de0
movzx eax, byte [ebp - 0x151]
test eax, eax
je 0x42ef62
push 0x4c9f28
lea ecx, [ebp - 0x160]
call fcn.00411370
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x160]
push ecx
lea edx, [ebp - 0x68]
push edx
lea eax, [ebp - 0x164]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x5b8], eax
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx]
mov dword [ebp - 0x5bc], edx
push 4
push 0
mov eax, dword [ebp - 0x5bc]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 0x164]
sub ecx, 0x10
mov dword [ebp - 0x5c0], ecx
mov ecx, dword [ebp - 0x5c0]
call fcn.00403de0
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x160]
sub edx, 0x10
mov dword [ebp - 0x5c4], edx
mov ecx, dword [ebp - 0x5c4]
call fcn.00403de0
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x68]
sub eax, 0x10
mov dword [ebp - 0x5c8], eax
mov ecx, dword [ebp - 0x5c8]
call fcn.00403de0
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x70]
sub ecx, 0x10
mov dword [ebp - 0x5cc], ecx
mov ecx, dword [ebp - 0x5cc]
call fcn.00403de0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x6c]
sub edx, 0x10
mov dword [ebp - 0x5d0], edx
mov ecx, dword [ebp - 0x5d0]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x5d4], eax
mov ecx, dword [ebp - 0x5d4]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x5d8], ecx
mov ecx, dword [ebp - 0x5d8]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x48]
sub edx, 0x10
mov dword [ebp - 0x5dc], edx
mov ecx, dword [ebp - 0x5dc]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38]
sub eax, 0x10
mov dword [ebp - 0x5e0], eax
mov ecx, dword [ebp - 0x5e0]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x5e4], ecx
mov ecx, dword [ebp - 0x5e4]
call fcn.00403de0
jmp 0x42d780
push str.WINDOWS7
mov edx, dword [ebp - 0x998]
add edx, 0xd0
push edx
call fcn.0043c070
add esp, 8
movzx eax, al
test eax, eax
jne 0x42f08a
push str.WINDOWS8
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
je 0x42f5b5
mov eax, str.W764
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x608], eax
jne 0x42f0ad
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42f08a
xor edx, edx
jne 0x42f0b1
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x60c], eax
push str.W764
mov ecx, dword [ebp - 0x60c]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x610], eax
cmp dword [ebp - 0x610], 0
je 0x42f171
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x614], edx
mov ecx, dword [ebp - 0x614]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x618], eax
mov ecx, dword [ebp - 0x618]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x61c], ecx
mov ecx, dword [ebp - 0x61c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x620], edx
mov ecx, dword [ebp - 0x620]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x624], eax
mov ecx, dword [ebp - 0x624]
call fcn.00403de0
jmp 0x42d780
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x62c], edx
push 0x2e
mov eax, dword [ebp - 0x62c]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x628], eax
cmp dword [ebp - 0x628], 0
jne 0x42f1b6
mov dword [ebp - 0x9e0], 0xffffffff
jmp 0x42f1c7
mov ecx, dword [ebp - 0x628]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9e0], ecx
mov edx, dword [ebp - 0x9e0]
sub edx, 4
push edx
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x630], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x638], eax
push 0x2e
mov ecx, dword [ebp - 0x638]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
jne 0x42f222
mov dword [ebp - 0x9e4], 0xffffffff
jmp 0x42f233
mov edx, dword [ebp - 0x634]
sub edx, dword [ebp - 0x3c]
sar edx, 1
mov dword [ebp - 0x9e4], edx
mov eax, dword [ebp - 0x630]
sub eax, dword [ebp - 0x9e4]
push eax
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x28
lea edx, [ebp - 0x7c]
push edx
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x74]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x29
push 0x80
mov edx, dword [ebp - 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x168]
call fcn.00411370
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x74]
push ecx
lea edx, [ebp - 0x16c]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x640], eax
mov eax, dword [ebp - 0x640]
mov ecx, dword [eax]
mov dword [ebp - 0x644], ecx
mov edx, dword [ebp - 0x644]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x16c]
sub eax, 0x10
mov dword [ebp - 0x648], eax
mov ecx, dword [ebp - 0x648]
call fcn.00403de0
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x168]
sub ecx, 0x10
mov dword [ebp - 0x64c], ecx
mov ecx, dword [ebp - 0x64c]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x170]
call fcn.00411370
mov byte [ebp - 4], 0x2b
lea edx, [ebp - 0x170]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x174]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x654], eax
mov edx, dword [ebp - 0x654]
mov eax, dword [edx]
mov dword [ebp - 0x658], eax
mov ecx, dword [ebp - 0x658]
push ecx
mov edx, dword [ebp - 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x174]
sub eax, 0x10
mov dword [ebp - 0x65c], eax
mov ecx, dword [ebp - 0x65c]
call fcn.00403de0
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x170]
sub ecx, 0x10
mov dword [ebp - 0x660], ecx
mov ecx, dword [ebp - 0x660]
call fcn.00403de0
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x664], edx
push 0
mov eax, dword [ebp - 0x664]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x17c]
call fcn.00411370
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0x17c]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x180]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x66c], eax
mov edx, dword [ebp - 0x66c]
mov eax, dword [edx]
mov dword [ebp - 0x670], eax
mov ecx, dword [ebp - 0x670]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x175], al
mov edx, dword [ebp - 0x180]
sub edx, 0x10
mov dword [ebp - 0x674], edx
mov ecx, dword [ebp - 0x674]
call fcn.00403de0
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x17c]
sub eax, 0x10
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0x678]
call fcn.00403de0
movzx ecx, byte [ebp - 0x175]
test ecx, ecx
je 0x42f4d3
push 0x4c9f28
lea ecx, [ebp - 0x184]
call fcn.00411370
mov byte [ebp - 4], 0x2d
lea edx, [ebp - 0x184]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x680], eax
mov edx, dword [ebp - 0x680]
mov eax, dword [edx]
mov dword [ebp - 0x684], eax
push 4
push 0
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x188]
sub edx, 0x10
mov dword [ebp - 0x688], edx
mov ecx, dword [ebp - 0x688]
call fcn.00403de0
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x184]
sub eax, 0x10
mov dword [ebp - 0x68c], eax
mov ecx, dword [ebp - 0x68c]
call fcn.00403de0
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x74]
sub ecx, 0x10
mov dword [ebp - 0x690], ecx
mov ecx, dword [ebp - 0x690]
call fcn.00403de0
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x7c]
sub edx, 0x10
mov dword [ebp - 0x694], edx
mov ecx, dword [ebp - 0x694]
call fcn.00403de0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x78]
sub eax, 0x10
mov dword [ebp - 0x698], eax
mov ecx, dword [ebp - 0x698]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x69c], ecx
mov ecx, dword [ebp - 0x69c]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x6a0], edx
mov ecx, dword [ebp - 0x6a0]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x6a4], eax
mov ecx, dword [ebp - 0x6a4]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x6a8], ecx
mov ecx, dword [ebp - 0x6a8]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x6ac], edx
mov ecx, dword [ebp - 0x6ac]
call fcn.00403de0
jmp 0x42d780
push str.WINDOWS10
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x42fb11
mov edx, str.W864
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x6c0], edx
jne 0x42f5fc
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42f5d9
xor ecx, ecx
jne 0x42f600
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x6c4], edx
push str.W864
mov eax, dword [ebp - 0x6c4]
push eax
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x6c8], eax
cmp dword [ebp - 0x6c8], 0
je 0x42f6c0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x6cc], ecx
mov ecx, dword [ebp - 0x6cc]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x6d0], edx
mov ecx, dword [ebp - 0x6d0]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x6d4], eax
mov ecx, dword [ebp - 0x6d4]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x6d8], ecx
mov ecx, dword [ebp - 0x6d8]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x6dc], edx
mov ecx, dword [ebp - 0x6dc]
call fcn.00403de0
jmp 0x42d780
mov eax, dword [ebp - 0x998]
mov dword [eax + 0xd4], 1
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x6e4], ecx
push 0x2e
mov edx, dword [ebp - 0x6e4]
push edx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x6e0], eax
cmp dword [ebp - 0x6e0], 0
jne 0x42f705
mov dword [ebp - 0x9e8], 0xffffffff
jmp 0x42f716
mov eax, dword [ebp - 0x6e0]
sub eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0x9e8], eax
mov ecx, dword [ebp - 0x9e8]
sub ecx, 4
push ecx
lea edx, [ebp - 0x84]
push edx
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x6e8], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x6f0], edx
push 0x2e
mov eax, dword [ebp - 0x6f0]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x6ec], eax
cmp dword [ebp - 0x6ec], 0
jne 0x42f774
mov dword [ebp - 0x9ec], 0xffffffff
jmp 0x42f785
mov ecx, dword [ebp - 0x6ec]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9ec], ecx
mov edx, dword [ebp - 0x6e8]
sub edx, dword [ebp - 0x9ec]
push edx
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x88]
push ecx
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0x80]
push eax
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x30
push 0x80
mov ecx, dword [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x18c]
call fcn.00411370
mov byte [ebp - 4], 0x31
lea edx, [ebp - 0x18c]
push edx
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x190]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x6f8], eax
mov edx, dword [ebp - 0x6f8]
mov eax, dword [edx]
mov dword [ebp - 0x6fc], eax
mov ecx, dword [ebp - 0x6fc]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0x190]
sub edx, 0x10
mov dword [ebp - 0x700], edx
mov ecx, dword [ebp - 0x700]
call fcn.00403de0
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x18c]
sub eax, 0x10
mov dword [ebp - 0x704], eax
mov ecx, dword [ebp - 0x704]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x194]
call fcn.00411370
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x194]
push ecx
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x198]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x70c], eax
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov dword [ebp - 0x710], edx
mov eax, dword [ebp - 0x710]
push eax
mov ecx, dword [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov edx, dword [ebp - 0x198]
sub edx, 0x10
mov dword [ebp - 0x714], edx
mov ecx, dword [ebp - 0x714]
call fcn.00403de0
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x194]
sub eax, 0x10
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x718]
call fcn.00403de0
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x71c], ecx
push 0
mov edx, dword [ebp - 0x71c]
push edx
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x1a0]
call fcn.00411370
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x1a0]
push ecx
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x1a4]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x724], eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ecx]
mov dword [ebp - 0x728], edx
mov eax, dword [ebp - 0x728]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x199], al
mov ecx, dword [ebp - 0x1a4]
sub ecx, 0x10
mov dword [ebp - 0x72c], ecx
mov ecx, dword [ebp - 0x72c]
call fcn.00403de0
mov byte [ebp - 4], 0x30
mov edx, dword [ebp - 0x1a0]
sub edx, 0x10
mov dword [ebp - 0x730], edx
mov ecx, dword [ebp - 0x730]
call fcn.00403de0
movzx eax, byte [ebp - 0x199]
test eax, eax
je 0x42fa2e
push 0x4c9f28
lea ecx, [ebp - 0x1a8]
call fcn.00411370
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x1a8]
push ecx
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x1ac]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x738], eax
mov ecx, dword [ebp - 0x738]
mov edx, dword [ecx]
mov dword [ebp - 0x73c], edx
push 4
push 0
mov eax, dword [ebp - 0x73c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 0x1ac]
sub ecx, 0x10
mov dword [ebp - 0x740], ecx
mov ecx, dword [ebp - 0x740]
call fcn.00403de0
mov byte [ebp - 4], 0x30
mov edx, dword [ebp - 0x1a8]
sub edx, 0x10
mov dword [ebp - 0x744], edx
mov ecx, dword [ebp - 0x744]
call fcn.00403de0
mov byte [ebp - 4], 0x2f
mov eax, dword [ebp - 0x80]
sub eax, 0x10
mov dword [ebp - 0x748], eax
mov ecx, dword [ebp - 0x748]
call fcn.00403de0
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x88]
sub ecx, 0x10
mov dword [ebp - 0x74c], ecx
mov ecx, dword [ebp - 0x74c]
call fcn.00403de0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x84]
sub edx, 0x10
mov dword [ebp - 0x750], edx
mov ecx, dword [ebp - 0x750]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x4c]
sub eax, 0x10
mov dword [ebp - 0x754], eax
mov ecx, dword [ebp - 0x754]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x758], ecx
mov ecx, dword [ebp - 0x758]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x48]
sub edx, 0x10
mov dword [ebp - 0x75c], edx
mov ecx, dword [ebp - 0x75c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38]
sub eax, 0x10
mov dword [ebp - 0x760], eax
mov ecx, dword [ebp - 0x760]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x764], ecx
mov ecx, dword [ebp - 0x764]
call fcn.00403de0
jmp 0x42d780
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x768], edx
mov ecx, dword [ebp - 0x768]
call fcn.00403de0
jmp 0x431297
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x770], eax
push 0x2e
mov ecx, dword [ebp - 0x770]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x76c], eax
cmp dword [ebp - 0x76c], 0
jne 0x42fb66
mov dword [ebp - 0x9f0], 0xffffffff
jmp 0x42fb77
mov edx, dword [ebp - 0x76c]
sub edx, dword [ebp - 0x48]
sar edx, 1
mov dword [ebp - 0x9f0], edx
push 2
mov eax, dword [ebp - 0x9f0]
sub eax, 2
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x48]
call fcn.0043be60
mov byte [ebp - 4], 0x35
push str.WINXP
mov edx, dword [ebp - 0x998]
add edx, 0xd0
push edx
call fcn.0043c070
add esp, 8
movzx eax, al
test eax, eax
jne 0x42fbdc
push str.WINSVR2003
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
je 0x43013d
mov eax, 0x4cf47c
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x794], eax
jne 0x42fbff
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42fbdc
xor edx, edx
jne 0x42fc03
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x798], eax
push 0x4cf47c
mov ecx, dword [ebp - 0x798]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x79c], eax
cmp dword [ebp - 0x79c], 0
je 0x42fcc9
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x8c]
sub edx, 0x10
mov dword [ebp - 0x7a0], edx
mov ecx, dword [ebp - 0x7a0]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x7a4], eax
mov ecx, dword [ebp - 0x7a4]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x7a8], ecx
mov ecx, dword [ebp - 0x7a8]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x7ac], edx
mov ecx, dword [ebp - 0x7ac]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x7b0], eax
mov ecx, dword [ebp - 0x7b0]
call fcn.00403de0
jmp 0x42d780
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x7b8], edx
push 0x2e
mov eax, dword [ebp - 0x7b8]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x7b4], eax
cmp dword [ebp - 0x7b4], 0
jne 0x42fd0e
mov dword [ebp - 0x9f4], 0xffffffff
jmp 0x42fd1f
mov ecx, dword [ebp - 0x7b4]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0x9f4], ecx
mov edx, dword [ebp - 0x9f4]
sub edx, 2
push edx
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x7bc], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c4], eax
push 0x2e
mov ecx, dword [ebp - 0x7c4]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x7c0], eax
cmp dword [ebp - 0x7c0], 0
jne 0x42fd7d
mov dword [ebp - 0x9f8], 0xffffffff
jmp 0x42fd8e
mov edx, dword [ebp - 0x7c0]
sub edx, dword [ebp - 0x3c]
sar edx, 1
mov dword [ebp - 0x9f8], edx
mov eax, dword [ebp - 0x7bc]
sub eax, dword [ebp - 0x9f8]
push eax
lea ecx, [ebp - 0x98]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x37
lea edx, [ebp - 0x98]
push edx
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x90]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x38
push 0x80
mov edx, dword [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x1b0]
call fcn.00411370
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x1b0]
push eax
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x1b4]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x7cc], eax
mov eax, dword [ebp - 0x7cc]
mov ecx, dword [eax]
mov dword [ebp - 0x7d0], ecx
mov edx, dword [ebp - 0x7d0]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x1b4]
sub eax, 0x10
mov dword [ebp - 0x7d4], eax
mov ecx, dword [ebp - 0x7d4]
call fcn.00403de0
mov byte [ebp - 4], 0x38
mov ecx, dword [ebp - 0x1b0]
sub ecx, 0x10
mov dword [ebp - 0x7d8], ecx
mov ecx, dword [ebp - 0x7d8]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x1b8]
call fcn.00411370
mov byte [ebp - 4], 0x3a
lea edx, [ebp - 0x1b8]
push edx
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x1bc]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x7e0], eax
mov edx, dword [ebp - 0x7e0]
mov eax, dword [edx]
mov dword [ebp - 0x7e4], eax
mov ecx, dword [ebp - 0x7e4]
push ecx
mov edx, dword [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x1bc]
sub eax, 0x10
mov dword [ebp - 0x7e8], eax
mov ecx, dword [ebp - 0x7e8]
call fcn.00403de0
mov byte [ebp - 4], 0x38
mov ecx, dword [ebp - 0x1b8]
sub ecx, 0x10
mov dword [ebp - 0x7ec], ecx
mov ecx, dword [ebp - 0x7ec]
call fcn.00403de0
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x7f0], edx
push 0
mov eax, dword [ebp - 0x7f0]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x1c4]
call fcn.00411370
mov byte [ebp - 4], 0x3b
lea edx, [ebp - 0x1c4]
push edx
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x1c8]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x7f8], eax
mov edx, dword [ebp - 0x7f8]
mov eax, dword [edx]
mov dword [ebp - 0x7fc], eax
mov ecx, dword [ebp - 0x7fc]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x1bd], al
mov edx, dword [ebp - 0x1c8]
sub edx, 0x10
mov dword [ebp - 0x800], edx
mov ecx, dword [ebp - 0x800]
call fcn.00403de0
mov byte [ebp - 4], 0x38
mov eax, dword [ebp - 0x1c4]
sub eax, 0x10
mov dword [ebp - 0x804], eax
mov ecx, dword [ebp - 0x804]
call fcn.00403de0
movzx ecx, byte [ebp - 0x1bd]
test ecx, ecx
je 0x43004f
push 0x4c9f28
lea ecx, [ebp - 0x1cc]
call fcn.00411370
mov byte [ebp - 4], 0x3c
lea edx, [ebp - 0x1cc]
push edx
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x1d0]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x80c], eax
mov edx, dword [ebp - 0x80c]
mov eax, dword [edx]
mov dword [ebp - 0x810], eax
push 4
push 0
mov ecx, dword [ebp - 0x810]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x1d0]
sub edx, 0x10
mov dword [ebp - 0x814], edx
mov ecx, dword [ebp - 0x814]
call fcn.00403de0
mov byte [ebp - 4], 0x38
mov eax, dword [ebp - 0x1cc]
sub eax, 0x10
mov dword [ebp - 0x818], eax
mov ecx, dword [ebp - 0x818]
call fcn.00403de0
mov byte [ebp - 4], 0x37
mov ecx, dword [ebp - 0x90]
sub ecx, 0x10
mov dword [ebp - 0x81c], ecx
mov ecx, dword [ebp - 0x81c]
call fcn.00403de0
mov byte [ebp - 4], 0x36
mov edx, dword [ebp - 0x98]
sub edx, 0x10
mov dword [ebp - 0x820], edx
mov ecx, dword [ebp - 0x820]
call fcn.00403de0
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x94]
sub eax, 0x10
mov dword [ebp - 0x824], eax
mov ecx, dword [ebp - 0x824]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x8c]
sub ecx, 0x10
mov dword [ebp - 0x828], ecx
mov ecx, dword [ebp - 0x828]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x82c], edx
mov ecx, dword [ebp - 0x82c]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x48]
sub eax, 0x10
mov dword [ebp - 0x830], eax
mov ecx, dword [ebp - 0x830]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
sub ecx, 0x10
mov dword [ebp - 0x834], ecx
mov ecx, dword [ebp - 0x834]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x838], edx
mov ecx, dword [ebp - 0x838]
call fcn.00403de0
jmp 0x42d780
push str.WIN2000
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x430182
push str.WINNT4
mov edx, dword [ebp - 0x998]
add edx, 0xd0
push edx
call fcn.0043c070
add esp, 8
movzx eax, al
test eax, eax
je 0x4306e3
mov ecx, 0x4cf474
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x85c], ecx
jne 0x4301a5
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x430182
xor eax, eax
jne 0x4301a9
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x860], ecx
push 0x4cf474
mov edx, dword [ebp - 0x860]
push edx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x864], eax
cmp dword [ebp - 0x864], 0
je 0x43026f
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x8c]
sub eax, 0x10
mov dword [ebp - 0x868], eax
mov ecx, dword [ebp - 0x868]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x86c], ecx
mov ecx, dword [ebp - 0x86c]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x48]
sub edx, 0x10
mov dword [ebp - 0x870], edx
mov ecx, dword [ebp - 0x870]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x38]
sub eax, 0x10
mov dword [ebp - 0x874], eax
mov ecx, dword [ebp - 0x874]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x878], ecx
mov ecx, dword [ebp - 0x878]
call fcn.00403de0
jmp 0x42d780
mov edx, dword [ebp - 0x998]
mov dword [edx + 0xd4], 1
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x880], eax
push 0x2e
mov ecx, dword [ebp - 0x880]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x87c], eax
cmp dword [ebp - 0x87c], 0
jne 0x4302b4
mov dword [ebp - 0x9fc], 0xffffffff
jmp 0x4302c5
mov edx, dword [ebp - 0x87c]
sub edx, dword [ebp - 0x3c]
sar edx, 1
mov dword [ebp - 0x9fc], edx
mov eax, dword [ebp - 0x9fc]
sub eax, 2
push eax
lea ecx, [ebp - 0xa0]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x3d
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x884], eax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x88c], ecx
push 0x2e
mov edx, dword [ebp - 0x88c]
push edx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x888], eax
cmp dword [ebp - 0x888], 0
jne 0x430323
mov dword [ebp - 0xa00], 0xffffffff
jmp 0x430334
mov eax, dword [ebp - 0x888]
sub eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0xa00], eax
mov ecx, dword [ebp - 0x884]
sub ecx, dword [ebp - 0xa00]
push ecx
lea edx, [ebp - 0xa4]
push edx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp - 0xa0]
push ecx
lea edx, [ebp - 0x9c]
push edx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x3f
push 0x80
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x1d4]
call fcn.00411370
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0x1d4]
push ecx
lea edx, [ebp - 0x9c]
push edx
lea eax, [ebp - 0x1d8]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x894], eax
mov ecx, dword [ebp - 0x894]
mov edx, dword [ecx]
mov dword [ebp - 0x898], edx
mov eax, dword [ebp - 0x898]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x1d8]
sub ecx, 0x10
mov dword [ebp - 0x89c], ecx
mov ecx, dword [ebp - 0x89c]
call fcn.00403de0
mov byte [ebp - 4], 0x3f
mov edx, dword [ebp - 0x1d4]
sub edx, 0x10
mov dword [ebp - 0x8a0], edx
mov ecx, dword [ebp - 0x8a0]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x1dc]
call fcn.00411370
mov byte [ebp - 4], 0x41
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x9c]
push ecx
lea edx, [ebp - 0x1e0]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x8a8], eax
mov eax, dword [ebp - 0x8a8]
mov ecx, dword [eax]
mov dword [ebp - 0x8ac], ecx
mov edx, dword [ebp - 0x8ac]
push edx
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [ebp - 0x1e0]
sub ecx, 0x10
mov dword [ebp - 0x8b0], ecx
mov ecx, dword [ebp - 0x8b0]
call fcn.00403de0
mov byte [ebp - 4], 0x3f
mov edx, dword [ebp - 0x1dc]
sub edx, 0x10
mov dword [ebp - 0x8b4], edx
mov ecx, dword [ebp - 0x8b4]
call fcn.00403de0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x8b8], eax
push 0
mov ecx, dword [ebp - 0x8b8]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x1e8]
call fcn.00411370
mov byte [ebp - 4], 0x42
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0x9c]
push ecx
lea edx, [ebp - 0x1ec]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x8c0]
mov ecx, dword [eax]
mov dword [ebp - 0x8c4], ecx
mov edx, dword [ebp - 0x8c4]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x1e1], al
mov eax, dword [ebp - 0x1ec]
sub eax, 0x10
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8c8]
call fcn.00403de0
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x1e8]
sub ecx, 0x10
mov dword [ebp - 0x8cc], ecx
mov ecx, dword [ebp - 0x8cc]
call fcn.00403de0
movzx edx, byte [ebp - 0x1e1]
test edx, edx
je 0x4305f5
push 0x4c9f28
lea ecx, [ebp - 0x1f0]
call fcn.00411370
mov byte [ebp - 4], 0x43
lea eax, [ebp - 0x1f0]
push eax
lea ecx, [ebp - 0x9c]
push ecx
lea edx, [ebp - 0x1f4]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x8d4], eax
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax]
mov dword [ebp - 0x8d8], ecx
push 4
push 0
mov edx, dword [ebp - 0x8d8]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x1f4]
sub eax, 0x10
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x8dc]
call fcn.00403de0
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x1f0]
sub ecx, 0x10
mov dword [ebp - 0x8e0], ecx
mov ecx, dword [ebp - 0x8e0]
call fcn.00403de0
mov byte [ebp - 4], 0x3e
mov edx, dword [ebp - 0x9c]
sub edx, 0x10
mov dword [ebp - 0x8e4], edx
mov ecx, dword [ebp - 0x8e4]
call fcn.00403de0
mov byte [ebp - 4], 0x3d
mov eax, dword [ebp - 0xa4]
sub eax, 0x10
mov dword [ebp - 0x8e8], eax
mov ecx, dword [ebp - 0x8e8]
call fcn.00403de0
mov byte [ebp - 4], 0x35
mov ecx, dword [ebp - 0xa0]
sub ecx, 0x10
mov dword [ebp - 0x8ec], ecx
mov ecx, dword [ebp - 0x8ec]
call fcn.00403de0
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x8c]
sub edx, 0x10
mov dword [ebp - 0x8f0], edx
mov ecx, dword [ebp - 0x8f0]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x8f4], eax
mov ecx, dword [ebp - 0x8f4]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x8f8], ecx
mov ecx, dword [ebp - 0x8f8]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x8fc], edx
mov ecx, dword [ebp - 0x8fc]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x900], eax
mov ecx, dword [ebp - 0x900]
call fcn.00403de0
jmp 0x42d780
push str.WINVISTA
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
je 0x430bc0
mov eax, 0x4cf46c
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x914], eax
jne 0x43072b
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x430708
xor edx, edx
jne 0x43072f
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x918], eax
push 0x4cf46c
mov ecx, dword [ebp - 0x918]
push ecx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x91c], eax
cmp dword [ebp - 0x91c], 0
je 0x4307f5
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x8c]
sub edx, 0x10
mov dword [ebp - 0x920], edx
mov ecx, dword [ebp - 0x920]
call fcn.00403de0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x924], eax
mov ecx, dword [ebp - 0x924]
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
sub ecx, 0x10
mov dword [ebp - 0x928], ecx
mov ecx, dword [ebp - 0x928]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x38]
sub edx, 0x10
mov dword [ebp - 0x92c], edx
mov ecx, dword [ebp - 0x92c]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x930], eax
mov ecx, dword [ebp - 0x930]
call fcn.00403de0
jmp 0x42d780
mov ecx, dword [ebp - 0x998]
mov dword [ecx + 0xd4], 1
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x938], edx
push 0x2e
mov eax, dword [ebp - 0x938]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x934], eax
cmp dword [ebp - 0x934], 0
jne 0x43083a
mov dword [ebp - 0xa04], 0xffffffff
jmp 0x43084b
mov ecx, dword [ebp - 0x934]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0xa04], ecx
mov edx, dword [ebp - 0xa04]
sub edx, 2
push edx
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x44
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x93c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x944], eax
push 0x2e
mov ecx, dword [ebp - 0x944]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x940], eax
cmp dword [ebp - 0x940], 0
jne 0x4308a9
mov dword [ebp - 0xa08], 0xffffffff
jmp 0x4308ba
mov edx, dword [ebp - 0x940]
sub edx, dword [ebp - 0x3c]
sar edx, 1
mov dword [ebp - 0xa08], edx
mov eax, dword [ebp - 0x93c]
sub eax, dword [ebp - 0xa08]
push eax
lea ecx, [ebp - 0xb0]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x45
lea edx, [ebp - 0xb0]
push edx
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xa8]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x46
push 0x80
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x1f8]
call fcn.00411370
mov byte [ebp - 4], 0x47
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0xa8]
push ecx
lea edx, [ebp - 0x1fc]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x94c], eax
mov eax, dword [ebp - 0x94c]
mov ecx, dword [eax]
mov dword [ebp - 0x950], ecx
mov edx, dword [ebp - 0x950]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x1fc]
sub eax, 0x10
mov dword [ebp - 0x954], eax
mov ecx, dword [ebp - 0x954]
call fcn.00403de0
mov byte [ebp - 4], 0x46
mov ecx, dword [ebp - 0x1f8]
sub ecx, 0x10
mov dword [ebp - 0x958], ecx
mov ecx, dword [ebp - 0x958]
call fcn.00403de0
push 0x4c9f28
lea ecx, [ebp - 0x200]
call fcn.00411370
mov byte [ebp - 4], 0x48
lea edx, [ebp - 0x200]
push edx
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x204]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x960], eax
mov edx, dword [ebp - 0x960]
mov eax, dword [edx]
mov dword [ebp - 0x964], eax
mov ecx, dword [ebp - 0x964]
push ecx
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x204]
sub eax, 0x10
mov dword [ebp - 0x968], eax
mov ecx, dword [ebp - 0x968]
call fcn.00403de0
mov byte [ebp - 4], 0x46
mov ecx, dword [ebp - 0x200]
sub ecx, 0x10
mov dword [ebp - 0x96c], ecx
mov ecx, dword [ebp - 0x96c]
call fcn.00403de0
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0x970], edx
push 0
mov eax, dword [ebp - 0x970]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x20c]
call fcn.00411370
mov byte [ebp - 4], 0x49
lea edx, [ebp - 0x20c]
push edx
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x978], eax
mov edx, dword [ebp - 0x978]
mov eax, dword [edx]
mov dword [ebp - 0x97c], eax
mov ecx, dword [ebp - 0x97c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x205], al
mov edx, dword [ebp - 0x210]
sub edx, 0x10
mov dword [ebp - 0x980], edx
mov ecx, dword [ebp - 0x980]
call fcn.00403de0
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x20c]
call fcn.00402470
movzx eax, byte [ebp - 0x205]
test eax, eax
je 0x430b4a
push 0x4c9f28
lea ecx, [ebp - 0x214]
call fcn.00411370
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x214]
push ecx
lea edx, [ebp - 0xa8]
push edx
lea eax, [ebp - 0x218]
push eax
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0x98c], eax
mov ecx, dword [ebp - 0x98c]
mov edx, dword [ecx]
mov dword [ebp - 0x990], edx
push 4
push 0
mov eax, dword [ebp - 0x990]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x218]
call fcn.00402470
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x214]
call fcn.00402450
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0xa8]
call fcn.00402450
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0xb0]
call fcn.00402450
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0xac]
call fcn.00402450
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
push str.WINDOWS7
mov ecx, dword [ebp - 0x998]
add ecx, 0xd0
push ecx
call fcn.0043c070
add esp, 8
movzx edx, al
test edx, edx
jne 0x430c05
push str.WINDOWS8
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x430f37
push 0x4cf464
lea ecx, [ebp - 0x8c]
call fcn.00421fa0
test eax, eax
je 0x430c5d
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
mov edx, dword [ebp - 0x998]
mov dword [edx + 0xd4], 1
push 0x2e
lea ecx, [ebp - 0x3c]
call fcn.0043bbe0
sub eax, 2
push eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x4b
lea ecx, [ebp - 0x3c]
call fcn.0043c2a0
mov esi, eax
push 0x2e
lea ecx, [ebp - 0x3c]
call fcn.0043bbe0
sub esi, eax
push esi
lea ecx, [ebp - 0xbc]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x4c
lea edx, [ebp - 0xbc]
push edx
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0xb4]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x4d
push 0x80
lea ecx, [ebp - 0xb4]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x21c]
call fcn.00411370
mov byte [ebp - 4], 0x4e
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x220]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa0c], eax
mov ecx, dword [ebp - 0xa0c]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x220]
call fcn.00402450
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x21c]
call fcn.00402450
push 0x4c9f28
lea ecx, [ebp - 0x224]
call fcn.00411370
mov byte [ebp - 4], 0x4f
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x228]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa10], eax
mov ecx, dword [ebp - 0xa10]
call fcn.0043c290
push eax
lea ecx, [ebp - 0xb4]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea ecx, [ebp - 0x228]
call fcn.00402450
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x224]
call fcn.00402450
push 0
lea ecx, [ebp - 0xb4]
call fcn.0043c290
push eax
lea ecx, [ebp - 0x38]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x230]
call fcn.00411370
mov byte [ebp - 4], 0x50
lea edx, [ebp - 0x230]
push edx
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x234]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa14], eax
mov ecx, dword [ebp - 0xa14]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x229], al
lea ecx, [ebp - 0x234]
call fcn.00402450
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x230]
call fcn.00402450
movzx edx, byte [ebp - 0x229]
test edx, edx
je 0x430ec1
push 0x4c9f28
lea ecx, [ebp - 0x238]
call fcn.00411370
mov byte [ebp - 4], 0x51
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0xb4]
push ecx
lea edx, [ebp - 0x23c]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa18], eax
push 4
push 0
mov ecx, dword [ebp - 0xa18]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x23c]
call fcn.00402450
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x238]
call fcn.00402450
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0xb4]
call fcn.00402450
mov byte [ebp - 4], 0x4b
lea ecx, [ebp - 0xbc]
call fcn.00402450
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0xb8]
call fcn.00402450
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
push str.WINDOWS10
mov eax, dword [ebp - 0x998]
add eax, 0xd0
push eax
call fcn.0043c070
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x431288
push 0x4cf45c
lea ecx, [ebp - 0x8c]
call fcn.00421fa0
test eax, eax
je 0x430fb3
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
mov edx, dword [ebp - 0x998]
mov dword [edx + 0xd4], 1
push 0x2e
lea ecx, [ebp - 0x3c]
call fcn.0043bbe0
sub eax, 2
push eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040f7f0
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x3c]
call fcn.0043c2a0
mov esi, eax
push 0x2e
lea ecx, [ebp - 0x3c]
call fcn.0043bbe0
sub esi, eax
push esi
lea ecx, [ebp - 0xc8]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040f740
mov byte [ebp - 4], 0x53
lea edx, [ebp - 0xc8]
push edx
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.0040f890
add esp, 0xc
mov byte [ebp - 4], 0x54
push 0x80
lea ecx, [ebp - 0xc0]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4c9f28
lea ecx, [ebp - 0x240]
call fcn.00411370
mov byte [ebp - 4], 0x55
lea edx, [ebp - 0x240]
push edx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x244]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa1c], eax
mov ecx, dword [ebp - 0xa1c]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x244]
call fcn.00402450
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x240]
call fcn.00402450
push 0x4c9f28
lea ecx, [ebp - 0x248]
call fcn.00411370
mov byte [ebp - 4], 0x56
lea edx, [ebp - 0x248]
push edx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x24c]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa20], eax
mov ecx, dword [ebp - 0xa20]
call fcn.0043c290
push eax
lea ecx, [ebp - 0xc0]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea ecx, [ebp - 0x24c]
call fcn.00402450
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x248]
call fcn.00402450
push 0
lea ecx, [ebp - 0xc0]
call fcn.0043c290
push eax
lea ecx, [ebp - 0x38]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x4c9f28
lea ecx, [ebp - 0x254]
call fcn.00411370
mov byte [ebp - 4], 0x57
lea edx, [ebp - 0x254]
push edx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x258]
push ecx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa24], eax
mov ecx, dword [ebp - 0xa24]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x24d], al
lea ecx, [ebp - 0x258]
call fcn.00402450
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x254]
call fcn.00402450
movzx edx, byte [ebp - 0x24d]
test edx, edx
je 0x431217
push 0x4c9f28
lea ecx, [ebp - 0x25c]
call fcn.00411370
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0xc0]
push ecx
lea edx, [ebp - 0x260]
push edx
call fcn.0040f890
add esp, 0xc
mov dword [ebp - 0xa28], eax
push 4
push 0
mov ecx, dword [ebp - 0xa28]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x260]
call fcn.00402450
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x25c]
call fcn.00402450
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0xc0]
call fcn.00402450
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0xc8]
call fcn.00402450
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0xc4]
call fcn.00402450
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8c]
call fcn.00402450
push 0x80
lea ecx, [ebp - 0x3c]
call fcn.0043c290
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0x998]
call fcn.0042d2b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00402450
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x48]
call fcn.00402450
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x38]
call fcn.00402450
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x3c]
call fcn.00402450
jmp 0x42d780
lea ecx, [ebp - 0x24]
call fcn.00449ad8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28]
call fcn.00402450
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402450
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00449fc9
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00402450
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00402450
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0xc