Function at 0x1000c290
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x274
mov eax, dword [0x1020f334]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0xaa
lea eax, [ebp - 0xf8]
mov bl, cl
push 0
push eax
call sub.VCRUNTIME140.dll_memset
and dword [ebp - 0x25c], 0
xor edi, edi
mov esi, dword [0x102190ec]
add esp, 0xc
inc edi
test esi, esi
jne 0x1000c31c
push 0x20
lea edx, [ebp - 0x48]
mov dword [0x102190ec], edi
mov ecx, 0x101b0d80
call fcn.1002d36f
test eax, eax
jne 0x1000c316
mov eax, dword [ebp - 0x48]
and eax, 0xffdf
cmp ax, 0x50
jne 0x1000c304
push 3
pop esi
mov dword [0x102190ec], esi
jmp 0x1000c31c
mov esi, dword [0x102190ec]
cmp ax, 0x4f
push 2
pop eax
cmove esi, eax
jmp 0x1000c2fc
mov esi, dword [0x102190ec]
lea ecx, [ebp - 0xf8]
call fcn.1002f675
cmp esi, edi
jne 0x1000c34f
test bl, bl
je 0x1000c334
call fcn.1000c611
mov edx, str.OfficeCompleted
mov ecx, 0x101b0d80
call fcn.1002d4f4
test eax, eax
je 0x1000c358
push 2
pop eax
mov dword [0x102190ec], eax
cmp esi, 3
je 0x1000c521
call dword [sym.imp.KERNEL32.dll_GetACP]
lea ecx, [ebp - 0xf8]
mov esi, eax
call fcn.1001cbde
test al, al
je 0x1000c3da
or dword [ebp - 0x264], 0xffffffff
lea edx, [ebp - 0x264]
push 1
push 1
push 1
lea ecx, [ebp - 0xf8]
call fcn.10020c68
test eax, eax
js 0x1000c3bd
mov ecx, dword [ebp - 0x264]
lea edx, [ebp - 0x260]
and dword [ebp - 0x260], 0
call fcn.100071a8
test eax, eax
js 0x1000c3bd
test dword [ebp - 0x260], 0x800
je 0x1000c3bd
mov al, 1
jmp 0x1000c3bf
xor al, al
lea edx, [ebp - 0xf8]
mov ecx, str.zh_CN
push 0x55
test al, al
jne 0x1000c3d5
mov ecx, str.zh_TW
call fcn.10008124
push 1
mov ecx, 0x102150b0
call fcn.1000e331
pop ecx
xor ebx, ebx
lea ecx, [ebp - 0xf8]
push ebx
call fcn.1000e331
pop ecx
cmp esi, 0x4ea
jne 0x1000c40a
push ebx
mov ecx, str.fr_FR
call fcn.1000e331
pop ecx
push ebx
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
lea esi, [ebp - 0x28]
call ebx
mov edi, eax
cmp edi, 8
jbe 0x1000c435
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 0x1000c4bc
push esi
push edi
call ebx
xor ebx, ebx
test edi, edi
je 0x1000c4ad
movzx eax, word [esi + ebx*4]
lea ecx, [ebp - 0x258]
push 0
push 0x55
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_LCIDToLocaleName]
test eax, eax
je 0x1000c4a8
push 0
lea ecx, [ebp - 0x258]
call fcn.1000e331
lea edx, [ebp - 0x1a8]
lea ecx, [ebp - 0x258]
call fcn.10009497
pop ecx
test eax, eax
js 0x1000c4a8
cmp word [ebp - 0x1a8], 0
je 0x1000c4a8
mov edx, 0x1019724c
lea ecx, [ebp - 0x1a8]
call fcn.1001174f
test eax, eax
je 0x1000c4a8
push 0
lea ecx, [ebp - 0x1a8]
call fcn.1000e331
pop ecx
inc ebx
cmp ebx, edi
jb 0x1000c43f
lea eax, [ebp - 0x28]
cmp esi, eax
je 0x1000c4bc
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
call fcn.10009992
test al, al
jne 0x1000c521
lea ecx, [ebp - 0x270]
call fcn.1000b62c
mov eax, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x270]
sub eax, esi
push 0x18
cdq
pop ebx
idiv ebx
mov edi, eax
test edi, edi
je 0x1000c516
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1000c4f4
mov ecx, dword [esi]
call fcn.10009c01
test al, al
jne 0x1000c50f
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x1000c507
mov ecx, dword [esi]
push 0
call fcn.1000e331
pop ecx
add esi, ebx
sub edi, 1
jne 0x1000c4ea
lea ecx, [ebp - 0x270]
call fcn.100095ad
mov esi, 0x102152c0
mov ecx, esi
call fcn.10009c01
xor ebx, ebx
test al, al
jne 0x1000c53c
push ebx
mov ecx, esi
call fcn.1000e331
pop ecx
mov eax, dword [0x102153d4]
mov esi, 0xac
mov ecx, dword [0x102153d0]
mov edi, ebx
sub eax, ecx
mov dword [0x102190e0], ebx
cdq
idiv esi
mov dword [0x102190e4], ebx
mov dword [0x102190e8], ebx
mov dword [ebp - 0x260], esi
test eax, eax
je 0x1000c600
mov esi, ebx
push 1
push 1
add ecx, esi
mov dword [ebp - 0x25c], ebx
push 1
lea edx, [ebp - 0x25c]
call fcn.10020c68
test eax, eax
js 0x1000c5dd
cmp dword [0x102190e8], 0
jne 0x1000c5ab
mov ecx, dword [ebp - 0x25c]
call fcn.1000996b
mov dword [0x102190e8], eax
cmp dword [0x102190e4], 0
jne 0x1000c5c4
mov ecx, dword [ebp - 0x25c]
call fcn.100080fd
mov dword [0x102190e4], eax
cmp dword [0x102190e0], 0
jne 0x1000c5dd
push dword [ebp - 0x25c]
call fcn.1000717b
mov dword [0x102190e0], eax
mov eax, dword [0x102153d4]
inc edi
mov ecx, dword [0x102153d0]
add esi, 0xac
sub eax, ecx
cdq
idiv dword [ebp - 0x260]
cmp edi, eax
jb 0x1000c575
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100042bb
mov esp, ebp
pop ebp
ret