Function at 0x4224c6
Capabilities:
Get geographical location

Disassembly:
mov eax, 0x458a17
call fcn.004385b8
mov eax, 0x2e8c
call fcn.00437080
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
mov esi, ecx
jne 0x4224ec
xor eax, eax
jmp 0x42381c
push edi
mov ecx, esi
push dword [ebp + 0xc]
call fcn.00421aa2
push 0x2710
lea eax, [ebp - 0x2e98]
push ebx
push eax
call fcn.00438bf0
add esp, 0xc
mov dword [esi + 0x54], 1
mov al, byte [0x48840c]
lea edi, [ebp - 0x137]
push 0x40
mov byte [ebp - 0x138], al
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], al
call fcn.00404400
mov al, byte [0x48840c]
push 0x40
mov byte [ebp - 0x548], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x547]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 4], ebx
mov dword [ebp + 0xc], ebx
stosb byte es:[edi], al
mov eax, dword [ebp + 0xc]
sub eax, ebx
je 0x42258a
dec eax
je 0x422580
dec eax
jne 0x422590
mov ax, word [esi + 0x40]
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.00426f68
pop ecx
pop ecx
jmp 0x422590
mov ax, word [esi + 0x40]
and ax, 0x3ff
jmp 0x42256f
mov byte [ebp - 0x548], bl
mov edi, str.Strings
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.00404770
lea eax, [ebp - 0x548]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x548]
push eax
lea ecx, [ebp - 0x34]
call fcn.00403db0
mov eax, dword [ebp - 0x30]
cmp eax, ebx
jne 0x4225cf
mov eax, 0x45b980
lea ecx, [ebp - 0x2e98]
push 0x2710
push ecx
push ebx
push ebx
push eax
push dword [ebp + 8]
call fcn.00426997
add esp, 0x18
test eax, eax
je 0x4226a5
cmp byte [ebp - 0x2e98], bl
lea edi, [ebp - 0x2e98]
je 0x4226a5
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x138], bl
cmp eax, ebx
jne 0x422615
mov eax, 0x45b980
lea ecx, [ebp - 0x138]
push 0x104
push ecx
push edi
push ebx
push eax
push dword [ebp + 8]
call fcn.00426997
add esp, 0x18
test eax, eax
je 0x422690
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 1
call fcn.00423b71
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
push edi
call fcn.004386d0
cmp byte [edi + eax + 1], bl
lea edi, [edi + eax + 1]
pop ecx
jne 0x422603
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 3
jl 0x42255e
mov al, byte [0x48840c]
push 0x40
mov byte [ebp - 0x64c], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x64b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x104
lea eax, [ebp - 0x64c]
push edi
push eax
push 0x5a
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x422752
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._country_
call fcn.004386d0
pop ecx
push eax
push str._country_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 2
call fcn.00423b71
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x64c]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
jmp 0x422766
push str.Could_not_get_country_code
push 8
push 0x4788a8
call fcn.0041f763
add esp, 0xc
cmp dword [ebp + 0x18], ebx
mov byte [ebp - 0x138], bl
je 0x4227c9
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._INSTALLDIR_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 3
call fcn.00423b71
push dword [ebp + 0x18]
mov edi, eax
call fcn.004386d0
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x422956
mov ax, word [esi + 0x40]
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.INSTALLDIR
push 0x46e4e8
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x42284f
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._INSTALLDIR_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 4
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x422956
mov ax, word [esi + 0x40]
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.INSTALLDIR
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x4228d5
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._INSTALLDIR_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 5
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x422956
mov ax, word [esi + 0x40]
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.Pre_Install
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x42295b
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._INSTALLDIR_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 6
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00404400
lea eax, [ebp - 0x138]
mov byte [ebp - 0x138], bl
push eax
call fcn.0041ce0a
mov al, byte [ebp + 0xb]
pop ecx
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._MyPath_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 7
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
push dword [ebp + 0x14]
lea eax, [ebp - 0x138]
push eax
call fcn.00438760
lea eax, [ebp - 0x138]
push eax
call fcn.0041d330
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
mov edi, str._CDRoot_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 8
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
push dword [ebp + 0x10]
mov byte [ebp - 0x138], bl
push dword [ebp + 8]
lea ecx, [ebp - 0x788]
call sym.HPZshl01.exe_public:_void___thiscall_CFactory::constructor_char_const___unsigned_long_int_
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._LANG_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
mov ax, word [esi + 0x40]
lea ecx, [ebp - 0x788]
push eax
mov byte [ebp - 4], 0xa
call sym.HPZshl01.exe_public:_char_const__const___thiscall_CFactory::Get3LetterLanguage_unsigned_short_int_const
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [esi + 0x44]
call fcn.00423b71
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00404400
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0xb
call fcn.00423b71
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x422b11
mov eax, 0x45b980
push eax
lea ecx, [ebp - 0x788]
call sym.HPZshl01.exe_public:_unsigned_short_int___thiscall_CFactory::GetLanguageId_char_const__const
movzx eax, ax
push eax
lea eax, [ebp - 0x138]
push 0x46e704
push eax
call fcn.0043714d
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
push 1
call fcn.00404400
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._LANGID_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0xc
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00404400
push 0x800
lea eax, [ebp - 0x138]
push 0x104
push eax
push str.LanguagesInthisCD
push str.Version
push dword [ebp + 8]
mov ecx, esi
call fcn.004239d0
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._LanguagesInthisCD_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0xd
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
mov ecx, edi
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00426f68
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x422c61
push eax
call fcn.00437136
pop ecx
mov dword [ebp + 0x18], eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._LangQualifier_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0xe
call fcn.00423b71
push dword [ebp + 0x18]
mov edi, eax
call fcn.004386d0
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
and ax, 0x3ff
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00426f68
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x422cf8
push eax
call fcn.00437136
pop ecx
mov dword [ebp + 0x18], eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._PrimaryLangQualifier_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0xf
call fcn.00423b71
push dword [ebp + 0x18]
mov edi, eax
call fcn.004386d0
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00404400
lea ecx, [ebp - 0x788]
mov byte [ebp - 4], bl
call sym.HPZshl01.exe_public_virtual:_void___thiscall_CFactory::destructor_void_
mov dl, byte [0x48840c]
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x443]
mov byte [ebp - 0x444], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x23b]
mov byte [ebp - 0x23c], dl
push 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x33f]
mov byte [ebp - 0x340], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x444]
mov byte [ebp - 0x138], bl
push eax
call fcn.00426e9c
lea eax, [ebp - 0x23c]
push eax
call fcn.00426f1c
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x340]
push eax
call fcn.00438750
lea eax, [ebp - 0x23c]
push eax
call fcn.004386d0
add esp, 0x14
test eax, eax
je 0x422e03
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x340]
push eax
call fcn.00438760
pop ecx
pop ecx
lea eax, [ebp - 0x444]
push eax
call fcn.004386d0
test eax, eax
pop ecx
je 0x422ead
lea eax, [ebp - 0x444]
push eax
call fcn.00437136
pop ecx
mov edi, 0x4788a8
push eax
push str.OS_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
push str._OS_
call fcn.004386d0
pop ecx
push eax
push str._OS_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x444]
mov byte [ebp - 4], 0x10
push eax
call fcn.00437136
mov dword [ebp + 0x18], eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
call fcn.00423b71
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
jmp 0x422f21
push str.OS_MACRO_is_empty___Cant_expand_OS
push 8
push 0x4788a8
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
mov edi, str._OS_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x11
call fcn.00423b71
mov edi, 0x48840c
mov dword [ebp + 0x18], eax
push edi
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov edi, 0x4788a8
lea eax, [ebp - 0x23c]
push eax
call fcn.004386d0
test eax, eax
pop ecx
je 0x422fc1
lea eax, [ebp - 0x23c]
push eax
call fcn.00437136
pop ecx
push eax
push str.SP_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
push str._SP_
call fcn.004386d0
pop ecx
push eax
push str._SP_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x12
push eax
call fcn.00437136
mov dword [ebp + 0x18], eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
call fcn.00423b71
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x423030
push str.SP_MACRO_will_expand_to___
push 0x80
push edi
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
push str._SP_
call fcn.004386d0
pop ecx
push eax
push str._SP_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x13
call fcn.00423b71
push 0x48840c
mov dword [ebp + 0x18], eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push 0x48840c
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00404400
lea eax, [ebp - 0x340]
push eax
call fcn.004386d0
test eax, eax
pop ecx
je 0x4230cd
lea eax, [ebp - 0x340]
push eax
call fcn.00437136
pop ecx
push eax
push str.OSSP_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
mov edi, str._OSSP_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x340]
mov byte [ebp - 4], 0x14
push eax
call fcn.00437136
mov edi, eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
call fcn.00423b71
push edi
mov dword [ebp + 0x18], eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x423133
push str.OSSP_MACRO_is_empty___Cant_expand_OSSP
push 8
push edi
call fcn.0041f763
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00404400
mov edi, str._OSSP_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x15
call fcn.00423b71
mov edi, 0x48840c
mov dword [ebp + 0x18], eax
push edi
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404770
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00404400
mov ax, word [esi + 0x40]
mov edi, 0x104
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.CDGuid
push str.Version
push dword [ebp + 8]
mov byte [ebp - 0x138], bl
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x4231ce
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._CDGuid_
call fcn.004386d0
pop ecx
push eax
push str._CDGuid_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x16
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.DIVISION
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x42325f
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._DIVISION_
call fcn.004386d0
pop ecx
push eax
push str._DIVISION_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x17
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.Manufacturer
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x4232f0
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._Manufacturer_
call fcn.004386d0
pop ecx
push eax
push str._Manufacturer_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x18
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.RegistryManufacturer
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x423381
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._RegistryManufacturer_
call fcn.004386d0
pop ecx
push eax
push str._RegistryManufacturer_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x19
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.ProductSeries
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x423412
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._ProductSeries_
call fcn.004386d0
pop ecx
push eax
push str._ProductSeries_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.SoftwareGuid
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x4234a3
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._SoftwareGuid_
call fcn.004386d0
pop ecx
push eax
push str._SoftwareGuid_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov ax, word [esi + 0x40]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.AutorunLocation
push str.Version
push dword [ebp + 8]
call fcn.00426de3
add esp, 0x18
test eax, eax
je 0x423534
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push str._AutorunLocation_
call fcn.004386d0
pop ecx
push eax
push str._AutorunLocation_
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00423b71
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
lea eax, [ebp - 0x138]
push edi
push eax
push str.UpdateFolder
push 0x472b04
mov byte [ebp - 0x138], bl
push dword [ebp + 8]
call fcn.00426f95
add esp, 0x14
test eax, eax
jne 0x4235b3
lea eax, [ebp - 0x138]
push str._programfiles_
push eax
call fcn.00438750
lea eax, [ebp - 0x138]
push str._Manufacturer_
push eax
call fcn.00438760
lea eax, [ebp - 0x138]
push 0x46e4f8
push eax
call fcn.00438760
lea eax, [ebp - 0x138]
push str._CDGuid_
push eax
call fcn.00438760
lea eax, [ebp - 0x138]
push str.wup_
push eax
call fcn.00438760
add esp, 0x28
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._UpdateFolder_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00423b71
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.004386d0
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._Preload_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
mov eax, dword [esi + 0x48]
lea ecx, [esi + 0x44]
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x1e
call fcn.00423c19
mov eax, dword [ebp + 0x18]
push 1
cmp dword [ebp + 0xc], eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
sete byte [ebp + 0x1b]
call fcn.00404400
cmp byte [ebp + 0x1b], bl
je 0x4236c4
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x1f
call fcn.00423b71
mov edi, str._InstallDir__CDGuid__
mov dword [ebp + 0x18], eax
push edi
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._SourcePath_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
mov eax, dword [esi + 0x48]
lea ecx, [esi + 0x44]
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x20
call fcn.00423c19
mov eax, dword [ebp + 0x18]
push 1
cmp dword [ebp + 0xc], eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
sete byte [ebp + 0x1b]
call fcn.00404400
cmp byte [ebp + 0x1b], bl
je 0x423775
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x21
call fcn.00423b71
mov edi, str._CDRoot_
mov dword [ebp + 0x18], eax
push edi
call fcn.004386d0
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00404400
mov edi, str._datfile_
push edi
call fcn.004386d0
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404770
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x44]
push eax
mov byte [ebp - 4], 0x22
call fcn.00423b71
push dword [ebp + 8]
mov edi, eax
call fcn.004386d0
pop ecx
push eax
mov ecx, edi
push dword [ebp + 8]
call fcn.00404770
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00404400
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
je 0x42380a
mov edi, 0x800
add ecx, 0x1c
push edi
push ebx
push ecx
mov ecx, esi
call fcn.0042382c
cmp eax, ebx
je 0x4237fa
mov eax, dword [ebp - 0x20]
push edi
add eax, 0x1c
push ebx
push eax
jmp 0x4237e4
lea ecx, [ebp - 0x20]
call fcn.00423dfa
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0x20]
jmp 0x4237d5
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x34]
call fcn.00404400
push 1
pop eax
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x14