Function at 0x4309b4
Capabilities:
Copy file
Delete file
Move file
Set file attributes

Disassembly:
push 0x3dc
mov eax, 0x67c615
call fcn.005b85cd
mov eax, dword [0x7534c4]
xor ebx, ebx
mov dword [ebp - 0x278], ecx
mov dword [ebp - 0x270], ebx
cmp dword [eax + 0x1cc], ebx
jne 0x4309e5
xor eax, eax
jmp 0x431fb6
push ecx
mov ecx, esp
mov dword [ebp - 0x2b4], esp
push str.MSG_INSTALLING
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x128], ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x2b4]
push eax
add ecx, 0x16c
call fcn.0043db02
push ecx
mov ecx, esp
mov dword [ebp - 0x2ac], esp
push str.MSG_SKIPPING
mov dword [ebp - 4], ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x308]
push eax
add ecx, 0x16c
call fcn.0043db02
mov byte [ebp - 4], 1
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x294]
call fcn.004015a6
mov byte [ebp - 4], 2
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x268]
call fcn.004015a6
mov byte [ebp - 4], 3
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x29c]
call fcn.004015a6
mov byte [ebp - 4], 4
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x288]
call fcn.004015a6
mov byte [ebp - 4], 5
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x2ac]
call fcn.004015a6
mov byte [ebp - 4], 6
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x274]
call fcn.004015a6
mov byte [ebp - 4], 7
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x2f8]
call fcn.004015a6
lea ecx, [ebp - 0x3e8]
mov byte [ebp - 4], 8
call fcn.004211bb
push ecx
mov ecx, esp
mov dword [ebp - 0x2bc], esp
push str._SuppressUninstallDataDuplicateCheck
mov byte [ebp - 4], 9
call fcn.00401b65
mov ecx, dword [0x7534c4]
add ecx, 0x130
call fcn.0040cb3f
mov dword [ebp - 0x3e4], eax
mov eax, dword [0x7534c4]
mov eax, dword [eax + 0x1c4]
cmp eax, ebx
je 0x431f23
cmp dword [ebp - 0x270], ebx
jne 0x431f23
mov ecx, dword [eax]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x18]
push ecx
sub eax, 0x10
mov dword [ebp - 0x280], esp
mov edi, esp
push eax
mov dword [ebp - 0x2bc], ecx
mov dword [ebp - 0x27c], esi
call fcn.0040149c
add eax, 0x10
mov dword [edi], eax
pop ecx
lea eax, [ebp - 0x348]
push eax
call fcn.004426d5
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0xa
call fcn.0040191c
mov ecx, dword [ebp - 0x348]
add ecx, 0xfffffff0
mov byte [ebp - 4], 9
call fcn.0040124d
mov edx, dword [ebp - 0x288]
mov eax, dword [edx - 0xc]
lea ecx, [eax - 1]
cmp ecx, ebx
jl 0x431f19
cmp ecx, eax
jg 0x431f19
cmp byte [ecx + edx], 0x5c
je 0x430be8
mov edi, 0x69cdcc
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x288]
call fcn.00403c44
mov eax, dword [esi + 0xc]
push dword [eax - 0xc]
lea ecx, [ebp - 0x288]
push eax
call fcn.00403c44
mov eax, dword [esi + 0x68]
push ecx
sub eax, 0x10
mov dword [ebp - 0x280], esp
mov edi, esp
push eax
call fcn.0040149c
add eax, 0x10
mov dword [edi], eax
pop ecx
lea eax, [ebp - 0x2f0]
push eax
call fcn.004426d5
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0xb
call fcn.0040191c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0xfffffff0
mov byte [ebp - 4], 9
call fcn.0040124d
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x268]
call fcn.0040191c
mov edx, dword [ebp - 0x268]
mov eax, dword [edx - 0xc]
lea ecx, [eax - 1]
cmp ecx, ebx
jl 0x431f19
cmp ecx, eax
jg 0x431f19
cmp byte [ecx + edx], 0x5c
je 0x430c92
mov edi, 0x69cdcc
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x268]
call fcn.00403c44
mov eax, dword [esi + 0xc]
push dword [eax - 0xc]
lea ecx, [ebp - 0x268]
push eax
call fcn.00403c44
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x29c]
call fcn.0040191c
mov edi, dword [ebp - 0x278]
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x10], ebx
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x2a8]
call fcn.004015a6
mov byte [ebp - 4], 0xc
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x2a4]
call fcn.004015a6
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x268]
push eax
push esi
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.0042be55
test eax, eax
je 0x431cfc
push dword [ebp - 0x29c]
lea ecx, [ebp - 0x268]
call fcn.00405450
test eax, eax
jne 0x430d6e
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x300]
push str.Install_external_file:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push ebx
push ebx
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0xe
call fcn.0043b7c8
mov ecx, dword [ebp - 0x300]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
mov eax, dword [ebp - 0x294]
mov edi, dword [ebp - 0x278]
add eax, 0xfffffff0
mov dword [ebp - 0x280], eax
push ecx
mov dword [ebp - 0x26c], esp
mov dword [ebp - 0x26c], esp
push dword [ebp - 0x280]
call fcn.0040149c
pop ecx
mov ecx, dword [ebp - 0x26c]
add eax, 0x10
mov dword [ecx], eax
mov ecx, edi
call fcn.00428c87
cmp eax, ebx
jne 0x430eeb
cmp dword [ebp - 0x270], ebx
jne 0x430eeb
push str.ERR_CREATE_FOLDER
lea ecx, [ebp - 0x2b8]
call fcn.00401b65
lea eax, [ebp - 0x2b8]
push eax
push 0x79
mov ecx, edi
mov byte [ebp - 4], 0xf
call fcn.0042dda5
mov ecx, dword [ebp - 0x2b8]
add ecx, 0xfffffff0
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 0xd
call fcn.0040124d
cmp dword [ebp - 0x270], ebx
je 0x430d83
push dword [ebp - 0x294]
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
push str.ERR_CREATE_FOLDER
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x310]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
lea eax, [ebp - 0x274]
push str._s_n_n_s
push eax
mov byte [ebp - 4], 0x10
call fcn.0040255b
mov ecx, dword [ebp - 0x310]
add esp, 0x10
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
call fcn.00442752
test eax, eax
jne 0x430d83
push 0x15
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
push str.MSG_ERROR
mov dword [ebp - 0x270], ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x328]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov eax, dword [edi + 8]
push dword [ebp - 0x274]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x328]
add ecx, 0xfffffff0
mov dword [ebp - 0x26c], eax
call fcn.0040124d
cmp dword [ebp - 0x26c], 2
jne 0x430d83
mov dword [ebp - 0x270], 0x79
jmp 0x430d83
mov dword [ebp - 0x290], ebx
mov dword [ebp - 0x280], ebx
mov dword [ebp - 0x284], ebx
cmp dword [ebp - 0x270], ebx
jne 0x4314c0
cmp dword [ebp - 0x280], ebx
jne 0x4314c0
cmp byte [esi + 0xb4], bl
je 0x430f6b
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x288]
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x25c], ebx
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], ebx
call fcn.0044c81e
pop ecx
pop ecx
test eax, eax
je 0x430f6b
mov eax, dword [ebp - 0x24c]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x248]
mov dword [esi + 0x2c], eax
xor edi, edi
lea eax, [ebp - 0x290]
push eax
mov eax, dword [0x7534c4]
push dword [eax + 0x124]
push dword [eax + 0x120]
push dword [eax + 0x12c]
push dword [eax + 0x128]
push dword [esi + 0x2c]
push dword [esi + 0x28]
push dword [ebp - 0x278]
push dword [ebp - 0x268]
push dword [ebp - 0x288]
call fcn.00404482
add esp, 0x28
mov dword [ebp - 0x280], eax
cmp eax, ebx
jne 0x431324
cmp dword [ebp - 0x290], 0x63
je 0x430fd9
push 0xfa
inc edi
call dword [0x69b5d8]
cmp edi, 5
jb 0x430f6d
push 0x69c5b8
lea ecx, [ebp - 0x28c]
call fcn.00401b65
mov eax, dword [ebp - 0x290]
dec eax
mov byte [ebp - 4], 0x11
je 0x431208
dec eax
je 0x431176
dec eax
je 0x4310f0
dec eax
je 0x4310a9
dec eax
je 0x431062
sub eax, 0x5e
je 0x431312
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_COPY_GENERAL
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x330]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x17
call fcn.0040191c
mov ecx, dword [ebp - 0x330]
jmp 0x43124a
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_FILE_WRITE
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x338]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x16
call fcn.0040191c
mov ecx, dword [ebp - 0x338]
jmp 0x431132
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_FILE_READ
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x340]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x15
call fcn.0040191c
mov ecx, dword [ebp - 0x340]
jmp 0x4311b8
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_OPEN_OUTPUT
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x358]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x14
call fcn.0040191c
mov ecx, dword [ebp - 0x358]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x11
call fcn.0040124d
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28c]
call fcn.004017d9
mov edi, 0x69d848
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x274]
call fcn.00403c44
mov eax, dword [ebp - 0x268]
jmp 0x4311f7
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_OPEN_INPUT
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x31c]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x13
call fcn.0040191c
mov ecx, dword [ebp - 0x31c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x11
call fcn.0040124d
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28c]
call fcn.004017d9
mov edi, 0x69d848
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x274]
call fcn.00403c44
mov eax, dword [ebp - 0x288]
push dword [eax - 0xc]
lea ecx, [ebp - 0x274]
push eax
call fcn.00403c44
jmp 0x43126a
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
mov edi, str.ERR_MEMORY_ALLOCATION
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x350]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x12
call fcn.0040191c
mov ecx, dword [ebp - 0x350]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x11
call fcn.0040124d
push edi
call fcn.005b80b0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28c]
call fcn.004017d9
cmp dword [ebp - 0x290], 0x63
je 0x431312
mov edi, dword [ebp - 0x278]
lea eax, [ebp - 0x28c]
push eax
push 0x7e
mov ecx, edi
call fcn.0042dda5
mov dword [ebp - 0x270], eax
cmp eax, ebx
jne 0x43129b
push 5
jmp 0x4312f9
call fcn.00442752
test eax, eax
jne 0x4312f7
push 0x32
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
push str.MSG_ERROR
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x2ec]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov eax, dword [edi + 8]
push dword [ebp - 0x274]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x2ec]
add ecx, 0xfffffff0
mov edi, eax
call fcn.0040124d
jmp 0x4312fa
push 3
pop edi
sub edi, 4
je 0x43130c
dec edi
jne 0x431312
mov dword [ebp - 0x284], 1
mov dword [ebp - 0x270], ebx
mov ecx, dword [ebp - 0x28c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
cmp dword [ebp - 0x290], ebx
jne 0x431488
cmp dword [ebp - 0x270], ebx
jne 0x431488
cmp dword [ebp - 0x284], ebx
jne 0x431488
cmp byte [esi + 0xb4], bl
jne 0x431488
mov dword [ebp - 0x26c], ebx
push dword [ebp - 0x268]
call fcn.00403844
mov edi, eax
pop ecx
cmp dword [esi + 0x118], edi
je 0x431488
inc dword [ebp - 0x26c]
push 0xfa
call dword [0x69b5d8]
cmp dword [ebp - 0x26c], 5
jb 0x43135a
cmp dword [esi + 0x118], edi
je 0x431488
push dword [ebp - 0x268]
call dword [0x69b358]
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
push str.ERR_DECOMPRESS_CRC
mov dword [ebp - 0x280], ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x334]
push eax
add ecx, 0x16c
call fcn.0043db02
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp - 4], 0x18
call fcn.0040191c
mov ecx, dword [ebp - 0x334]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
call fcn.00442752
test eax, eax
jne 0x43145b
push 0x32
push ecx
mov ecx, esp
mov dword [ebp - 0x26c], esp
push str.MSG_ERROR
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x2f4]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x274]
mov eax, dword [eax + 8]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x2f4]
add ecx, 0xfffffff0
mov edi, eax
call fcn.0040124d
jmp 0x43145e
push 3
pop edi
sub edi, 3
je 0x431483
dec edi
je 0x43147b
dec edi
jne 0x431488
mov dword [ebp - 0x270], ebx
mov dword [ebp - 0x284], 1
jmp 0x431488
mov dword [ebp - 0x270], ebx
jmp 0x431488
call fcn.004043c1
mov ecx, dword [ebp - 0x278]
call fcn.00424b78
test eax, eax
je 0x4314b4
mov eax, dword [0x7534c4]
mov eax, dword [eax + 0x19c]
neg eax
sbb eax, eax
and eax, 0xffffd8ec
add eax, 5
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x284], ebx
je 0x430efd
cmp dword [ebp - 0x290], ebx
jne 0x431cb5
cmp dword [ebp - 0x270], ebx
jne 0x431cb5
cmp dword [ebp - 0x284], ebx
jne 0x431cb5
mov eax, dword [ebp - 0x278]
cmp dword [eax + 0x10], ebx
je 0x4316f2
mov edi, eax
add edi, 0x14
mov eax, dword [edi]
push 0x80
push eax
call dword [0x69b35c]
mov eax, dword [edi]
push ebx
push eax
push dword [ebp - 0x268]
call dword [0x69b5a4]
test eax, eax
jne 0x431692
mov eax, dword [edi]
push 5
push eax
push dword [ebp - 0x268]
call dword [0x69b5a0]
mov eax, dword [ebp - 0x278]
cmp dword [eax + 0x28], ebx
jne 0x431548
cmp dword [eax + 0x2c], ebx
jne 0x431548
cmp dword [eax + 0x30], ebx
je 0x43161e
push str.WININIT.INI
push ecx
mov ecx, esp
mov dword [ebp - 0x280], esp
push str._WindowsFolder_
call fcn.00401b65
lea eax, [ebp - 0x304]
push eax
call fcn.004426d5
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x33c]
push eax
mov byte [ebp - 4], 0x19
call fcn.00405bb5
add esp, 0xc
mov dword [ebp - 0x280], eax
push dword [ebp - 0x268]
mov ecx, dword [ebp - 0x278]
lea eax, [ebp - 0x2fc]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00452c26
mov dword [ebp - 0x26c], eax
push dword [edi]
mov ecx, dword [ebp - 0x278]
lea eax, [ebp - 0x2e0]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00452c26
mov ecx, dword [ebp - 0x280]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x26c]
mov edx, dword [edx]
mov eax, dword [eax]
push ecx
push edx
push eax
push str.Rename
call dword [0x69b588]
mov ecx, dword [ebp - 0x2e0]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2fc]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x33c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x304]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x280], esp
push str._NeedsReboot
mov byte [esi + 5], 1
call fcn.00401b65
mov ecx, dword [0x7534c4]
add ecx, 0x130
call fcn.0040caaf
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x34c]
push str.Protected_external_file_install_on_reboot:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push ebx
push ebx
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x1c
call fcn.0043b7c8
mov ecx, dword [ebp - 0x34c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
jmp 0x4316f2
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x30c]
push str.Install_external_file:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push ebx
push ebx
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x1d
call fcn.0043b7c8
mov ecx, dword [ebp - 0x30c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
push dword [ebp - 0x268]
call dword [0x69b358]
push edi
lea ecx, [ebp - 0x268]
call fcn.0040191c
lea eax, [ebp - 0x13c]
push eax
push dword [ebp - 0x268]
call fcn.0044c81e
pop ecx
pop ecx
test eax, eax
je 0x4318bf
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0x120], ebx
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x13c], eax
mov ecx, dword [esi + 0x38]
and eax, ecx
mov dword [ebp - 0x138], ecx
cmp eax, 0xffffffff
jne 0x431746
push ebx
call fcn.005b92ef
pop ecx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x134], eax
mov ecx, dword [esi + 0x48]
and eax, ecx
mov dword [ebp - 0x130], ecx
cmp eax, 0xffffffff
jne 0x431772
push ebx
call fcn.005b92ef
pop ecx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [esi + 0x40]
and eax, ecx
mov dword [ebp - 0x128], ecx
cmp eax, 0xffffffff
jne 0x43179e
push ebx
call fcn.005b92ef
pop ecx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], edx
mov al, byte [esi + 0x30]
mov byte [ebp - 0x11c], al
mov dword [ebp - 0x284], ebx
mov dword [ebp - 0x280], ebx
jmp 0x4317bd
push ebx
lea eax, [ebp - 0x13c]
push eax
push dword [ebp - 0x268]
mov byte [ebp - 4], 0x1e
call fcn.004cfc83
mov dword [ebp - 4], 0xd
jmp 0x4318bf
cmp byte [esi + 0xa8], bl
jne 0x431978
push dword [esi + 0xac]
push dword [ebp - 0x268]
call dword [0x69b35c]
test eax, eax
lea eax, [ebp - 0x268]
push eax
push str.Change_file_attributes:
je 0x43193a
lea eax, [ebp - 0x314]
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push ebx
push ebx
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x22
call fcn.0043b7c8
mov ecx, dword [ebp - 0x314]
jmp 0x43196c
lea eax, [ebp - 0x318]
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push 1
push 1
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x23
call fcn.0043b7c8
mov ecx, dword [ebp - 0x318]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
mov edi, dword [ebp - 0x278]
push esi
mov ecx, edi
call fcn.004279b8
mov dword [ebp - 0x270], eax
cmp byte [esi + 0x9c], bl
je 0x4319a6
push esi
mov ecx, edi
call fcn.004257bb
test eax, eax
jne 0x4319a6
inc dword [edi + 0x80]
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push str.CreateUninstall
call fcn.00401b65
mov ecx, dword [0x7534c4]
call fcn.00407084
cmp eax, ebx
je 0x431bb1
mov eax, dword [0x7534c4]
cmp dword [eax + 0x1fc], ebx
je 0x431bb1
cmp byte [esi + 0xb5], bl
jne 0x431bb1
lea ecx, [ebp - 0x398]
call fcn.0041ce2e
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x394]
mov byte [ebp - 4], 0x24
call fcn.0040191c
movzx eax, byte [esi + 0xb6]
mov dword [ebp - 0x390], eax
movzx eax, byte [esi + 0xa4]
mov dword [ebp - 0x38c], eax
movzx eax, byte [esi + 0x9c]
mov dword [ebp - 0x388], eax
lea eax, [esi + 0xa0]
push eax
lea ecx, [ebp - 0x384]
call fcn.0040191c
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x380]
call fcn.0040191c
lea eax, [ebp - 0x398]
push eax
lea ecx, [ebp - 0x3e8]
call fcn.004214ce
mov dword [ebp - 0x27c], eax
cmp eax, ebx
je 0x431ba2
mov edi, str.ERR_CREATE_UNINSTALL_ENTRY
push edi
lea ecx, [ebp - 0x2b0]
call fcn.00401b65
mov ecx, dword [ebp - 0x278]
lea eax, [ebp - 0x2b0]
push eax
push 0x7f
mov byte [ebp - 4], 0x25
call fcn.0042dda5
mov ecx, dword [ebp - 0x2b0]
add ecx, 0xfffffff0
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 0x24
call fcn.0040124d
cmp dword [ebp - 0x270], ebx
je 0x431ba2
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x298]
call fcn.004015a6
push dword [ebp - 0x268]
mov byte [ebp - 4], 0x26
push dword [ebp - 0x27c]
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push edi
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x320]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
lea eax, [ebp - 0x298]
push str._s___d_:_r_n_s
push eax
mov byte [ebp - 4], 0x27
call fcn.0040255b
mov ecx, dword [ebp - 0x320]
add esp, 0x14
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x26
call fcn.0040124d
call fcn.00442752
test eax, eax
jne 0x431b94
push 0x10
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push str.MSG_ERROR
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x354]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov eax, dword [ebp - 0x278]
push dword [ebp - 0x298]
mov eax, dword [eax + 8]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x354]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x298]
add ecx, 0xfffffff0
call fcn.0040124d
lea ecx, [ebp - 0x398]
mov byte [ebp - 4], 0xd
call fcn.0041ce8c
mov ecx, dword [esi + 0x28]
mov eax, dword [0x7534c4]
add dword [eax + 0x128], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x2c4], ebx
adc dword [eax + 0x12c], ecx
mov eax, dword [0x7534c4]
mov ecx, dword [eax + 0x128]
mov edx, dword [eax + 0x12c]
mov esi, dword [eax + 0x120]
mov eax, dword [eax + 0x124]
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x2c0], edx
mov ecx, 0x7fffffff
and edx, ecx
mov dword [ebp - 0x360], edx
fild qword [ebp - 0x364]
mov edx, 0x80000000
and dword [ebp - 0x2c0], edx
fild qword [ebp - 0x2c4]
mov dword [ebp - 0x2d8], eax
and dword [ebp - 0x2d8], edx
and eax, ecx
fchs
mov dword [ebp - 0x370], eax
faddp st(1)
mov dword [ebp - 0x374], esi
fild qword [ebp - 0x374]
mov dword [ebp - 0x2dc], ebx
fild qword [ebp - 0x2dc]
fchs
faddp st(1)
fdivp st(1)
fmul qword [0x69cd80]
call fcn.005b8cd6
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push 0x69cd88
mov esi, eax
call fcn.00401b65
mov ecx, dword [0x7534c4]
add ecx, 0x130
call fcn.0040cae3
push esi
mov edi, eax
mov eax, dword [ebp - 0x268]
push ebx
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x27c], esp
mov esi, esp
push eax
call fcn.0040149c
pop ecx
mov ecx, dword [ebp - 0x278]
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.00428a7b
jmp 0x431ec2
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x324]
push str.Install_external_file:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push dword [ebp - 0x290]
add ecx, 0x6dc
push 1
push eax
mov byte [ebp - 4], 0x28
call fcn.0043b7c8
mov ecx, dword [ebp - 0x324]
jmp 0x431eb6
mov ecx, dword [esi + 0x28]
mov eax, dword [0x7534c4]
add dword [eax + 0x128], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x2d4], ebx
adc dword [eax + 0x12c], ecx
mov eax, dword [0x7534c4]
mov edx, dword [eax + 0x128]
mov ecx, dword [eax + 0x12c]
mov esi, dword [eax + 0x120]
mov eax, dword [eax + 0x124]
mov dword [ebp - 0x37c], edx
mov dword [ebp - 0x2d0], ecx
mov edx, 0x7fffffff
and ecx, edx
mov dword [ebp - 0x378], ecx
fild qword [ebp - 0x37c]
mov ecx, 0x80000000
and dword [ebp - 0x2d0], ecx
fild qword [ebp - 0x2d4]
mov dword [ebp - 0x2c8], eax
and dword [ebp - 0x2c8], ecx
and eax, edx
fchs
mov dword [ebp - 0x368], eax
faddp st(1)
mov dword [ebp - 0x36c], esi
fild qword [ebp - 0x36c]
mov dword [ebp - 0x2cc], ebx
fild qword [ebp - 0x2cc]
fchs
faddp st(1)
fdivp st(1)
fmul qword [0x69cd80]
call fcn.005b8cd6
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push 0x69cd88
mov esi, eax
call fcn.00401b65
mov ecx, dword [0x7534c4]
add ecx, 0x130
call fcn.0040cae3
push esi
push ebx
push ecx
mov dword [ebp - 0x27c], esp
mov esi, esp
push ecx
mov ecx, esp
mov dword [ebp - 0x27c], esp
push str.MSG_SEEKING
mov edi, eax
call fcn.00401b65
mov ecx, dword [0x7534c4]
push esi
add ecx, 0x16c
call fcn.0043db02
mov ecx, dword [ebp - 0x278]
push edi
call fcn.00428a7b
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x2e8]
push str.External_file:
push eax
call fcn.0040ccc6
push str.__Reason:
push eax
lea eax, [ebp - 0x2e4]
push eax
mov byte [ebp - 4], 0x29
call fcn.00405bb5
lea ecx, [ebp - 0x2a8]
push ecx
push eax
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x32c]
push eax
call fcn.00405b5e
push 0x6a0550
push eax
lea eax, [ebp - 0x35c]
push eax
mov byte [ebp - 4], 0x2b
call fcn.00405bb5
add esp, 0x30
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push ebx
push ebx
push 3
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x2c
call fcn.0043b7c8
mov ecx, dword [ebp - 0x35c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x32c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2e4]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2e8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.0040124d
mov ecx, dword [ebp - 0x278]
call fcn.00424b78
test eax, eax
je 0x431eee
mov eax, dword [0x7534c4]
mov eax, dword [eax + 0x19c]
neg eax
sbb eax, eax
and eax, 0xffffd8ec
add eax, 5
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x2a4]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2a8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 9
call fcn.0040124d
mov eax, dword [ebp - 0x2bc]
jmp 0x430b3d
push 0x80070057
call fcn.004012e4
lea ecx, [ebp - 0x3e8]
mov byte [ebp - 4], 8
call fcn.004211ec
mov ecx, dword [ebp - 0x2f8]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x274]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2ac]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x288]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x29c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x268]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x294]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x308]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x2b4]
add ecx, 0xfffffff0
call fcn.0040124d
mov eax, dword [ebp - 0x270]
call fcn.005b8629
ret