Function at 0x46ffc4
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
mov dword [ebp - 4], eax
lea esi, [ebp - 4]
xor eax, eax
push ebp
push 0x470257
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc]
call fcn.00403c3c
mov eax, dword [esi]
mov bl, byte [eax + 0x34a]
test bl, bl
jbe 0x470008
lea eax, [ebp - 0xc]
mov edx, 0x47026c
call fcn.00403ec4
dec bl
jne 0x46fff7
lea edx, [ebp - 8]
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
call fcn.0042c41c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
xor edx, edx
call fcn.0042c44c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
xor edx, edx
call fcn.004237d0
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, dword [ebp - 0xc]
call fcn.0042c44c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov dl, 1
call fcn.004237d0
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, dword [ebp - 8]
call fcn.0042c44c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, 0x10
call fcn.0042bc5c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, 0x10
call fcn.0042bc3c
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, dword [eax + 0x30]
add edx, edx
add edx, dword [eax + 0x3c]
mov eax, dword [esi]
call fcn.0042bca0
mov eax, dword [esi]
mov eax, dword [eax + 0x2ec]
mov edx, dword [eax + 0x30]
add edx, edx
add edx, dword [eax + 0x38]
mov eax, dword [esi]
call fcn.0042bc80
call sub.kernel32.dll_GetUserDefaultLangID
and ax, 0xff
cmp ax, 0x19
jne 0x47010f
mov eax, dword [esi]
cmp dword [eax + 0x358], 0
je 0x4700fa
mov eax, dword [esi]
mov eax, dword [eax + 0x2e8]
add eax, 0x70
mov edx, 0x470278
call fcn.00403c90
jmp 0x47010f
mov eax, dword [esi]
mov eax, dword [eax + 0x2e8]
add eax, 0x70
mov edx, 0x4702b0
call fcn.00403c90
call sub.kernel32.dll_GetUserDefaultLangID
and ax, 0xff
cmp ax, 0x19
je 0x470155
mov eax, dword [esi]
cmp dword [eax + 0x358], 0
je 0x470140
mov eax, dword [esi]
mov eax, dword [eax + 0x2e8]
add eax, 0x70
mov edx, 0x4702f0
call fcn.00403c90
jmp 0x470155
mov eax, dword [esi]
mov eax, dword [eax + 0x2e8]
add eax, 0x70
mov edx, 0x470334
call fcn.00403c90
mov eax, dword [esi]
cmp dword [eax + 0x358], 0
jne 0x47016f
mov eax, dword [esi]
cmp dword [eax + 0x35c], 0
jne 0x47016f
xor edx, edx
jmp 0x470171
mov dl, 1
mov eax, dword [esi]
mov eax, dword [eax + 0x2e8]
call fcn.0042c560
mov eax, dword [0x472940]
mov eax, dword [eax]
call fcn.00448408
mov edx, dword [esi]
mov edx, dword [edx + 0x30]
mov ecx, dword [esi]
add edx, dword [ecx + 0x38]
cmp eax, edx
jge 0x4701b2
mov eax, dword [0x472940]
mov eax, dword [eax]
call fcn.00448408
mov edx, eax
mov eax, dword [esi]
sub edx, dword [eax + 0x38]
mov eax, dword [esi]
call fcn.0042bc3c
mov eax, dword [0x472940]
mov eax, dword [eax]
call fcn.004483fc
mov edx, dword [esi]
mov edx, dword [edx + 0x34]
mov ecx, dword [esi]
add edx, dword [ecx + 0x3c]
cmp eax, edx
jge 0x4701e6
mov eax, dword [0x472940]
mov eax, dword [eax]
call fcn.004483fc
mov edx, eax
mov eax, dword [esi]
sub edx, dword [eax + 0x3c]
mov eax, dword [esi]
call fcn.0042bc5c
mov eax, dword [esi]
cmp dword [eax + 0x30], 0
jge 0x4701f7
xor edx, edx
mov eax, dword [esi]
call fcn.0042bc3c
mov eax, dword [esi]
cmp dword [eax + 0x34], 0
jge 0x470208
xor edx, edx
mov eax, dword [esi]
call fcn.0042bc5c
mov eax, dword [esi]
mov eax, dword [eax + 0x338]
cmp byte [eax + 0x2c], 0
je 0x47021d
push ebp
call fcn.0046fedc
pop ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x338]
mov dl, byte [eax + 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0x334]
call fcn.0042c334
mov eax, dword [esi]
mov edx, dword [eax]
call dword [edx + 0x78]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47025e
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00403c60
ret