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

Disassembly:
push ebp
lea ebp, [esp - 0x3034]
mov eax, 0x3034
call fcn.00447c30
push 0xffffffffffffffff
push 0x46296f
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x484c64]
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 0x41dc58
xor eax, eax
jmp 0x41f989
push dword [ebp + 0x3040]
mov ecx, esi
call fcn.0041d39c
push 0x2710
lea eax, [ebp + 0x204]
push ebx
push eax
call fcn.00447ba0
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.00447ba0
add esp, 0x18
push ebx
lea ecx, [ebp + 0x1cc]
mov dword [ebp + 0x1e4], 0xf
call fcn.00401600
push esi
lea eax, [ebp + 0x2a19]
push ebx
push eax
mov dword [ebp - 4], ebx
mov byte [ebp + 0x2a18], bl
call fcn.00447ba0
add esp, 0xc
mov dword [ebp - 0x4c], ebx
inc esi
mov eax, dword [ebp - 0x4c]
sub eax, ebx
je 0x41dd0c
dec eax
je 0x41dcea
dec eax
jne 0x41dd12
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
jmp 0x41dcf9
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.00421911
add esp, 0xc
jmp 0x41dd12
mov byte [ebp + 0x2a18], bl
push str.Strings
lea ecx, [ebp + 0x1cc]
call fcn.004049f0
lea eax, [ebp + 0x2a18]
push eax
lea ecx, [ebp + 0x1cc]
call fcn.00406ea0
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
jae 0x41dd49
lea eax, [ebp + 0x1d0]
push 0x2710
lea ecx, [ebp + 0x204]
push ecx
push ebx
push ebx
push eax
push dword [ebp - 0x34]
call fcn.0042557f
add esp, 0x18
test eax, eax
je 0x41de09
cmp byte [ebp + 0x204], bl
lea edi, [ebp + 0x204]
je 0x41de09
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
mov byte [ebp + 0x2f2c], bl
jae 0x41dd98
lea eax, [ebp + 0x1d0]
push esi
lea ecx, [ebp + 0x2f2c]
push ecx
push edi
push ebx
push eax
push dword [ebp - 0x34]
call fcn.0042557f
add esp, 0x18
test eax, eax
je 0x41ddf6
push edi
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
push eax
add ecx, 0xc8
mov byte [ebp - 4], 1
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push edi
call fcn.0044aa00
lea edi, [edi + eax + 1]
cmp byte [edi], bl
pop ecx
jne 0x41dd7d
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jl 0x41dcd1
push 0x103
lea eax, [ebp + 0x2b1d]
push ebx
push eax
mov byte [ebp + 0x2b1c], bl
call fcn.00447ba0
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 0x41defe
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.0041db2c
lea ecx, [ebp + 0x2b1c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
lea eax, [ebp + 0x2b1c]
push 0x46d5ac
push eax
call fcn.00448634
test eax, eax
pop ecx
pop ecx
push str._countrycode_
lea ecx, [ebp + 0x1e8]
jne 0x41dedb
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.0041db2c
push 0x46d598
jmp 0x41df81
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.0041db2c
lea ecx, [ebp + 0x2b1c]
push ecx
jmp 0x41df81
push str.Could_not_get_country_code
push 8
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.0041db2c
push 0x46d578
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._countrycode_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.0041db2c
push 0x46d578
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41e00c
push str._ICE_REV_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
call fcn.0041beac
test eax, eax
push str._ICE_SUFFIX_
lea ecx, [ebp + 0x1e8]
je 0x41e07d
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.0041db2c
push 0x46d558
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.0041db2c
push 0x46d54c
jmp 0x41e0d8
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.0041db2c
push 0x46d548
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.0041db2c
push 0x46d544
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
cmp dword [ebp - 0x40], ebx
mov byte [ebp + 0x2f2c], bl
je 0x41e125
push 0x4697bc
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.0041db2c
push dword [ebp - 0x40]
jmp 0x41e201
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.INSTALLDIR
push 0x469d54
push dword [ebp - 0x34]
call fcn.00425a42
add esp, 0x18
test eax, eax
je 0x41e16a
push 0x4697bc
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov byte [ebp - 4], 0xd
jmp 0x41e1ec
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.00425a42
add esp, 0x18
test eax, eax
je 0x41e1ac
push 0x4697bc
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov byte [ebp - 4], 0xe
jmp 0x41e1ec
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.00425a42
add esp, 0x18
test eax, eax
je 0x41e219
push 0x4697bc
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
mov byte [ebp - 4], 0xf
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push 0x4697bc
lea ecx, [ebp - 0x68]
call fcn.00402f00
push str._INSTALLDIRx86_
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x10
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.0041db2c
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.0041db2c
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00402b90
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e2aa
mov eax, dword [eax + 4]
jmp 0x41e2ad
add eax, 4
push eax
push str.initial_installdirx86_macro___s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
call fcn.0041beac
test eax, eax
je 0x41e579
push str._programfiles_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.00402f00
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 0x41e320
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e339
mov eax, dword [eax + 4]
jmp 0x41e33c
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00448a08
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.00401c10
cmp byte [ebp - 0xd], bl
je 0x41e3f9
push str.Replacing_programfiles_macro_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x30]
call fcn.00402f00
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x15
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.0041db2c
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.0041db2c
push eax
call fcn.0042223f
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x13
call fcn.00401c10
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.00402f00
mov byte [ebp - 4], 0x17
jmp 0x41e52f
mov ecx, dword [ebp - 0x14]
push 0x800
push ebx
lea eax, [ebp + 0x1e8]
push eax
call fcn.0041f9ae
cmp dword [ebp + 0x1fc], ebx
je 0x41e47f
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.00402f00
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 0x41e44c
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e465
mov eax, dword [eax + 4]
jmp 0x41e468
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00448a08
add esp, 0xc
test eax, eax
mov byte [ebp - 0xd], 1
je 0x41e482
mov byte [ebp - 0xd], bl
test byte [ebp - 0x48], 1
mov dword [ebp - 4], 0x13
je 0x41e49e
and dword [ebp - 0x48], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41e568
push str.Replacing_programfiles_expanded_string_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x68]
call fcn.00402f00
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x19
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1a
call fcn.0041db2c
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push eax
call fcn.0042223f
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.00401c10
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.00402f00
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e545
mov eax, dword [eax + 4]
jmp 0x41e548
add eax, 4
push eax
push str.installdirx86_macro___s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.00402f00
push str._InstallMainBin_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1c
call fcn.00402f00
push str.Digital_Imaging_bin_
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1d
call fcn.0041db2c
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.0040c440
add esp, 0xc
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1e
call fcn.0041db2c
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00402b90
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
push 0x103
lea eax, [ebp + 0x2915]
push ebx
push eax
mov byte [ebp + 0x2914], bl
call fcn.00447ba0
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.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1f
call fcn.0041db2c
lea ecx, [ebp + 0x2914]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.0041a921
pop ecx
pop ecx
push str._MyPath_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x20
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push dword [ebp - 0x38]
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004486ac
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0041ab63
add esp, 0x10
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x21
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e72d
mov eax, dword [eax + 4]
jmp 0x41e730
add eax, 4
push eax
push str.CDROOT_MACRO_value_is:___s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.00402f00
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x23
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.0041d569
mov ecx, eax
call fcn.00408740
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41e828
push str._SourcePath_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x24
call fcn.0041db2c
push str._CDRoot_
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x25
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e802
mov eax, dword [eax + 4]
jmp 0x41e805
add eax, 4
push eax
push str.SOURCEPATH_MACRO_value_is:___s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
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 [0x4963d8], ebx
je 0x41eab5
mov eax, dword [0x4963d4]
push 0x4963d0
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040b6c0
lea ecx, [ebp - 0x3c]
call fcn.004064c0
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.0040b780
test eax, eax
jne 0x41eab5
push str._LANG_
lea ecx, [ebp - 0x30]
call fcn.00402f00
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
mov ecx, 0x496260
mov byte [ebp - 4], 0x2d
call fcn.00428b90
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2e
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41e8f1
mov eax, dword [eax + 4]
jmp 0x41e8f4
add eax, 4
push eax
mov ecx, 0x496260
call fcn.00428abe
movzx eax, ax
push eax
push 0x467c54
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00447cf1
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2f
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.0041d6cc
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00421911
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0044aa00
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x41e9ff
push eax
call fcn.00448a1f
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x31
call fcn.0041db2c
push dword [ebp - 0x40]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00421911
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0044aa00
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x41ea79
push eax
call fcn.00448a1f
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x32
call fcn.0041db2c
push dword [ebp - 0x40]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
jmp 0x41ed0a
push ebx
push dword [ebp + 0x3044]
lea eax, [ebp + 0x2f2c]
push eax
lea ecx, [ebp]
call fcn.004292d3
push str._LANG_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00402f00
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
lea ecx, [ebp]
mov byte [ebp - 4], 0x27
call fcn.00428b90
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401c10
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41eb41
mov eax, dword [eax + 4]
jmp 0x41eb44
add eax, 4
push eax
lea ecx, [ebp]
call fcn.00428abe
movzx eax, ax
push eax
push 0x467c54
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00447cf1
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00401c10
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x29
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401c10
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.0041d6cc
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2a
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x26
call fcn.00401c10
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.00421911
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0044aa00
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x41ec50
push eax
call fcn.00448a1f
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2b
call fcn.0041db2c
push dword [ebp - 0x40]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00401c10
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.00421911
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0044aa00
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x41eccb
push eax
call fcn.00448a1f
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.0041db2c
push dword [ebp - 0x40]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
lea ecx, [ebp]
mov byte [ebp - 4], bl
call fcn.0042919a
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov dword [ebp - 0x38], eax
movzx eax, ax
push eax
push 0x467c54
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00447cf1
add esp, 0x10
push str._oslangid_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x33
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.00402f00
push dword [ebp - 0x38]
mov ecx, 0x496260
mov byte [ebp - 4], 0x34
call fcn.00428b90
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._countrycode_
lea ecx, [ebp + 0x1e8]
mov byte [ebp + 0x2f2c], bl
call fcn.00402f00
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x35
call fcn.0041db2c
push 0x46d578
mov ecx, eax
call fcn.0040b780
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.00401c10
cmp byte [ebp - 0xd], bl
je 0x41ee2a
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x36
call fcn.0041db2c
push str.enu_us
jmp 0x41efda
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.00402f00
or dword [ebp - 0x48], 2
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x37
call fcn.0041db2c
push 0x46d300
mov ecx, eax
call fcn.0040b780
test eax, eax
je 0x41ee90
push str._oslang_
lea ecx, [ebp - 0x30]
call fcn.00402f00
or dword [ebp - 0x48], 4
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov dword [ebp - 4], 0x38
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.0040b780
test eax, eax
mov byte [ebp - 0xd], bl
jne 0x41ee94
mov byte [ebp - 0xd], 1
test byte [ebp - 0x48], 4
je 0x41eea9
and dword [ebp - 0x48], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
test byte [ebp - 0x48], 2
mov dword [ebp - 4], ebx
je 0x41eebd
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00401c10
cmp byte [ebp - 0xd], bl
lea ecx, [ebp - 0x30]
je 0x41eee8
push str._OSLangPlusCountryCode_
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x39
call fcn.0041db2c
push str.enu_ww
jmp 0x41efda
push str._oslang_
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.0040b780
push ebx
test eax, eax
push 1
lea ecx, [ebp - 0x30]
setne byte [ebp - 0xd]
mov byte [ebp - 4], bl
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41efa5
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.00402f00
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3b
call fcn.00402f00
push 0x46d2f4
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3c
call fcn.0041db2c
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.0040c440
add esp, 0xc
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3d
call fcn.0041db2c
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00402b90
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00401c10
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00401c10
lea ecx, [ebp - 0x68]
jmp 0x41efe4
push str.OSLANG_MACRO_is_empty___Cant_expand_OSLangPlusCountryCode
push 8
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3e
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.004049f0
lea ecx, [ebp - 0x30]
push ebx
push 1
mov byte [ebp - 4], bl
call fcn.00401c10
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3f
call fcn.0041db2c
cmp dword [eax + 0x18], 0x10
jb 0x41f016
mov eax, dword [eax + 4]
jmp 0x41f019
add eax, 4
push eax
push str.OSLANGPLUSCOUNTRYCODE_MACRO_value_is:___s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push 0x103
lea eax, [ebp + 0x2d25]
push ebx
push eax
mov byte [ebp + 0x2d24], bl
call fcn.00447ba0
push 0x103
lea eax, [ebp + 0x2e29]
push ebx
push eax
mov byte [ebp + 0x2e28], bl
call fcn.00447ba0
push 0x103
lea eax, [ebp + 0x2c21]
push ebx
push eax
mov byte [ebp + 0x2c20], bl
call fcn.00447ba0
lea eax, [ebp + 0x2d24]
push esi
push eax
call fcn.004220e7
lea eax, [ebp + 0x2e28]
push esi
push eax
call fcn.004218ae
lea eax, [ebp + 0x2d24]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.00448647
lea eax, [ebp + 0x2e28]
add esp, 0x40
push eax
call fcn.0044aa00
test eax, eax
pop ecx
je 0x41f0dd
lea eax, [ebp + 0x2e28]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.004486ac
add esp, 0xc
lea eax, [ebp + 0x2d24]
push eax
call fcn.0044aa00
test eax, eax
pop ecx
je 0x41f143
lea eax, [ebp + 0x2d24]
push eax
call fcn.00448a1f
push eax
push str.OS_MACRO_will_expand_to__s
push 0x80
push 0x4866f8
call fcn.00401000
add esp, 0x14
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp + 0x2d24]
push eax
mov byte [ebp - 4], 0x40
call fcn.00448a1f
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
jmp 0x41f178
push str.OS_MACRO_is_empty___Cant_expand_OS
push 8
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x41
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
lea eax, [ebp + 0x2e28]
push eax
call fcn.0044aa00
test eax, eax
pop ecx
je 0x41f1f3
lea eax, [ebp + 0x2e28]
push eax
call fcn.00448a1f
push eax
push str.SP_MACRO_will_expand_to__s
push 0x80
push 0x4866f8
call fcn.00401000
add esp, 0x14
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp + 0x2e28]
push eax
mov byte [ebp - 4], 0x42
call fcn.00448a1f
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
jmp 0x41f22b
push str.SP_MACRO_will_expand_to___
push 0x80
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x43
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
lea eax, [ebp + 0x2c20]
push eax
call fcn.0044aa00
test eax, eax
pop ecx
je 0x41f2a6
lea eax, [ebp + 0x2c20]
push eax
call fcn.00448a1f
push eax
push str.OSSP_MACRO_will_expand_to__s
push 0x80
push 0x4866f8
call fcn.00401000
add esp, 0x14
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp + 0x2c20]
push eax
mov byte [ebp - 4], 0x44
call fcn.00448a1f
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
jmp 0x41f2db
push str.OSSP_MACRO_is_empty___Cant_expand_OSSP
push 8
push 0x4866f8
call fcn.00401000
add esp, 0xc
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x45
call fcn.0041db2c
push 0x46853b
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00421813
lea eax, [ebp + 0x2f2c]
push eax
call fcn.0044aa00
add esp, 0xc
test eax, eax
je 0x41f37b
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00448a1f
push eax
push str.ProductType_MACRO_will_expand_to__s
push 0x20
push 0x4866f8
call fcn.00401000
add esp, 0x14
push str._ProductType_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp + 0x2f2c]
push eax
mov byte [ebp - 4], 0x46
call fcn.00448a1f
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.0041db2c
push dword [ebp - 0x38]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f3e5
push str._CDGuid_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x47
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f44f
push str._DIVISION_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x48
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f4b9
push str._Manufacturer_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x49
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f523
push str._RegistryManufacturer_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4a
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f58d
push str._ProductSeries_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4b
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f5f7
push str._SoftwareGuid_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4c
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
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.00425a42
add esp, 0x18
test eax, eax
je 0x41f661
push str._AutorunLocation_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4d
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.UpdateFolder
push 0x46d0e8
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.00425b30
add esp, 0x14
test eax, eax
jne 0x41f6e5
push str._programfiles_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00448647
push str._Manufacturer_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004486ac
push 0x46853c
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004486ac
push str._CDGuid_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004486ac
push str.wup_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004486ac
add esp, 0x3c
push str._UpdateFolder_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4e
call fcn.0041db2c
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
mov esi, str._Preloadx86_
push esi
lea ecx, [ebp - 0x68]
call fcn.00402f00
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x4f
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.0041d569
mov ecx, eax
call fcn.00408740
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41f79e
push esi
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x50
call fcn.0041db2c
push str._InstallDirx86__CDGuid__
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
mov esi, str._Preload_
push esi
lea ecx, [ebp - 0x30]
call fcn.00402f00
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x51
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.0041d569
mov ecx, eax
call fcn.00408740
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41f81f
push esi
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x52
call fcn.0041db2c
push str._InstallDir__CDGuid__
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
mov esi, str._autorunName_
push esi
lea ecx, [ebp - 0x30]
call fcn.00402f00
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x53
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.0041d569
mov ecx, eax
call fcn.00408740
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00401c10
cmp byte [ebp - 0xd], bl
je 0x41f8a0
push esi
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x54
call fcn.0041db2c
push str.autorun.inf
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._datfile_
lea ecx, [ebp - 0x30]
call fcn.00402f00
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x55
call fcn.0041db2c
push dword [ebp - 0x34]
mov ecx, eax
call fcn.004049f0
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00401c10
push str._addparams_
lea ecx, [ebp - 0x68]
call fcn.00402f00
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x56
call fcn.0041db2c
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x6c]
mov ecx, eax
call fcn.00402b90
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00401c10
mov eax, dword [edi + 4]
push edi
push dword [eax]
lea ecx, [ebp - 0x70]
call fcn.0040b6c0
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00408740
test al, al
jne 0x41f978
mov esi, 0x800
lea ecx, [ebp - 0x70]
call fcn.0041d3b5
mov ecx, dword [ebp - 0x14]
push esi
push ebx
add eax, 0x1c
push eax
call fcn.0041f9ae
test eax, eax
jne 0x41f93a
lea ecx, [ebp - 0x70]
call fcn.0040b270
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.0040b6c0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00408740
test al, al
je 0x41f93a
push ebx
push 1
lea ecx, [ebp + 0x1cc]
call fcn.00401c10
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.00447b4c
add ebp, 0x3034
leave
ret 0x18