Function at 0x4047f2
Capabilities:
Identify system language via api

Disassembly:
push 0x108
mov eax, 0x42fd57
call fcn.00419a9a
mov esi, ecx
push str.Product
lea ecx, [ebp - 0x1c]
call fcn.00401ab4
and dword [ebp - 4], 0
push 0x433ce4
lea ecx, [ebp - 0x10]
call fcn.00401ab4
mov ebx, 0x442400
push ebx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
mov edi, 0x442358
push eax
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.00405d71
lea ecx, [esi + 4]
push eax
mov byte [ebp - 4], 2
call fcn.00401494
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.00401039
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
jne 0x4048c3
push str.CmdLine
lea ecx, [ebp + 8]
call fcn.00401ab4
push ebx
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00405d71
push eax
lea ecx, [esi + 8]
mov byte [ebp - 4], 4
call fcn.00401494
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.00401039
jmp 0x4048cc
push eax
lea ecx, [esi + 8]
call fcn.00401494
push str.Languages
lea ecx, [ebp + 8]
call fcn.00401ab4
push ebx
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.00405d71
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 7
call fcn.00401039
lea ecx, [ebp - 0x14]
call fcn.00403e0d
mov ecx, eax
call fcn.00403a6a
push 0x433cb4
lea ecx, [ebp - 0x18]
call fcn.00401ab4
push ebx
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.00405d71
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
mov eax, dword [ebp - 0x20]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x404a0f
lea ecx, [ebp - 0x34]
call fcn.00410582
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xb
call fcn.00403edf
mov eax, dword [ebp - 0x2c]
and dword [ebp - 0x10], 0
dec eax
pop ecx
pop ecx
js 0x404a03
push dword [ebp - 0x10]
lea ecx, [ebp - 0x34]
call fcn.0040304b
push eax
lea ecx, [ebp + 8]
call fcn.004017c0
lea eax, [ebp + 8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00405fb9
test eax, eax
je 0x4049c8
lea ebx, [esi + 0x38]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
je 0x4049b8
push 0x433cb0
mov ecx, ebx
call fcn.00403eab
mov eax, dword [ebp + 8]
push dword [eax - 0xc]
mov ecx, ebx
push eax
call fcn.00403b20
jmp 0x4049e4
push dword [ebp + 8]
push str.Initialization:__s_file_not_found___PATCH_will_be_ignored._n
push 0x4423fc
call fcn.00401480
add esp, 0xc
mov ecx, edi
call fcn.0040678d
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xb
call fcn.00401039
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x10], eax
jle 0x40497a
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xa
call fcn.004107d4
lea ebx, [esi + 4]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
je 0x404e12
push ebx
mov ecx, edi
call fcn.00405fb9
test eax, eax
je 0x404e12
mov ecx, esi
call fcn.00404247
mov edi, eax
test edi, edi
je 0x404e4e
push str.ProductName
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.0040433c
push eax
lea ecx, [esi + 0xc]
mov byte [ebp - 4], 0xe
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push str.ProductCode
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 0xf
call fcn.0040433c
push eax
lea ecx, [esi + 0x14]
mov byte [ebp - 4], 0x10
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push str.PackageCode
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.0040433c
push eax
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 0x12
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push str.UpgradeCode
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
mov byte [ebp - 4], 0x13
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.0040433c
push eax
lea ecx, [esi + 0x1c]
mov byte [ebp - 4], 0x14
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push str.ProductVersion
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x15
call fcn.0040433c
push eax
lea ecx, [esi + 0x10]
mov byte [ebp - 4], 0x16
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push str.ProductLanguage
lea ecx, [ebp + 8]
call fcn.00401ab4
lea eax, [ebp + 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x17
call fcn.0040433c
lea ebx, [esi + 0x20]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x18
call fcn.00401494
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401039
push edi
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, esi
call fcn.00403f84
test eax, eax
je 0x404e4e
mov eax, dword [ebp - 0x14]
xor edi, edi
cmp dword [eax - 0xc], edi
je 0x404c82
mov eax, dword [ebx]
cmp dword [eax - 0xc], edi
je 0x404c71
push ebx
lea ecx, [esi + 0x24]
call fcn.00403596
push 0x433cb0
lea eax, [ebp - 0x10]
push ebx
push eax
call fcn.00401a35
add esp, 0xc
mov eax, dword [eax]
mov edi, 0x432808
push edi
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x19
call fcn.004038ee
mov ecx, dword [ebp - 0x10]
neg eax
sbb al, al
inc al
add ecx, 0xfffffff0
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 0xa
call fcn.00401039
cmp byte [ebp + 0xb], 0
je 0x404c71
mov eax, dword [ebx]
push edi
push eax
lea ecx, [ebp - 0x14]
call fcn.004038ee
lea eax, [esi + 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00403edf
pop ecx
pop ecx
xor edi, edi
mov ecx, esi
call fcn.004037b4
mov dword [esi + 0x3c], eax
cmp eax, edi
jne 0x404cf9
cmp dword [esi + 0x2c], edi
jle 0x404cf9
call fcn.00408a1f
push eax
lea ecx, [ebp + 8]
call fcn.00401212
mov eax, dword [0x442404]
mov byte [ebp - 4], 0x1a
cmp dword [eax - 0xc], edi
je 0x404d22
push str..mst
lea eax, [ebp - 0x18]
push 0x442404
push eax
call fcn.00401a35
add esp, 0xc
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x1b
call fcn.00401430
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1a
call fcn.00401039
lea eax, [ebp + 8]
push eax
mov ecx, esi
call fcn.00403ba0
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401039
xor eax, eax
inc eax
jmp 0x404e71
push ebx
mov ebx, 0x442404
mov ecx, ebx
call fcn.00401430
cmp dword [0x442414], edi
jne 0x404ce3
cmp dword [0x442418], edi
jne 0x404ce3
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx ecx, ax
mov eax, ecx
mov edx, 0x401
and eax, 0x3ff
cmp dx, cx
je 0x404d63
cmp ax, 0xd
je 0x404d63
xor eax, eax
jmp 0x404d66
xor eax, eax
inc eax
push dword [0x44243c]
lea ecx, [ebp - 0x114]
push eax
call fcn.004030bd
lea edi, [esi + 0x24]
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1c
call fcn.004108f2
lea ecx, [ebp - 0x114]
call fcn.00409878
cmp eax, 1
jne 0x404df6
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0040304b
push str..mst
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00401a35
add esp, 0xc
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x1d
call fcn.00401430
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.00401039
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0040304b
push eax
mov ecx, ebx
call fcn.00401430
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x1a
call fcn.00403005
jmp 0x404ce3
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x1a
call fcn.00403005
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401039
jmp 0x404e4e
cmp dword [0x44240c], 0
je 0x404e47
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x404e34
push str.Initialization:_Failed_to_initialize_Product___msi_key_not_specified._n
mov ecx, 0x4423fc
call fcn.00401a16
jmp 0x404e47
push eax
push str.Initialization:_Failed_to_initialize_Product___Unable_to_locate___s__file._n
push 0x4423fc
call fcn.00401480
add esp, 0xc
mov ecx, edi
call fcn.0040678d
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00401039
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401039
xor eax, eax
call fcn.00419b72
ret 4