Function at 0x407eb2
Capabilities:
Get common file path
Get geographical location
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x3034]
mov eax, 0x3034
call fcn.00425530
push 0xffffffffffffffff
push 0x43949f
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x44bd40]
xor eax, ebp
mov dword [ebp + 0x3030], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x303c]
mov esi, ecx
mov ecx, dword [ebp + 0x3048]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp + 0x304c]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x3050]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x48], ebx
jne 0x407f28
xor eax, eax
jmp 0x409c59
push dword [ebp + 0x3040]
mov ecx, esi
call fcn.0040766c
push 0x2710
lea eax, [ebp + 0x204]
push ebx
push eax
call fcn.00421e30
mov dword [esi + 0xd4], 1
mov esi, 0x103
push esi
lea eax, [ebp + 0x2f2d]
push ebx
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00421e30
add esp, 0x18
push ebx
lea ecx, [ebp + 0x1cc]
mov dword [ebp + 0x1e4], 0xf
call fcn.00401900
push esi
lea eax, [ebp + 0x2a19]
push ebx
push eax
mov dword [ebp - 4], ebx
mov byte [ebp + 0x2a18], bl
call fcn.00421e30
add esp, 0xc
mov dword [ebp - 0x4c], ebx
inc esi
mov eax, dword [ebp - 0x4c]
sub eax, ebx
je 0x407fdc
dec eax
je 0x407fba
dec eax
jne 0x407fe2
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
jmp 0x407fc9
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
and eax, 0xffff03ff
push eax
lea eax, [ebp + 0x2a18]
push esi
push eax
call fcn.0040ac05
add esp, 0xc
jmp 0x407fe2
mov byte [ebp + 0x2a18], bl
push str.Strings
lea ecx, [ebp + 0x1cc]
call fcn.00403400
lea eax, [ebp + 0x2a18]
push eax
lea ecx, [ebp + 0x1cc]
call fcn.00403430
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
jae 0x408019
lea eax, [ebp + 0x1d0]
push 0x2710
lea ecx, [ebp + 0x204]
push ecx
push ebx
push ebx
push eax
push dword [ebp - 0x34]
call fcn.0040e8f5
add esp, 0x18
test eax, eax
je 0x4080d9
cmp byte [ebp + 0x204], bl
lea edi, [ebp + 0x204]
je 0x4080d9
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
mov byte [ebp + 0x2f2c], bl
jae 0x408068
lea eax, [ebp + 0x1d0]
push esi
lea ecx, [ebp + 0x2f2c]
push ecx
push edi
push ebx
push eax
push dword [ebp - 0x34]
call fcn.0040e8f5
add esp, 0x18
test eax, eax
je 0x4080c6
push edi
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
push eax
add ecx, 0xc8
mov byte [ebp - 4], 1
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push edi
call fcn.00423fc0
lea edi, [edi + eax + 1]
cmp byte [edi], bl
pop ecx
jne 0x40804d
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jl 0x407fa1
push 0x103
lea eax, [ebp + 0x2b1d]
push ebx
push eax
mov byte [ebp + 0x2b1c], bl
call fcn.00421e30
add esp, 0xc
push esi
lea eax, [ebp + 0x2b1c]
push eax
push 0x5a
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x4081ce
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.00407dfc
lea ecx, [ebp + 0x2b1c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
lea eax, [ebp + 0x2b1c]
push 0x43df8c
push eax
call fcn.004229ed
test eax, eax
pop ecx
pop ecx
push str._countrycode_
lea ecx, [ebp + 0x1e8]
jne 0x4081ab
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00407dfc
push 0x43df78
jmp 0x408251
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.00407dfc
lea ecx, [ebp + 0x2b1c]
push ecx
jmp 0x408251
push str.Could_not_get_country_code
push 8
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00407dfc
push 0x43df58
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._countrycode_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.00407dfc
push 0x43df58
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.ICE_REV
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x4082dc
push str._ICE_REV_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
call fcn.004118be
test eax, eax
push str._ICE_SUFFIX_
lea ecx, [ebp + 0x1e8]
je 0x40834d
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.00407dfc
push 0x43df30
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.00407dfc
push 0x43df24
jmp 0x4083a8
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.00407dfc
push 0x43df20
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.00407dfc
push 0x43df1c
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp dword [ebp - 0x40], ebx
mov byte [ebp + 0x2f2c], bl
je 0x4083f5
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00407dfc
push dword [ebp - 0x40]
jmp 0x4084d1
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.INSTALLDIR
push 0x43c684
push dword [ebp - 0x34]
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x40843a
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov byte [ebp - 4], 0xd
jmp 0x4084bc
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.INSTALLDIR
push str.Version
push dword [ebp - 0x34]
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x40847c
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov byte [ebp - 4], 0xe
jmp 0x4084bc
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.Pre_Install
push str.Version
push dword [ebp - 0x34]
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x4084e9
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
mov byte [ebp - 4], 0xf
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._INSTALLDIR_
lea ecx, [ebp - 0x68]
call fcn.004033c0
push str._INSTALLDIRx86_
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x10
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.00407dfc
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.00407dfc
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00402630
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x40857a
mov eax, dword [eax + 4]
jmp 0x40857d
add eax, 4
push eax
push str.initial_installdirx86_macro___s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
call fcn.004118be
test eax, eax
je 0x408849
push str._programfiles_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.004033c0
cmp dword [ebp + 0x200], 0x10
mov eax, dword [ebp + 0x1fc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x1ec]
mov byte [ebp - 4], 0x14
jae 0x4085f0
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408609
mov eax, dword [eax + 4]
jmp 0x40860c
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00422c32
add esp, 0xc
neg eax
sbb al, al
push ebx
inc al
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], 0x13
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x4086c9
push str.Replacing_programfiles_macro_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x30]
call fcn.004033c0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x15
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.00407dfc
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.00407dfc
push eax
call fcn.0040b4d2
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x13
call fcn.00401ec0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004033c0
mov byte [ebp - 4], 0x17
jmp 0x4087ff
mov ecx, dword [ebp - 0x14]
push 0x800
push ebx
lea eax, [ebp + 0x1e8]
push eax
call fcn.00409c7e
cmp dword [ebp + 0x1fc], ebx
je 0x40874f
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004033c0
cmp dword [ebp + 0x200], 0x10
mov eax, dword [ebp + 0x1fc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x1ec]
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x48], 1
jae 0x40871c
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408735
mov eax, dword [eax + 4]
jmp 0x408738
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00422c32
add esp, 0xc
test eax, eax
mov byte [ebp - 0xd], 1
je 0x408752
mov byte [ebp - 0xd], bl
test byte [ebp - 0x48], 1
mov dword [ebp - 4], 0x13
je 0x40876e
and dword [ebp - 0x48], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x408838
push str.Replacing_programfiles_expanded_string_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x68]
call fcn.004033c0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x19
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1a
call fcn.00407dfc
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push eax
call fcn.0040b4d2
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.00401ec0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004033c0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408815
mov eax, dword [eax + 4]
jmp 0x408818
add eax, 4
push eax
push str.installdirx86_macro___s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.004033c0
push str._InstallMainBin_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1c
call fcn.004033c0
push str.Digital_Imaging_bin_
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1d
call fcn.00407dfc
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.00403590
add esp, 0xc
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1e
call fcn.00407dfc
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00402630
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
push 0x103
lea eax, [ebp + 0x2915]
push ebx
push eax
mov byte [ebp + 0x2914], bl
call fcn.00421e30
add esp, 0xc
lea eax, [ebp + 0x2914]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push str._CurrentDir_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1f
call fcn.00407dfc
lea ecx, [ebp + 0x2914]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040f2e9
pop ecx
pop ecx
push str._MyPath_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x20
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push dword [ebp - 0x38]
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421eaa
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0040f52b
add esp, 0x10
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x21
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x4089fd
mov eax, dword [eax + 4]
jmp 0x408a00
add eax, 4
push eax
push str.CDROOT_MACRO_value_is:___s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.004033c0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x23
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00407839
mov ecx, eax
call fcn.00401270
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x408af8
push str._SourcePath_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x24
call fcn.00407dfc
push str._CDRoot_
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x25
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408ad2
mov eax, dword [eax + 4]
jmp 0x408ad5
add eax, 4
push eax
push str.SOURCEPATH_MACRO_value_is:___s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
push ebx
lea eax, [ebp + 0x2f2c]
push eax
push esi
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
cmp dword [0x45ce40], ebx
je 0x408d85
mov eax, dword [0x45ce3c]
push 0x45ce38
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.00401950
lea ecx, [ebp - 0x3c]
call fcn.00401600
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00401aa0
test eax, eax
jne 0x408d85
push str._LANG_
lea ecx, [ebp - 0x30]
call fcn.004033c0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
mov ecx, 0x45ccc8
mov byte [ebp - 4], 0x2d
call fcn.004140f3
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2e
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408bc1
mov eax, dword [eax + 4]
jmp 0x408bc4
add eax, 4
push eax
mov ecx, 0x45ccc8
call fcn.00414021
movzx eax, ax
push eax
push 0x43c634
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00422cc0
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2f
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov ecx, dword [ebp - 0x14]
push 0x800
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.LanguagesInthisCD
push str.Version
push dword [ebp - 0x34]
call fcn.0040799c
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040ac05
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00423fc0
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x408ccf
push eax
call fcn.00422c49
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x31
call fcn.00407dfc
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
and eax, 0xffff03ff
push eax
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040ac05
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00423fc0
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x408d49
push eax
call fcn.00422c49
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x32
call fcn.00407dfc
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
jmp 0x408fda
push ebx
push dword [ebp + 0x3044]
lea eax, [ebp + 0x2f2c]
push eax
lea ecx, [ebp]
call fcn.00414836
push str._LANG_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.004033c0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
lea ecx, [ebp]
mov byte [ebp - 4], 0x27
call fcn.004140f3
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401ec0
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x408e11
mov eax, dword [eax + 4]
jmp 0x408e14
add eax, 4
push eax
lea ecx, [ebp]
call fcn.00414021
movzx eax, ax
push eax
push 0x43c634
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00422cc0
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00401ec0
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x29
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401ec0
mov ecx, dword [ebp - 0x14]
push 0x800
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.LanguagesInthisCD
push str.Version
push dword [ebp - 0x34]
call fcn.0040799c
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2a
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x26
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040ac05
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00423fc0
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x408f20
push eax
call fcn.00422c49
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2b
call fcn.00407dfc
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
and eax, 0xffff03ff
push eax
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040ac05
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00423fc0
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x408f9b
push eax
call fcn.00422c49
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.00407dfc
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
lea ecx, [ebp]
mov byte [ebp - 4], bl
call fcn.004146fd
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov dword [ebp - 0x38], eax
movzx eax, ax
push eax
push 0x43c634
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00422cc0
add esp, 0x10
push str._oslangid_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x33
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004033c0
push dword [ebp - 0x38]
mov ecx, 0x45ccc8
mov byte [ebp - 4], 0x34
call fcn.004140f3
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._countrycode_
lea ecx, [ebp + 0x1e8]
mov byte [ebp + 0x2f2c], bl
call fcn.004033c0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x35
call fcn.00407dfc
push 0x43df58
mov ecx, eax
call fcn.00401aa0
neg eax
sbb al, al
push ebx
inc al
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x4090fa
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x36
call fcn.00407dfc
push str.enu_us
jmp 0x4092aa
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004033c0
or dword [ebp - 0x48], 2
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x37
call fcn.00407dfc
push 0x43dcc8
mov ecx, eax
call fcn.00401aa0
test eax, eax
je 0x409160
push str._oslang_
lea ecx, [ebp - 0x30]
call fcn.004033c0
or dword [ebp - 0x48], 4
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov dword [ebp - 4], 0x38
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00401aa0
test eax, eax
mov byte [ebp - 0xd], bl
jne 0x409164
mov byte [ebp - 0xd], 1
test byte [ebp - 0x48], 4
je 0x409179
and dword [ebp - 0x48], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
test byte [ebp - 0x48], 2
mov dword [ebp - 4], ebx
je 0x40918d
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
lea ecx, [ebp - 0x30]
je 0x4091b8
push str._OSLangPlusCountryCode_
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x39
call fcn.00407dfc
push str.enu_ww
jmp 0x4092aa
push str._oslang_
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00401aa0
push ebx
test eax, eax
push 1
lea ecx, [ebp - 0x30]
setne byte [ebp - 0xd]
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x409275
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004033c0
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3b
call fcn.004033c0
push 0x43dcbc
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3c
call fcn.00407dfc
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.00403590
add esp, 0xc
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3d
call fcn.00407dfc
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00402630
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401ec0
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401ec0
lea ecx, [ebp - 0x68]
jmp 0x4092b4
push str.OSLANG_MACRO_is_empty___Cant_expand_OSLangPlusCountryCode
push 8
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3e
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00403400
lea ecx, [ebp - 0x30]
push ebx
push 1
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3f
call fcn.00407dfc
cmp dword [eax + 0x18], 0x10
jb 0x4092e6
mov eax, dword [eax + 4]
jmp 0x4092e9
add eax, 4
push eax
push str.OSLANGPLUSCOUNTRYCODE_MACRO_value_is:___s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push 0x103
lea eax, [ebp + 0x2d25]
push ebx
push eax
mov byte [ebp + 0x2d24], bl
call fcn.00421e30
push 0x103
lea eax, [ebp + 0x2e29]
push ebx
push eax
mov byte [ebp + 0x2e28], bl
call fcn.00421e30
push 0x103
lea eax, [ebp + 0x2c21]
push ebx
push eax
mov byte [ebp + 0x2c20], bl
call fcn.00421e30
lea eax, [ebp + 0x2d24]
push esi
push eax
call fcn.0040b37a
lea eax, [ebp + 0x2e28]
push esi
push eax
call fcn.0040aba2
lea eax, [ebp + 0x2d24]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.00421daf
lea eax, [ebp + 0x2e28]
add esp, 0x40
push eax
call fcn.00423fc0
test eax, eax
pop ecx
je 0x4093ad
lea eax, [ebp + 0x2e28]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.00421eaa
add esp, 0xc
lea eax, [ebp + 0x2d24]
push eax
call fcn.00423fc0
test eax, eax
pop ecx
je 0x409413
lea eax, [ebp + 0x2d24]
push eax
call fcn.00422c49
push eax
push str.OS_MACRO_will_expand_to__s
push 0x80
push 0x44d160
call fcn.00401110
add esp, 0x14
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp + 0x2d24]
push eax
mov byte [ebp - 4], 0x40
call fcn.00422c49
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
jmp 0x409448
push str.OS_MACRO_is_empty___Cant_expand_OS
push 8
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x41
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
lea eax, [ebp + 0x2e28]
push eax
call fcn.00423fc0
test eax, eax
pop ecx
je 0x4094c3
lea eax, [ebp + 0x2e28]
push eax
call fcn.00422c49
push eax
push str.SP_MACRO_will_expand_to__s
push 0x80
push 0x44d160
call fcn.00401110
add esp, 0x14
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp + 0x2e28]
push eax
mov byte [ebp - 4], 0x42
call fcn.00422c49
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
jmp 0x4094fb
push str.SP_MACRO_will_expand_to___
push 0x80
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x43
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
lea eax, [ebp + 0x2c20]
push eax
call fcn.00423fc0
test eax, eax
pop ecx
je 0x409576
lea eax, [ebp + 0x2c20]
push eax
call fcn.00422c49
push eax
push str.OSSP_MACRO_will_expand_to__s
push 0x80
push 0x44d160
call fcn.00401110
add esp, 0x14
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp + 0x2c20]
push eax
mov byte [ebp - 4], 0x44
call fcn.00422c49
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
jmp 0x4095ab
push str.OSSP_MACRO_is_empty___Cant_expand_OSSP
push 8
push 0x44d160
call fcn.00401110
add esp, 0xc
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x45
call fcn.00407dfc
push 0x43c600
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0040ab07
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00423fc0
add esp, 0xc
test eax, eax
je 0x40964b
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00422c49
push eax
push str.ProductType_MACRO_will_expand_to__s
push 0x20
push 0x44d160
call fcn.00401110
add esp, 0x14
push str._ProductType_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp + 0x2f2c]
push eax
mov byte [ebp - 4], 0x46
call fcn.00422c49
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.00407dfc
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.CDGuid
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x4096b5
push str._CDGuid_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x47
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.DIVISION
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x40971f
push str._DIVISION_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x48
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.Manufacturer
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x409789
push str._Manufacturer_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x49
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.RegistryManufacturer
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x4097f3
push str._RegistryManufacturer_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4a
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.ProductSeries
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x40985d
push str._ProductSeries_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4b
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.SoftwareGuid
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x4098c7
push str._SoftwareGuid_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4c
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.AutorunLocation
push str.Version
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040edb8
add esp, 0x18
test eax, eax
je 0x409931
push str._AutorunLocation_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4d
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.UpdateFolder
push 0x43dab0
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.0040eea6
add esp, 0x14
test eax, eax
jne 0x4099b5
push str._programfiles_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421daf
push str._Manufacturer_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421eaa
push 0x43c560
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421eaa
push str._CDGuid_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421eaa
push str.wup_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00421eaa
add esp, 0x3c
push str._UpdateFolder_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4e
call fcn.00407dfc
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov esi, str._Preloadx86_
push esi
lea ecx, [ebp - 0x68]
call fcn.004033c0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x4f
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00407839
mov ecx, eax
call fcn.00401270
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x409a6e
push esi
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x50
call fcn.00407dfc
push str._InstallDirx86__CDGuid__
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov esi, str._Preload_
push esi
lea ecx, [ebp - 0x30]
call fcn.004033c0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x51
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00407839
mov ecx, eax
call fcn.00401270
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x409aef
push esi
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x52
call fcn.00407dfc
push str._InstallDir__CDGuid__
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov esi, str._autorunName_
push esi
lea ecx, [ebp - 0x30]
call fcn.004033c0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x53
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00407839
mov ecx, eax
call fcn.00401270
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401ec0
cmp byte [ebp - 0xd], bl
je 0x409b70
push esi
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x54
call fcn.00407dfc
push str.autorun.inf
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._datfile_
lea ecx, [ebp - 0x30]
call fcn.004033c0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x55
call fcn.00407dfc
push dword [ebp - 0x34]
mov ecx, eax
call fcn.00403400
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401ec0
push str._addparams_
lea ecx, [ebp - 0x68]
call fcn.004033c0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x56
call fcn.00407dfc
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x6c]
mov ecx, eax
call fcn.00402630
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401ec0
mov eax, dword [edi + 4]
push edi
push dword [eax]
lea ecx, [ebp - 0x70]
call fcn.00401950
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401270
test al, al
jne 0x409c48
mov esi, 0x800
lea ecx, [ebp - 0x70]
call fcn.00407685
mov ecx, dword [ebp - 0x14]
push esi
push ebx
add eax, 0x1c
push eax
call fcn.00409c7e
test eax, eax
jne 0x409c0a
lea ecx, [ebp - 0x70]
call fcn.00401340
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.00401950
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401270
test al, al
je 0x409c0a
push ebx
push 1
lea ecx, [ebp + 0x1cc]
call fcn.00401ec0
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3030]
xor ecx, ebp
call fcn.00421e14
add ebp, 0x3034
leave
ret 0x18