Function at 0x40a320
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x940
mov word [ebp - 0x924], ax
test ax, ax
jne 0x40a458
lea edi, [ebp - 0x40c]
lea ebx, [ebp - 0x8b6]
mov esi, str._assembly_xmlns_urn:schemas_microsoft_com:asm.v3__manifestVersion_1.0___assemblyIdentity_type_win32__name_sxs_dll__version_1.0.0.0__processorArchitecture_x86__publicKeyToken_0000000000000000_____assembly_
mov dword [esp + 4], 0x582b30
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_wcscpy]
mov dword [ebp - 0x93c], edi
mov ecx, 0x35
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x80c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str._assembly_xmlns_urn:schemas_microsoft_com:asm.v1__manifestVersion_1.0___dependency__dependentAssembly__assemblyIdentity_type_win32__name_sxs_dll__version_1.0.0.0__processorArchitecture_x86__publicKeyToken_0000000000000000__language__ls_____dependentAssembly___dependency___assembly_
mov dword [esp + 4], 0x400
mov dword [esp], eax
call fcn.00401170
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x58109f
mov dword [eax + 4], 0x1073
xor eax, eax
mov dword [esp + 8], ebx
sub ebx, 1
cmp ebx, 0x3fe
mov dword [esp + 4], str.ret__d._n
lea ebx, [ebp - 0x8f6]
setbe al
mov dword [esp], eax
call fcn.00401dd0
call dword [sym.imp.kernel32.dll_GetUserDefaultUILanguage]
xor edx, edx
lea ecx, [ebp - 0x900]
mov dword [ebp - 0x8fa], 0x10409
mov word [ebp - 0x900], dx
mov word [ebp - 0x8fe], ax
and ax, 0x3ff
mov word [ebp - 0x8fc], ax
xor eax, eax
movzx esi, word [ecx]
test eax, eax
je 0x40a438
xor edx, edx
jmp 0x40a417
add edx, 1
cmp edx, eax
je 0x40a438
cmp si, word [ebp + edx*2 - 0x91e]
jne 0x40a410
add ecx, 2
cmp ecx, ebx
je 0x40a778
movzx esi, word [ecx]
jmp 0x40a403
add ecx, 2
mov word [ebp + eax*2 - 0x91e], si
lea edx, [eax + 1]
cmp ebx, ecx
je 0x40a546
mov eax, edx
jmp 0x40a3fc
movzx eax, ax
lea ebx, [ebp - 0x8b6]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ConvertDefaultLocale]
sub esp, 4
mov word [ebp - 0x924], ax
mov esi, eax
mov eax, 0x1068
call fcn.004012e0
xor eax, eax
test si, si
mov dword [esp + 4], str.unexpected_neutral_locale_n
setne al
movzx esi, si
mov dword [esp], eax
call fcn.00401dd0
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0xc], 0x8000000
mov dword [esp + 8], 0x55
call dword [sym.imp.kernel32.dll_LCIDToLocaleName]
sub esp, 0x10
mov esi, eax
mov eax, 0x106c
call fcn.004012e0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.error__lu._n
mov dword [esp + 8], eax
xor eax, eax
test esi, esi
setg al
mov dword [esp], eax
call fcn.00401dd0
lea eax, [ebp - 0x40c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str._assembly_xmlns_urn:schemas_microsoft_com:asm.v3__manifestVersion_1.0___assemblyIdentity_type_win32__name_sxs_dll__version_1.0.0.0__processorArchitecture_x86__publicKeyToken_0000000000000000__language__ls_____assembly_
mov dword [esp + 4], 0x400
mov dword [ebp - 0x93c], eax
mov dword [esp], eax
call fcn.00401170
mov esi, eax
mov eax, 0x106f
call fcn.004012e0
mov dword [esp + 8], esi
sub esi, 1
xor eax, eax
cmp esi, 0x3fe
mov dword [esp + 4], str.ret__d._n
setbe al
mov dword [esp], eax
call fcn.00401dd0
jmp 0x40a36b
mov dword [ebp - 0x928], edx
movzx eax, word [ebp - 0x924]
xor edi, edi
mov dword [ebp - 0x938], eax
mov eax, dword [ebp - 0x928]
lea eax, [eax + eax*2]
lea eax, [ebp + eax*4 - 0x900]
mov dword [ebp - 0x934], eax
lea esi, [esi]
mov dword [ebp - 0x914], 0
mov dword [ebp - 0x910], 0
mov dword [ebp - 0x90c], 0
mov dword [ebp - 0x908], 0
mov dword [ebp - 0x904], 0
mov dword [esp + 4], edi
mov dword [esp], str.langs__Id:_
call fcn.004010f0
mov eax, dword [ebp - 0x928]
cmp edi, eax
jae 0x40a700
lea eax, [ebp - 0x91e]
mov dword [ebp - 0x930], edi
lea esi, [ebp - 0x900]
mov ebx, edi
mov dword [ebp - 0x92c], eax
lea esi, [esi]
mov eax, dword [ebp - 0x92c]
xor edi, edi
movzx ecx, word [eax + ebx*2]
mov eax, dword [ebp - 0x930]
cmp ebx, eax
mov eax, str._assembly_manifestVersion_1.0___assemblyIdentity_version_1.0.0.0___name_Wine.Test__type_win32____assemblyIdentity___assembly_
mov dword [ebp - 0x924], ecx
cmovne edi, eax
add ebx, 1
add esi, 0xc
call fcn.0057d110
mov dword [eax], 0x58109f
mov dword [eax + 4], 0x108b
mov dword [esp + 4], str.overrun_n
mov dword [esp], 1
call fcn.00401dd0
mov ecx, dword [ebp - 0x924]
mov eax, dword [ebp - 0x928]
mov dword [esi - 4], edi
mov dword [esi - 0xc], 2
mov word [esi - 8], cx
cmp ebx, eax
jne 0x40a5e8
mov edi, dword [ebp - 0x930]
mov eax, dword [ebp - 0x934]
mov dword [eax], 0
lea edx, [ebp - 0x80c]
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea eax, [ebp - 0x900]
mov dword [ebp - 0x908], eax
mov eax, dword [ebp - 0x938]
mov dword [ebp - 0x904], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x914]
mov dword [esp], eax
mov ecx, dword [ebp - 0x93c]
mov eax, 0x1092
call fcn.00409870
cmp dword [0x57fce8], 1
jle 0x40a6c0
test eax, eax
jne 0x40a710
call fcn.0057d110
mov edx, dword [eax + 0xbec]
test edx, edx
je 0x40a6d8
sub edx, 1
mov dword [eax + 0xbec], edx
mov eax, dword [ebp - 0x928]
add edi, 1
sub dword [ebp - 0x934], 0xc
cmp edi, eax
jne 0x40a578
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x900]
jmp 0x40a660
lea eax, [ebp - 0x91e]
xor ebx, ebx
mov esi, 0x3c
mov dword [ebp - 0x92c], eax
lea esi, [esi]
nop
call fcn.0057d110
cmp ebx, edi
mov dword [eax], 0x58109f
mov dword [eax + 4], 0x1098
mov eax, 0x20
cmove eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x92c]
movzx eax, word [eax + ebx*2]
mov dword [esp + 4], ebx
add ebx, 1
mov dword [esp], str.langs__Id___0x_04x__c_n
mov dword [esp + 8], eax
call fcn.00401870
mov eax, dword [ebp - 0x928]
cmp ebx, eax
jne 0x40a728
jmp 0x40a6c0
mov dword [ebp - 0x928], eax
jmp 0x40a54c