Function at 0x434660
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf829
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2d00
call fcn.004ab4d0
mov eax, dword [0x51c080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x2c20], ebx
mov eax, 0xd
mov dword [ebp - 0x2c30], eax
xor esi, esi
mov dword [ebp - 4], esi
cmp dword [ebx], esi
je 0x435aaf
push str.SEInst_InstallingComponents
mov eax, dword [0x52b9f0]
push eax
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
lea eax, [ebx + 0xc10]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [ebp - 0x2c38], esi
mov dword [ebp - 0x2c34], ecx
mov dword [ebp - 0x2c38], eax
jmp 0x4346f0
lea eax, [ebx + 0xc10]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2c48], esi
mov dword [ebp - 0x2c44], ecx
mov dword [ebp - 0x2c48], eax
lea esi, [ebp - 0x2c48]
lea edi, [ebp - 0x2c38]
call fcn.00414fe0
test al, al
je 0x435aa2
mov byte [ebp - 0x2c25], 0
mov esi, edi
call fcn.0040e430
cmp byte [eax + 0x8222], 0
je 0x435a90
mov dword [ebp - 0x2c30], 0
call fcn.0040e430
mov ebx, eax
add ebx, 0x1c
mov dword [ebp - 0x2c24], ebx
push 0x200
push 0
lea ecx, [ebp - 0x1418]
push ecx
call fcn.004ab450
add esp, 0xc
mov edx, dword [ebx]
push edx
push 0x4dd570
lea edx, [ebp - 0x1418]
call fcn.0040bfd0
add esp, 8
lea esi, [ebx + 4]
lea eax, [ebp - 0x1418]
push eax
push str.SEInst_InstallingComponentsInstallOrder
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00440ff0
push 0x800
push 0
lea eax, [ebp - 0x818]
push eax
call fcn.004ab450
add esp, 0xc
push esi
push str.Components
push str.SEInst_Installing
push 0x4e961c
lea edx, [ebp - 0x818]
call fcn.00411a00
lea esi, [ebx + 0x204]
push str.Printer
push esi
call fcn.004a9af1
add esp, 0x18
test eax, eax
je 0x434815
push str.Image
push esi
call fcn.004a9af1
add esp, 8
test eax, eax
je 0x434815
push str.NonDevice
push esi
call fcn.004a9af1
add esp, 8
test eax, eax
jne 0x4351c8
lea eax, [ebx + 0xb618]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434820
sub eax, edx
sar eax, 1
je 0x43494f
push 0x800
push 0
lea ecx, [ebp - 0x1c18]
push ecx
call fcn.004ab450
add esp, 0xc
push 0x3ff
lea eax, [ebx + 0xb618]
push eax
push 0x400
lea edx, [ebp - 0x1c18]
push edx
call fcn.004a9be0
add esp, 0x10
push 0x400
push 0x4e9644
sub esp, 0x1c
mov dword [ebp - 0x2c2c], esp
mov edx, str.SRC_DIR
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 1
push 0x52c1fc
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cd4]
call fcn.00411c20
mov byte [ebp - 4], 2
cmp dword [eax + 0x18], 8
jb 0x4348b1
mov eax, dword [eax + 4]
jmp 0x4348b4
add eax, 4
push eax
lea eax, [ebp - 0x1c18]
push eax
call fcn.004422a0
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cd4]
call fcn.00411bb0
push 0x4e9658
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x2c20]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x1c18]
call fcn.00440ff0
push 0x800
push 0
lea ecx, [ebp - 0x1018]
push ecx
call fcn.004ab450
add esp, 0xc
lea eax, [ebx + 4]
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
lea edx, [ebx + 0xb618]
call fcn.00458ee0
test eax, eax
jne 0x434948
push 0x3ff
mov edx, edi
push edx
push 0x400
lea eax, [ebx + 0xb618]
push eax
call fcn.004a9be0
add esp, 0x10
mov byte [ebp - 0x2c25], 1
lea esi, [ebx + 0xbe18]
mov dword [ebp - 0x2c2c], esi
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434960
sub eax, edx
sar eax, 1
je 0x434a82
push 0x800
push 0
lea eax, [ebp - 0x1c18]
push eax
call fcn.004ab450
add esp, 0xc
push 0x3ff
push esi
push 0x400
lea ecx, [ebp - 0x1c18]
push ecx
call fcn.004a9be0
add esp, 0x10
push 0x400
push 0x4e9644
sub esp, 0x1c
mov dword [ebp - 0x2c1c], esp
mov edx, str.SRC_DIR
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 3
push 0x52c1fc
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cb8]
call fcn.00411c20
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 8
jb 0x4349eb
mov eax, dword [eax + 4]
jmp 0x4349ee
add eax, 4
push eax
lea edx, [ebp - 0x1c18]
push edx
call fcn.004422a0
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cb8]
call fcn.00411bb0
push str.Inf_32
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
lea ecx, [ebp - 0x1c18]
call fcn.00440ff0
push 0x800
push 0
lea eax, [ebp - 0x1018]
push eax
call fcn.004ab450
add esp, 0xc
lea eax, [ebx + 4]
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, dword [ebp - 0x2c2c]
call fcn.00458ee0
test eax, eax
jne 0x434a82
push 0x3ff
mov ecx, edi
push ecx
push 0x400
mov edx, dword [ebp - 0x2c2c]
push edx
call fcn.004a9be0
add esp, 0x10
mov edi, dword [ebp - 0x2c24]
lea ebx, [edi + 0xc618]
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434a93
sub eax, edx
sar eax, 1
je 0x434bb7
push 0x800
push 0
lea eax, [ebp - 0x1c18]
push eax
call fcn.004ab450
add esp, 0xc
push 0x3ff
push ebx
push 0x400
lea ecx, [ebp - 0x1c18]
push ecx
call fcn.004a9be0
add esp, 0x10
push 0x400
push 0x4e9644
sub esp, 0x1c
mov dword [ebp - 0x2c1c], esp
mov edx, str.SRC_DIR
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 5
push 0x52c1fc
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2c9c]
call fcn.00411c20
mov byte [ebp - 4], 6
cmp dword [eax + 0x18], 8
jb 0x434b1e
mov eax, dword [eax + 4]
jmp 0x434b21
add eax, 4
push eax
lea edx, [ebp - 0x1c18]
push edx
call fcn.004422a0
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2c9c]
call fcn.00411bb0
push str.Inf_64
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
lea ecx, [ebp - 0x1c18]
call fcn.00440ff0
push 0x800
push 0
lea eax, [ebp - 0x1018]
push eax
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, ebx
call fcn.00458ee0
test eax, eax
jne 0x434bb1
push 0x3ff
mov ecx, edi
push ecx
push 0x400
push ebx
call fcn.004a9be0
add esp, 0x10
mov edi, dword [ebp - 0x2c24]
lea esi, [edi + 0xb418]
mov dword [ebp - 0x2c2c], esi
mov eax, esi
lea edx, [eax + 2]
jmp 0x434bd0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434bd0
sub eax, edx
mov ebx, dword [ebp - 0x2c20]
sar eax, 1
je 0x434bfd
push str.Driver
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
mov ecx, esi
call fcn.00440ff0
mov eax, dword [edi + 0x10618]
cmp eax, 0xffffffff
je 0x434c1b
push eax
push str.Index
lea eax, [ebp - 0x818]
mov ecx, dword [ebx]
call fcn.00440fd0
lea esi, [edi + 0x10630]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434c26
sub eax, edx
sar eax, 1
je 0x434cb0
push 0x800
push 0
lea ecx, [ebp - 0x1018]
push ecx
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x434c88
push 0xff
mov edx, edi
push edx
push 0x100
push esi
call fcn.004a9be0
add esp, 0x10
push str.Printer
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00440ff0
mov edi, dword [ebp - 0x2c24]
mov ebx, dword [ebp - 0x2c20]
lea esi, [edi + 0x10a30]
mov eax, esi
lea edx, [eax + 2]
jmp 0x434cc0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434cc0
sub eax, edx
sar eax, 1
je 0x434d4a
push 0x800
push 0
lea eax, [ebp - 0x1018]
push eax
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x434d22
push 0xff
mov ecx, edi
push ecx
push 0x100
push esi
call fcn.004a9be0
add esp, 0x10
push str.Org_Printer
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebp - 0x2c20]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00440ff0
mov edi, dword [ebp - 0x2c24]
mov ebx, dword [ebp - 0x2c20]
lea esi, [edi + 0x10830]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434d55
sub eax, edx
sar eax, 1
je 0x434ddf
push 0x800
push 0
lea edx, [ebp - 0x1018]
push edx
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x434db7
push 0xff
mov eax, edi
push eax
push 0x100
push esi
call fcn.004a9be0
add esp, 0x10
push str.Share_Name
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x2c20]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.00440ff0
mov edi, dword [ebp - 0x2c24]
mov ebx, dword [ebp - 0x2c20]
push 0
lea ecx, [ebp - 0x818]
push 4
push 4
push ecx
cmp byte [edi + 0x10c30], 0
je 0x434e07
mov dword [ebp - 0x2c6c], 1
lea ecx, [ebp - 0x2c6c]
jmp 0x434e17
mov dword [ebp - 0x2c50], 0
lea ecx, [ebp - 0x2c50]
mov eax, dword [ebx]
mov edx, dword [eax]
push edx
mov edx, str.Share
call fcn.00456590
add esp, 0x14
cmp byte [edi + 0x10c31], 0
je 0x434e5b
lea esi, [ebp - 0x2c38]
call fcn.0040e430
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x2c1c], esp
push eax
call fcn.0040f4c0
mov byte [ebp - 4], 7
mov byte [ebp - 4], 0
call fcn.0040f160
push 0
lea ecx, [ebp - 0x818]
push 4
push 4
push ecx
cmp byte [edi + 0x1061c], 0
je 0x434e83
mov dword [ebp - 0x2c60], 1
lea ecx, [ebp - 0x2c60]
jmp 0x434e93
mov dword [ebp - 0x2c4c], 0
lea ecx, [ebp - 0x2c4c]
mov eax, dword [ebx]
mov edx, dword [eax]
push edx
mov edx, str.Is_UniDrv
call fcn.00456590
add esp, 0x14
cmp byte [edi + 0x1061f], 0
jne 0x434f7d
push str.Printer
lea eax, [edi + 0x204]
push eax
call fcn.004a9af1
add esp, 8
test eax, eax
jne 0x434f7d
push 0x200
push eax
lea eax, [ebp - 0x1218]
push eax
call fcn.004ab450
add esp, 0xc
push 0xff
mov ecx, dword [ebp - 0x2c2c]
push ecx
push 0x100
lea edx, [ebp - 0x1218]
push edx
call fcn.004a9be0
push 0x100
lea eax, [ebp - 0x1218]
push eax
call fcn.004aa61b
push str.UNIVERSAL
lea ecx, [ebp - 0x1218]
push ecx
call fcn.004a9b82
add esp, 0x20
push 0
push 4
push 4
test eax, eax
je 0x434f54
mov byte [edi + 0x1061d], 1
mov dword [ebp - 0x2c58], 1
mov eax, dword [ebx]
lea edx, [ebp - 0x818]
push edx
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2c58]
jmp 0x434f70
mov dword [ebp - 0x2c68], 0
mov eax, dword [ebx]
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [eax]
push edx
lea ecx, [ebp - 0x2c68]
mov edx, str.Is_UPD
call fcn.00456590
add esp, 0x14
xor eax, eax
cmp byte [edi + 0x1061d], al
setne al
push eax
push str.Is_UPD
lea eax, [ebp - 0x818]
mov ecx, dword [ebp - 0x2c20]
mov ecx, dword [ecx]
call fcn.00440fd0
lea ebx, [edi + 0xce18]
mov eax, ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x434fb0
sub eax, edx
sar eax, 1
je 0x43502f
push str.OEM_ID
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebp - 0x2c20]
mov ecx, dword [eax]
push ecx
mov ecx, ebx
call fcn.00440ff0
lea edx, [ebp - 0x2d0c]
push edx
call fcn.00440f60
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 0
sete byte [ebp - 0x2c26]
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2d0c]
call fcn.00411bb0
cmp byte [ebp - 0x2c26], 0
je 0x43502f
sub esp, 0x1c
mov dword [ebp - 0x2c1c], esp
mov edx, ebx
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 9
mov byte [ebp - 4], 0
call fcn.00440eb0
lea ecx, [edi + 0xd018]
mov eax, ecx
lea esi, [eax + 2]
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435040
sub eax, esi
mov ebx, dword [ebp - 0x2c20]
sar eax, 1
je 0x43506b
push str.DriverVersion
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
push 0
lea ecx, [ebp - 0x818]
push 4
push 4
push ecx
cmp byte [edi + 0x1061e], 0
je 0x435199
mov dword [ebp - 0x2c54], 1
mov eax, dword [ebx]
mov edx, dword [eax]
push edx
lea ecx, [ebp - 0x2c54]
mov edx, str.SupportDCU
call fcn.00456590
add esp, 0x14
lea ecx, [edi + 0xf618]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4350b2
sub eax, esi
sar eax, 1
je 0x4350d7
push str.DCU_File
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [edi + 0xda18]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4350e2
sub eax, esi
sar eax, 1
je 0x435107
push str.CF_XML_File
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [edi + 0xe218]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435112
sub eax, esi
sar eax, 1
je 0x435137
push str.CF_XML_File_Name
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [edi + 0xec18]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435142
sub eax, esi
sar eax, 1
je 0x435167
push str.PF_XML_File
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [edi + 0xf418]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435172
sub eax, esi
sar eax, 1
je 0x4351bb
push str.PF_XML_File_Name
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
jmp 0x4351bb
mov dword [ebp - 0x2c5c], 0
mov eax, dword [ebx]
mov edx, dword [eax]
push edx
lea ecx, [ebp - 0x2c5c]
mov edx, str.SupportDCU
call fcn.00456590
add esp, 0x14
cmp byte [ebp - 0x2c25], 0
jne 0x43528c
push 0x800
push 0
lea eax, [ebp - 0x2c18]
push eax
call fcn.004ab450
add esp, 0xc
push 0x3ff
mov ecx, dword [ebp - 0x2c24]
add ecx, 0x8218
push ecx
push 0x400
lea edx, [ebp - 0x2c18]
push edx
call fcn.004a9be0
add esp, 0x10
push 0x400
push str._SRC_DIR_
sub esp, 0x1c
mov dword [ebp - 0x2c1c], esp
mov edx, str.SRC_DIR
mov eax, esp
call fcn.00411be0
mov byte [ebp - 4], 0xa
push 0x52c1fc
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cf0]
call fcn.00411c20
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x18], 8
jb 0x43524a
mov eax, dword [eax + 4]
jmp 0x43524d
add eax, 4
push eax
lea eax, [ebp - 0x2c18]
push eax
call fcn.004422a0
add esp, 0x10
mov byte [ebp - 4], 0
lea esi, [ebp - 0x2cf0]
call fcn.00411bb0
push 0x4e9658
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x2c20]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x2c18]
call fcn.00440ff0
mov edi, dword [ebp - 0x2c24]
lea ecx, [edi + 0x8a18]
mov eax, ecx
lea esi, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4352a0
sub eax, esi
mov ebx, dword [ebp - 0x2c20]
sar eax, 1
je 0x4352cb
push str.Inst_Cmd
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea ecx, [edi + 0x9218]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4352d6
sub eax, esi
sar eax, 1
je 0x4352fb
push str.Inst_Param
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
cmp byte [edi + 0x8204], 0
jne 0x43539a
lea ecx, [edi + 0x9a18]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435313
sub eax, esi
sar eax, 1
je 0x435338
push str.Uninst_Cmd
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea ecx, [edi + 0xa218]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435343
sub eax, esi
sar eax, 1
je 0x435368
push str.Uninst_Param
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea ecx, [edi + 0xaa18]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435373
sub eax, esi
sar eax, 1
je 0x4353c9
push str.Uninstall_Key
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
jmp 0x4353c9
mov dword [ebp - 0x2c64], 1
mov eax, dword [ebx]
push 0
push 4
push 4
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [eax]
push edx
lea ecx, [ebp - 0x2c64]
mov edx, str.Install_Only
call fcn.00456590
add esp, 0x14
lea ecx, [edi + 0xac18]
push str.Success_Return_Value
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea eax, [edi + 0x204]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4353f0
sub eax, edx
sar eax, 1
je 0x43541b
push str.Class
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebx]
push ecx
lea ecx, [edi + 0x204]
call fcn.00440ff0
lea ecx, [edi + 0x2e04]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435426
sub eax, esi
sar eax, 1
je 0x43544b
push str.Required_Size
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea ecx, [edi + 0x3804]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435456
sub eax, esi
sar eax, 1
je 0x43547b
push str.Copy_File
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea ecx, [edi + 0x3a04]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435486
sub eax, esi
sar eax, 1
je 0x4354ab
push str.Additional_CopyFile
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebx]
push eax
call fcn.00440ff0
lea esi, [edi + 0xe04]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4354b6
sub eax, edx
sar eax, 1
je 0x435540
push 0x800
push 0
lea ecx, [ebp - 0x1018]
push ecx
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x435518
push 0x3ff
mov edx, edi
push edx
push 0x400
push esi
call fcn.004a9be0
add esp, 0x10
push str.Description
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00440ff0
mov ebx, dword [ebp - 0x2c20]
mov edi, dword [ebp - 0x2c24]
lea esi, [edi + 0x1604]
mov eax, esi
lea edx, [eax + 2]
jmp 0x435550
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435550
sub eax, edx
sar eax, 1
je 0x4355da
push 0x800
push 0
lea eax, [ebp - 0x1018]
push eax
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x4355b2
push 0x3ff
mov ecx, edi
push ecx
push 0x400
push esi
call fcn.004a9be0
add esp, 0x10
push str.Display_Name
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebp - 0x2c20]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00440ff0
mov ebx, dword [ebp - 0x2c20]
mov edi, dword [ebp - 0x2c24]
lea esi, [edi + 0x1e04]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4355e5
sub eax, edx
sar eax, 1
je 0x43566f
push 0x800
push 0
lea edx, [ebp - 0x1018]
push edx
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x435647
push 0x3ff
mov eax, edi
push eax
push 0x400
push esi
call fcn.004a9be0
add esp, 0x10
push str.Warning_Msg
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x2c20]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.00440ff0
mov ebx, dword [ebp - 0x2c20]
mov edi, dword [ebp - 0x2c24]
lea esi, [edi + 0x2604]
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435680
sub eax, edx
sar eax, 1
je 0x43570a
push 0x800
push 0
lea ecx, [ebp - 0x1018]
push ecx
call fcn.004ab450
add esp, 0xc
mov eax, dword [ebp - 0x2c24]
add eax, 4
push eax
push 0x400
push 0x527d38
lea edi, [ebp - 0x1018]
mov edx, esi
call fcn.00458ee0
test eax, eax
jne 0x4356e2
push 0x3ff
mov edx, edi
push edx
push 0x400
push esi
call fcn.004a9be0
add esp, 0x10
push str.Icon
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00440ff0
mov ebx, dword [ebp - 0x2c20]
mov edi, dword [ebp - 0x2c24]
mov eax, dword [edi + 0x8208]
cmp eax, 0xffffffff
je 0x435728
push eax
push str.Wait_Max_Time
lea eax, [ebp - 0x818]
mov ecx, dword [ebx]
call fcn.00440fd0
lea ecx, [edi + 0x404]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435733
sub eax, esi
sar eax, 1
je 0x435758
push str.Comp_Dir
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [edi + 0xc04]
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435763
sub eax, esi
sar eax, 1
je 0x435788
push str.Default_Install_Mode
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
push 0x800
push 0
lea eax, [ebp - 0x2418]
push eax
call fcn.004ab450
add esp, 0xc
push str.InstallMode
lea ecx, [ebp - 0x818]
push ecx
push 0x4dd780
push 0x400
lea edx, [ebp - 0x2418]
push edx
call fcn.004a9ca9
add esp, 0x14
lea ebx, [edi + 0x820c]
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [ebp - 0x2c40], 0
mov dword [ebp - 0x2c3c], eax
mov dword [ebp - 0x2c40], ebx
jmp 0x4357f0
mov eax, dword [ebx + 4]
mov dword [ebp - 0x2c78], 0
mov dword [ebp - 0x2c74], eax
mov dword [ebp - 0x2c78], ebx
lea esi, [ebp - 0x2c78]
lea edi, [ebp - 0x2c40]
call fcn.00414fe0
test al, al
je 0x435877
mov esi, edi
call fcn.0040e430
add eax, 0x1c
cmp dword [eax + 0x18], 8
jb 0x435833
mov edi, dword [eax + 4]
jmp 0x435836
lea edi, [eax + 4]
lea esi, [ebp - 0x2c40]
call fcn.0040e430
cmp dword [eax + 0x18], 8
jb 0x43584c
mov eax, dword [eax + 4]
jmp 0x43584f
add eax, 4
push eax
lea eax, [ebp - 0x2418]
push eax
mov ecx, dword [ebp - 0x2c20]
mov edx, dword [ecx]
push edx
mov ecx, edi
call fcn.00440ff0
lea esi, [ebp - 0x2c40]
call fcn.0040d760
jmp 0x4357f0
mov esi, dword [ebp - 0x2c24]
lea ecx, [esi + 0x3004]
mov eax, ecx
lea edi, [eax + 2]
jmp 0x435890
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435890
sub eax, edi
mov ebx, dword [ebp - 0x2c20]
sar eax, 1
je 0x4358bb
push str.Device_String
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x3204]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4358c6
sub eax, edi
sar eax, 1
je 0x4358eb
push str.Device_String_Field
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x3404]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4358f6
sub eax, edi
sar eax, 1
je 0x43591b
push str.Device_Inst_State
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x3604]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435926
sub eax, edi
sar eax, 1
je 0x43594b
push str.Device_Not_Connect_Install
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
mov eax, dword [esi + 0x13048]
push eax
push str.InstallStatus
lea eax, [ebp - 0x818]
mov ecx, dword [ebx]
call fcn.00440fd0
push 0
lea ecx, [ebp - 0x818]
push 4
push 4
push ecx
cmp byte [esi + 0x8205], 0
je 0x43598c
mov dword [ebp - 0x2c70], 1
lea ecx, [ebp - 0x2c70]
jmp 0x43599c
mov dword [ebp - 0x2c7c], 0
lea ecx, [ebp - 0x2c7c]
mov eax, dword [ebx]
mov edx, dword [eax]
push edx
mov edx, str.AlreadyInstalled
call fcn.00456590
add esp, 0x14
lea ecx, [esi + 0x4204]
mov eax, ecx
lea edi, [eax + 2]
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4359c0
sub eax, edi
sar eax, 1
je 0x4359e5
push str.AdditionalInstCmd
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x6204]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4359f0
sub eax, edi
sar eax, 1
je 0x435a15
push str.AdditionalUninstCmd
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x10e34]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435a20
sub eax, edi
sar eax, 1
je 0x435a45
push str.InstalledVersion
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
lea ecx, [esi + 0x10c34]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x435a50
sub eax, edi
sar eax, 1
je 0x435a75
push str.InstallingVersion
lea eax, [ebp - 0x818]
push eax
mov edx, dword [ebx]
push edx
call fcn.00440ff0
mov eax, dword [esi]
push eax
push str.InstOrder
lea eax, [ebp - 0x818]
mov ecx, dword [ebx]
call fcn.00440fd0
mov ebx, dword [ebp - 0x2c20]
lea esi, [ebp - 0x2c38]
call fcn.0040dd10
xor esi, esi
jmp 0x4346f0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a998e
mov esp, ebp
pop ebp
ret