Function at 0x43dcb0
Capabilities:
Get keyboard layout

Disassembly:
mov eax, 0x80d4
call fcn.004badd0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x80e8]
mov ebp, ecx
mov esi, edi
cmp word [edi], 0
je case.0x43dcf8.34
movzx eax, word [edi + 2]
mov ecx, eax
test ax, ax
je case.0x43dcf8.34
nop word [eax + eax]
cmp ax, 0x20
je case.0x43dcf8.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43dcf8.34
movzx eax, byte [eax + 0x43e1a4]
jmp dword [eax*4 + 0x43e19c]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43dce0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041cdb0
add esp, 0xc
mov bl, al
push 0x4d92bc
push esi
call fcn.004a2a2e
lea ecx, [ebx - 1]
mov dword [esp + 0x1c], eax
add esp, 8
cmp cl, 5
ja 0x43dd44
cmp bl, 3
jne 0x43dd4c
mov al, bl
add al, 0x66
cmp al, 5
ja 0x43dd50
mov cl, 1
jmp 0x43dd52
xor cl, cl
mov bh, byte [esp + 0x80ec]
mov al, bh
dec al
cmp al, 5
ja 0x43dd66
cmp bh, 3
jne 0x43dd6e
mov al, bh
add al, 0x66
cmp al, 5
ja 0x43dd72
mov al, 1
jmp 0x43dd74
xor al, al
mov byte [esp + 0x11], al
test cl, cl
jne 0x43dd85
mov byte [esp + 0x12], 1
test al, al
jne 0x43dd8a
mov byte [esp + 0x12], 0
cmp bl, 0x9c
jb 0x43dd94
cmp bl, 0x9f
jbe 0x43dd9c
mov al, bh
add al, 0x64
cmp al, 3
ja 0x43dda3
mov byte [esp + 0x10], 1
jmp 0x43dda8
mov byte [esp + 0x10], 0
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ddb0
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43ddd7
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4dc654
jne 0x43dddc
mov eax, 0x4d3ee8
cmp dword [esp + 0x14], 0
mov ecx, 0x4d7c6c
push edi
push eax
mov eax, 0x4d3ee8
cmove eax, ecx
push eax
push 0x4daa78
lea eax, [esp + 0x80]
push 0x20
push eax
call fcn.004868c0
mov esi, dword [esp + 0x8108]
add esp, 0x18
movzx eax, word [esi]
cmp eax, 0x22
je 0x43de35
cmp eax, 0x60
je 0x43de35
push 0x1f
lea eax, [esp + 0x34]
push esi
push eax
call fcn.004afab4
add esp, 0xc
xor eax, eax
mov word [esp + 0x6e], ax
jmp 0x43de4b
mov word [esp + 0x32], ax
mov ecx, 0x60
xor eax, eax
mov word [esp + 0x30], cx
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x80f4]
mov ecx, 8
sub esi, eax
sar esi, 1
inc esi
cmp esi, ecx
cmova esi, ecx
dec esi
push esi
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004afab4
xor eax, eax
add esp, 0xc
mov word [esp + esi*2 + 0x20], ax
cmp bh, 0x13
jne 0x43deac
cmp word [esp + 0x20], ax
jne 0x43deac
lea eax, [esp + 0x30]
push str.Pause
push eax
call fcn.004a44b1
add esp, 8
test eax, eax
jne 0x43deac
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80d4
ret 0x10
mov eax, dword [ebp + 0x3c]
mov ecx, ebp
test eax, eax
je 0x43decd
push eax
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
call fcn.0040da20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80d4
ret 0x10
push 0
push 0
push str._Hotkey__ThisHotkey_
call fcn.00444160
test eax, eax
je 0x43df14
mov eax, dword [0x4ea828]
mov esi, dword [eax + 0x18]
test esi, esi
je 0x43df14
lea eax, [esp + 0x13]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x74]
call fcn.004160c0
add esp, 4
push dword [esp + 0x18]
test eax, eax
je 0x43df23
push esi
mov ecx, eax
call fcn.00415750
test eax, eax
jne 0x43df38
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80d4
ret 0x10
lea eax, [esp + 0x74]
xor edx, edx
push eax
mov ecx, esi
call fcn.00414e30
add esp, 8
test eax, eax
je 0x43df14
cmp byte [esp + 0x11], 0
mov ecx, str.SetKeyDelay
mov eax, str.SetMouseDelay
cmove eax, ecx
push eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0xdc]
push 0x4dc658
push eax
call fcn.00406800
lea ebx, [esp + 0xe4]
add esp, 0xc
cmp byte [esp + 0x12], 0
lea ebx, [ebx + eax*2]
mov dword [esp + 0x14], ebx
je 0x43df9a
cmp byte [esp + 0x10], 0
jne 0x43df9a
lea eax, [esp + 0x30]
push eax
push str._GetKeyState___s__
push ebx
call fcn.00406800
add esp, 0xc
lea ebx, [ebx + eax*2]
mov dword [esp + 0x14], ebx
movzx ecx, word [0x4ef17c]
lea edi, [esp + 0xb4]
mov eax, dword [0x4ef16c]
mov ebx, 1
mov esi, 0x4d9722
mov eax, dword [eax + ecx*4 - 4]
mov dword [esp + 0x18], eax
nop
test byte [eax + 0xf], bl
je 0x43dfef
movzx eax, word [esi]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.004a203f
add esp, 8
test eax, eax
jne 0x43dfeb
movzx eax, word [esi - 2]
mov word [edi], ax
movzx eax, word [esi]
mov word [edi + 2], ax
add edi, 4
mov eax, dword [esp + 0x18]
add esi, 4
rol ebx, 1
cmp esi, 0x4d9742
jl 0x43dfc0
mov bl, byte [esp + 0x10]
xor eax, eax
mov word [edi], ax
mov ecx, str._DownR
test bl, bl
mov eax, 0x4d3ee8
cmove eax, ecx
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x28]
push eax
push 0x4d3ee8
lea eax, [esp + 0xc4]
push eax
push str.Send__Blind_s_s_s_s_s__
push dword [esp + 0x2c]
call fcn.00406800
add esp, 0x1c
mov ecx, ebp
push 0
push 0
push 0
push 3
call fcn.00442930
test eax, eax
je 0x43df14
push 0
lea eax, [esp + 0xdc]
mov ecx, ebp
push eax
call fcn.00440670
test eax, eax
je 0x43df14
push 0
push 0
push 0
push 4
mov ecx, ebp
call fcn.00442930
test eax, eax
je 0x43df14
test bl, bl
jne 0x43e188
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0xdc]
push str._s_up
push eax
call fcn.00406800
add esp, 0xc
mov ecx, ebp
push 0
push 0
push str._Hotkey__ThisHotkey_
call fcn.00444160
test eax, eax
je 0x43df14
mov eax, dword [0x4ea828]
mov esi, dword [eax + 0x18]
test esi, esi
je 0x43df14
lea eax, [esp + 0x13]
push eax
lea edx, [esp + 0x18]
lea ecx, [esp + 0xdc]
call fcn.004160c0
add esp, 4
push dword [esp + 0x14]
test eax, eax
je 0x43e107
push esi
mov ecx, eax
call fcn.00415750
test eax, eax
jne 0x43e123
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80d4
ret 0x10
lea eax, [esp + 0xdc]
xor edx, edx
push eax
mov ecx, esi
call fcn.00414e30
add esp, 8
test eax, eax
je 0x43df14
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0xe0]
push str._s__1__Send__Blind_s_Up___n
push eax
call fcn.00406800
add esp, 0x10
mov ecx, ebp
push 0
push 0
push 0
push 3
call fcn.00442930
test eax, eax
je 0x43df14
push 0
lea eax, [esp + 0xdc]
mov ecx, ebp
push eax
call fcn.00440670
test eax, eax
je 0x43df14
push 0
push 0
push 0
push 4
mov ecx, ebp
call fcn.00442930
test eax, eax
je 0x43df14
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x80d4
ret 0x10