Function at 0x1005aa4b
Capabilities:
Get keyboard layout

Disassembly:
push 0x32c
mov eax, 0x1008f258
call fcn.1008bdcf
mov bl, cl
push 0xaa
lea eax, [ebp - 0x100]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [0x100fd798]
xor edi, edi
add esp, 0xc
inc edi
test esi, esi
jne 0x1005aacf
xor eax, eax
mov dword [0x100fd798], edi
push 0x20
lea edx, [ebp - 0x50]
mov word [ebp - 0x50], ax
mov ecx, 0x100b5180
call fcn.10012d20
test eax, eax
jne 0x1005aac9
mov eax, dword [ebp - 0x50]
and eax, 0xffdf
cmp ax, 0x50
jne 0x1005aab7
push 3
pop esi
mov dword [0x100fd798], esi
jmp 0x1005aacf
mov esi, dword [0x100fd798]
cmp ax, 0x4f
push 2
pop eax
cmove esi, eax
jmp 0x1005aaaf
mov esi, dword [0x100fd798]
lea ecx, [ebp - 0x100]
call fcn.1005eda6
cmp esi, edi
jne 0x1005ab02
test bl, bl
je 0x1005aae7
call fcn.10012d20
mov edx, 0x100b8390
mov ecx, 0x100b5180
call fcn.1002d5b5
test eax, eax
je 0x1005ab0b
push 2
pop eax
mov dword [0x100fd798], eax
cmp esi, 3
je 0x1005aef1
call dword [sym.imp.kernel32.dll_GetACP]
lea ecx, [ebp - 0x100]
mov esi, eax
call fcn.10012d20
test al, al
je 0x1005ab8d
or dword [ebp - 0x2bc], 0xffffffff
lea edx, [ebp - 0x2bc]
push 1
push 1
push 1
lea ecx, [ebp - 0x100]
call fcn.10012d20
test eax, eax
js 0x1005ab70
mov ecx, dword [ebp - 0x2bc]
lea edx, [ebp - 0x2b4]
and dword [ebp - 0x2b4], 0
call fcn.10012d20
test eax, eax
js 0x1005ab70
test dword [ebp - 0x2b4], 0x800
je 0x1005ab70
mov al, 1
jmp 0x1005ab72
xor al, al
lea edx, [ebp - 0x100]
mov ecx, str.zh_CN
push 0x55
test al, al
jne 0x1005ab88
mov ecx, str.zh_TW
call fcn.10012d20
push 1
mov ecx, 0x100fd358
call fcn.10012d20
xor ebx, ebx
lea ecx, [ebp - 0x100]
push ebx
call fcn.10012d20
cmp esi, 0x4ea
jne 0x1005abba
push ebx
mov ecx, str.fr_FR
call fcn.10012d20
push ebx
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
lea esi, [ebp - 0x280]
call ebx
mov edi, eax
cmp edi, 8
jbe 0x1005abe8
mov ecx, edi
shl ecx, 2
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, eax
pop ecx
test esi, esi
je 0x1005ac71
push esi
push edi
call ebx
xor ebx, ebx
test edi, edi
je 0x1005ac5f
movzx eax, word [esi + ebx*4]
lea ecx, [ebp - 0x260]
push 0
push 0x55
push ecx
push eax
call dword [sym.imp.kernel32.dll_LCIDToLocaleName]
test eax, eax
je 0x1005ac5a
push 0
lea ecx, [ebp - 0x260]
call fcn.10012d20
push ecx
lea edx, [ebp - 0x1b0]
lea ecx, [ebp - 0x260]
call fcn.10056387
test eax, eax
js 0x1005ac5a
cmp word [ebp - 0x1b0], 0
je 0x1005ac5a
mov edx, 0x100a3fd4
lea ecx, [ebp - 0x1b0]
call fcn.10012d20
test eax, eax
je 0x1005ac5a
push 0
lea ecx, [ebp - 0x1b0]
call fcn.10012d20
inc ebx
cmp ebx, edi
jb 0x1005abf2
lea eax, [ebp - 0x280]
cmp esi, eax
je 0x1005ac71
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor edi, edi
lea edx, [ebp - 0x2b4]
inc edi
mov ecx, 0x100b3930
mov dword [ebp - 0x2b4], edi
call fcn.1002cc92
push 0x18
pop esi
xor ebx, ebx
mov dword [ebp - 0x2bc], esi
cmp dword [ebp - 0x2b4], edi
jne 0x1005ae8b
xor eax, eax
mov dword [ebp - 0x298], ebx
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x284], 7
mov word [ebp - 0x298], ax
lea edx, [ebp - 0x298]
mov dword [ebp - 4], ebx
mov ecx, 0x100b83d0
call fcn.10012d20
test al, al
je 0x1005ae80
cmp dword [ebp - 0x288], ebx
je 0x1005ae80
cmp dword [ebp - 0x284], 8
lea eax, [ebp - 0x298]
lea ecx, [ebp - 0x338]
cmovae eax, dword [ebp - 0x298]
push eax
call fcn.10012d20
xor eax, eax
lea edx, [ebp - 0x328]
cmp byte [ebp - 0x308], al
lea ecx, [ebp - 0x300]
push edi
cmove edx, eax
push str.AuthoringLanguagesList
call fcn.10012d20
xor eax, eax
mov dword [ebp - 0x278], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], 7
mov word [ebp - 0x278], ax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2f0]
cmp byte [ebp - 0x2d0], al
lea edx, [ebp - 0x278]
cmove ecx, eax
call fcn.10012d20
test al, al
je 0x1005ae5f
mov dword [ebp - 0x2c8], ebx
mov dword [ebp - 0x2c4], ebx
mov dword [ebp - 0x2c0], ebx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2b0]
push edi
xor eax, eax
mov dword [ebp - 0x2b0], ebx
push 0x10097f54
mov dword [ebp - 0x2a0], ebx
mov dword [ebp - 0x29c], 7
mov word [ebp - 0x2b0], ax
call fcn.10012d20
lea eax, [ebp - 0x2b0]
mov byte [ebp - 4], 5
push eax
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x278]
call fcn.1002cbf8
mov eax, dword [ebp - 0x29c]
cmp eax, 8
jb 0x1005ae0c
mov ecx, dword [ebp - 0x2b0]
lea eax, [eax*2 + 2]
mov edx, ecx
cmp eax, 0x1000
jb 0x1005ae04
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
jbe 0x1005ae04
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
mov eax, dword [ebp - 0x2c4]
mov edi, ebx
mov ecx, dword [ebp - 0x2c8]
sub eax, ecx
cdq
idiv esi
test eax, eax
je 0x1005ae54
mov esi, ebx
add ecx, esi
cmp dword [ecx + 0x14], 8
jb 0x1005ae2f
mov ecx, dword [ecx]
push ebx
call fcn.10012d20
mov ecx, dword [ebp - 0x2c8]
inc edi
push 0x18
pop eax
add esi, eax
mov eax, dword [ebp - 0x2c4]
sub eax, ecx
cdq
idiv dword [ebp - 0x2bc]
cmp edi, eax
jb 0x1005ae25
lea ecx, [ebp - 0x2c8]
call fcn.10012d20
lea ecx, [ebp - 0x278]
call fcn.1001a516
lea ecx, [ebp - 0x300]
call fcn.1002cb8f
lea ecx, [ebp - 0x338]
call fcn.1002cb8f
lea ecx, [ebp - 0x298]
call fcn.1001a516
call fcn.10012d20
test al, al
jne 0x1005aef1
lea ecx, [ebp - 0x2c8]
call fcn.10012d20
mov eax, dword [ebp - 0x2c4]
mov esi, dword [ebp - 0x2c8]
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
mov edi, eax
test edi, edi
je 0x1005aee6
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1005aec3
mov ecx, dword [esi]
call fcn.10012d20
test al, al
jne 0x1005aedc
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1005aed6
mov ecx, dword [esi]
push ebx
call fcn.10012d20
push 0x18
pop eax
add esi, eax
sub edi, 1
jne 0x1005aeb9
lea ecx, [ebp - 0x2c8]
call fcn.10012d20
mov esi, 0x100fd4b8
mov ecx, esi
call fcn.10012d20
xor ebx, ebx
test al, al
jne 0x1005af0b
push ebx
mov ecx, esi
call fcn.10012d20
mov eax, dword [0x100fc490]
mov esi, 0xac
mov ecx, dword [0x100fc48c]
mov edi, ebx
sub eax, ecx
mov dword [0x100fd774], ebx
cdq
idiv esi
mov dword [0x100fd77c], ebx
mov dword [0x100fd778], ebx
mov dword [ebp - 0x2b4], esi
test eax, eax
je 0x1005afcf
mov esi, ebx
push 1
push 1
add ecx, esi
mov dword [ebp - 0x2b8], ebx
push 1
lea edx, [ebp - 0x2b8]
call fcn.10012d20
test eax, eax
js 0x1005afac
cmp dword [0x100fd778], 0
jne 0x1005af7a
mov ecx, dword [ebp - 0x2b8]
call fcn.10012d20
mov dword [0x100fd778], eax
cmp dword [0x100fd77c], 0
jne 0x1005af93
mov ecx, dword [ebp - 0x2b8]
call fcn.10012d20
mov dword [0x100fd77c], eax
cmp dword [0x100fd774], 0
jne 0x1005afac
mov ecx, dword [ebp - 0x2b8]
call fcn.10012d20
mov dword [0x100fd774], eax
mov eax, dword [0x100fc490]
inc edi
mov ecx, dword [0x100fc48c]
add esi, 0xac
sub eax, ecx
cdq
idiv dword [ebp - 0x2b4]
cmp edi, eax
jb 0x1005af44
call fcn.1008bd84
ret