Function at 0x40458a
Capabilities:
Identify system language via api

Disassembly:
push 0x170
mov eax, 0x446dda
call fcn.00427f6a
mov edi, ecx
push str.Product
lea ecx, [ebp - 0x24]
call fcn.004018b9
xor ebx, ebx
lea ecx, [ebp - 0x10]
push 0x44b10c
mov dword [ebp - 4], ebx
call fcn.004018b9
push 0x461d18
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x24]
mov ecx, 0x461c48
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0040a491
lea esi, [edi + 4]
mov byte [ebp - 4], 2
push eax
mov ecx, esi
call fcn.0040138a
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.004017a5
push str.CmdLine
lea ecx, [ebp - 0x10]
call fcn.004018b9
push 0x461d18
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x24]
mov ecx, 0x461c48
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0040a491
lea ecx, [edi + 8]
mov byte [ebp - 4], 4
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax - 0xc], ebx
je 0x4046a9
push 0x44b124
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040190b
push dword [ebp + 8]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004024f2
add esp, 0x18
push eax
lea ecx, [edi + 8]
mov byte [ebp - 4], 6
call fcn.0040138a
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.004017a5
push 0x44b128
lea ecx, [ebp - 0x10]
call fcn.004018b9
push 0x461d18
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x24]
mov ecx, 0x461c48
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040a491
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 9
lea ecx, [ecx - 0x10]
call fcn.004017a5
lea ecx, [ebp - 0x20]
call fcn.00406689
mov ecx, eax
call fcn.00406625
push str.PATCH
lea ecx, [ebp - 0x1c]
call fcn.004018b9
push 0x461d18
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x24]
mov ecx, 0x461c48
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040a491
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov eax, dword [ebp - 0x28]
cmp dword [eax - 0xc], 0
je 0x404812
lea ecx, [ebp - 0x3c]
call fcn.004173a0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00405fad
mov eax, dword [ebp - 0x34]
sub eax, 1
pop ecx
pop ecx
js 0x404806
mov esi, ebx
push esi
lea ecx, [ebp - 0x3c]
call fcn.004032b2
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004013f4
add eax, 0x10
pop ecx
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0xe
push eax
mov ecx, 0x461c48
call fcn.00409d97
test eax, eax
je 0x4047c8
mov eax, dword [edi + 0x38]
cmp dword [eax - 0xc], 0
je 0x4047b7
push 0x44b148
call fcn.0042c48c
pop ecx
push eax
push 0x44b148
lea ecx, [edi + 0x38]
call fcn.00403d5e
mov eax, dword [ebp - 0x10]
lea ecx, [edi + 0x38]
push dword [eax - 0xc]
push eax
call fcn.00403d5e
jmp 0x4047e7
push dword [ebp - 0x10]
push str.Initialization:__s_file_not_found___PATCH_will_be_ignored._n
push 0x461d14
call fcn.00401600
add esp, 0xc
mov ecx, 0x461c48
call fcn.0040c3c8
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xd
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov eax, dword [ebp - 0x34]
inc esi
dec eax
cmp esi, eax
jle 0x404764
lea esi, [edi + 4]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xc
call fcn.004173b7
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x404ce0
push esi
mov ecx, 0x461c48
call fcn.00409d97
test eax, eax
je 0x404ce0
mov ecx, edi
call fcn.00405cf3
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x404d27
push 0x44b2f0
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0xf
push eax
push esi
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.00405aaf
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 0x10
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push str.ProductCode
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x11
push eax
push esi
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.00405aaf
lea ecx, [edi + 0x14]
mov byte [ebp - 4], 0x12
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push str.PackageCode
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x13
push eax
push esi
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.00405aaf
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 0x14
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push str.UpgradeCode
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x15
push eax
push esi
lea eax, [ebp - 0x18]
push eax
mov ecx, edi
call fcn.00405aaf
lea ecx, [edi + 0x1c]
mov byte [ebp - 4], 0x16
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push 0x44b350
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x17
push eax
push esi
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.00405aaf
lea ecx, [edi + 0x10]
mov byte [ebp - 4], 0x18
push eax
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push str.ProductLanguage
lea ecx, [ebp - 0x10]
call fcn.004018b9
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x19
push eax
push esi
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.00405aaf
lea esi, [edi + 0x20]
mov byte [ebp - 4], 0x1a
push eax
mov ecx, esi
call fcn.0040138a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.004017a5
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, edi
call fcn.00405327
test eax, eax
je 0x404d27
mov eax, dword [ebp - 0x20]
cmp dword [eax - 0xc], 0
je 0x404a86
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x404a77
lea ecx, [edi + 0x24]
push esi
push dword [ecx + 8]
call fcn.0041764c
push 0x44b148
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.0040190b
add esp, 0xc
push 0x44a2e8
push dword [eax]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1b
call fcn.00406123
mov ecx, dword [ebp - 0x14]
mov esi, eax
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xc
call fcn.004017a5
test esi, esi
lea esi, [edi + 0x20]
jne 0x404a77
push 0x44a2e8
push dword [esi]
lea ecx, [ebp - 0x20]
call fcn.00406123
lea eax, [edi + 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00405fad
pop ecx
pop ecx
mov ecx, edi
call fcn.0040540e
mov dword [edi + 0x3c], eax
test eax, eax
jne 0x404cdb
cmp dword [edi + 0x2c], ebx
jle 0x404cdb
call fcn.0040e19e
push eax
lea ecx, [ebp - 0x10]
call fcn.00401339
mov eax, dword [0x461d1c]
mov byte [ebp - 4], 0x1c
cmp dword [eax - 0xc], 0
je 0x404add
push str..mst
lea eax, [ebp - 0x14]
push 0x461d1c
push eax
call fcn.0040190b
add esp, 0xc
mov byte [ebp - 4], 0x1d
jmp 0x404c59
push esi
mov ecx, 0x461d1c
call fcn.0040138a
cmp dword [0x461d2c], 0
jne 0x404afa
cmp dword [0x461d30], 0
je 0x404b07
cmp dword [0x461d7c], 0
je 0x404c71
cmp dword [0x461d48], 0
je 0x404bec
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov edx, 0x401
mov ecx, eax
and ecx, 0x3ff
cmp dx, ax
je 0x404b3b
push 0xd
pop eax
cmp cx, ax
je 0x404b3b
mov eax, ebx
jmp 0x404b3e
xor eax, eax
inc eax
push dword [0x461d84]
lea ecx, [ebp - 0x17c]
push eax
call fcn.00403142
lea esi, [edi + 0x24]
mov byte [ebp - 4], 0x1e
push esi
lea ecx, [ebp - 0x50]
call fcn.00417510
lea ecx, [ebp - 0x17c]
call fcn.00415d90
cmp eax, 1
jne 0x404bd1
push dword [ebp - 0x54]
mov ecx, esi
call fcn.004032b2
push str..mst
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040190b
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1f
call fcn.0040138a
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1e
lea ecx, [ecx - 0x10]
call fcn.004017a5
push dword [ebp - 0x54]
mov ecx, esi
call fcn.004032b2
push eax
mov ecx, 0x461d1c
call fcn.0040138a
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0x1c
call fcn.004031a9
jmp 0x404c71
lea ecx, [ebp - 0x17c]
call fcn.004031a9
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.004017a5
jmp 0x404d27
push ecx
mov esi, esp
mov dword [ebp - 0x14], esi
mov eax, dword [edi + 0x20]
sub eax, 0x10
push eax
call fcn.004013f4
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, 0x461c48
lea eax, [edi + 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00409e76
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x20
call fcn.0040138a
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1c
lea ecx, [ecx - 0x10]
call fcn.004017a5
lea eax, [ebp - 0x10]
mov ecx, 0x461d1c
push eax
call fcn.0040138a
push str..mst
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040190b
add esp, 0xc
mov byte [ebp - 4], 0x21
push eax
lea ecx, [ebp - 0x10]
call fcn.0040138a
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1c
lea ecx, [ecx - 0x10]
call fcn.004017a5
cmp dword [0x461d5c], 0
je 0x404cc5
lea eax, [ebp - 0x18]
mov ecx, 0x461c48
push eax
call fcn.0040ac59
push str..mst
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0x22
push eax
call fcn.0040190b
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x23
call fcn.0040138a
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1c
lea ecx, [ecx - 0x10]
call fcn.004017a5
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00403ae2
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.004017a5
xor ebx, ebx
inc ebx
jmp 0x404d27
cmp dword [0x461d24], 0
je 0x404d1d
mov eax, dword [esi]
cmp dword [eax - 0xc], ebx
jne 0x404d0a
mov esi, str.Initialization:_Failed_to_initialize_Product___msi_key_not_specified._n
push esi
call fcn.0042c48c
pop ecx
push eax
push esi
mov ecx, 0x461d14
call fcn.00401822
jmp 0x404d1d
push eax
push str.Initialization:_Failed_to_initialize_Product___Unable_to_locate___s__file._n
push 0x461d14
call fcn.00401600
add esp, 0xc
mov ecx, 0x461c48
call fcn.0040c3c8
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004017a5
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.004017a5
mov eax, ebx
call fcn.00427f33
ret 4