Function at 0x403680
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x5512ec]
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 0x528d8c
push eax
call fcn.00403450
add esp, 0xc
test eax, eax
jne 0x4036cc
push str.Could_not_scan_keyboard_layout_name___falling_back_to_US_as_default_n
call fcn.0044b0b0
mov eax, 0x409
add esp, 4
mov dword [ebp - 0x14], eax
jmp 0x4036cf
mov eax, dword [ebp - 0x14]
push eax
push str.Windows_KBID_0x_08x_n
call fcn.0044b0b0
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
add esp, 8
xor esi, esi
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x402
ja 0x403710
je case.0x403893.132098
lea eax, [ecx - 1]
cmp eax, 0x43
ja case.0x403893.132099
movzx eax, byte [eax + 0x403e68]
jmp dword [eax*4 + 0x403db0]
cmp ecx, 0x804
ja 0x40373b
je case.0x403734.1028
lea eax, [ecx - 0x404]
cmp eax, 0x6a
ja case.0x403893.132099
movzx eax, byte [eax + 0x403f5c]
jmp dword [eax*4 + 0x403eac]
cmp ecx, 0xc04
ja 0x403766
je case.0x403734.1028
lea eax, [ecx - 0x807]
cmp eax, 0x3c
ja case.0x403893.132099
movzx eax, byte [eax + 0x403ff4]
jmp dword [eax*4 + 0x403fc8]
cmp ecx, 0x10401
ja 0x4037fd
je case.0x403709.1
cmp ecx, 0x100c
ja 0x4037dc
je 0x403b64
cmp ecx, 0x1004
ja 0x4037bb
je case.0x403734.1028
mov eax, ecx
sub eax, 0xc0c
je 0x4037c7
sub eax, 0xe
jne case.0x403893.132099
mov eax, 0x528410
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
cmp ecx, 0x1009
jne case.0x403893.132099
mov eax, 0x5283a4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
cmp ecx, 0x1404
je case.0x403734.1028
cmp ecx, 0x1809
je case.0x40375f.2057
cmp ecx, 0x201a
je 0x4037a6
jmp case.0x403893.132099
cmp ecx, 0x1080c
ja 0x403828
je case.0x40375f.2060
lea eax, [ecx - 0x10402]
cmp eax, 0x39
ja case.0x403893.132099
movzx eax, byte [eax + 0x40408c]
jmp dword [eax*4 + 0x404034]
cmp ecx, 0x20427
ja 0x40389a
je case.0x403821.66599
cmp ecx, 0x20401
ja 0x40387d
je case.0x403709.1
cmp ecx, 0x1083b
je case.0x403734.1035
cmp ecx, 0x11009
je 0x4037c7
cmp ecx, 0x11809
jne case.0x403893.132099
mov eax, 0x5283ec
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
lea eax, [ecx - 0x20402]
cmp eax, 0x20
ja case.0x403893.132099
movzx eax, byte [eax + 0x4040e4]
jmp dword [eax*4 + 0x4040c8]
cmp ecx, 0x40408
ja 0x4038f5
je case.0x403893.132104
cmp ecx, 0x30408
ja 0x4038df
je case.0x403893.132104
cmp ecx, 0x20437
je case.0x403821.66615
cmp ecx, 0x30402
jne case.0x403893.132099
mov eax, 0x5283f8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
cmp ecx, 0x30409
je 0x403d71
cmp ecx, 0x40402
je case.0x403893.132098
jmp case.0x403893.132099
cmp ecx, 0x50409
ja 0x403913
je case.0x403893.132105
cmp ecx, 0x40409
je 0x403d86
cmp ecx, 0x50408
jmp 0x403919
cmp ecx, 0x60408
je case.0x403893.132104
test esi, esi
jne 0x403932
and ecx, 0x3ff
inc esi
mov dword [ebp - 0x14], ecx
jmp 0x4036e8
cmp esi, 1
jne 0x403955
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.0044b0b0
add esp, 8
inc esi
jmp 0x4036e5
inc esi
cmp esi, 3
jl 0x4036e8
push str.Unable_to_match_KBID_and_LangID___defaulting_to_US_n
call fcn.0044b0b0
add esp, 4
mov eax, 0x5283f0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283ac
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283b0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528458
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528400
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528430
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528480
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528414
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528420
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528484
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528490
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528450
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528460
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528464
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528488
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528448
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283d8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283c0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283c4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283d0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283f4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283e8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52844c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52848c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283d4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52850c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283b4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52842c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283e0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283b8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283bc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283c8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283cc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283a0
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528408
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283dc
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52840c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52846c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528454
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528470
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528478
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52839c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283e4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52841c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x5283a8
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528404
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528418
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528468
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x52845c
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528434
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov eax, 0x528438
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8b60
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0x5283fc
pop edi
xor ecx, ebp
pop esi
call fcn.004a8b60
mov esp, ebp
pop ebp
ret