Function at 0x40427b
Capabilities:
Identify system language via api

Disassembly:
push 0x150
mov eax, 0x436197
call fcn.0041f6af
mov edi, ecx
push 0x438f54
lea ecx, [ebp - 0x20]
call fcn.0040188e
xor ebx, ebx
lea ecx, [ebp - 0x14]
push 0x439798
mov dword [ebp - 4], ebx
call fcn.0040188e
push 0x44d6b0
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x20]
mov ecx, 0x44d5e0
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004079f4
lea esi, [edi + 4]
mov byte [ebp - 4], 2
push eax
mov ecx, esi
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00401797
push str.CmdLine
lea ecx, [ebp - 0x14]
call fcn.0040188e
push 0x44d6b0
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x20]
mov ecx, 0x44d5e0
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004079f4
lea ecx, [edi + 8]
mov byte [ebp - 4], 4
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00401797
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax - 0xc], ebx
je 0x40439a
push 0x4397b0
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040195a
push dword [ebp + 8]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00402617
add esp, 0x18
push eax
lea ecx, [edi + 8]
mov byte [ebp - 4], 6
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00401797
push 0x4397b4
lea ecx, [ebp + 8]
call fcn.0040188e
push 0x44d6b0
lea eax, [ebp + 8]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x20]
mov ecx, 0x44d5e0
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004079f4
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 9
lea ecx, [ecx - 0x10]
call fcn.00401797
lea ecx, [ebp - 0x1c]
call fcn.00405587
mov ecx, eax
call fcn.00405523
push str.PATCH
lea ecx, [ebp - 0x14]
call fcn.0040188e
push 0x44d6b0
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x20]
mov ecx, 0x44d5e0
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004079f4
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
mov eax, dword [ebp - 0x24]
cmp dword [eax - 0xc], 0
je 0x4044f4
lea ecx, [ebp - 0x38]
call fcn.004118fe
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004052d3
mov eax, dword [ebp - 0x30]
dec eax
pop ecx
pop ecx
js 0x4044e8
mov esi, ebx
push esi
lea ecx, [ebp - 0x38]
call fcn.00403419
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004012f5
add eax, 0x10
pop ecx
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
mov byte [ebp - 4], 0xe
push eax
mov ecx, 0x44d5e0
call fcn.004071cb
test eax, eax
je 0x4044aa
lea ecx, [edi + 0x38]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
je 0x40449c
push 0x4397d4
call fcn.00403cdb
lea ecx, [edi + 0x38]
mov eax, dword [ebp + 8]
push dword [eax - 0xc]
push eax
call fcn.00403d04
jmp 0x4044c9
push dword [ebp + 8]
push 0x4397d8
push 0x44d6ac
call fcn.00401431
add esp, 0xc
mov ecx, 0x44d5e0
call fcn.0040892f
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xd
lea ecx, [ecx - 0x10]
call fcn.00401797
mov eax, dword [ebp - 0x30]
inc esi
dec eax
cmp esi, eax
jle 0x404453
lea esi, [edi + 4]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00411915
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x40496d
push esi
mov ecx, 0x44d5e0
call fcn.004071cb
test eax, eax
je 0x40496d
mov ecx, edi
call fcn.004051d0
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x4049ab
push 0x439978
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0xf
push eax
push esi
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405055
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 0x10
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push str.ProductCode
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x11
push eax
push esi
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405055
lea ecx, [edi + 0x14]
mov byte [ebp - 4], 0x12
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push str.PackageCode
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x13
push eax
push esi
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405055
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 0x14
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push str.UpgradeCode
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x15
push eax
push esi
lea eax, [ebp - 0x10]
push eax
mov ecx, edi
call fcn.00405055
lea ecx, [edi + 0x1c]
mov byte [ebp - 4], 0x16
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push 0x4399d8
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x17
push eax
push esi
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405055
lea ecx, [edi + 0x10]
mov byte [ebp - 4], 0x18
push eax
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push str.ProductLanguage
lea ecx, [ebp + 8]
call fcn.0040188e
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x19
push eax
push esi
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405055
lea esi, [edi + 0x20]
mov byte [ebp - 4], 0x1a
push eax
mov ecx, esi
call fcn.0040126b
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401797
push dword [ebp - 0x18]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, edi
call fcn.00404ea5
test eax, eax
je 0x4049ab
mov eax, dword [ebp - 0x1c]
cmp dword [eax - 0xc], 0
je 0x40476b
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x40475c
lea ecx, [edi + 0x24]
push esi
push dword [ecx + 8]
call fcn.00411b3b
push 0x4397d4
lea eax, [ebp + 8]
push esi
push eax
call fcn.0040195a
add esp, 0xc
push 0x4386cc
push dword [eax]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1b
call fcn.0040534f
mov ecx, dword [ebp + 8]
mov ebx, eax
neg ebx
mov byte [ebp - 4], 0xc
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00401797
inc bl
je 0x40475a
push 0x4386cc
push dword [esi]
lea ecx, [ebp - 0x1c]
call fcn.0040534f
xor ebx, ebx
lea eax, [edi + 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004052d3
pop ecx
pop ecx
mov ecx, edi
call fcn.00404f5d
mov dword [edi + 0x3c], eax
test eax, eax
jne 0x404968
cmp dword [edi + 0x2c], eax
jle 0x404968
call fcn.00409b0d
push eax
lea ecx, [ebp + 8]
call fcn.00401210
mov eax, dword [0x44d6b4]
mov byte [ebp - 4], 0x1c
cmp dword [eax - 0xc], 0
je 0x4047c2
push str..mst
lea eax, [ebp - 0x18]
push 0x44d6b4
push eax
call fcn.0040195a
add esp, 0xc
mov byte [ebp - 4], 0x1d
jmp 0x40493a
push esi
mov ecx, 0x44d6b4
call fcn.0040126b
cmp dword [0x44d6c4], 0
jne 0x404952
cmp dword [0x44d6c8], 0
jne 0x404952
cmp dword [0x44d6e0], 0
je 0x4048d0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov edx, 0x401
mov ecx, eax
and ecx, 0x3ff
cmp dx, ax
je 0x40481b
push 0xd
pop eax
cmp cx, ax
je 0x40481b
mov eax, ebx
jmp 0x40481e
xor eax, eax
inc eax
push dword [0x44d6f4]
lea ecx, [ebp - 0x15c]
push eax
call fcn.004032fc
lea esi, [edi + 0x24]
mov byte [ebp - 4], 0x1e
push esi
lea ecx, [ebp - 0x4c]
call fcn.00411a12
lea ecx, [ebp - 0x15c]
call fcn.0040a3fb
cmp eax, 1
jne 0x4048b1
push dword [ebp - 0x50]
mov ecx, esi
call fcn.00403419
push str..mst
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0040195a
add esp, 0xc
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x1f
call fcn.0040126b
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1e
lea ecx, [ecx - 0x10]
call fcn.00401797
push dword [ebp - 0x50]
mov ecx, esi
call fcn.00403419
push eax
mov ecx, 0x44d6b4
call fcn.0040126b
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 0x1c
call fcn.00403360
jmp 0x404952
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 0x1c
call fcn.00403360
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00401797
jmp 0x4049ab
mov eax, dword [edi + 0x20]
push ecx
sub eax, 0x10
mov esi, esp
push eax
call fcn.004012f5
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, 0x44d5e0
lea eax, [edi + 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00407296
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x20
call fcn.0040126b
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1c
lea ecx, [ecx - 0x10]
call fcn.00401797
lea eax, [ebp + 8]
mov ecx, 0x44d6b4
push eax
call fcn.0040126b
push str..mst
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0040195a
add esp, 0xc
mov byte [ebp - 4], 0x21
push eax
lea ecx, [ebp + 8]
call fcn.0040126b
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1c
lea ecx, [ecx - 0x10]
call fcn.00401797
lea eax, [ebp + 8]
mov ecx, edi
push eax
call fcn.00403a72
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00401797
xor ebx, ebx
inc ebx
jmp 0x4049ab
cmp dword [0x44d6bc], 0
je 0x4049a1
mov eax, dword [esi]
cmp dword [eax - 0xc], ebx
jne 0x40498e
push str.Initialization:_Failed_to_initialize_Product___msi_key_not_specified._n
mov ecx, 0x44d6ac
call fcn.00401e0c
jmp 0x4049a1
push eax
push str.Initialization:_Failed_to_initialize_Product___Unable_to_locate___s__file._n
push 0x44d6ac
call fcn.00401431
add esp, 0xc
mov ecx, 0x44d5e0
call fcn.0040892f
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00401797
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401797
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401797
mov eax, ebx
call fcn.0041f67d
ret 4