Function at 0x4021a0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x4f22ec]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayoutNameA]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push 0x4cc6ec
push eax
call fcn.00401fb0
add esp, 0xc
test eax, eax
jne 0x4021ec
push str.Could_not_scan_keyboard_layout_name___falling_back_to_US_as_default_n
call fcn.004407e0
mov eax, 0x409
add esp, 4
mov dword [ebp - 0x14], eax
jmp 0x4021ef
mov eax, dword [ebp - 0x14]
push eax
push str.Windows_KBID_0x_08x_n
call fcn.004407e0
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
add esp, 8
xor esi, esi
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x402
ja 0x402230
je case.0x4023b3.132098
lea eax, [ecx - 1]
cmp eax, 0x43
ja case.0x4023b3.132099
movzx eax, byte [eax + 0x402988]
jmp dword [eax*4 + 0x4028d0]
cmp ecx, 0x804
ja 0x40225b
je case.0x402254.1028
lea eax, [ecx - 0x404]
cmp eax, 0x6a
ja case.0x4023b3.132099
movzx eax, byte [eax + 0x402a7c]
jmp dword [eax*4 + 0x4029cc]
cmp ecx, 0xc04
ja 0x402286
je case.0x402254.1028
lea eax, [ecx - 0x807]
cmp eax, 0x3c
ja case.0x4023b3.132099
movzx eax, byte [eax + 0x402b14]
jmp dword [eax*4 + 0x402ae8]
cmp ecx, 0x10401
ja 0x40231d
je case.0x402229.1
cmp ecx, 0x100c
ja 0x4022fc
je 0x402684
cmp ecx, 0x1004
ja 0x4022db
je case.0x402254.1028
mov eax, ecx
sub eax, 0xc0c
je 0x4022e7
sub eax, 0xe
jne case.0x4023b3.132099
mov eax, 0x4cbd40
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
cmp ecx, 0x1009
jne case.0x4023b3.132099
mov eax, 0x4cbcd4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
cmp ecx, 0x1404
je case.0x402254.1028
cmp ecx, 0x1809
je case.0x40227f.2057
cmp ecx, 0x201a
je 0x4022c6
jmp case.0x4023b3.132099
cmp ecx, 0x1080c
ja 0x402348
je case.0x40227f.2060
lea eax, [ecx - 0x10402]
cmp eax, 0x39
ja case.0x4023b3.132099
movzx eax, byte [eax + 0x402bac]
jmp dword [eax*4 + 0x402b54]
cmp ecx, 0x20427
ja 0x4023ba
je case.0x402341.66599
cmp ecx, 0x20401
ja 0x40239d
je case.0x402229.1
cmp ecx, 0x1083b
je case.0x402254.1035
cmp ecx, 0x11009
je 0x4022e7
cmp ecx, 0x11809
jne case.0x4023b3.132099
mov eax, 0x4cbd1c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
lea eax, [ecx - 0x20402]
cmp eax, 0x20
ja case.0x4023b3.132099
movzx eax, byte [eax + 0x402c04]
jmp dword [eax*4 + 0x402be8]
cmp ecx, 0x40408
ja 0x402415
je case.0x4023b3.132104
cmp ecx, 0x30408
ja 0x4023ff
je case.0x4023b3.132104
cmp ecx, 0x20437
je case.0x402341.66615
cmp ecx, 0x30402
jne case.0x4023b3.132099
mov eax, 0x4cbd28
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
cmp ecx, 0x30409
je 0x402891
cmp ecx, 0x40402
je case.0x4023b3.132098
jmp case.0x4023b3.132099
cmp ecx, 0x50409
ja 0x402433
je case.0x4023b3.132105
cmp ecx, 0x40409
je 0x4028a6
cmp ecx, 0x50408
jmp 0x402439
cmp ecx, 0x60408
je case.0x4023b3.132104
test esi, esi
jne 0x402452
and ecx, 0x3ff
inc esi
mov dword [ebp - 0x14], ecx
jmp 0x402208
cmp esi, 1
jne 0x402475
call edi
and eax, 0x3ff
push eax
push str.Unable_to_match_KBID__trying_LangID_0x_04x_n
mov dword [ebp - 0x14], eax
call fcn.004407e0
add esp, 8
inc esi
jmp 0x402205
inc esi
cmp esi, 3
jl 0x402208
push str.Unable_to_match_KBID_and_LangID___defaulting_to_US_n
call fcn.004407e0
add esp, 4
mov eax, 0x4cbd20
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcdc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbce0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd88
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd30
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd60
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbdb0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd44
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd50
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbdb4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbdc0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd80
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd90
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd94
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbdb8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd78
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd08
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcf0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcf4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd00
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd24
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd18
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd7c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbdbc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd04
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbe3c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbce4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd5c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd10
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbce8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcec
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcf8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcfc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcd0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd38
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd0c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd3c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd9c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd84
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbda0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbda8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbccc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd14
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd4c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbcd8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd34
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd48
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd98
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd8c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd64
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov eax, 0x4cbd68
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00491940
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0x4cbd2c
pop edi
xor ecx, ebp
pop esi
call fcn.00491940
mov esp, ebp
pop ebp
ret