Function at 0x1000d857
Capabilities:
Get keyboard layout

Disassembly:
push 0x334
mov eax, 0x1011b1c5
call fcn.10003d4a
mov bl, cl
push 0xaa
lea eax, [ebp - 0x100]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [0x101ae398]
xor edi, edi
add esp, 0xc
inc edi
test esi, esi
jne 0x1000d8db
xor eax, eax
mov dword [0x101ae398], edi
push 0x20
lea edx, [ebp - 0x50]
mov word [ebp - 0x50], ax
mov ecx, 0x10143c70
call fcn.1003a42b
test eax, eax
jne 0x1000d8d5
mov eax, dword [ebp - 0x50]
and eax, 0xffdf
cmp ax, 0x50
jne 0x1000d8c3
push 3
pop esi
mov dword [0x101ae398], esi
jmp 0x1000d8db
mov esi, dword [0x101ae398]
cmp ax, 0x4f
push 2
pop eax
cmove esi, eax
jmp 0x1000d8bb
mov esi, dword [0x101ae398]
lea ecx, [ebp - 0x100]
call fcn.10030f22
cmp esi, edi
jne 0x1000d90e
test bl, bl
je 0x1000d8f3
call fcn.1003a42b
mov edx, str.OfficeCompleted
mov ecx, 0x10143c70
call fcn.10012b97
test eax, eax
je 0x1000d917
push 2
pop eax
mov dword [0x101ae398], eax
cmp esi, 3
je 0x1000dd0c
call dword [sym.imp.kernel32.dll_GetACP]
lea ecx, [ebp - 0x100]
mov esi, eax
call fcn.1003a42b
test al, al
je 0x1000d999
or dword [ebp - 0x2b4], 0xffffffff
lea edx, [ebp - 0x2b4]
push 1
push 1
push 1
lea ecx, [ebp - 0x100]
call fcn.1003a42b
test eax, eax
js 0x1000d97c
mov ecx, dword [ebp - 0x2b4]
lea edx, [ebp - 0x2b8]
and dword [ebp - 0x2b8], 0
call fcn.1003a42b
test eax, eax
js 0x1000d97c
test dword [ebp - 0x2b8], 0x800
je 0x1000d97c
mov al, 1
jmp 0x1000d97e
xor al, al
lea edx, [ebp - 0x100]
mov ecx, str.zh_CN
push 0x55
test al, al
jne 0x1000d994
mov ecx, str.zh_TW
call fcn.1003a42b
push 1
mov ecx, 0x101a5f58
call fcn.1003a42b
xor ebx, ebx
lea ecx, [ebp - 0x100]
push ebx
call fcn.1003a42b
cmp esi, 0x4ea
jne 0x1000d9c6
push ebx
mov ecx, str.fr_FR
call fcn.1003a42b
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 0x1000d9f4
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 0x1000da7d
push esi
push edi
call ebx
xor ebx, ebx
test edi, edi
je 0x1000da6b
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 0x1000da66
push 0
lea ecx, [ebp - 0x260]
call fcn.1003a42b
push ecx
lea edx, [ebp - 0x1b0]
lea ecx, [ebp - 0x260]
call fcn.10008c17
test eax, eax
js 0x1000da66
cmp word [ebp - 0x1b0], 0
je 0x1000da66
mov edx, 0x10141628
lea ecx, [ebp - 0x1b0]
call fcn.1003a42b
test eax, eax
je 0x1000da66
push 0
lea ecx, [ebp - 0x1b0]
call fcn.1003a42b
inc ebx
cmp ebx, edi
jb 0x1000d9fe
lea eax, [ebp - 0x280]
cmp esi, eax
je 0x1000da7d
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor edi, edi
lea edx, [ebp - 0x2b8]
inc edi
mov ecx, 0x10141990
mov dword [ebp - 0x2b8], edi
call fcn.1000f824
push 0x18
pop esi
xor ebx, ebx
mov dword [ebp - 0x2cc], esi
cmp dword [ebp - 0x2b8], edi
jne 0x1000dca6
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, 0x10141930
call fcn.1003a42b
test al, al
je 0x1000dc9b
cmp dword [ebp - 0x288], ebx
je 0x1000dc9b
cmp dword [ebp - 0x284], 8
lea eax, [ebp - 0x298]
mov edx, 0x10141960
lea ecx, [ebp - 0x340]
cmovae eax, dword [ebp - 0x298]
push eax
call fcn.1003a42b
xor eax, eax
lea edx, [ebp - 0x330]
cmp byte [ebp - 0x310], al
lea ecx, [ebp - 0x308]
push edi
cmove edx, eax
push str.AuthoringLanguagesList
call fcn.1003a42b
push 7
pop edi
xor eax, eax
mov dword [ebp - 0x278], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], edi
mov word [ebp - 0x278], ax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2f8]
cmp byte [ebp - 0x2d8], al
lea edx, [ebp - 0x278]
cmove ecx, eax
call fcn.1003a42b
test al, al
je 0x1000dc7a
mov dword [ebp - 0x2c8], ebx
mov dword [ebp - 0x2c4], ebx
mov dword [ebp - 0x2c0], ebx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2b0]
xor eax, eax
mov dword [ebp - 0x2b0], ebx
push 0x10141644
mov dword [ebp - 0x2a0], ebx
mov dword [ebp - 0x29c], edi
mov word [ebp - 0x2b0], ax
call fcn.1003a42b
lea eax, [ebp - 0x2b0]
mov byte [ebp - 4], 5
push eax
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x278]
call fcn.10008d94
mov eax, dword [ebp - 0x29c]
cmp eax, 8
jb 0x1000dc27
mov ecx, dword [ebp - 0x2b0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2b4], ecx
cmp eax, 0x1000
jb 0x1000dc1f
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.1003a42b
mov ecx, dword [ebp - 0x2b4]
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 0x1000dc6f
mov esi, ebx
add ecx, esi
cmp dword [ecx + 0x14], 8
jb 0x1000dc4a
mov ecx, dword [ecx]
push ebx
call fcn.1003a42b
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 - 0x2cc]
cmp edi, eax
jb 0x1000dc40
lea ecx, [ebp - 0x2c8]
call fcn.1003a42b
lea ecx, [ebp - 0x278]
call fcn.1000791f
lea ecx, [ebp - 0x308]
call fcn.10008fcb
lea ecx, [ebp - 0x340]
call fcn.10008fcb
lea ecx, [ebp - 0x298]
call fcn.1000791f
call fcn.1003a42b
test al, al
jne 0x1000dd0c
lea ecx, [ebp - 0x2c8]
call fcn.1003a42b
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 0x1000dd01
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1000dcde
mov ecx, dword [esi]
call fcn.1003a42b
test al, al
jne 0x1000dcf7
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1000dcf1
mov ecx, dword [esi]
push ebx
call fcn.1003a42b
push 0x18
pop eax
add esi, eax
sub edi, 1
jne 0x1000dcd4
lea ecx, [ebp - 0x2c8]
call fcn.1003a42b
mov esi, 0x101a6168
mov ecx, esi
call fcn.1003a42b
xor ebx, ebx
test al, al
jne 0x1000dd26
push ebx
mov ecx, esi
call fcn.1003a42b
mov eax, dword [0x101a6268]
mov esi, 0xac
mov ecx, dword [0x101a6264]
mov edi, ebx
sub eax, ecx
mov dword [0x101ae38c], ebx
cdq
idiv esi
mov dword [0x101ae390], ebx
mov dword [0x101ae394], ebx
mov dword [ebp - 0x2cc], esi
test eax, eax
je 0x1000ddea
mov esi, ebx
push 1
push 1
add ecx, esi
mov dword [ebp - 0x2bc], ebx
push 1
lea edx, [ebp - 0x2bc]
call fcn.1003a42b
test eax, eax
js 0x1000ddc7
cmp dword [0x101ae394], 0
jne 0x1000dd95
mov ecx, dword [ebp - 0x2bc]
call fcn.1003a42b
mov dword [0x101ae394], eax
cmp dword [0x101ae390], 0
jne 0x1000ddae
mov ecx, dword [ebp - 0x2bc]
call fcn.1003a42b
mov dword [0x101ae390], eax
cmp dword [0x101ae38c], 0
jne 0x1000ddc7
push dword [ebp - 0x2bc]
call fcn.1003a42b
mov dword [0x101ae38c], eax
mov eax, dword [0x101a6268]
inc edi
mov ecx, dword [0x101a6264]
add esi, 0xac
sub eax, ecx
cdq
idiv dword [ebp - 0x2cc]
cmp edi, eax
jb 0x1000dd5f
call fcn.1000401a
ret