Function at 0x4e6b60
Capabilities:
Get keyboard layout
Identify system language via api

Disassembly:
push ebx
push ebp
push esi
push edi
mov eax, dword [0x622db8]
xor ebx, ebx
mov esi, dword [esp + 0x14]
mov dword [esi + 0x6a4], eax
mov dword [esi + 0x5d4], ebx
mov dword [esi + 0x47c], ebx
mov dword [esi + 0x5d8], ebx
mov dword [esi + 0x518], ebx
mov dword [esi + 0x5e0], ebx
mov dword [esi + 0x4bc], ebx
mov dword [esi + 0x4c0], ebx
mov dword [esi + 0x5bc4], ebx
mov dword [esi + 0x5bc8], ebx
mov dword [esi + 0x46dc], ebx
mov dword [esi + 0x46e0], ebx
mov dword [esi + 0x46e4], ebx
mov dword [esi + 0x46e8], ebx
mov dword [esi + 0x46ec], ebx
mov dword [esi + 0x544], ebx
mov dword [esi + 0x468], ebx
mov dword [esi + 0x46c], ebx
mov dword [esi + 0x470], ebx
mov dword [esi + 0x474], ebx
mov dword [esi + 0x478], ebx
mov dword [esi + 0x3a8], ebx
mov dword [esi + 0x55c], ebx
mov dword [esi + 0x560], ebx
mov dword [esi + 0x574], ebx
mov dword [esi + 0x578], ebx
mov dword [esi + 0x648], ebx
or ebp, 0xffffffff
mov dword [esi + 0x53c], ebp
mov dword [esi + 0x5f4], ebp
mov edi, 1
mov dword [esi + 0x5e4], edi
mov eax, 0xc8
mov dword [esi + 0x5e8], eax
mov ecx, 4
mov dword [esi + 0x498], ecx
mov edx, dword [0x621864]
mov dword [esi + 0xa15c], edx
mov edx, dword [0x6218b4]
mov dword [esi + 0xa160], edx
mov edx, dword [0x622dc0]
mov dword [esi + 0xa164], edx
mov edx, dword [0x6218b8]
mov dword [esi + 0xa168], edx
mov edx, dword [0x622434]
mov dword [esi + 0xa16c], edx
mov edx, dword [0x622e30]
mov dword [esi + 0xa170], edx
mov edx, dword [0x622924]
mov dword [esi + 0xa174], edx
mov edx, dword [esi + 0xa170]
and edx, 8
mov dword [esi + 0x6c8], edx
mov dword [esi + 0xa178], ebx
mov dword [esi + 0x398], ebx
mov dword [esi + 0x57c], ebx
mov dword [esi + 0x580], ebx
mov dword [esi + 0x584], ebx
mov dword [esi + 0x588], ebx
mov dword [esi + 0xa180], ebx
mov dword [esi + 0xa184], ebx
mov dword [esi + 0x4b34], eax
mov dword [esi + 0x39d0], 0x64
mov dword [esi + 0xa14c], ebx
mov dword [esi + 0x66c], ebx
mov dword [esi + 0x670], ebx
mov dword [esi + 0x674], ebx
mov dword [esi + 0x678], ebx
mov dword [esi + 0x67c], ebx
mov dword [esi + 0x680], ebx
mov dword [esi + 0xa18c], ebx
mov dword [esi + 0x4b6c], ebx
mov dword [esi + 0x68c], ebx
mov dword [esi + 0x690], edi
mov dword [esi + 0x694], edi
mov dword [esi + 0x4a8], ebx
mov dword [esi + 0x4ac], ebx
mov dword [esi + 0x4b0], ebx
mov byte [esi + 0xae0], bl
mov dword [esi + 0xbe0], ebx
mov dword [esi + 0x58c4], 0x3c
mov byte [esi + 0xa1e8], bl
mov dword [esi + 0xa1f4], ebx
mov dword [esi + 0xa1f8], ebx
mov dword [esi + 0x594], ebx
mov dword [esi + 0x5c0c], ebx
mov dword [esi + 0x5840], ebx
mov dword [esi + 0x5844], ecx
mov dword [esi + 0x39d8], ebp
mov dword [esi + 0x5a4], ebx
mov dword [esi + 0x5a8], 0x5a0
mov dword [esi + 0x5ac], ebx
mov dword [esi + 0x6a8], ebx
mov dword [esi + 0x6f4], ebx
mov dword [esi + 0x6f8], ebx
mov dword [esi + 0xaf4], ebp
mov dword [esi + 0xa188], ebx
mov dword [esi + 0xa13c], ebx
mov byte [esi + 0x99e8], bl
mov dword [esi + 0x39fc], ebx
mov dword [esi + 0x945c], ebx
mov dword [esi + 0x524], ebx
mov dword [esi + 0xac10], ebx
mov dword [esi + 0x6c4], ebx
mov dword [esi + 0xa120], ebx
mov dword [esi + 0x740], ebx
mov dword [esi + 0x688], ebx
mov dword [esi + 0x39e4], ebp
mov byte [esi + 0x99d9], 1
mov dword [esi + 0x99dc], ebx
mov dword [esi + 0x470c], ebp
mov dword [esi + 0x99b0], ebx
mov word [esi + 0x702], bx
mov dword [esi + 0xb34], ebx
mov dword [esi + 0xb38], ebx
mov dword [esi + 0xb3c], ebx
mov dword [esi + 0x75c], 3
mov byte [esi + 0x471c], bl
mov dword [esi + 0x3ac], ebx
mov dword [esi + 0x5c8], 0x1b58
mov dword [esi + 0xb3f8], ebx
mov dword [esi + 0xac14], ebx
mov dword [esi + 0xac18], ebx
mov dword [esi + 0xac1c], ebx
mov dword [esi + 0xac20], ebx
mov byte [esi + 0xac24], bl
mov dword [esi + 0x764], ebx
mov dword [esi + 0x768], ebx
mov dword [esi + 0x39b4], ebx
mov dword [esi + 0x39b8], ebx
mov dword [esi + 0x39bc], ebx
mov dword [esi + 0x9760], ebx
mov dword [esi + 0x9764], ebx
mov dword [esi + 0x9768], ebx
mov dword [esi + 0x5bf0], ebx
mov dword [esi + 0x5bfc], ebx
mov dword [esi + 0x5bf4], ebx
mov dword [esi + 0x5bf8], edi
mov dword [esi + 0x5c04], edi
mov dword [esi + 0x5c08], edi
mov dword [esi + 0x69c], ebx
mov dword [esi + 0x6a0], ebx
mov dword [esi + 0x480], ebp
mov dword [esi + 0xa9d8], ebx
mov byte [esi + 0xa1fc], bl
mov dword [esi + 0xa9d0], ebx
mov byte [esi + 0xa5e5], bl
mov dword [esi + 0x5bd0], ebx
mov dword [esi + 0x5be4], ebx
mov eax, dword [0x622424]
mov dword [esi + 0x5be8], eax
mov dword [esi + 0x5bec], ebx
mov dword [esi + 0xa9d4], 0x409
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x3b6
je 0x4e6f49
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x3a8
je 0x4e6f49
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x3b5
je 0x4e6f49
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x551
jne 0x4e6f4f
mov dword [esi + 0x5be8], ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov dword [esi + 0xa9d4], eax
mov dword [esi + 0x99e0], eax
mov dword [esi + 0x564], ebx
mov dword [esi + 0x568], ebx
mov dword [esi + 0x114], ebx
mov dword [esi + 0x4b48], ebx
mov dword [esi + 0x4b5c], ebx
mov dword [esi + 0x4b64], ebx
mov dword [esi + 0xb00], edi
mov dword [esi + 0xb08], edi
mov dword [esi + 0x620], ebx
mov dword [esi + 0x5768], 0x64
mov dword [esi + 0x5764], 0x28
mov dword [esi + 0x5750], ebx
mov dword [esi + 0x5754], ebx
mov dword [esi + 0x5758], ebx
mov dword [esi + 0x576c], ebp
mov dword [esi + 0x575c], ebx
mov dword [esi + 0x624], ebx
mov dword [esi + 0x39d4], ebx
mov dword [esi + 0x5fc], ebx
mov dword [esi + 0xb0c], ebx
mov dword [esi + 0xb10], ebx
mov dword [esi + 0xb14], ebx
mov dword [esi + 0xb20], ebx
mov dword [esi + 0x6dc], ebx
mov dword [esi + 0x6e0], ebx
mov dword [esi + 0x6e4], ebx
mov dword [esi + 0x39e8], edi
mov dword [esi + 0x39f0], edi
mov dword [esi + 0x39ec], ebx
mov dword [esi + 0x39f8], ebx
mov dword [esi + 0x39f4], ebp
mov dword [esi + 0x3a00], ebx
mov dword [esi + 0x3a0c], ebx
mov dword [esi + 0x534], ebx
mov dword [esi + 0x530], ebx
mov dword [esi + 0x3a04], ebx
mov dword [esi + 0x71c], ebp
mov dword [esi + 0x720], ebp
mov dword [esi + 0x724], ebx
mov dword [esi + 0x714], 0x870
mov dword [esi + 0x718], 0x5a0
mov dword [esi + 0x3a10], ebx
mov dword [esi + 0x3894], ebx
mov dword [esi + 0x72c], ebx
mov dword [esi + 0x704], ebx
mov dword [esi + 0x3434], ebx
mov dword [esi + 0x3438], ebx
mov dword [esi + 0x387c], ebx
mov dword [esi + 0x2b50], ebx
mov dword [esi + 0x39c0], ebx
mov dword [esi + 0x39c4], ebx
mov dword [esi + 0xa124], ebx
mov dword [esi + 0x3484], ebx
mov dword [esi + 0x3488], ebx
mov dword [esi + 0x348c], ebx
mov dword [esi + 0x3490], ebx
mov dword [esi + 0x343c], ebx
mov dword [esi + 0x3888], ebx
mov dword [esi + 0x3474], ebp
mov dword [esi + 0x347c], ebx
mov dword [esi + 0x3480], ebx
mov edx, 0x168
mov dword [esi + 0x388c], edx
mov dword [esi + 0x3890], ebx
mov dword [esi + 0x39c8], ebx
mov dword [esi + 0x630], ebx
mov dword [esi + 0x5b4c], ebx
mov dword [esi + 0xa150], ebx
mov dword [esi + 0xa154], ebx
mov dword [esi + 0x2b38], ebx
mov dword [esi + 0x2b40], 0xc8
mov dword [esi + 0x2b44], ebx
mov dword [esi + 0x2b2c], ebp
mov dword [esi + 0x998c], ebx
mov dword [esi + 0x634], ebx
mov dword [esi + 0x638], ebx
mov dword [esi + 0x63c], ebx
mov dword [esi + 0x640], ebx
mov dword [esi + 0x9990], edi
mov dword [esi + 0x9994], edi
mov dword [esi + 0x9998], ebx
mov dword [esi + 0x999c], ebx
mov dword [esi + 0x5ba8], ebx
mov dword [esi + 0x5bac], edi
mov dword [esi + 0x5ba4], edi
mov dword [esi + 0x5bcc], ebx
mov dword [esi + 0x5bb0], edi
mov dword [esi + 0xa104], edi
mov dword [esi + 0xa128], 0x4100
mov dword [esi + 0xa12c], 0xff0000
mov dword [esi + 0xa108], edi
mov dword [esi + 0x5850], ebx
mov dword [esi + 0x5854], ebx
mov dword [esi + 0x5858], ebx
mov ecx, dword [esi + 0xec]
shr ecx, 0xc
and ecx, edi
mov dword [esi + 0x99a0], ecx
mov dword [esi + 0x99a4], ebx
mov dword [esi + 0x4b68], ebx
mov dword [esi + 0x590], edi
mov dword [esi + 0x6ac], edi
mov dword [esi + 0x99a8], ebx
mov dword [esi + 0x99ac], ebx
mov dword [esi + 0xb4c], ebx
mov dword [esi + 0xb58], ebx
mov dword [esi + 0xbd8], ebx
mov dword [esi + 0xb84], ebx
mov dword [esi + 0xb88], ebx
mov dword [esi + 0xb8c], ebx
mov dword [esi + 0xb90], ebx
mov dword [esi + 0xb94], ebx
mov dword [esi + 0xb98], ebx
mov dword [esi + 0xb9c], ebx
mov dword [esi + 0xb68], 3
mov dword [esi + 0xb48], edi
mov dword [esi + 0x3478], 0x19
mov ecx, 5
mov dword [esi + 0xba4], ecx
mov dword [esi + 0xba8], ebx
mov dword [esi + 0xb74], ebx
mov dword [esi + 0xb78], ebx
mov dword [esi + 0x2b58], 0x32
mov eax, 0xa
mov dword [esi + 0x2b64], eax
mov dword [esi + 0x2b70], eax
mov dword [esi + 0x9b14], ebx
mov dword [esi + 0x39a4], ebp
mov dword [esi + 0x39a8], ebx
mov dword [esi + 0x39ac], ecx
mov dword [esi + 0x39b0], ebx
mov dword [esi + 0x514], ebx
mov dword [esi + 0x510], ebx
mov dword [esi + 0x504], ebx
mov dword [esi + 0x500], ebx
mov dword [esi + 0x9b1c], 0x64
mov dword [esi + 0x9b20], edx
mov dword [esi + 0xa134], ebx
mov dword [esi + 0xa130], ebx
mov dword [esi + 0x46d4], ebx
mov dword [esi + 0x46d8], ebx
mov dword [esi + 0x4b74], ebx
mov dword [esi + 0x4b78], ebp
mov dword [esi + 0x4b7c], ebp
mov dword [esi + 0x4b80], ebp
mov eax, 0xffffff
mov dword [esi + 0x4b08], eax
mov dword [esi + 0x4b20], eax
mov dword [esi + 0xad4], eax
mov dword [esi + 0xad8], eax
mov dword [esi + 0xadc], 0x14
mov dword [esi + 0x4b0c], ebx
mov dword [esi + 0x4b14], 0x80808
mov dword [esi + 0x4b10], 0xafafaf
mov dword [esi + 0x4b18], 0x8f8f8f
mov ecx, 0x10000000
mov dword [esi + 0x4b1c], eax
mov dword [esi + 0x4b28], ecx
mov dword [esi + 0x4b2c], ecx
mov dword [esi + 0x4b30], ebx
mov dword [esi + 0xaac], ebx
mov dword [esi + 0xab0], ebx
mov dword [esi + 0xab4], ebx
mov dword [esi + 0x46b8], eax
mov dword [esi + 0x46bc], eax
mov dword [esi + 0x46c0], eax
mov dword [esi + 0x4b38], ebx
mov dword [esi + 0xa9c], ebx
mov dword [esi + 0xaa0], 0x32
mov dword [esi + 0xaa4], edi
mov dword [esi + 0xaa8], ebx
mov dword [esi + 0x2bf8], ebx
mov dword [esi + 0x2bfc], ebx
mov dword [esi + 0x4f0], edi
mov dword [esi + 0x494], 0x3e6
mov dword [esi + 0x49c], 4
mov dword [esi + 0x610], edi
mov dword [esi + 0x614], edi
mov dword [esi + 0x618], edi
mov dword [esi + 0x61c], edi
mov dword [esi + 0x64c], ebx
mov dword [esi + 0x650], edi
mov dword [esi + 0x654], ebx
mov word [esi + 0xb40], 0xd903
mov word [esi + 0xb42], 0x100
push str..DOC
lea edx, [esi + 0xb52]
mov byte [esi + 0xb50], 0x15
push edx
mov byte [esi + 0xb51], 0xb6
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
fld dword [0x5e8d50]
mov dword [esi + 0x3a4], ebx
fstp dword [esi + 0x3a2c]
fld dword [0x5e8d4c]
push 0x5da43c
fstp dword [esi + 0x3a30]
lea eax, [esi + 0x4b84]
mov dword [esi + 0x9984], edi
push eax
mov dword [esi + 0x4b58], 0xc8
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x5da43c
lea ecx, [esi + 0x4f6e]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x5da43c
lea edx, [esi + 0x5357]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.ter_hlp.hlp
lea eax, [esi + 0x99b8]
mov dword [esi + 0x5748], 0x10
push eax
mov dword [esi + 0x9988], ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str._________TeCfMt
lea ecx, [esi + 0xbb8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov byte [esi + 0x3430], 0xbf
mov byte [esi + 0x3431], 0xbe
mov byte [esi + 0x3a78], bl
mov byte [esi + 0x3e61], bl
mov byte [esi + 0x424a], bl
mov dword [esi + 0x4638], ebx
mov dword [esi + 0x3a50], ebx
mov dword [esi + 0x3a58], ebx
mov dword [esi + 0x3a68], ebx
mov dword [esi + 0x3a6c], ebx
mov dword [esi + 0x3a70], edi
mov dword [esi + 0x3a74], edi
mov dword [esi + 0x3a5c], ebx
mov dword [esi + 0x3a60], ebx
mov dword [esi + 0x3a64], ebx
mov dword [esi + 0x346c], ebx
mov dword [esi + 0x3470], ebx
mov byte [esi + 0x3494], bl
mov dword [esi + 0x4640], edi
mov dword [esi + 0x4644], ebx
mov dword [esi + 0x4684], edi
mov dword [esi + 0x4e8], ebx
mov dword [esi + 0x4dc], edi
mov dword [esi + 0x4e0], edi
mov dword [esi + 0x4d0], edi
mov dword [esi + 0x4d4], edi
mov dword [esi + 0x5810], ebx
mov dword [esi + 0x5814], ebx
mov dword [esi + 0x5818], ebx
mov dword [esi + 0x581c], ebx
mov dword [esi + 0x5824], edi
mov dword [esi + 0x5820], ebx
mov dword [esi + 0xa100], edi
mov dword [esi + 0xa10c], edi
mov dword [esi + 0xa110], ebx
mov dword [esi + 0xa114], edi
mov dword [esi + 0xa118], ebx
mov dword [esi + 0x46fc], ebx
mov dword [esi + 0x5860], ebp
mov dword [esi + 0x5868], ebx
mov eax, 0x32
mov dword [esi + 0x586c], eax
mov dword [esi + 0x5870], ebx
mov dword [esi + 0x5874], ebx
mov dword [esi + 0x5878], ebx
mov dword [esi + 0x587c], ebx
mov dword [esi + 0x5880], ebx
mov dword [esi + 0x58a4], ebx
mov dword [esi + 0x58a8], ebx
mov dword [esi + 0x5884], ebx
mov dword [esi + 0x588c], ebx
mov dword [esi + 0x5894], ebx
mov dword [esi + 0x5898], ebx
mov dword [esi + 0x589c], 0x64
mov dword [esi + 0x58a0], 0xc8
mov dword [esi + 0x738], eax
mov byte [esi + 0x58b4], 0x13
mov byte [esi + 0x58b5], 0xa4
mov dword [esi + 0xac0], ebx
mov dword [esi + 0xac4], ebx
mov dword [esi + 0x58b8], edi
mov dword [esi + 0x5b84], ebx
mov dword [esi + 0x5b88], ebx
push ebx
mov dword [esi + 0x5b8c], ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push esi
call fcn.004abfb0
mov byte [esi + 0x976c], bl
mov dword [esi + 0x9970], ebx
mov dword [esi + 0x9974], ebx
mov dword [esi + 0x9978], ebx
push 0xc
mov dword [esi + 0x9980], ebx
lea edx, [esi + 0x9504]
push ebx
mov dword [esi + 0x997c], ebx
push edx
mov dword [esi + 0x975c], edi
call fcn.004e28a0
mov dword [esi + 0x9478], ebx
mov dword [esi + 0x947c], ebx
mov dword [esi + 0x9480], ebx
mov dword [esi + 0x9484], ebx
mov dword [esi + 0x9488], ebx
mov dword [esi + 0x948c], ebx
mov dword [esi + 0x9490], ebx
mov dword [esi + 0x9494], ebx
mov dword [esi + 0x9498], ebx
mov dword [esi + 0x949c], ebx
mov dword [esi + 0x94a0], ebx
mov dword [esi + 0x94a4], ebx
mov dword [esi + 0x94a8], ebx
mov dword [esi + 0x94ac], ebx
mov dword [esi + 0x94b0], ebx
mov dword [esi + 0x94b4], ebx
mov dword [esi + 0x94b8], ebx
mov dword [esi + 0x94bc], ebx
mov dword [esi + 0x94c0], ebx
mov dword [esi + 0x94c4], ebx
mov dword [esi + 0x94c8], ebx
mov dword [esi + 0x94cc], ebx
mov dword [esi + 0x94d0], ebx
mov dword [esi + 0x94d4], ebx
mov dword [esi + 0x94d8], ebx
mov dword [esi + 0x94dc], ebx
mov dword [esi + 0x94e0], ebx
mov dword [esi + 0x94e4], ebx
mov dword [esi + 0x94e8], ebx
mov dword [esi + 0x94ec], ebx
mov dword [esi + 0x94f0], ebx
mov dword [esi + 0x94f4], ebx
mov dword [esi + 0x94f8], ebx
mov dword [esi + 0x94fc], ebx
mov byte [esi + 0x99c5], 0xc
mov byte [esi + 0x99c6], 0x14
mov byte [esi + 0x99c7], 0x16
mov byte [esi + 0x99c8], 0x12
mov byte [esi + 0x99c9], 0x11
mov byte [esi + 0x99ca], 0x10
mov byte [esi + 0x99cb], 0x19
mov byte [esi + 0x99cc], 0x1a
mov byte [esi + 0x99cd], bl
mov dword [esi + 0xa190], 0x5e9d14
mov dword [esi + 0xa194], 0x5e9d0c
mov dword [esi + 0xa198], 0x5e9d04
mov dword [esi + 0xa19c], 0x5e9cfc
mov dword [esi + 0xa1a0], 0x5e9cf4
mov dword [esi + 0xa1a4], 0x5e9ce8
mov dword [esi + 0xa1a8], 0x5e9cdc
mov dword [esi + 0xa1ac], 0x5e9cd0
mov dword [esi + 0xa1b0], 0x5e9cc8
mov dword [esi + 0xa1b4], 0x5e9cc0
mov dword [esi + 0xa1b8], 0x5e9cb4
mov dword [esi + 0xa1bc], ebx
mov dword [esi + 0xa1c0], ebx
mov dword [esi + 0xa1c4], ebx
mov dword [esi + 0xa1c8], ebx
mov dword [esi + 0xa1cc], ebx
mov dword [esi + 0xa1d0], ebx
mov dword [esi + 0xa1d4], ebx
mov dword [esi + 0xa1d8], ebx
mov dword [esi + 0xa1dc], ebx
mov dword [esi + 0xa1e0], ebx
push 0x12c
mov dword [esi + 0xa1e4], ebx
push edi
add esi, 0x9b24
push esi
call fcn.004e28a0
add esp, 0x20
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret