Function at 0x401fd9
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x4d8300]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayoutNameA]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push 0x4b2f48
push eax
call fcn.00401e49
add esp, 0xc
test eax, eax
jne 0x402021
push str.Could_not_scan_keyboard_layout_name___falling_back_to_US_as_default_n
call fcn.0042ed57
mov eax, 0x409
pop ecx
mov dword [ebp - 0x14], eax
jmp 0x402024
mov eax, dword [ebp - 0x14]
push ebx
push esi
push eax
push str.Windows_KBID_0x_08x_n
call fcn.0042ed57
xor esi, esi
mov ebx, 0x402
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, ebx
ja 0x402061
je case.0x40205a.2
lea eax, [ecx - 1]
cmp eax, 0x43
ja case.0x402085.1042
movzx eax, byte [eax + 0x402649]
jmp dword [eax*4 + 0x402591]
cmp ecx, 0x452
ja 0x40208c
je 0x4020f7
lea eax, [ecx - 0x404]
cmp eax, 0x40
ja case.0x402085.1042
movzx eax, byte [eax + 0x402739]
jmp dword [eax*4 + 0x40268d]
cmp ecx, 0x10418
ja 0x402224
je case.0x402085.1048
cmp ecx, 0x1009
ja 0x402177
je 0x40253c
cmp ecx, 0x81a
ja 0x40212a
je case.0x402085.1050
cmp ecx, 0x80a
ja 0x402101
je 0x402485
mov eax, ecx
sub eax, 0x46e
je case.0x402085.1036
sub eax, 0x396
je case.0x402085.1028
sub eax, 3
je 0x402471
dec eax
sub eax, 1
jne case.0x402085.1042
mov eax, 0x4b254c
jmp 0x402580
mov eax, ecx
sub eax, 0x80c
je 0x40254a
sub eax, 7
je case.0x402085.1043
sub eax, 3
jne case.0x402085.1042
mov eax, 0x4b2530
jmp 0x402580
mov eax, ecx
sub eax, 0x82c
je case.0x402085.1068
sub eax, 0xf
je case.0x402085.1053
sub eax, 8
je case.0x40205a.67
sub eax, 0x3c1
je case.0x402085.1028
sub eax, 8
je 0x40253c
sub eax, 0xe
je 0x4024c1
sub eax, 0x3ea
jne case.0x402085.1042
mov eax, 0x4b266c
jmp 0x402580
cmp ecx, 0x10407
ja 0x4021d6
je case.0x402085.1031
mov eax, ecx
sub eax, 0x100c
je 0x4024cb
sub eax, 0x3f8
je case.0x402085.1028
sub eax, 0x405
je 0x4020f7
sub eax, 0x811
je 0x4024c1
sub eax, 0xe3e7
je case.0x40205a.1
sub eax, 1
je case.0x40205a.2
sub eax, 3
jne case.0x402085.1042
mov eax, 0x4b2508
jmp 0x402580
mov eax, ecx
sub eax, 0x10408
je case.0x402085.1032
sub eax, 1
je 0x402504
sub eax, 1
je case.0x402085.1034
sub eax, 4
je case.0x402085.1038
dec eax
sub eax, 1
je case.0x402085.1040
sub eax, 5
je case.0x402085.1045
sub eax, 1
jne case.0x402085.1042
mov eax, 0x4b2500
jmp 0x402580
cmp ecx, 0x20405
ja 0x4022ff
je case.0x402085.1029
cmp ecx, 0x1043a
ja 0x4022aa
je case.0x402085.1082
cmp ecx, 0x10427
ja 0x402281
je case.0x402085.1063
mov eax, ecx
sub eax, 0x10419
je case.0x402085.1049
dec eax
sub eax, 1
je case.0x402085.1051
sub eax, 4
je case.0x402085.1055
sub eax, 7
jne case.0x402085.1042
mov eax, 0x4b25cc
jmp 0x402580
mov eax, ecx
sub eax, 0x1042b
je case.0x402085.1067
sub eax, 4
je case.0x402085.1071
sub eax, 8
jne case.0x402085.1042
mov eax, 0x4b25bc
jmp 0x402580
mov eax, ecx
sub eax, 0x1043b
je case.0x402085.1044
sub eax, 0x3d1
je 0x40254a
sub eax, 0x2f
je case.0x402085.1035
sub eax, 0x7ce
je 0x40253c
sub eax, 0x800
je 0x4020f7
sub eax, 0xebf8
je case.0x40205a.1
sub eax, 1
jne case.0x402085.1042
mov eax, 0x4b2558
jmp 0x402580
cmp ecx, 0x30408
ja 0x40234e
je case.0x402085.1032
mov eax, ecx
sub eax, 0x20408
je case.0x402085.1032
sub eax, 1
je case.0x402085.1033
sub eax, 0xf
je case.0x402085.1048
sub eax, 0xa
je case.0x402085.1058
sub eax, 5
je case.0x402085.1063
sub eax, 0x10
je case.0x402085.1079
sub eax, 0xffcb
jmp 0x4022ef
mov eax, ecx
sub eax, 0x30409
je 0x40257b
sub eax, 0xfff9
je case.0x40205a.2
sub eax, 6
je case.0x402085.1032
sub eax, 1
je 0x40256d
sub eax, 0xffff
je case.0x402085.1032
sub eax, 1
je case.0x402085.1033
sub eax, 0xffff
je case.0x402085.1032
test esi, esi
jne 0x4023a2
and ecx, 0x3ff
inc esi
mov dword [ebp - 0x14], ecx
jmp 0x40203d
cmp esi, 1
jne 0x4023c6
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
and eax, 0x3ff
push eax
push str.Unable_to_match_KBID__trying_LangID_0x_04x_n
mov dword [ebp - 0x14], eax
call fcn.0042ed57
inc esi
jmp 0x402038
inc esi
cmp esi, 3
jl 0x40203d
push str.Unable_to_match_KBID_and_LangID___defaulting_to_US_n
call fcn.0042ed57
pop ecx
mov eax, 0x4b2550
jmp 0x402580
mov eax, 0x4b250c
jmp 0x402580
mov eax, 0x4b25b8
jmp 0x402580
mov eax, 0x4b2560
jmp 0x402580
mov eax, 0x4b2590
jmp 0x402580
mov eax, 0x4b25e0
jmp 0x402580
mov eax, 0x4b2574
jmp 0x402580
mov eax, 0x4b2580
jmp 0x402580
mov eax, 0x4b25e4
jmp 0x402580
mov eax, 0x4b25f0
jmp 0x402580
mov eax, 0x4b25b0
jmp 0x402580
mov eax, 0x4b25c0
jmp 0x402580
mov eax, 0x4b25c4
jmp 0x402580
mov eax, 0x4b25e8
jmp 0x402580
mov eax, 0x4b25a8
jmp 0x402580
mov eax, 0x4b2538
jmp 0x402580
mov eax, 0x4b2510
jmp 0x402580
mov eax, 0x4b2520
jmp 0x402580
mov eax, 0x4b2524
jmp 0x402580
mov eax, 0x4b2554
jmp 0x402580
mov eax, 0x4b25ec
jmp 0x402580
mov eax, 0x4b2548
jmp 0x402580
mov eax, 0x4b25ac
jmp 0x402580
mov eax, 0x4b2570
jmp 0x402580
mov eax, 0x4b2534
jmp 0x402580
mov eax, 0x4b2514
jmp 0x402580
mov eax, 0x4b252c
jmp 0x402580
mov eax, 0x4b251c
jmp 0x402580
mov eax, 0x4b2518
jmp 0x402580
mov eax, 0x4b2540
jmp 0x402580
mov eax, 0x4b258c
jmp 0x402580
mov eax, 0x4b256c
jmp 0x402580
mov eax, 0x4b253c
jmp 0x402580
mov eax, 0x4b2568
jmp 0x402580
mov eax, 0x4b25d0
jmp 0x402580
mov eax, 0x4b25b4
jmp 0x402580
mov eax, 0x4b25d8
jmp 0x402580
mov eax, 0x4b257c
jmp 0x402580
mov eax, 0x4b2504
jmp 0x402580
mov eax, 0x4b2544
jmp 0x402580
mov eax, 0x4b24fc
jmp 0x402580
mov eax, 0x4b2528
jmp 0x402580
mov eax, 0x4b25c8
jmp 0x402580
mov eax, 0x4b2578
jmp 0x402580
mov eax, 0x4b2564
jmp 0x402580
mov eax, 0x4b2598
jmp 0x402580
mov eax, 0x4b255c
jmp 0x402580
mov eax, 0x4b2594
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00475c80
leave
ret