Function at 0x407cd7
Capabilities:
Get geographical location

Disassembly:
mov eax, 0x429f2f
call fcn.00414a8c
mov eax, 0x2e8c
call fcn.00413d90
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
mov esi, ecx
jne 0x407cfd
xor eax, eax
jmp 0x40962b
push edi
mov ecx, esi
push dword [ebp + 0xc]
call fcn.00406c43
push 0x2710
lea eax, [ebp - 0x2e98]
push ebx
push eax
call fcn.00415ae0
add esp, 0xc
mov dword [esi + 0x84], 1
mov al, byte [0x439698]
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.00402110
mov al, byte [0x439698]
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 0x407d9e
dec eax
je 0x407d94
dec eax
jne 0x407da4
mov ax, word [esi + 0x70]
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.0040f948
pop ecx
pop ecx
jmp 0x407da4
mov ax, word [esi + 0x70]
and ax, 0x3ff
jmp 0x407d83
mov byte [ebp - 0x548], bl
mov edi, str.Strings
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x34]
call fcn.00404540
lea eax, [ebp - 0x548]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x548]
push eax
lea ecx, [ebp - 0x34]
call fcn.00402050
mov eax, dword [ebp - 0x30]
cmp eax, ebx
jne 0x407de3
mov eax, 0x42b4d8
lea ecx, [ebp - 0x2e98]
push 0x2710
push ecx
push ebx
push ebx
push eax
push dword [ebp + 8]
call fcn.0040f37a
add esp, 0x18
test eax, eax
je 0x407eb9
cmp byte [ebp - 0x2e98], bl
lea edi, [ebp - 0x2e98]
je 0x407eb9
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x138], bl
cmp eax, ebx
jne 0x407e29
mov eax, 0x42b4d8
lea ecx, [ebp - 0x138]
push 0x104
push ecx
push edi
push ebx
push eax
push dword [ebp + 8]
call fcn.0040f37a
add esp, 0x18
test eax, eax
je 0x407ea4
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 1
call fcn.004098d6
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
push edi
call fcn.00414a10
cmp byte [edi + eax + 1], bl
lea edi, [edi + eax + 1]
pop ecx
jne 0x407e17
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 3
jl 0x407d72
mov al, byte [0x439698]
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
lea eax, [ebp - 0x64c]
push 0x104
push eax
push 0x5a
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x407f60
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._country_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 2
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x64c]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x64c]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
jmp 0x407f74
push str.Could_not_get_country_code
push 8
push 0x4398a0
call fcn.004011e0
add esp, 0xc
mov ax, word [esi + 0x70]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push 0x104
push eax
push str.ICE_REV
push str.Version
push dword [ebp + 8]
call fcn.0040f7c3
add esp, 0x18
test eax, eax
je 0x408004
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._ICE_REV_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 3
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
call fcn.0040a118
test eax, eax
je 0x4080c7
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._ICE_SUFFIX_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 4
call fcn.004098d6
mov edi, 0x433254
mov dword [ebp + 0xc], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._BITS_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 5
call fcn.004098d6
mov edi, 0x433248
mov dword [ebp + 0xc], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408178
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._ICE_SUFFIX_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 6
call fcn.004098d6
mov edi, 0x433244
mov dword [ebp + 0xc], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._BITS_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 7
call fcn.004098d6
mov edi, 0x433240
mov dword [ebp + 0xc], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00402110
cmp dword [ebp + 0x18], ebx
mov byte [ebp - 0x138], bl
je 0x4081e0
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._INSTALLDIR_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 8
call fcn.004098d6
push dword [ebp + 0x18]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408372
mov ax, word [esi + 0x70]
mov edi, 0x104
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.INSTALLDIR
push 0x432908
push dword [ebp + 8]
call fcn.0040f7c3
add esp, 0x18
test eax, eax
je 0x40826b
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._INSTALLDIR_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 9
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408372
mov ax, word [esi + 0x70]
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.INSTALLDIR
push str.Version
push dword [ebp + 8]
call fcn.0040f7c3
add esp, 0x18
test eax, eax
je 0x4082f1
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._INSTALLDIR_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0xa
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408372
mov ax, word [esi + 0x70]
push eax
lea eax, [ebp - 0x138]
push edi
push eax
push str.Pre_Install
push str.Version
push dword [ebp + 8]
call fcn.0040f7c3
add esp, 0x18
test eax, eax
je 0x408377
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._INSTALLDIR_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0xb
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00402110
lea eax, [ebp - 0x138]
mov byte [ebp - 0x138], bl
push eax
call fcn.0040e54b
mov al, byte [ebp + 0xb]
pop ecx
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._MyPath_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0xc
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
push dword [ebp + 0x14]
lea eax, [ebp - 0x138]
push eax
call fcn.00415a00
lea eax, [ebp - 0x138]
push eax
call fcn.0040e5d7
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
mov edi, str._CDRoot_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0xd
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov byte [ebp - 0x138], bl
push ebx
lea eax, [ebp - 0x138]
push eax
push 0x104
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
cmp dword [0x439860], ebx
je 0x4087ac
mov eax, dword [0x43985c]
mov eax, dword [eax]
lea edi, [eax + 8]
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
push dword [edi + 8]
push ebx
call fcn.004046a0
cmp eax, ebx
jne 0x4087ac
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LANG_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
mov ax, word [esi + 0x70]
mov ecx, 0x439760
push eax
mov byte [ebp - 4], 0x15
call fcn.0040c26e
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [esi + 0x74]
call fcn.004098d6
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x16
call fcn.004098d6
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x40856a
mov eax, 0x42b4d8
push eax
mov ecx, 0x439760
call fcn.0040c1f6
movzx eax, ax
push eax
lea eax, [ebp - 0x138]
push 0x432b0c
push eax
call fcn.00413de1
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
push 1
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LANGID_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x17
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
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.00409735
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LanguagesInthisCD_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x18
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
mov ecx, edi
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0040f948
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x4086b6
push eax
call fcn.00413d6d
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.00402110
mov edi, str._LangQualifier_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x19
call fcn.004098d6
push dword [ebp + 0x18]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
mov byte [ebp - 0x138], bl
and ax, 0x3ff
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0040f948
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x40874c
push eax
call fcn.00413d6d
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.00402110
mov edi, str._PrimaryLangQualifier_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x1a
call fcn.004098d6
push dword [ebp + 0x18]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
jmp 0x408ac1
push ebx
lea eax, [ebp - 0x138]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x788]
push eax
call fcn.0040c048
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LANG_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
mov ax, word [esi + 0x70]
lea ecx, [ebp - 0x788]
push eax
mov byte [ebp - 4], 0xf
call fcn.0040c26e
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [esi + 0x74]
call fcn.004098d6
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x10
call fcn.004098d6
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x408870
mov eax, 0x42b4d8
push eax
lea ecx, [ebp - 0x788]
call fcn.0040c1f6
movzx eax, ax
push eax
lea eax, [ebp - 0x138]
push 0x432b0c
push eax
call fcn.00413de1
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
push 1
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LANGID_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x11
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.00402110
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.00409735
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._LanguagesInthisCD_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x12
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
mov ecx, edi
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.00402110
mov ax, word [esi + 0x70]
mov byte [ebp - 0x138], bl
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0040f948
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x4089c0
push eax
call fcn.00413d6d
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.00402110
mov edi, str._LangQualifier_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x13
call fcn.004098d6
push dword [ebp + 0x18]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.00402110
mov ax, word [esi + 0x70]
mov byte [ebp - 0x138], bl
and ax, 0x3ff
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0040f948
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x138]
jbe 0x408a57
push eax
call fcn.00413d6d
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.00402110
mov edi, str._PrimaryLangQualifier_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x14
call fcn.004098d6
push dword [ebp + 0x18]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 0x18]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.00402110
lea ecx, [ebp - 0x788]
mov byte [ebp - 4], bl
call fcn.0040cc44
mov dl, byte [0x439698]
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.0040f87c
lea eax, [ebp - 0x23c]
push eax
call fcn.0040f8fc
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x340]
push eax
call fcn.004159f0
lea eax, [ebp - 0x23c]
push eax
call fcn.00414a10
add esp, 0x14
test eax, eax
je 0x408b62
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x340]
push eax
call fcn.00415a00
pop ecx
pop ecx
lea eax, [ebp - 0x444]
push eax
call fcn.00414a10
test eax, eax
pop ecx
je 0x408c07
lea eax, [ebp - 0x444]
push eax
call fcn.00413d6d
pop ecx
mov edi, 0x4398a0
push eax
push str.OS_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
push str._OS_
call fcn.00414a10
pop ecx
push eax
push str._OS_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x444]
mov byte [ebp - 4], 0x1b
push eax
call fcn.00413d6d
mov dword [ebp + 0x18], eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
call fcn.004098d6
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408c78
push str.OS_MACRO_is_empty___Cant_expand_OS
mov edi, 0x4398a0
push 8
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
push str._OS_
call fcn.00414a10
pop ecx
push eax
push str._OS_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x1c
call fcn.004098d6
push 0x439698
mov dword [ebp + 0x18], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push 0x439698
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00402110
lea eax, [ebp - 0x23c]
push eax
call fcn.00414a10
test eax, eax
pop ecx
je 0x408d1d
lea eax, [ebp - 0x23c]
push eax
call fcn.00413d6d
pop ecx
push eax
push str.SP_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
push str._SP_
call fcn.00414a10
pop ecx
push eax
push str._SP_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x1d
push eax
call fcn.00413d6d
mov dword [ebp + 0x18], eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
call fcn.004098d6
push dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push dword [ebp + 0x18]
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408d8c
push str.SP_MACRO_will_expand_to___
push 0x80
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
push str._SP_
call fcn.00414a10
pop ecx
push eax
push str._SP_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x1e
call fcn.004098d6
push 0x439698
mov dword [ebp + 0x18], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push 0x439698
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00402110
lea eax, [ebp - 0x340]
push eax
call fcn.00414a10
test eax, eax
pop ecx
je 0x408e29
lea eax, [ebp - 0x340]
push eax
call fcn.00413d6d
pop ecx
push eax
push str.OSSP_MACRO_will_expand_to__s
push 0x80
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
mov edi, str._OSSP_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x340]
mov byte [ebp - 4], 0x1f
push eax
call fcn.00413d6d
mov edi, eax
pop ecx
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
call fcn.004098d6
push edi
mov dword [ebp + 0x18], eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
jmp 0x408e8f
push str.OSSP_MACRO_is_empty___Cant_expand_OSSP
push 8
push edi
call fcn.004011e0
mov al, byte [ebp + 0xb]
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
push ebx
call fcn.00402110
mov edi, str._OSSP_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x20
call fcn.004098d6
mov edi, 0x439698
mov dword [ebp + 0x18], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404540
mov byte [ebp - 4], bl
push 1
lea ecx, [ebp - 0x1c]
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x408f2a
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._CDGuid_
call fcn.00414a10
pop ecx
push eax
push str._CDGuid_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x21
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x408fbb
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._DIVISION_
call fcn.00414a10
pop ecx
push eax
push str._DIVISION_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x22
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x40904c
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._Manufacturer_
call fcn.00414a10
pop ecx
push eax
push str._Manufacturer_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x23
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x4090dd
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._RegistryManufacturer_
call fcn.00414a10
pop ecx
push eax
push str._RegistryManufacturer_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x24
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x40916e
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._ProductSeries_
call fcn.00414a10
pop ecx
push eax
push str._ProductSeries_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x25
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x4091ff
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._SoftwareGuid_
call fcn.00414a10
pop ecx
push eax
push str._SoftwareGuid_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x26
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov ax, word [esi + 0x70]
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.0040f7c3
add esp, 0x18
test eax, eax
je 0x409290
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push str._AutorunLocation_
call fcn.00414a10
pop ecx
push eax
push str._AutorunLocation_
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x27
call fcn.004098d6
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
lea eax, [ebp - 0x138]
push edi
push eax
push str.UpdateFolder
push 0x433058
mov byte [ebp - 0x138], bl
push dword [ebp + 8]
call fcn.0040f975
add esp, 0x14
test eax, eax
jne 0x40930f
lea eax, [ebp - 0x138]
push str._programfiles_
push eax
call fcn.004159f0
lea eax, [ebp - 0x138]
push str._Manufacturer_
push eax
call fcn.00415a00
lea eax, [ebp - 0x138]
push 0x4329f8
push eax
call fcn.00415a00
lea eax, [ebp - 0x138]
push str._CDGuid_
push eax
call fcn.00415a00
lea eax, [ebp - 0x138]
push str.wup_
push eax
call fcn.00415a00
add esp, 0x28
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._UpdateFolder_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x28
call fcn.004098d6
mov edi, eax
lea eax, [ebp - 0x138]
push eax
call fcn.00414a10
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
mov ecx, edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._Preload_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
mov eax, dword [esi + 0x78]
lea ecx, [esi + 0x74]
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x29
call fcn.0040bf92
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.00402110
cmp byte [ebp + 0x1b], bl
je 0x409420
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x2a
call fcn.004098d6
mov edi, str._InstallDir__CDGuid__
mov dword [ebp + 0x18], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._SourcePath_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
mov eax, dword [esi + 0x78]
lea ecx, [esi + 0x74]
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x2b
call fcn.0040bf92
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.00402110
cmp byte [ebp + 0x1b], bl
je 0x4094d1
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x2c
call fcn.004098d6
mov edi, str._CDRoot_
mov dword [ebp + 0x18], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._autorunName_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
mov eax, dword [esi + 0x78]
lea ecx, [esi + 0x74]
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x2d
call fcn.0040bf92
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.00402110
cmp byte [ebp + 0x1b], bl
je 0x409582
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x2e
call fcn.004098d6
mov edi, str.autorun.inf
mov dword [ebp + 0x18], eax
push edi
call fcn.00414a10
pop ecx
mov ecx, dword [ebp + 0x18]
push eax
push edi
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call fcn.00402110
mov edi, str._datfile_
push edi
call fcn.00414a10
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00404540
lea eax, [ebp - 0x1c]
lea ecx, [esi + 0x74]
push eax
mov byte [ebp - 4], 0x2f
call fcn.004098d6
push dword [ebp + 8]
mov edi, eax
call fcn.00414a10
pop ecx
push eax
mov ecx, edi
push dword [ebp + 8]
call fcn.00404540
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00402110
mov eax, dword [esi + 0x78]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp - 0x20], ecx
je 0x409619
mov edi, 0x800
push edi
add ecx, 0x1c
push ebx
push ecx
mov ecx, esi
call fcn.0040963b
cmp eax, ebx
je 0x409607
mov eax, dword [ebp - 0x20]
push edi
add eax, 0x1c
push ebx
push eax
jmp 0x4095f1
lea ecx, [ebp - 0x20]
call fcn.004059a0
mov eax, dword [esi + 0x78]
mov ecx, dword [ebp - 0x20]
cmp ecx, eax
jne 0x4095eb
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x34]
call fcn.00402110
push 1
pop eax
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x14