Function at 0x4094c0
Capabilities:
Identify system language via api

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a1f0e
push eax
mov eax, 0x1058
mov dword fs:[0], esp
call fcn.0048c610
mov eax, dword [str.CheckMPQ]
cmp byte [eax], 0
mov dword [esp + 0x1c], 0
je 0x409bc1
push ebx
push ebp
push esi
mov eax, 0x4dd1e8
push edi
mov edi, edi
mov esi, dword [eax]
push 0
push esi
call fcn.0048bb00
mov edi, eax
add edi, 1
push 0
push edi
call fcn.0048bb00
mov ebp, eax
add ebp, 1
push 0
push ebp
call fcn.0048bb00
mov ebx, eax
add ebx, 1
push 0
push ebx
call fcn.0048bb00
add eax, 1
push 0
push eax
mov dword [esp + 0x68], eax
call fcn.0048bb00
add eax, 1
push 0
push eax
mov dword [esp + 0x74], eax
call fcn.0048bb00
add eax, 1
push 0
push eax
mov dword [esp + 0x80], eax
call fcn.0048bb00
add eax, 1
push 0
push eax
mov dword [esp + 0x7c], eax
call fcn.0048bb00
add esp, 0x40
add eax, 1
push 0
push eax
mov dword [esp + 0x38], eax
call fcn.0048bb00
add eax, 1
push 0
push eax
mov dword [esp + 0x44], eax
call fcn.0048bb00
add esp, 0x10
push 0x1000
lea ecx, [esp + 0x6c]
push ecx
add eax, 1
push edi
mov dword [esp + 0x44], eax
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
lea edi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4095c5
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2ccc
mov dword [esp + 0x1074], 0
call fcn.00409340
lea edx, [esp + 0x68]
lea edi, [edx + 1]
lea esp, [esp]
mov cl, byte [edx]
add edx, 1
test cl, cl
jne 0x409600
sub edx, edi
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], 0xffffffff
jb 0x409637
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ebp
call fcn.00407bf0
xor edi, edi
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ebp, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x409660
sub eax, ebp
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea ecx, [esp + 0x10]
push ecx
mov ecx, 0x4e2cb4
mov dword [esp + 0x1074], 1
call fcn.00409340
lea edx, [esp + 0x68]
lea ebp, [edx + 1]
mov cl, byte [edx]
add edx, 1
test cl, cl
jne 0x409697
sub edx, ebp
push edx
lea edx, [esp + 0x6c]
push edx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], 0xffffffff
jb 0x4096ce
mov eax, dword [esp + 0x14]
push eax
call fcn.00409f10
add esp, 4
push 0x1000
lea ecx, [esp + 0x6c]
push ecx
push ebx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4096f4
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2d20
mov dword [esp + 0x1074], 2
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
jmp 0x409730
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409730
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
or ebp, 0xffffffff
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x409766
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x40]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x409790
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2d08
mov dword [esp + 0x1074], 3
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x4097c7
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x4097fa
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x44]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x409824
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2cf0
mov dword [esp + 0x1074], 4
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
jmp 0x409860
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409860
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x409893
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x48]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4098c0
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2d14
mov dword [esp + 0x1074], 5
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x4098f7
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x40992a
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x3c]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x409954
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2cfc
mov dword [esp + 0x1074], 6
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
jmp 0x409990
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409990
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x4099c3
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x30]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4099f0
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2cc0
mov dword [esp + 0x1074], 7
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409a27
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x409a5a
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x34]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], edi
mov byte [esp + 0x14], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x409a84
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401920
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4e2cd8
mov dword [esp + 0x1074], 8
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
jmp 0x409ac0
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409ac0
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x28], 0x10
mov dword [esp + 0x1070], ebp
jb 0x409af3
mov edx, dword [esp + 0x14]
push edx
call fcn.00409f10
add esp, 4
mov ecx, dword [esp + 0x38]
push 0x1000
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.00407bf0
mov eax, esi
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], edi
mov byte [esp + 0x50], 0
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x409b20
sub eax, ecx
push eax
push esi
lea ecx, [esp + 0x54]
call fcn.00401920
lea edx, [esp + 0x4c]
push edx
mov ecx, 0x4e2ce4
mov dword [esp + 0x1074], 9
call fcn.00409340
lea edx, [esp + 0x68]
lea ecx, [edx + 1]
mov bl, byte [edx]
add edx, 1
test bl, bl
jne 0x409b57
sub edx, ecx
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00401920
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0x1070], ebp
jb 0x409b8a
mov edx, dword [esp + 0x50]
push edx
call fcn.00409f10
add esp, 4
mov eax, dword [esp + 0x2c]
add eax, 1
mov ecx, dword [eax*4 + 0x4dd1e8]
cmp byte [ecx], 0
mov dword [esp + 0x2c], eax
lea eax, [eax*4 + 0x4dd1e8]
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], edi
mov byte [esp + 0x50], 0
jne 0x409500
pop edi
pop esi
pop ebp
pop ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
cmp ax, 0x407
jne 0x409bef
mov dword [0x4e2cb0], 0x4e2cb4
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x809
jne 0x409c14
mov dword [0x4e2cb0], 0x4e2d20
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0xc0a
jne 0x409c39
mov dword [0x4e2cb0], 0x4e2d08
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x80a
jne 0x409c5e
mov dword [0x4e2cb0], 0x4e2cf0
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x40c
jne 0x409c83
mov dword [0x4e2cb0], 0x4e2d14
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x412
jne 0x409ca8
mov dword [0x4e2cb0], 0x4e2cfc
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x419
jne 0x409ccd
mov dword [0x4e2cb0], 0x4e2cc0
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x804
jne 0x409cf2
mov dword [0x4e2cb0], 0x4e2cd8
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret
cmp ax, 0x404
mov dword [0x4e2cb0], 0x4e2ce4
je 0x409d0c
mov dword [0x4e2cb0], 0x4e2ccc
mov ecx, dword [esp + 0x1058]
mov dword fs:[0], ecx
add esp, 0x1064
ret