Function at 0x4400d4
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b1724
mov eax, dword fs:[0]
push eax
mov eax, 0x1394
call fcn.00593490
mov eax, dword [0x637190]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x134c], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x1314]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x1354], eax
mov dword [ebp - 0x1350], ebx
call fcn.004365c4
xor eax, eax
lea ecx, [ebp - 0x136c]
mov dword [ebp - 4], eax
call fcn.0046d5d4
xor eax, eax
lea ecx, [ebp - 0x1398]
inc eax
mov byte [ebp - 4], al
call fcn.0046d5d4
push 0x5cff40
mov edi, str.CInstallAction::InstallOtherFiles
mov byte [ebp - 4], 2
push edi
push 5
call fcn.00424dad
add esp, 0xc
xor esi, esi
mov dword [ebx], esi
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0040c05d
push eax
lea ecx, [ebp - 0x1314]
call fcn.004366a9
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.00410762
mov dword [ebp - 0x1380], eax
mov dword [ebp - 0x1340], esi
test eax, eax
je 0x441348
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x1318]
push ebx
call fcn.00406ad4
mov byte [ebp - 4], 3
call fcn.00473f1b
push eax
lea ecx, [ebp - 0x1328]
call fcn.00406a4a
mov byte [ebp - 4], 4
call fcn.00473f1b
push eax
lea ecx, [ebp - 0x1334]
call fcn.00406a4a
xor ecx, ecx
mov byte [ebp - 4], 5
push ecx
mov dword [ebp - 0x664], ecx
xor eax, eax
push ebx
lea ecx, [ebp - 0x674]
mov dword [ebp - 0x660], 7
mov word [ebp - 0x674], ax
call fcn.00404be0
push ebx
lea ecx, [ebp - 0x131c]
mov byte [ebp - 4], 6
call fcn.00406ad4
xor ecx, ecx
mov byte [ebp - 4], 7
push 0x20a
push ecx
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x133c], ecx
mov ebx, ecx
mov dword [ebp - 0x1320], ecx
push eax
mov dword [ebp - 0x1348], ecx
mov dword [ebp - 0x1338], ebx
mov dword [ebp - 0x1344], ecx
call fcn.0058e700
add esp, 0xc
call fcn.00474a71
push 0x7c
push esi
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.004107cc
push eax
lea ecx, [ebp - 0x136c]
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x136c]
call fcn.0046f50b
lea ecx, [ebp - 0x136c]
call fcn.0046d95f
cmp eax, 3
jb 0x440336
push 2
lea ecx, [ebp - 0x136c]
call fcn.0046dbf8
mov esi, eax
push esi
push str.Condition____1_s___n
push edi
push 4
call fcn.00424dad
add esp, 0x10
test esi, esi
je 0x4402cd
xor eax, eax
cmp ax, word [esi]
jne 0x440330
push str.__Do_not_copy._n
push edi
push 4
call fcn.00424dad
mov ecx, dword [ebp - 0x131c]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
xor ecx, ecx
xor eax, eax
push ecx
inc eax
lea ecx, [ebp - 0x674]
push eax
call fcn.00404970
mov ecx, dword [ebp - 0x1334]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1328]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
jmp 0x44132f
mov esi, dword [ebp - 0x1340]
lea ecx, [ebp - 0x136c]
call fcn.0046d95f
cmp eax, 2
jb 0x44056a
xor eax, eax
lea ecx, [ebp - 0x136c]
push str.ALWAYS
push eax
mov edi, eax
call fcn.0046dbf8
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x44053c
lea ecx, [ebp - 0x65c]
call fcn.0046d5d4
push 0x2e
xor esi, esi
mov byte [ebp - 4], 8
push esi
lea ecx, [ebp - 0x136c]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x65c]
call fcn.0046eb6a
lea ecx, [ebp - 0x65c]
call fcn.0046d95f
cmp eax, 2
jne 0x44040c
push str.ALWAYS
push esi
lea ecx, [ebp - 0x65c]
call fcn.0046dbf8
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x44040c
mov dword [ebp - 0x1330], esi
call fcn.00474a71
lea ecx, [ebp - 0x65c]
mov esi, dword [eax + 4]
xor eax, eax
inc eax
push eax
call fcn.0046dbf8
push eax
lea eax, [ebp - 0x1330]
push eax
lea eax, [ebp - 0x13a0]
push eax
lea ecx, [esi + 0xcc]
call fcn.0040ec3b
push 1
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1330]
pop eax
cmovne edi, eax
lea ecx, [ebp - 0x65c]
mov byte [ebp - 4], 7
call fcn.0046d690
test edi, edi
jne 0x44053c
call fcn.00474a71
push edi
lea ecx, [ebp - 0x136c]
mov esi, dword [eax + 4]
call fcn.0046dbf8
push eax
lea ecx, [esi + 0xcc]
call fcn.0040bed1
test eax, eax
je 0x440452
xor ecx, ecx
cmp cx, word [eax]
jne 0x44053c
mov dword [ebp - 0x1330], edi
call fcn.00474a71
push edi
lea ecx, [ebp - 0x136c]
mov esi, dword [eax + 4]
call fcn.0046dbf8
push eax
lea eax, [ebp - 0x1330]
push eax
lea eax, [ebp - 0x139c]
push eax
lea ecx, [esi + 0xcc]
call fcn.0040ec3b
mov esi, dword [ebp - 0x1330]
mov eax, dword [eax]
mov dword [ebp - 0x132c], eax
jmp 0x4404c9
cmp dword [eax + 0x108], edi
je 0x4404b8
push str.in_box
lea ecx, [eax + 0xf8]
call fcn.0041fdbb
test eax, eax
jne 0x440528
mov esi, dword [ebp - 0x1330]
lea ecx, [ebp - 0x132c]
call fcn.004212e4
mov eax, dword [ebp - 0x132c]
cmp eax, esi
jne 0x440496
xor ebx, ebx
lea ecx, [ebp - 0x136c]
inc ebx
push ebx
call fcn.0046dbf8
push eax
push str.Not_target_function_Source____1_s___n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
mov ecx, dword [ebp - 0x131c]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push edi
push ebx
lea ecx, [ebp - 0x674]
call fcn.00404970
mov ecx, dword [ebp - 0x1334]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1328]
lea ecx, [ecx - 0x10]
jmp 0x441313
push str._PreInst__Pre_install_driver_is_enabled._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0xc
xor edi, edi
lea ecx, [ebp - 0x136c]
inc edi
push edi
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x1334]
call fcn.0041ed9c
lea ecx, [ebp - 0x136c]
call fcn.0046d8ee
mov esi, dword [ebp - 0x1340]
jmp 0x44058d
call fcn.00474a71
push esi
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.004107cc
push eax
lea ecx, [ebp - 0x1334]
call fcn.0041ed9c
xor edi, edi
inc edi
call fcn.00474a71
push 0x2c
push esi
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.00410863
push eax
lea ecx, [ebp - 0x1398]
call fcn.0046eb6a
xor ecx, ecx
push ecx
lea ecx, [ebp - 0x1398]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x1328]
call fcn.0041ed9c
mov esi, dword [ebp - 0x1328]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
je 0x440607
sub eax, esi
sar eax, 1
js 0x440607
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x4405f6
or eax, 0xffffffff
jmp 0x4405fa
sub eax, esi
sar eax, 1
inc eax
cmp eax, dword [esi - 0xc]
cmove ebx, edi
mov dword [ebp - 0x1338], ebx
lea ecx, [ebp - 0x1398]
call fcn.0046d95f
cmp eax, 3
jb 0x440669
push 2
lea ecx, [ebp - 0x1398]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x131c]
call fcn.0041ed9c
mov edi, dword [ebp - 0x131c]
call fcn.00474a71
push 0x5c58f8
push edi
mov ecx, dword [eax + 4]
add ecx, 0xd0
call fcn.0046d72a
push dword [ebp - 0x131c]
push str.CopyStatusVar_1_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x1398]
call fcn.0046d95f
cmp eax, 2
jb 0x440737
xor eax, eax
push 0x20
push eax
mov dword [ebp - 0x132c], eax
lea eax, [ebp - 0x30]
push eax
call fcn.0058e700
add esp, 0xc
lea ecx, [ebp - 0x1398]
xor ebx, ebx
inc ebx
push ebx
call fcn.0046dbf8
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x30]
push 0x10
push eax
call fcn.00591ddd
add esp, 0x10
cmp word [ebp - 0x30], 0x30
jne 0x4406ed
cmp word [ebp - 0x2e], 0x78
je 0x4406c9
cmp word [ebp - 0x2e], 0x58
jne 0x4406ed
push 3
push 0x5d1334
call fcn.00591dbe
push 0x10
lea ecx, [ebp - 0x132c]
push ecx
lea eax, [ebp + eax*2 - 0x30]
push eax
call fcn.005929f9
add esp, 0x14
jmp 0x440702
push 0xa
lea eax, [ebp - 0x132c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.005929f9
add esp, 0xc
mov ecx, dword [ebp - 0x1344]
test al, 1
mov edi, dword [ebp - 0x1320]
cmovne ecx, ebx
test al, 2
mov dword [ebp - 0x1344], ecx
cmovne edi, ebx
test al, 4
mov eax, dword [ebp - 0x1348]
cmovne eax, ebx
mov dword [ebp - 0x1320], edi
mov dword [ebp - 0x1348], eax
jmp 0x44073d
mov edi, dword [ebp - 0x1320]
lea ecx, [ebp - 0x1398]
call fcn.0046d8ee
push esi
push str.SysFileName___1_s__n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
mov ebx, dword [ebp - 0x1354]
add esp, 0x10
test ebx, ebx
je 0x44079b
xor eax, eax
cmp ax, word [ebx]
je 0x44079b
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00404be0
mov ebx, 0x5c4f0c
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00404a83
mov ebx, dword [ebp - 0x1334]
xor eax, eax
cmp word [ebx], ax
je 0x4407af
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00404a83
push str..cab
call fcn.0058edd4
pop ecx
push eax
push str..cab
lea ecx, [ebp - 0x674]
call fcn.00404a83
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440a4b
lea ecx, [ebp - 0x6e8]
call fcn.004392c9
lea ecx, [ebp - 0x103c]
call fcn.0042106a
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0xa
push eax
call fcn.0043683a
pop ecx
test eax, eax
je 0x4413aa
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp - 0x6e8]
push eax
lea eax, [ebp - 0x674]
push eax
call fcn.00404b26
cmp word [ebp - 0x23c], 0
jne 0x440850
xor eax, eax
jmp 0x44085d
lea eax, [ebp - 0x23c]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x23c]
push eax
lea ecx, [ebp - 0x6d0]
call fcn.00404be0
push esi
lea ecx, [ebp - 0x103c]
call fcn.00424733
test eax, eax
je 0x4408e9
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x103c]
call fcn.004213a7
push eax
lea ecx, [ebp - 0x6b8]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x65c]
push eax
inc eax
push eax
call fcn.00404970
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x103c]
call fcn.004213c7
push 0xffffffffffffffff
xor ecx, ecx
mov byte [ebp - 4], 0xb
push ecx
push eax
lea ecx, [ebp - 0x6b8]
call fcn.004049b6
xor eax, eax
mov byte [ebp - 4], 0xa
push eax
inc eax
lea ecx, [ebp - 0x65c]
push eax
call fcn.00404970
cmp dword [ebp - 0x660], 8
lea ecx, [ebp - 0x6e8]
push ecx
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
xor ecx, ecx
push 0x41c9ad
push ecx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupIterateCabinetW]
test eax, eax
jne 0x440990
test edi, edi
je 0x44095f
push str.pSetupIterateCabinet_failed__but_bUseIfExistTRUE_skipped._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0xc
xor eax, eax
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
xor edi, edi
lea ecx, [ebp - 0x1038]
push edi
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x6e8]
mov byte [ebp - 4], 7
call fcn.00439357
jmp 0x441279
call fcn.0041ef8f
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
push esi
cmovae eax, dword [ebp - 0x674]
push eax
push str.Donot_extract__1.__2_cannot_copy_to_system._n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00424dad
add esp, 0x14
jmp 0x44092f
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push eax
push str.Extracting_of__1_s__is_succeeded._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x23c]
lea ecx, [ebp - 0x1318]
push eax
call fcn.0041ed9c
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x4409e1
or eax, 0xffffffff
jmp 0x4409e5
sub eax, esi
sar eax, 1
sub edi, eax
lea ecx, [ebp - 0x1328]
push edi
lea eax, [ebp - 0x137c]
push eax
call fcn.0041db85
mov eax, dword [eax]
lea ecx, [ebp - 0x1318]
mov byte [ebp - 4], 0xc
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0x137c]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
xor eax, eax
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
push eax
inc eax
lea ecx, [ebp - 0x1038]
push eax
call fcn.00404970
lea ecx, [ebp - 0x6e8]
mov byte [ebp - 4], 7
call fcn.00439357
jmp 0x440ada
mov eax, dword [ebp - 0x1354]
test eax, eax
je 0x440a75
xor ecx, ecx
cmp cx, word [eax]
je 0x440a75
push eax
lea ecx, [ebp - 0x1318]
call fcn.0041ed9c
lea eax, [ebp - 0x1318]
push eax
call fcn.00409001
pop ecx
push dword [ebx - 0xc]
lea ecx, [ebp - 0x1318]
push ebx
call fcn.0040907d
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x440a9a
or eax, 0xffffffff
jmp 0x440a9e
sub eax, esi
sar eax, 1
sub edi, eax
lea ecx, [ebp - 0x1328]
push edi
lea eax, [ebp - 0x1370]
push eax
call fcn.0041db85
mov eax, dword [eax]
lea ecx, [ebp - 0x1318]
mov byte [ebp - 4], 0xd
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0x1370]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push dword [ebp - 0x1318]
mov edi, dword [ebp - 0x1338]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test edi, edi
je 0x440bd7
cmp eax, 0xffffffff
je 0x440be0
push dword [ebp - 0x1318]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x440be0
push esi
push str.SysFileName___1_n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
push dword [ebp - 0x1318]
push str.sourceFile___1_n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
add esp, 0x20
test edi, edi
je 0x440c0d
mov ecx, dword [ebp - 0x134c]
xor eax, eax
push eax
push eax
push eax
push esi
push dword [ebp - 0x1318]
call fcn.0043b52b
mov edi, eax
mov ecx, str.success
mov eax, str.failed
test edi, edi
cmove ecx, eax
push ecx
push str.CopyDirectory____s._n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00424dad
add esp, 0x10
test edi, edi
je 0x4410bd
mov edi, dword [ebp - 0x131c]
cmp dword [edi - 0xc], 0
je 0x4410bd
call fcn.00474a71
push 0x5d1440
push edi
mov ecx, dword [eax + 4]
add ecx, 0xd0
call fcn.0046f76b
push 0x5d1440
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x14
jmp 0x4410bd
cmp eax, 0xffffffff
jne 0x440b11
mov eax, dword [ebp - 0x1320]
test eax, eax
je 0x4413e9
push dword [ebp - 0x1318]
push str.SourceFile__1_s___is_not_found__but_bUseIfExistTRUE_skipped._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x10
jmp 0x441277
call fcn.00473f1b
push eax
lea ecx, [ebp - 0x1324]
call fcn.00406a4a
push dword [ebp - 0x1348]
mov byte [ebp - 4], 0xe
push dword [ebp - 0x1318]
push esi
call fcn.0040b387
movzx edi, ax
mov ecx, 0x101
push ecx
lea eax, [ebp - 0x644]
push eax
push ecx
lea eax, [ebp - 0x440]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push esi
call fcn.00592b69
add esp, 0x30
push 0x5f
pop eax
cmp word [ebp - 0x440], ax
jne 0x440cb5
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
je 0x440cb5
push 0x5f
pop eax
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.00591e9b
pop ecx
pop ecx
xor ecx, ecx
cmp word [eax + 2], cx
jne 0x440cb5
lea eax, [ebp - 0x644]
push str..ini
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x440cb5
or edi, 0xffffffff
inc eax
mov dword [ebp - 0x133c], eax
test di, di
jns 0x441052
push str.This_version_is_newer._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0xc
lea eax, [ebp - 0x1328]
lea ecx, [ebp - 0x1324]
push eax
call fcn.0040813e
mov eax, dword [ebp - 0x1324]
lea ecx, [ebp - 0x1324]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffd
push eax
lea eax, [ebp - 0x1374]
push eax
call fcn.0041c872
push 0x5d1458
push eax
lea eax, [ebp - 0x1378]
mov byte [ebp - 4], 0xf
push eax
call fcn.0043937f
add esp, 0xc
push eax
lea ecx, [ebp - 0x1324]
mov byte [ebp - 4], 0x10
call fcn.0040813e
mov ecx, dword [ebp - 0x1378]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1374]
mov byte [ebp - 4], 0xe
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push esi
call edi
cmp eax, 0xffffffff
je 0x440d6d
push esi
call edi
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x440e86
lea ecx, [ebp - 0x103c]
call fcn.0042106a
xor eax, eax
mov dword [ebp - 0x648], 7
mov dword [ebp - 0x1344], eax
mov dword [ebp - 0x64c], eax
mov word [ebp - 0x65c], ax
push esi
lea ecx, [ebp - 0x103c]
mov byte [ebp - 4], 0x12
call fcn.00424733
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x103c]
call fcn.004226aa
push eax
lea ecx, [ebp - 0x65c]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x28]
push eax
inc eax
push eax
call fcn.00404970
cmp dword [ebp - 0x648], 8
lea eax, [ebp - 0x65c]
cmovae eax, dword [ebp - 0x65c]
push eax
call edi
cmp eax, 0xffffffff
je 0x440e06
cmp dword [ebp - 0x648], 8
lea eax, [ebp - 0x65c]
cmovae eax, dword [ebp - 0x65c]
push eax
call edi
test al, 0x10
jne 0x440e56
cmp dword [ebp - 0x648], 8
lea eax, [ebp - 0x65c]
cmovae eax, dword [ebp - 0x65c]
push eax
push str.CreateDirectoryRecursively__1_s___n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
cmp dword [ebp - 0x648], 8
lea ecx, [ebp - 0x65c]
mov eax, dword [ebp - 0x64c]
cmovae ecx, dword [ebp - 0x65c]
xor edi, edi
push edi
inc eax
push eax
push ecx
call fcn.0040a392
add esp, 0x1c
jmp 0x440e58
xor edi, edi
xor eax, eax
lea ecx, [ebp - 0x65c]
push edi
inc eax
push eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0xe
push edi
inc eax
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
push eax
lea ecx, [ebp - 0x1038]
call fcn.00404970
push dword [ebp - 0x1318]
mov edi, str.CInstallAction::InstallOtherFiles
push str.sourceFile_1_s__n
push edi
push 5
call fcn.00424dad
push esi
push str.SysFileName_1_s__n
push edi
push 5
call fcn.00424dad
mov edi, dword [ebp - 0x1324]
push edi
push str.tempFile_1_s__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
add esp, 0x30
cmp dword [ebp - 0x1344], 0
jne 0x440f05
xor eax, eax
push eax
push esi
push dword [ebp - 0x1318]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x440f05
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440ffd
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x440ffd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.immediate_copy_failed.__0x_1_lx___n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440f38
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
push eax
push edi
push dword [ebp - 0x1318]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x440fe2
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440f68
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push str.__create_tempFile_succeeded._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0xc
push 5
push esi
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x440fbe
push str.MoveFileEx_succeeded.__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
push str.A_reboot_is_required._n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
mov eax, dword [ebp - 0x134c]
add esp, 0x18
or dword [eax + 0xb0], 1
jmp 0x440ffd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MoveFileEx_failed.__0x_x__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x440ffd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.create_tempfile_failed.__0x_x__n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00424dad
add esp, 0x10
mov eax, dword [ebp - 0x131c]
mov dword [ebp - 0x1338], eax
cmp dword [eax - 0xc], 0
je 0x4410b1
call fcn.00474a71
push 0x5d1440
push dword [ebp - 0x1338]
mov ecx, dword [eax + 4]
add ecx, 0xd0
call fcn.0046f76b
push 0x5d1440
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x14
jmp 0x4410b1
push esi
push str._1_is_equal_or_lower._n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
mov edi, dword [ebp - 0x131c]
add esp, 0x10
cmp dword [edi - 0xc], 0
je 0x4410ab
call fcn.00474a71
push str.ALREADY
push edi
mov ecx, dword [eax + 4]
add ecx, 0xd0
call fcn.0046f76b
push str.ALREADY
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424dad
add esp, 0x14
mov edi, dword [ebp - 0x1324]
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 7
call fcn.0041d6f2
cmp dword [ebp - 0x133c], 0
je 0x441277
lea ecx, [ebp - 0x6a0]
call sym.SETUP.exe_public:_void___thiscall_CIniSections::constructor_void_
lea ecx, [ebp - 0xa10]
mov byte [ebp - 4], 0x13
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
push esi
push str.Setup_related_file____1_s__._n
push str.CInstallAction::InstallOtherFiles
push 5
mov byte [ebp - 4], 0x14
call fcn.00424dad
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x441115
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esi - 0xc]
lea ecx, [ebp - 0x6a0]
inc eax
push eax
push esi
call sym.SETUP.exe_public:_int___thiscall_CIniSections::Init_wchar_t_const___unsigned_int_
lea ecx, [ebp - 0x6a0]
call sym.SETUP.exe_public:_int___thiscall_CIniSections::GetList_void_
xor eax, eax
lea ecx, [ebp - 0x6a0]
mov edi, eax
mov dword [ebp - 0x1320], eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
test eax, eax
je 0x44124d
push edi
lea ecx, [ebp - 0x6a0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CIniSections::GetItem_unsigned_long_int_
push eax
push str.Section____1_s__._n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
add esp, 0x10
call fcn.00474a71
push dword [ebp - 0x1320]
lea ecx, [ebp - 0x6a0]
mov edi, dword [eax + 4]
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x133c], eax
call sym.SETUP.exe_public:_unsigned_int___thiscall_CIniSections::GetItemLength_unsigned_long_int_
inc eax
lea ecx, [ebp - 0x6a0]
push eax
push dword [ebp - 0x1320]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CIniSections::GetItem_unsigned_long_int_
push eax
lea eax, [edi + 0xd0]
push eax
mov eax, dword [ebp - 0x133c]
lea ecx, [ebp - 0xa10]
inc eax
push eax
push esi
call sym.SETUP.exe_public:_int___thiscall_CDeviceInfSection::Init_wchar_t_const___unsigned_int__class_CInfStringTable___wchar_t_const___unsigned_int_
lea ecx, [ebp - 0xa10]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInfSection::GetList_void_
xor eax, eax
lea ecx, [ebp - 0xa10]
mov ebx, eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
mov edi, dword [ebp - 0x1320]
test eax, eax
je 0x441222
push esi
push ebx
lea ecx, [ebp - 0xa10]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
push ebx
lea ecx, [ebp - 0xa10]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
push edi
lea ecx, [ebp - 0x6a0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CIniSections::GetItem_unsigned_long_int_
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xa10]
inc ebx
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp ebx, eax
jb 0x4411e4
lea ecx, [ebp - 0xa10]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::Clear_void_
inc edi
lea ecx, [ebp - 0x6a0]
mov dword [ebp - 0x1320], edi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
cmp edi, eax
jb 0x44114e
mov ebx, dword [ebp - 0x1334]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xa10]
mov byte [ebp - 4], 0x13
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
lea ecx, [ebp - 0x6a0]
mov byte [ebp - 4], 7
call sym.SETUP.exe_public_virtual:_void___thiscall_CIniSections::destructor_void_
xor edi, edi
lea eax, [ebp - 0x23c]
test eax, eax
je 0x4412ea
xor eax, eax
cmp ax, word [ebp - 0x23c]
je 0x4412ea
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4412ea
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x4412ea
lea eax, [ebp - 0x23c]
push eax
call fcn.0040a5de
lea eax, [ebp - 0x23c]
push eax
push str.tempPath
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424d8f
push 0x20a
lea eax, [ebp - 0x23c]
push edi
push eax
call fcn.0058e700
add esp, 0x20
mov ecx, dword [ebp - 0x131c]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
xor eax, eax
lea ecx, [ebp - 0x674]
push edi
inc eax
push eax
call fcn.00404970
lea ecx, [ebx - 0x10]
call fcn.0041d6f2
lea ecx, [esi - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov edi, str.CInstallAction::InstallOtherFiles
mov esi, dword [ebp - 0x1340]
inc esi
mov dword [ebp - 0x1340], esi
cmp esi, dword [ebp - 0x1380]
jb 0x4401ad
push 0x5cff5c
push edi
push 5
call fcn.00424dad
xor eax, eax
add esp, 0xc
inc eax
mov esi, eax
lea ecx, [ebp - 0x1398]
mov byte [ebp - 4], al
call fcn.0046d690
xor eax, eax
lea ecx, [ebp - 0x136c]
mov byte [ebp - 4], al
call fcn.0046d690
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1314]
call fcn.00436650
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0058f6bb
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x1350]
xor ecx, ecx
inc ecx
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
xor edi, edi
push edi
mov dword [eax], ecx
push ecx
lea ecx, [ebp - 0x1038]
call fcn.00404970
lea ecx, [ebp - 0x6e8]
call fcn.00439357
mov ecx, dword [ebp - 0x131c]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
jmp 0x441424
call fcn.0041ef8f
push dword [ebp - 0x1318]
push str.SourceFile__1_s___is_not_found._n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00424dad
mov ecx, dword [ebp - 0x131c]
add esp, 0x10
mov eax, dword [ebp - 0x1350]
lea ecx, [ecx - 0x10]
mov dword [eax], 2
call fcn.0041d6f2
xor edi, edi
xor eax, eax
lea ecx, [ebp - 0x674]
push edi
inc eax
push eax
call fcn.00404970
lea ecx, [ebx - 0x10]
call fcn.0041d6f2
lea ecx, [esi - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
lea eax, [ebp - 0x23c]
test eax, eax
je 0x4414c5
xor eax, eax
cmp ax, word [ebp - 0x23c]
je 0x4414c5
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0x23c]
push eax
call ebx
cmp eax, 0xffffffff
je 0x4414c5
lea eax, [ebp - 0x23c]
push eax
call ebx
test al, 0x10
je 0x4414c5
lea eax, [ebp - 0x23c]
push eax
call fcn.0040a5de
lea eax, [ebp - 0x23c]
push eax
push str.tempPath
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00424d8f
push 0x20a
lea eax, [ebp - 0x23c]
push edi
push eax
call fcn.0058e700
add esp, 0x20
push 0x5cff5c
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00424dad
xor eax, eax
add esp, 0xc
mov esi, edi
inc eax
jmp 0x44135d