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

Disassembly:
push ebp
lea ebp, [esp - 0x3034]
mov eax, 0x3034
call fcn.00455690
push 0xffffffffffffffff
push 0x46d726
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x491d88]
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 0x4221da
xor eax, eax
jmp 0x423f0b
push dword [ebp + 0x3040]
mov ecx, esi
call fcn.00421959
push 0x2710
lea eax, [ebp + 0x204]
push ebx
push eax
call fcn.004530b0
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.004530b0
add esp, 0x18
push ebx
lea ecx, [ebp + 0x1cc]
mov dword [ebp + 0x1e4], 0xf
call fcn.00401800
push esi
lea eax, [ebp + 0x2a19]
push ebx
push eax
mov dword [ebp - 4], ebx
mov byte [ebp + 0x2a18], bl
call fcn.004530b0
add esp, 0xc
mov dword [ebp - 0x4c], ebx
inc esi
mov eax, dword [ebp - 0x4c]
sub eax, ebx
je 0x42228e
dec eax
je 0x42226c
dec eax
jne 0x422294
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
jmp 0x42227b
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.0042502a
add esp, 0xc
jmp 0x422294
mov byte [ebp + 0x2a18], bl
push str.Strings
lea ecx, [ebp + 0x1cc]
call fcn.00404200
lea eax, [ebp + 0x2a18]
push eax
lea ecx, [ebp + 0x1cc]
call fcn.004064c0
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
jae 0x4222cb
lea eax, [ebp + 0x1d0]
push 0x2710
lea ecx, [ebp + 0x204]
push ecx
push ebx
push ebx
push eax
push dword [ebp - 0x34]
call fcn.00427ed3
add esp, 0x18
test eax, eax
je 0x42238b
cmp byte [ebp + 0x204], bl
lea edi, [ebp + 0x204]
je 0x42238b
cmp dword [ebp + 0x1e4], 0x10
mov eax, dword [ebp + 0x1d0]
mov byte [ebp + 0x2f2c], bl
jae 0x42231a
lea eax, [ebp + 0x1d0]
push esi
lea ecx, [ebp + 0x2f2c]
push ecx
push edi
push ebx
push eax
push dword [ebp - 0x34]
call fcn.00427ed3
add esp, 0x18
test eax, eax
je 0x422378
push edi
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
push eax
add ecx, 0xc8
mov byte [ebp - 4], 1
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push edi
call fcn.00456310
lea edi, [edi + eax + 1]
cmp byte [edi], bl
pop ecx
jne 0x4222ff
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jl 0x422253
push 0x103
lea eax, [ebp + 0x2b1d]
push ebx
push eax
mov byte [ebp + 0x2b1c], bl
call fcn.004530b0
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 0x422480
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.004220ae
lea ecx, [ebp + 0x2b1c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
lea eax, [ebp + 0x2b1c]
push 0x4782bc
push eax
call fcn.004541bf
test eax, eax
pop ecx
pop ecx
push str._countrycode_
lea ecx, [ebp + 0x1e8]
jne 0x42245d
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.004220ae
push 0x4782a8
jmp 0x422503
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004220ae
lea ecx, [ebp + 0x2b1c]
push ecx
jmp 0x422503
push str.Could_not_get_country_code
push 8
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._country_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov edi, dword [ebp - 0x14]
lea eax, [ebp + 0x1e8]
add edi, 0xc8
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.004220ae
push 0x478288
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._countrycode_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.004220ae
push 0x478288
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x42258e
push str._ICE_REV_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
call fcn.00429ff9
test eax, eax
push str._ICE_SUFFIX_
lea ecx, [ebp + 0x1e8]
je 0x4225ff
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.004220ae
push 0x478268
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.004220ae
push 0x47825c
jmp 0x42265a
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.004220ae
push 0x478258
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._BITS_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.004220ae
push 0x478254
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
cmp dword [ebp - 0x40], ebx
mov byte [ebp + 0x2f2c], bl
je 0x4226a7
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.004220ae
push dword [ebp - 0x40]
jmp 0x422783
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.INSTALLDIR
push 0x473108
push dword [ebp - 0x34]
call fcn.00428396
add esp, 0x18
test eax, eax
je 0x4226ec
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov byte [ebp - 4], 0xd
jmp 0x42276e
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.00428396
add esp, 0x18
test eax, eax
je 0x42272e
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov byte [ebp - 4], 0xe
jmp 0x42276e
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.00428396
add esp, 0x18
test eax, eax
je 0x42279b
push str._INSTALLDIR_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._INSTALLDIR_
lea ecx, [ebp - 0x68]
call fcn.004043b0
push str._INSTALLDIRx86_
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x10
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.004220ae
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
call fcn.004220ae
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403cf0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x42282c
mov eax, dword [eax + 4]
jmp 0x42282f
add eax, 4
push eax
push str.initial_installdirx86_macro___s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
call fcn.00429ff9
test eax, eax
je 0x422afb
push str._programfiles_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.004043b0
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 0x4228a2
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x4228bb
mov eax, dword [eax + 4]
jmp 0x4228be
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00452cfc
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.00402f50
cmp byte [ebp - 0xd], bl
je 0x42297b
push str.Replacing_programfiles_macro_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x30]
call fcn.004043b0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x15
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.004220ae
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.004220ae
push eax
call fcn.004257fc
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x13
call fcn.00402f50
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004043b0
mov byte [ebp - 4], 0x17
jmp 0x422ab1
mov ecx, dword [ebp - 0x14]
push 0x800
push ebx
lea eax, [ebp + 0x1e8]
push eax
call fcn.00423f30
cmp dword [ebp + 0x1fc], ebx
je 0x422a01
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004043b0
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 0x4229ce
lea eax, [ebp + 0x1ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x4229e7
mov eax, dword [eax + 4]
jmp 0x4229ea
add eax, 4
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push eax
call fcn.00452cfc
add esp, 0xc
test eax, eax
mov byte [ebp - 0xd], 1
je 0x422a04
mov byte [ebp - 0xd], bl
test byte [ebp - 0x48], 1
mov dword [ebp - 4], 0x13
je 0x422a20
and dword [ebp - 0x48], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x422aea
push str.Replacing_programfiles_expanded_string_with_programfilesx86_macro_in_installdirx86_macro
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._ProgramFilesx86_
lea ecx, [ebp - 0x68]
call fcn.004043b0
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x19
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1a
call fcn.004220ae
push eax
lea eax, [ebp + 0x1e8]
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push eax
call fcn.004257fc
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.00402f50
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x30]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x422ac7
mov eax, dword [eax + 4]
jmp 0x422aca
add eax, 4
push eax
push str.installdirx86_macro___s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._INSTALLDIRx86_
lea ecx, [ebp - 0x68]
call fcn.004043b0
push str._InstallMainBin_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1c
call fcn.004043b0
push str.Digital_Imaging_bin_
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1d
call fcn.004220ae
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.00406be0
add esp, 0xc
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1e
call fcn.004220ae
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00403cf0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
push 0x103
lea eax, [ebp + 0x2915]
push ebx
push eax
mov byte [ebp + 0x2914], bl
call fcn.004530b0
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.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1f
call fcn.004220ae
lea ecx, [ebp + 0x2914]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00420713
pop ecx
pop ecx
push str._MyPath_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x20
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push dword [ebp - 0x38]
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00454360
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00420955
add esp, 0x10
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x21
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._CDRoot_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x422caf
mov eax, dword [eax + 4]
jmp 0x422cb2
add eax, 4
push eax
push str.CDROOT_MACRO_value_is:___s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.004043b0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x23
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00421aeb
mov ecx, eax
call fcn.00405610
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x422daa
push str._SourcePath_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x24
call fcn.004220ae
push str._CDRoot_
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._SourcePath_
lea ecx, [ebp - 0x68]
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x25
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x422d84
mov eax, dword [eax + 4]
jmp 0x422d87
add eax, 4
push eax
push str.SOURCEPATH_MACRO_value_is:___s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
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 [0x4a2f88], ebx
je 0x423037
mov eax, dword [0x4a2f84]
push 0x4a2f80
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.00405a60
lea ecx, [ebp - 0x3c]
call fcn.0040aa30
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00405b20
test eax, eax
jne 0x423037
push str._LANG_
lea ecx, [ebp - 0x30]
call fcn.004043b0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
mov ecx, 0x4a2e10
mov byte [ebp - 4], 0x2d
call fcn.0042cbf4
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2e
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x422e73
mov eax, dword [eax + 4]
jmp 0x422e76
add eax, 4
push eax
mov ecx, 0x4a2e10
call fcn.0042cb22
movzx eax, ax
push eax
push 0x4730ac
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004543d1
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2f
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00421c4e
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x30
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], bl
call fcn.00402f50
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.0042502a
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00456310
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x422f81
push eax
call fcn.004541d2
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x31
call fcn.004220ae
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.0042502a
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00456310
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x422ffb
push eax
call fcn.004541d2
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x32
call fcn.004220ae
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
jmp 0x42328c
push ebx
push dword [ebp + 0x3044]
lea eax, [ebp + 0x2f2c]
push eax
lea ecx, [ebp]
call fcn.0042d337
push str._LANG_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.004043b0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc4]
push eax
lea ecx, [ebp]
mov byte [ebp - 4], 0x27
call fcn.0042cbf4
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00402f50
push str._LANG_
lea ecx, [ebp - 0x68]
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x4230c3
mov eax, dword [eax + 4]
jmp 0x4230c6
add eax, 4
push eax
lea ecx, [ebp]
call fcn.0042cb22
movzx eax, ax
push eax
push 0x4730ac
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004543d1
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00402f50
push str._LANGID_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x29
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00402f50
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.00421c4e
push str._LanguagesInthisCD_
lea ecx, [ebp + 0x1e8]
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2a
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp + 0x1e8]
mov byte [ebp - 4], 0x26
call fcn.00402f50
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.0042502a
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00456310
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x4231d2
push eax
call fcn.004541d2
pop ecx
push str._LangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2b
call fcn.004220ae
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x26
call fcn.00402f50
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.0042502a
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00456310
add esp, 0x10
test eax, eax
lea eax, [ebp + 0x2f2c]
jbe 0x42324d
push eax
call fcn.004541d2
pop ecx
push str._PrimaryLangQualifier_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], eax
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.004220ae
push dword [ebp - 0x40]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
lea ecx, [ebp]
mov byte [ebp - 4], bl
call fcn.0042d1fe
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov dword [ebp - 0x38], eax
movzx eax, ax
push eax
push 0x4730ac
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.004543d1
add esp, 0x10
push str._oslangid_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x33
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004043b0
push dword [ebp - 0x38]
mov ecx, 0x4a2e10
mov byte [ebp - 4], 0x34
call fcn.0042cbf4
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._countrycode_
lea ecx, [ebp + 0x1e8]
mov byte [ebp + 0x2f2c], bl
call fcn.004043b0
lea eax, [ebp + 0x1e8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x35
call fcn.004220ae
push 0x478288
mov ecx, eax
call fcn.00405b20
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.00402f50
cmp byte [ebp - 0xd], bl
je 0x4233ac
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x36
call fcn.004220ae
push str.enu_us
jmp 0x42355c
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004043b0
or dword [ebp - 0x48], 2
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x37
call fcn.004220ae
push 0x47800c
mov ecx, eax
call fcn.00405b20
test eax, eax
je 0x423412
push str._oslang_
lea ecx, [ebp - 0x30]
call fcn.004043b0
or dword [ebp - 0x48], 4
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov dword [ebp - 4], 0x38
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00405b20
test eax, eax
mov byte [ebp - 0xd], bl
jne 0x423416
mov byte [ebp - 0xd], 1
test byte [ebp - 0x48], 4
je 0x42342b
and dword [ebp - 0x48], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
test byte [ebp - 0x48], 2
mov dword [ebp - 4], ebx
je 0x42343f
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.00402f50
cmp byte [ebp - 0xd], bl
lea ecx, [ebp - 0x30]
je 0x42346a
push str._OSLangPlusCountryCode_
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x39
call fcn.004220ae
push str.enu_ww
jmp 0x42355c
push str._oslang_
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3a
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00405b20
push ebx
test eax, eax
push 1
lea ecx, [ebp - 0x30]
setne byte [ebp - 0xd]
mov byte [ebp - 4], bl
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x423527
push str._oslang_
lea ecx, [ebp - 0x68]
call fcn.004043b0
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3b
call fcn.004043b0
push 0x478000
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3c
call fcn.004220ae
push eax
lea eax, [ebp + 0x1e8]
push eax
call fcn.00406be0
add esp, 0xc
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3d
call fcn.004220ae
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00403cf0
push ebx
push 1
lea ecx, [ebp + 0x1e8]
call fcn.00402f50
push ebx
push 1
lea ecx, [ebp - 0x30]
call fcn.00402f50
lea ecx, [ebp - 0x68]
jmp 0x423566
push str.OSLANG_MACRO_is_empty___Cant_expand_OSLangPlusCountryCode
push 8
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3e
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00404200
lea ecx, [ebp - 0x30]
push ebx
push 1
mov byte [ebp - 4], bl
call fcn.00402f50
push str._OSLangPlusCountryCode_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3f
call fcn.004220ae
cmp dword [eax + 0x18], 0x10
jb 0x423598
mov eax, dword [eax + 4]
jmp 0x42359b
add eax, 4
push eax
push str.OSLANGPLUSCOUNTRYCODE_MACRO_value_is:___s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x10
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push 0x103
lea eax, [ebp + 0x2d25]
push ebx
push eax
mov byte [ebp + 0x2d24], bl
call fcn.004530b0
push 0x103
lea eax, [ebp + 0x2e29]
push ebx
push eax
mov byte [ebp + 0x2e28], bl
call fcn.004530b0
push 0x103
lea eax, [ebp + 0x2c21]
push ebx
push eax
mov byte [ebp + 0x2c20], bl
call fcn.004530b0
lea eax, [ebp + 0x2d24]
push esi
push eax
call fcn.004256d9
lea eax, [ebp + 0x2e28]
push esi
push eax
call fcn.00424fc7
lea eax, [ebp + 0x2d24]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.004542fb
lea eax, [ebp + 0x2e28]
add esp, 0x40
push eax
call fcn.00456310
test eax, eax
pop ecx
je 0x42365f
lea eax, [ebp + 0x2e28]
push eax
lea eax, [ebp + 0x2c20]
push esi
push eax
call fcn.00454360
add esp, 0xc
lea eax, [ebp + 0x2d24]
push eax
call fcn.00456310
test eax, eax
pop ecx
je 0x4236c5
lea eax, [ebp + 0x2d24]
push eax
call fcn.004541d2
push eax
push str.OS_MACRO_will_expand_to__s
push 0x80
push 0x4932a8
call fcn.00401300
add esp, 0x14
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp + 0x2d24]
push eax
mov byte [ebp - 4], 0x40
call fcn.004541d2
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
jmp 0x4236fa
push str.OS_MACRO_is_empty___Cant_expand_OS
push 8
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._OS_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x41
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
lea eax, [ebp + 0x2e28]
push eax
call fcn.00456310
test eax, eax
pop ecx
je 0x423775
lea eax, [ebp + 0x2e28]
push eax
call fcn.004541d2
push eax
push str.SP_MACRO_will_expand_to__s
push 0x80
push 0x4932a8
call fcn.00401300
add esp, 0x14
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp + 0x2e28]
push eax
mov byte [ebp - 4], 0x42
call fcn.004541d2
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
jmp 0x4237ad
push str.SP_MACRO_will_expand_to___
push 0x80
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._SP_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x43
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
lea eax, [ebp + 0x2c20]
push eax
call fcn.00456310
test eax, eax
pop ecx
je 0x423828
lea eax, [ebp + 0x2c20]
push eax
call fcn.004541d2
push eax
push str.OSSP_MACRO_will_expand_to__s
push 0x80
push 0x4932a8
call fcn.00401300
add esp, 0x14
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp + 0x2c20]
push eax
mov byte [ebp - 4], 0x44
call fcn.004541d2
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
jmp 0x42385d
push str.OSSP_MACRO_is_empty___Cant_expand_OSSP
push 8
push 0x4932a8
call fcn.00401300
add esp, 0xc
push str._OSSP_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x45
call fcn.004220ae
push 0x473048
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
lea eax, [ebp + 0x2f2c]
push esi
push eax
mov byte [ebp + 0x2f2c], bl
call fcn.00424f2c
lea eax, [ebp + 0x2f2c]
push eax
call fcn.00456310
add esp, 0xc
test eax, eax
je 0x4238fd
lea eax, [ebp + 0x2f2c]
push eax
call fcn.004541d2
push eax
push str.ProductType_MACRO_will_expand_to__s
push 0x20
push 0x4932a8
call fcn.00401300
add esp, 0x14
push str._ProductType_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp + 0x2f2c]
push eax
mov byte [ebp - 4], 0x46
call fcn.004541d2
pop ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.004220ae
push dword [ebp - 0x38]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423967
push str._CDGuid_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x47
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x4239d1
push str._DIVISION_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x48
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423a3b
push str._Manufacturer_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x49
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423aa5
push str._RegistryManufacturer_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4a
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423b0f
push str._ProductSeries_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4b
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423b79
push str._SoftwareGuid_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4c
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
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.00428396
add esp, 0x18
test eax, eax
je 0x423be3
push str._AutorunLocation_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4d
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push esi
lea eax, [ebp + 0x2f2c]
push eax
push str.UpdateFolder
push 0x477df4
push dword [ebp - 0x34]
mov byte [ebp + 0x2f2c], bl
call fcn.00428484
add esp, 0x14
test eax, eax
jne 0x423c67
push str._programfiles_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.004542fb
push str._Manufacturer_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00454360
push 0x472e4c
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00454360
push str._CDGuid_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00454360
push str.wup_
lea eax, [ebp + 0x2f2c]
push esi
push eax
call fcn.00454360
add esp, 0x3c
push str._UpdateFolder_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x4e
call fcn.004220ae
lea ecx, [ebp + 0x2f2c]
push ecx
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
mov esi, str._Preloadx86_
push esi
lea ecx, [ebp - 0x68]
call fcn.004043b0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x4f
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00421aeb
mov ecx, eax
call fcn.00405610
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x423d20
push esi
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x50
call fcn.004220ae
push str._InstallDirx86__CDGuid__
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
mov esi, str._Preload_
push esi
lea ecx, [ebp - 0x30]
call fcn.004043b0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x51
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00421aeb
mov ecx, eax
call fcn.00405610
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x423da1
push esi
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x52
call fcn.004220ae
push str._InstallDir__CDGuid__
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
mov esi, str._autorunName_
push esi
lea ecx, [ebp - 0x30]
call fcn.004043b0
mov eax, dword [edi + 4]
push edi
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x53
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00421aeb
mov ecx, eax
call fcn.00405610
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], bl
call fcn.00402f50
cmp byte [ebp - 0xd], bl
je 0x423e22
push esi
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x54
call fcn.004220ae
push str.autorun.inf
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._datfile_
lea ecx, [ebp - 0x30]
call fcn.004043b0
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x55
call fcn.004220ae
push dword [ebp - 0x34]
mov ecx, eax
call fcn.00404200
push ebx
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.00402f50
push str._addparams_
lea ecx, [ebp - 0x68]
call fcn.004043b0
lea eax, [ebp - 0x68]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x56
call fcn.004220ae
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x6c]
mov ecx, eax
call fcn.00403cf0
push ebx
push 1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.00402f50
mov eax, dword [edi + 4]
push edi
push dword [eax]
lea ecx, [ebp - 0x70]
call fcn.00405a60
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00405610
test al, al
jne 0x423efa
mov esi, 0x800
lea ecx, [ebp - 0x70]
call fcn.00421972
mov ecx, dword [ebp - 0x14]
push esi
push ebx
add eax, 0x1c
push eax
call fcn.00423f30
test eax, eax
jne 0x423ebc
lea ecx, [ebp - 0x70]
call fcn.00405660
push edi
push dword [edi + 4]
lea ecx, [ebp - 0x3c]
call fcn.00405a60
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00405610
test al, al
je 0x423ebc
push ebx
push 1
lea ecx, [ebp + 0x1cc]
call fcn.00402f50
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.0045309e
add ebp, 0x3034
leave
ret 0x18