Function at 0x43f27d
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 0x5aa714
mov eax, dword fs:[0]
push eax
mov eax, 0x1394
call fcn.0058c7d0
mov eax, dword [0x634460]
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]
mov ebx, dword [ebp + 0xc]
lea ecx, [ebp - 0x1314]
mov dword [ebp - 0x1354], eax
mov dword [ebp - 0x1350], ebx
call fcn.00435783
xor eax, eax
lea ecx, [ebp - 0x136c]
mov dword [ebp - 4], eax
call fcn.0046c48f
xor eax, eax
inc eax
lea ecx, [ebp - 0x1398]
mov byte [ebp - 4], al
call fcn.0046c48f
push 0x5c9e94
mov edi, str.CInstallAction::InstallOtherFiles
push edi
push 5
mov byte [ebp - 4], 2
call fcn.00423f75
xor esi, esi
add esp, 0xc
mov dword [ebx], esi
call fcn.00473832
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0040b128
push eax
lea ecx, [ebp - 0x1314]
call fcn.00435868
call fcn.00473832
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0040f7c6
mov dword [ebp - 0x1380], eax
mov dword [ebp - 0x1340], esi
test eax, eax
je 0x4404f1
mov ebx, 0x5bef10
push ebx
lea ecx, [ebp - 0x1318]
call fcn.00405c1a
mov byte [ebp - 4], 3
call fcn.00472cf7
push eax
lea ecx, [ebp - 0x1328]
call fcn.00405b90
mov byte [ebp - 4], 4
call fcn.00472cf7
push eax
lea ecx, [ebp - 0x1334]
call fcn.00405b90
xor ecx, ecx
push ecx
mov dword [ebp - 0x664], ecx
xor eax, eax
push ebx
lea ecx, [ebp - 0x674]
mov byte [ebp - 4], 5
mov dword [ebp - 0x660], 7
mov word [ebp - 0x674], ax
call fcn.00403cef
push ebx
lea ecx, [ebp - 0x131c]
mov byte [ebp - 4], 6
call fcn.00405c1a
xor ecx, ecx
push 0x20a
push ecx
lea eax, [ebp - 0x23c]
mov ebx, ecx
push eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x133c], ecx
mov dword [ebp - 0x1320], ecx
mov dword [ebp - 0x1348], ecx
mov dword [ebp - 0x1338], ebx
mov dword [ebp - 0x1344], ecx
call fcn.00587a70
add esp, 0xc
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x7c
push esi
add ecx, 0xcc
call fcn.0040f830
push eax
lea ecx, [ebp - 0x136c]
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x136c]
call fcn.0046e2e7
lea ecx, [ebp - 0x136c]
call fcn.0046c815
cmp eax, 3
jb 0x43f4df
push 2
lea ecx, [ebp - 0x136c]
call fcn.0046caa8
mov esi, eax
push esi
push str.Condition____1_s___n
push edi
push 4
call fcn.00423f75
add esp, 0x10
test esi, esi
je 0x43f476
xor eax, eax
cmp ax, word [esi]
jne 0x43f4d9
push str.__Do_not_copy._n
push edi
push 4
call fcn.00423f75
mov ecx, dword [ebp - 0x131c]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.0041c730
xor ecx, ecx
xor eax, eax
push ecx
inc eax
push eax
lea ecx, [ebp - 0x674]
call fcn.00403a7f
mov ecx, dword [ebp - 0x1334]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1328]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041c730
jmp 0x4404d8
mov esi, dword [ebp - 0x1340]
lea ecx, [ebp - 0x136c]
call fcn.0046c815
cmp eax, 2
jb 0x43f713
xor eax, eax
push str.ALWAYS
push eax
lea ecx, [ebp - 0x136c]
mov edi, eax
call fcn.0046caa8
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x43f6e5
lea ecx, [ebp - 0x65c]
call fcn.0046c48f
push 0x2e
xor esi, esi
push esi
lea ecx, [ebp - 0x136c]
mov byte [ebp - 4], 8
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x65c]
call fcn.0046d9ee
lea ecx, [ebp - 0x65c]
call fcn.0046c815
cmp eax, 2
jne 0x43f5b5
push str.ALWAYS
push esi
lea ecx, [ebp - 0x65c]
call fcn.0046caa8
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x43f5b5
mov dword [ebp - 0x1330], esi
call fcn.00473832
mov esi, dword [eax + 4]
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x65c]
call fcn.0046caa8
push eax
lea eax, [ebp - 0x1330]
push eax
lea eax, [ebp - 0x13a0]
push eax
lea ecx, [esi + 0xcc]
call fcn.0040dcaa
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1330]
push 1
pop eax
cmovne edi, eax
lea ecx, [ebp - 0x65c]
mov byte [ebp - 4], 7
call fcn.0046c546
test edi, edi
jne 0x43f6e5
call fcn.00473832
mov esi, dword [eax + 4]
push edi
lea ecx, [ebp - 0x136c]
call fcn.0046caa8
push eax
lea ecx, [esi + 0xcc]
call fcn.0040af9e
test eax, eax
je 0x43f5fb
xor ecx, ecx
cmp cx, word [eax]
jne 0x43f6e5
mov dword [ebp - 0x1330], edi
call fcn.00473832
mov esi, dword [eax + 4]
push edi
lea ecx, [ebp - 0x136c]
call fcn.0046caa8
push eax
lea eax, [ebp - 0x1330]
push eax
lea eax, [ebp - 0x139c]
push eax
lea ecx, [esi + 0xcc]
call fcn.0040dcaa
mov eax, dword [eax]
mov esi, dword [ebp - 0x1330]
mov dword [ebp - 0x132c], eax
jmp 0x43f672
cmp dword [eax + 0x108], edi
je 0x43f661
push str.in_box
lea ecx, [eax + 0xf8]
call fcn.0041ee46
test eax, eax
jne 0x43f6d1
mov esi, dword [ebp - 0x1330]
lea ecx, [ebp - 0x132c]
call fcn.0042049a
mov eax, dword [ebp - 0x132c]
cmp eax, esi
jne 0x43f63f
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x136c]
call fcn.0046caa8
push eax
push str.Not_target_function_Source____1_s___n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
mov ecx, dword [ebp - 0x131c]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.0041c730
push edi
push ebx
lea ecx, [ebp - 0x674]
call fcn.00403a7f
mov ecx, dword [ebp - 0x1334]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1328]
lea ecx, [ecx - 0x10]
jmp 0x4404bc
push str._PreInst__Pre_install_driver_is_enabled._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0xc
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x136c]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x1334]
call fcn.0041ddd6
lea ecx, [ebp - 0x136c]
call fcn.0046c7a4
mov esi, dword [ebp - 0x1340]
jmp 0x43f736
call fcn.00473832
mov ecx, dword [eax + 4]
push esi
add ecx, 0xcc
call fcn.0040f830
push eax
lea ecx, [ebp - 0x1334]
call fcn.0041ddd6
xor edi, edi
inc edi
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x2c
push esi
add ecx, 0xcc
call fcn.0040f8c7
push eax
lea ecx, [ebp - 0x1398]
call fcn.0046d9ee
xor ecx, ecx
push ecx
lea ecx, [ebp - 0x1398]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x1328]
call fcn.0041ddd6
mov esi, dword [ebp - 0x1328]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
je 0x43f7b0
sub eax, esi
sar eax, 1
js 0x43f7b0
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x43f79f
or eax, 0xffffffff
jmp 0x43f7a3
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.0046c815
cmp eax, 3
jb 0x43f812
push 2
lea ecx, [ebp - 0x1398]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x131c]
call fcn.0041ddd6
mov edi, dword [ebp - 0x131c]
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x5bf818
push edi
add ecx, 0xd0
call fcn.0046c5e0
push dword [ebp - 0x131c]
push str.CopyStatusVar_1_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0x1398]
call fcn.0046c815
cmp eax, 2
jb 0x43f8e0
xor eax, eax
push 0x20
push eax
mov dword [ebp - 0x132c], eax
lea eax, [ebp - 0x30]
push eax
call fcn.00587a70
add esp, 0xc
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x1398]
call fcn.0046caa8
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x30]
push 0x10
push eax
call fcn.0058b12c
add esp, 0x10
cmp word [ebp - 0x30], 0x30
jne 0x43f896
cmp word [ebp - 0x2e], 0x78
je 0x43f872
cmp word [ebp - 0x2e], 0x58
jne 0x43f896
push 3
push 0x5cb26c
call fcn.0058b10d
push 0x10
lea ecx, [ebp - 0x132c]
push ecx
lea eax, [ebp + eax*2 - 0x30]
push eax
call fcn.0058bd3d
add esp, 0x14
jmp 0x43f8ab
push 0xa
lea eax, [ebp - 0x132c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0058bd3d
add esp, 0xc
mov ecx, dword [ebp - 0x1344]
mov edi, dword [ebp - 0x1320]
test al, 1
cmovne ecx, ebx
test al, 2
cmovne edi, ebx
test al, 4
mov eax, dword [ebp - 0x1348]
cmovne eax, ebx
mov dword [ebp - 0x1344], ecx
mov dword [ebp - 0x1320], edi
mov dword [ebp - 0x1348], eax
jmp 0x43f8e6
mov edi, dword [ebp - 0x1320]
lea ecx, [ebp - 0x1398]
call fcn.0046c7a4
push esi
push str.SysFileName___1_s__n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
mov ebx, dword [ebp - 0x1354]
add esp, 0x10
test ebx, ebx
je 0x43f944
xor eax, eax
cmp ax, word [ebx]
je 0x43f944
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00403cef
mov ebx, 0x5bef0c
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00403b92
mov ebx, dword [ebp - 0x1334]
xor eax, eax
cmp word [ebx], ax
je 0x43f958
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x674]
call fcn.00403b92
push str..cab
call fcn.00588144
pop ecx
push eax
push str..cab
lea ecx, [ebp - 0x674]
call fcn.00403b92
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 0x43fbf4
lea ecx, [ebp - 0x6e8]
call fcn.004384b1
lea ecx, [ebp - 0x103c]
call fcn.00420211
lea eax, [ebp - 0x23c]
push eax
mov byte [ebp - 4], 0xa
call fcn.004359f4
pop ecx
test eax, eax
je 0x440551
push 0xffffffffffffffff
xor eax, eax
push eax
lea eax, [ebp - 0x674]
push eax
lea ecx, [ebp - 0x6e8]
call fcn.00403c35
cmp word [ebp - 0x23c], 0
jne 0x43f9f9
xor eax, eax
jmp 0x43fa06
lea eax, [ebp - 0x23c]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x23c]
push eax
lea ecx, [ebp - 0x6d0]
call fcn.00403cef
push esi
lea ecx, [ebp - 0x103c]
call fcn.0042391c
test eax, eax
je 0x43fa92
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x103c]
call fcn.004205a1
push eax
lea ecx, [ebp - 0x6b8]
call fcn.00401322
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x65c]
call fcn.00403a7f
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x103c]
call fcn.004205bf
push 0xffffffffffffffff
xor ecx, ecx
push ecx
push eax
lea ecx, [ebp - 0x6b8]
mov byte [ebp - 4], 0xb
call fcn.00403ac5
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x65c]
mov byte [ebp - 4], 0xa
call fcn.00403a7f
cmp dword [ebp - 0x660], 8
lea ecx, [ebp - 0x6e8]
push ecx
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push 0x41b9f1
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupIterateCabinetW]
test eax, eax
jne 0x43fb39
test edi, edi
je 0x43fb08
push str.pSetupIterateCabinet_failed__but_bUseIfExistTRUE_skipped._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0xc
xor eax, eax
xor edi, edi
push edi
inc eax
push eax
lea ecx, [ebp - 0x1038]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x6e8]
mov byte [ebp - 4], 7
call fcn.0045d256
jmp 0x440422
call fcn.0041dfc9
cmp dword [ebp - 0x660], 8
push esi
lea eax, [ebp - 0x674]
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.00423f75
add esp, 0x14
jmp 0x43fad8
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.00423f75
add esp, 0x10
lea eax, [ebp - 0x23c]
push eax
lea ecx, [ebp - 0x1318]
call fcn.0041ddd6
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x43fb8a
or eax, 0xffffffff
jmp 0x43fb8e
sub eax, esi
sar eax, 1
sub edi, eax
push edi
lea eax, [ebp - 0x137c]
push eax
lea ecx, [ebp - 0x1328]
call fcn.0041cbb9
mov eax, dword [eax]
lea ecx, [ebp - 0x1318]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xc
push eax
call fcn.0040815c
mov ecx, dword [ebp - 0x137c]
lea ecx, [ecx - 0x10]
call fcn.0041c730
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x1038]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x6e8]
mov byte [ebp - 4], 7
call fcn.0045d256
jmp 0x43fc83
mov eax, dword [ebp - 0x1354]
test eax, eax
je 0x43fc1e
xor ecx, ecx
cmp cx, word [eax]
je 0x43fc1e
push eax
lea ecx, [ebp - 0x1318]
call fcn.0041ddd6
lea eax, [ebp - 0x1318]
push eax
call fcn.004080e0
pop ecx
push dword [ebx - 0xc]
lea ecx, [ebp - 0x1318]
push ebx
call fcn.0040815c
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x43fc43
or eax, 0xffffffff
jmp 0x43fc47
sub eax, esi
sar eax, 1
sub edi, eax
push edi
lea eax, [ebp - 0x1370]
push eax
lea ecx, [ebp - 0x1328]
call fcn.0041cbb9
mov eax, dword [eax]
lea ecx, [ebp - 0x1318]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xd
push eax
call fcn.0040815c
mov ecx, dword [ebp - 0x1370]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.0041c730
push dword [ebp - 0x1318]
mov edi, dword [ebp - 0x1338]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test edi, edi
je 0x43fd80
cmp eax, 0xffffffff
je 0x43fd89
push dword [ebp - 0x1318]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x43fd89
push esi
push str.SysFileName___1_n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
push dword [ebp - 0x1318]
push str.sourceFile___1_n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
add esp, 0x20
test edi, edi
je 0x43fdb6
mov ecx, dword [ebp - 0x134c]
xor eax, eax
push eax
push eax
push eax
push esi
push dword [ebp - 0x1318]
call fcn.0043a6eb
mov edi, eax
mov eax, str.failed
mov ecx, str.success
test edi, edi
cmove ecx, eax
push ecx
push str.CopyDirectory____s._n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00423f75
add esp, 0x10
test edi, edi
je 0x440420
mov edi, dword [ebp - 0x131c]
cmp dword [edi - 0xc], 0
je 0x440420
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x5cb378
push edi
add ecx, 0xd0
call fcn.0046e541
push 0x5cb378
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0x14
jmp 0x440420
cmp eax, 0xffffffff
jne 0x43fcba
mov eax, dword [ebp - 0x1320]
test eax, eax
je 0x440590
push dword [ebp - 0x1318]
push str.SourceFile__1_s___is_not_found__but_bUseIfExistTRUE_skipped._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0x10
jmp 0x440420
call fcn.00472cf7
push eax
lea ecx, [ebp - 0x1324]
call fcn.00405b90
push dword [ebp - 0x1348]
mov byte [ebp - 4], 0xe
push dword [ebp - 0x1318]
push esi
call fcn.0040a456
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.0058bead
add esp, 0x30
push 0x5f
pop eax
cmp word [ebp - 0x440], ax
jne 0x43fe5e
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
je 0x43fe5e
push 0x5f
pop eax
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.0058b1ea
pop ecx
pop ecx
xor ecx, ecx
cmp word [eax + 2], cx
jne 0x43fe5e
lea eax, [ebp - 0x644]
push str..ini
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x43fe5e
or edi, 0xffffffff
inc eax
mov dword [ebp - 0x133c], eax
test di, di
jns 0x4401fb
push str.This_version_is_newer._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0xc
lea eax, [ebp - 0x1328]
push eax
lea ecx, [ebp - 0x1324]
call fcn.0040726a
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.0041b8ba
push 0x5cb390
push eax
lea eax, [ebp - 0x1378]
push eax
mov byte [ebp - 4], 0xf
call fcn.0043853f
add esp, 0xc
push eax
lea ecx, [ebp - 0x1324]
mov byte [ebp - 4], 0x10
call fcn.0040726a
mov ecx, dword [ebp - 0x1378]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1374]
mov byte [ebp - 4], 0xe
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push esi
call edi
cmp eax, 0xffffffff
je 0x43ff16
push esi
call edi
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x44002f
lea ecx, [ebp - 0x103c]
call fcn.00420211
xor eax, eax
mov dword [ebp - 0x1344], eax
mov dword [ebp - 0x648], 7
mov dword [ebp - 0x64c], eax
mov word [ebp - 0x65c], ax
push esi
lea ecx, [ebp - 0x103c]
mov byte [ebp - 4], 0x12
call fcn.0042391c
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x103c]
call fcn.0042189d
push eax
lea ecx, [ebp - 0x65c]
call fcn.00401322
xor eax, eax
push eax
inc eax
push eax
lea ecx, [ebp - 0x28]
call fcn.00403a7f
cmp dword [ebp - 0x648], 8
lea eax, [ebp - 0x65c]
cmovae eax, dword [ebp - 0x65c]
push eax
call edi
cmp eax, 0xffffffff
je 0x43ffaf
cmp dword [ebp - 0x648], 8
lea eax, [ebp - 0x65c]
cmovae eax, dword [ebp - 0x65c]
push eax
call edi
test al, 0x10
jne 0x43ffff
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.00423f75
cmp dword [ebp - 0x648], 8
mov eax, dword [ebp - 0x64c]
lea ecx, [ebp - 0x65c]
cmovae ecx, dword [ebp - 0x65c]
xor edi, edi
push edi
inc eax
push eax
push ecx
call fcn.00409465
add esp, 0x1c
jmp 0x440001
xor edi, edi
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x65c]
call fcn.00403a7f
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x1038]
mov byte [ebp - 4], 0xe
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
push dword [ebp - 0x1318]
mov edi, str.CInstallAction::InstallOtherFiles
push str.sourceFile_1_s__n
push edi
push 5
call fcn.00423f75
push esi
push str.SysFileName_1_s__n
push edi
push 5
call fcn.00423f75
mov edi, dword [ebp - 0x1324]
push edi
push str.tempFile_1_s__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
add esp, 0x30
cmp dword [ebp - 0x1344], 0
jne 0x4400ae
xor eax, eax
push eax
push esi
push dword [ebp - 0x1318]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x4400ae
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4401a6
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4401a6
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.00423f75
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4400e1
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 0x44018b
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440111
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.00423f75
add esp, 0xc
push 5
push esi
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x440167
push str.MoveFileEx_succeeded.__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
push str.A_reboot_is_required._n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
mov eax, dword [ebp - 0x134c]
add esp, 0x18
or dword [eax + 0xb0], 1
jmp 0x4401a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MoveFileEx_failed.__0x_x__n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x4401a6
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.00423f75
add esp, 0x10
mov eax, dword [ebp - 0x131c]
mov dword [ebp - 0x1338], eax
cmp dword [eax - 0xc], 0
je 0x44025a
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x5cb378
push dword [ebp - 0x1338]
add ecx, 0xd0
call fcn.0046e541
push 0x5cb378
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0x14
jmp 0x44025a
push esi
push str._1_is_equal_or_lower._n
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
mov edi, dword [ebp - 0x131c]
add esp, 0x10
cmp dword [edi - 0xc], 0
je 0x440254
call fcn.00473832
mov ecx, dword [eax + 4]
push str.ALREADY
push edi
add ecx, 0xd0
call fcn.0046e541
push str.ALREADY
push dword [ebp - 0x131c]
push str._1_s__2_s_._n
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f75
add esp, 0x14
mov edi, dword [ebp - 0x1324]
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 7
call fcn.0041c730
cmp dword [ebp - 0x133c], 0
je 0x440420
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.00423f75
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4402be
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
lea ecx, [ebp - 0x6a0]
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 0x4403f6
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.00423f75
add esp, 0x10
call fcn.00473832
mov edi, dword [eax + 4]
mov eax, dword [esi - 0xc]
push dword [ebp - 0x1320]
lea ecx, [ebp - 0x6a0]
mov dword [ebp - 0x133c], eax
call sym.SETUP.exe_public:_unsigned_int___thiscall_CIniSections::GetItemLength_unsigned_long_int_
inc eax
push eax
push dword [ebp - 0x1320]
lea ecx, [ebp - 0x6a0]
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]
inc eax
push eax
push esi
lea ecx, [ebp - 0xa10]
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 0x4403cb
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 0x44038d
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 0x4402f7
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 0x440493
xor eax, eax
cmp ax, word [ebp - 0x23c]
je 0x440493
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440493
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x440493
lea eax, [ebp - 0x23c]
push eax
call fcn.004096af
lea eax, [ebp - 0x23c]
push eax
push str.tempPath
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f57
push 0x20a
lea eax, [ebp - 0x23c]
push edi
push eax
call fcn.00587a70
add esp, 0x20
mov ecx, dword [ebp - 0x131c]
lea ecx, [ecx - 0x10]
call fcn.0041c730
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x674]
call fcn.00403a7f
lea ecx, [ebx - 0x10]
call fcn.0041c730
lea ecx, [esi - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov edi, str.CInstallAction::InstallOtherFiles
mov esi, dword [ebp - 0x1340]
inc esi
mov dword [ebp - 0x1340], esi
cmp esi, dword [ebp - 0x1380]
jb 0x43f356
push 0x5c9efc
push edi
push 5
call fcn.00423f75
xor eax, eax
add esp, 0xc
inc eax
mov esi, eax
lea ecx, [ebp - 0x1398]
mov byte [ebp - 4], al
call fcn.0046c546
xor eax, eax
lea ecx, [ebp - 0x136c]
mov byte [ebp - 4], al
call fcn.0046c546
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1314]
call fcn.0043580f
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.00588a1c
leave
ret 8
mov eax, dword [ebp - 0x1350]
xor ecx, ecx
inc ecx
xor edi, edi
push edi
mov dword [eax], ecx
push ecx
lea ecx, [ebp - 0x1038]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x6e8]
call fcn.0045d256
mov ecx, dword [ebp - 0x131c]
lea ecx, [ecx - 0x10]
call fcn.0041c730
jmp 0x4405cb
call fcn.0041dfc9
push dword [ebp - 0x1318]
push str.SourceFile__1_s___is_not_found._n
push str.CInstallAction::InstallOtherFiles
push 2
call fcn.00423f75
mov ecx, dword [ebp - 0x131c]
mov eax, dword [ebp - 0x1350]
add esp, 0x10
lea ecx, [ecx - 0x10]
mov dword [eax], 2
call fcn.0041c730
xor edi, edi
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x674]
call fcn.00403a7f
lea ecx, [ebx - 0x10]
call fcn.0041c730
lea ecx, [esi - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0x1318]
mov byte [ebp - 4], 2
lea ecx, [ecx - 0x10]
call fcn.0041c730
lea eax, [ebp - 0x23c]
test eax, eax
je 0x44066e
xor eax, eax
cmp ax, word [ebp - 0x23c]
je 0x44066e
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44066e
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x44066e
lea eax, [ebp - 0x23c]
push eax
call fcn.004096af
lea eax, [ebp - 0x23c]
push eax
push str.tempPath
push str.CInstallAction::InstallOtherFiles
push 4
call fcn.00423f57
push 0x20a
lea eax, [ebp - 0x23c]
push edi
push eax
call fcn.00587a70
add esp, 0x20
push 0x5c9efc
push str.CInstallAction::InstallOtherFiles
push 5
call fcn.00423f75
xor eax, eax
add esp, 0xc
mov esi, edi
inc eax
jmp 0x440506