Function at 0x41aa20
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push esi
mov si, word [0x4c6968]
xor edx, edx
push edi
lea ebx, [esp + 0x18]
mov eax, ebp
mov dword [esp + 0x18], 0x90020
mov word [esp + 0x1c], si
mov word [esp + 0x1e], dx
call fcn.00409770
xor ebx, ebx
cmp eax, ebx
jne 0x41aa75
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41aa60
sub eax, edx
sar eax, 1
lea eax, [ebp + eax*2]
jmp 0x41aabd
mov edx, eax
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x41aa84
cmp ecx, 9
jne 0x41aa89
add edx, 2
jmp 0x41aa77
movzx ecx, word [edx]
cmp cx, bx
je 0x41aabd
cmp cx, si
je 0x41aa9a
mov esi, edx
jmp 0x41aabf
lea ecx, [edx + 2]
lea ecx, [ecx]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x41aaad
cmp edx, 9
jne 0x41aab2
add ecx, 2
jmp 0x41aaa0
mov esi, ecx
mov dword [esp + 0x2c], esi
cmp word [ecx], bx
jne 0x41aac3
xor esi, esi
mov dword [esp + 0x2c], esi
sub eax, ebp
sar eax, 1
mov edi, eax
push 0xffffffffffffffff
push edi
mov eax, 0x4a8c4c
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
je 0x41bae3
push 0xffffffffffffffff
push edi
mov eax, 0x4a8c60
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
je 0x41bae3
push 0xffffffffffffffff
push edi
mov eax, 0x4a8c7c
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ab2c
mov dword [0x4ca6cc], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8c8c
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ab58
mov byte [0x4ca6a3], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8ca4
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ab84
mov byte [0x4ca6a2], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8cbc
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ac35
mov dword [0x4ca6b8], 1
cmp esi, ebx
je 0x41bae3
push 0x4a8cdc
push esi
call fcn.0048f769
add esp, 8
test eax, eax
jne 0x41abdb
mov dword [0x4ca6b8], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x4a8ce8
push esi
call fcn.0048f769
add esp, 8
test eax, eax
jne 0x41ac06
mov dword [0x4ca6b8], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x4a6288
push esi
call fcn.0048f769
add esp, 8
test eax, eax
jne 0x41bae3
mov dword [0x4ca6b8], 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8cf8
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ac61
or byte [0x4cada9], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8d1c
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ac8d
or byte [0x4cada9], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8d40
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41acd9
cmp esi, ebx
je 0x41acc3
mov esi, dword [esp + 0x2c]
push ebx
call fcn.00409860
add esp, 4
mov byte [0x4cad75], bl
cmp eax, 2
je 0x41bae3
mov byte [0x4cad75], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a45f8
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ada6
cmp esi, ebx
jne 0x41ad0c
mov dword [0x4ca6e4], ebx
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov edi, esi
call fcn.00409f10
mov dword [0x4ca6e4], eax
cmp eax, ebx
jne 0x41bae3
mov eax, dword [0x4c6a44]
mov edi, dword [eax + 0xb4]
mov ecx, dword [esp + 0x28]
push ebx
push ebx
push ebx
push 0x4a3920
push ebx
push 0xe3
mov dword [eax + 0xb4], ebx
push esi
mov byte [ecx + 0x49], 1
call fcn.0041c1d0
test eax, eax
jne 0x41ad5d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov eax, dword [esp + 0x28]
mov ecx, dword [0x4c6a44]
mov byte [eax + 0x49], bl
mov dword [ecx + 0xb4], edi
mov esi, dword [eax + 4]
call fcn.00409e90
mov dword [0x4ca6e4], eax
cmp eax, ebx
je 0x41ad51
mov byte [eax], 5
mov dword [eax + 0xc], esi
mov edx, dword [esi + 8]
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x4a3920
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8d54
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41ade1
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.00414b80
mov dword [0x4c6964], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 6
push 0x4a8d6c
push ebp
call fcn.0048ffb7
add esp, 0xc
test eax, eax
jne 0x41b11b
push 3
lea edx, [ebp + 0xc]
push 0x4a6424
push edx
call fcn.0048ffb7
add esp, 0xc
test eax, eax
sete bl
movzx eax, bl
neg eax
sbb eax, eax
and eax, 3
push 6
lea edi, [ebp + eax*2 + 0xc]
push 0x4a642c
push edi
call fcn.0048ffb7
add esp, 0xc
test eax, eax
jne 0x41ae40
test bl, bl
setne cl
inc cl
mov byte [esp + 0x18], cl
jmp 0x41ae64
push 5
push 0x4a6270
push edi
call fcn.0048ffb7
add esp, 0xc
test eax, eax
jne 0x41b10c
test bl, bl
setne dl
add dl, 3
mov byte [esp + 0x18], dl
xor edi, edi
cmp esi, edi
jne 0x41ae7d
mov dword [0x4ca6e4], edi
lea eax, [edi + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov dx, word [0x4c6968]
mov bx, word [0x4c6970]
mov ecx, esi
mov si, word [0x4c696c]
movzx eax, word [ecx]
test ax, ax
je 0x41aec7
lea esp, [esp]
cmp ax, bx
je 0x41af7d
cmp ax, dx
je 0x41af7d
cmp ax, si
je 0x41af7d
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41aea0
test edi, edi
je 0x41b065
lea eax, [edi + 2]
call fcn.004097c0
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
xor eax, eax
mov word [edi], ax
mov eax, edi
sub eax, ebp
sar eax, 1
mov esi, ebp
call fcn.00414ab0
mov ecx, dword [esp + 0x14]
movzx esi, bx
movzx eax, word [ecx]
test ax, ax
je 0x41af15
cmp ax, si
je 0x41afcf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41af00
mov bx, word [0x4c6970]
movzx esi, bx
mov ecx, ebp
movzx eax, word [ecx]
test ax, ax
je 0x41af45
lea esp, [esp]
cmp ax, si
je 0x41b076
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41af30
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push ebp
push edx
call fcn.00409c30
add esp, 0xc
test eax, eax
jne 0x41bae3
mov ecx, dword [esp + 0x28]
push 0x4a3920
push 0x4a6630
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
movzx eax, word [ecx]
test ax, ax
je 0x41aec7
cmp ax, si
je 0x41afb6
cmp ax, dx
jne 0x41afa1
test edi, edi
jne 0x41afb6
mov edi, ecx
add ecx, 2
jmp 0x41ae94
add ecx, 2
cmp word [ecx], 0
je 0x41aec7
add ecx, 2
jmp 0x41ae94
mov ecx, dword [esp + 0x28]
push ebp
push 0x4a8d80
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp word [ecx], 0
je 0x41af15
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41afef.99
movzx edx, byte [eax + 0x41bb18]
jmp dword [edx*4 + 0x41baf4]
mov eax, 7
mov word [edi], ax
jmp case.0x41afef.99
mov edx, 8
jmp 0x41b038
mov eax, 0xc
mov word [edi], ax
jmp case.0x41afef.99
mov edx, 0xa
jmp 0x41b038
mov eax, 0xd
mov word [edi], ax
jmp case.0x41afef.99
mov edx, 9
jmp 0x41b038
mov eax, 0xb
mov word [edi], ax
jmp case.0x41afef.99
mov edx, 0x20
mov word [edi], dx
mov eax, edi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41b040
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.00490230
add esp, 0xc
mov ecx, edi
jmp 0x41aef8
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], 0x4a3920
jmp 0x41af1c
cmp word [ecx], 0
je 0x41af45
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b096.99
movzx edx, byte [eax + 0x41bb54]
jmp dword [edx*4 + 0x41bb30]
mov eax, 7
mov word [edi], ax
jmp case.0x41b096.99
mov edx, 8
jmp 0x41b0df
mov eax, 0xc
mov word [edi], ax
jmp case.0x41b096.99
mov edx, 0xa
jmp 0x41b0df
mov eax, 0xd
mov word [edi], ax
jmp case.0x41b096.99
mov edx, 9
jmp 0x41b0df
mov eax, 0xb
mov word [edi], ax
jmp case.0x41b096.99
mov edx, 0x20
mov word [edi], dx
mov eax, edi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41b0e7
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.00490230
add esp, 0xc
mov ecx, edi
jmp 0x41af21
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8df8
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b2ca
cmp esi, ebx
je 0x41bae3
mov eax, 0x4a69fc
mov ecx, esi
call fcn.00476270
cmp eax, ebx
je 0x41b24c
mov ebx, 0x4a8e10
call fcn.00409770
test eax, eax
je 0x41bae3
push 0x64
add eax, 2
push eax
push 0x4c6978
call fcn.00492474
movzx ebx, word [0x4c6970]
add esp, 0xc
xor eax, eax
mov word [0x4c6a40], ax
mov ecx, 0x4c6978
lea ebx, [ebx]
movzx eax, word [ecx]
test ax, ax
je 0x41bae3
lea esp, [esp]
cmp ax, bx
je 0x41b1c0
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b1a0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp word [ecx], 0
je 0x41bae3
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b1e0.99
movzx edx, byte [eax + 0x41bb90]
jmp dword [edx*4 + 0x41bb6c]
mov eax, 7
jmp 0x41b21f
mov edx, 8
mov word [esi], dx
jmp case.0x41b1e0.99
mov eax, 0xc
jmp 0x41b21f
mov edx, 0xa
mov word [esi], dx
jmp case.0x41b1e0.99
mov eax, 0xd
jmp 0x41b21f
mov edx, 9
mov word [esi], dx
jmp case.0x41b1e0.99
mov eax, 0xb
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41b227
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.00490230
add esp, 0xc
mov ecx, esi
jmp 0x41b190
push 7
push 0x4a8e18
push esi
call fcn.0048ffb7
add esp, 0xc
test eax, eax
jne 0x41b275
mov byte [0x4c696a], bl
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x4cad67
push 0x4cad66
push 0x4cad65
push 0x4c6943
push 0x4ca6e2
push 0x4cad64
push 0x4c6942
push 0x4c6403
push 0x4ca6e3
push 0x4c6974
push 0x4cad60
push 0x4cad0c
mov eax, esi
call fcn.0040d320
add esp, 0x30
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8e28
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b305
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
mov dword [0x4c6944], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8e58
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b353
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
mov dword [0x4c6960], eax
cmp eax, 0xa
jge 0x41bae3
mov dword [0x4c6960], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8e78
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b3a1
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
mov dword [0x4c695c], eax
cmp eax, 1
jge 0x41bae3
mov dword [0x4c695c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8ea8
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b406
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
cmp eax, 0xff
jle 0x41b3e8
mov eax, 0xff
mov byte [0x4c6402], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 1
jge 0x41b3f2
mov eax, 1
mov byte [0x4c6402], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8ed4
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b452
cmp esi, ebx
je 0x41b43c
mov esi, dword [esp + 0x2c]
push ebx
call fcn.00409860
add esp, 4
mov byte [0x4ca6e0], bl
cmp eax, 2
je 0x41bae3
mov byte [0x4ca6e0], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8ef8
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b4b7
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
cmp eax, 0xff
jle 0x41b499
mov eax, 0xff
mov dword [0x4c6958], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 1
jge 0x41b4a3
mov eax, 1
mov dword [0x4c6958], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f10
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b4f2
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
mov dword [0x4c6948], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f34
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b53e
cmp esi, ebx
je 0x41b528
mov esi, dword [esp + 0x2c]
push ebx
call fcn.00409860
add esp, 4
mov byte [0x4cad74], bl
cmp eax, 2
je 0x41bae3
mov byte [0x4cad74], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f44
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b56a
mov byte [0x4ca6a0], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f68
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b59a
mov eax, dword [esp + 0x28]
mov byte [eax + 0xae3], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f84
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b624
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.00414bb0
fld qword [0x4c0d88]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x41b5dd
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x41b5e1
fstp st(1)
jmp 0x41b5e3
fstp st(0)
fld qword [0x4c0c90]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x2c], eax
mov eax, 3
fmulp st(1)
fldcw word [esp + 0x2c]
fistp qword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [0x4c6954], ecx
fldcw word [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8f94
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b68d
cmp esi, ebx
je 0x41bae3
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
mov dword [0x4c6950], eax
cmp eax, ebx
jge 0x41b669
mov dword [0x4c6950], ebx
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 0x1f4
jle 0x41bae3
mov dword [0x4c6950], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a86b0
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b774
cmp esi, ebx
je 0x41bae3
cmp word [esi + 2], bx
jne 0x41b730
movzx eax, word [esi]
cmp eax, 0x23
je 0x41ba32
cmp ax, word [0x4c696c]
je 0x41ba32
cmp ax, word [0x4c6970]
je 0x41ba32
cmp ax, word [0x4c6968]
je 0x41ba32
cmp eax, 0x21
je 0x41ba32
cmp eax, 0x5e
je 0x41ba32
cmp eax, 0x2b
je 0x41ba32
cmp eax, 0x24
je 0x41ba32
cmp eax, 0x7e
je 0x41ba32
cmp eax, 0x2a
je 0x41ba32
cmp eax, 0x3c
je 0x41ba32
cmp eax, 0x3e
je 0x41ba32
push 0xf
push esi
push 0x4c6410
call fcn.00492474
add esp, 0xc
xor edx, edx
mov eax, 0x4c6410
mov word [0x4c642e], dx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b751
sub eax, edx
sar eax, 1
mov dword [0x4c6404], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8fac
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b7ec
cmp esi, ebx
je 0x41bae3
movzx eax, word [esi]
cmp eax, 0x23
je 0x41ba32
cmp ax, word [0x4c696c]
je 0x41ba32
cmp ax, word [0x4c6968]
je 0x41ba32
cmp eax, 0x2e
je 0x41ba32
cmp dword [0x4c6404], 1
jne 0x41b7d7
cmp ax, word [0x4c6410]
je 0x41ba32
mov word [0x4c6970], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8fc4
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b85b
cmp esi, ebx
je 0x41bae3
movzx eax, word [esi]
cmp ax, word [0x4c6970]
je 0x41ba32
cmp ax, word [0x4c6968]
je 0x41ba32
cmp eax, 0x2e
je 0x41ba32
cmp dword [0x4c6404], 1
jne 0x41b846
cmp ax, word [0x4c6410]
je 0x41ba32
mov word [0x4c696c], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8fdc
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b8d3
cmp esi, ebx
je 0x41bae3
movzx eax, word [esi]
cmp eax, 0x23
je 0x41ba32
cmp ax, word [0x4c6970]
je 0x41ba32
cmp ax, word [0x4c696c]
je 0x41ba32
cmp eax, 0x2e
je 0x41ba32
cmp dword [0x4c6404], 1
jne 0x41b8be
cmp ax, word [0x4c6410]
je 0x41ba32
mov word [0x4c6968], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a8ff4
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b946
cmp esi, ebx
je 0x41b92c
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 0x4c6401
xor ecx, ecx
mov edi, 0x4c6940
mov edx, esi
call fcn.00413d40
add esp, 4
test al, al
jne 0x41bae3
mov ecx, dword [esp + 0x28]
mov eax, 0x4a6a34
push ebp
push eax
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov ecx, dword [esp + 0x28]
mov eax, 0x4a9010
push ebp
push eax
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a903c
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b9a4
cmp esi, ebx
je 0x41b98e
mov esi, dword [esp + 0x2c]
call fcn.0040eb60
cmp eax, ebx
jl 0x41ba32
cmp eax, 0x64
jg 0x41ba32
mov byte [0x4ca6e1], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
xor eax, eax
mov byte [0x4ca6e1], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4a9054
mov ecx, ebp
call fcn.00475f60
add esp, 8
test eax, eax
jne 0x41b10c
cmp esi, ebx
jne 0x41b9ca
mov dword [esp + 0x2c], 0x4a3920
movzx eax, word [0x4c6968]
mov ebx, dword [esp + 0x2c]
push eax
push ebx
call fcn.00490591
mov edi, eax
add esp, 8
mov esi, 0x4a3920
test edi, edi
je 0x41ba04
lea eax, [edi + 2]
call fcn.004097c0
mov esi, eax
lea eax, [edi - 2]
mov edx, ebx
call fcn.004097e0
xor ecx, ecx
mov word [eax + 2], cx
mov edx, dword [esp + 0x2c]
cmp word [edx], 0
mov ebx, 5
je 0x41ba4d
xor edi, edi
mov ebx, edx
mov eax, dword [edi*4 + 0x4c7f0c]
push eax
push ebx
call fcn.0048f769
add esp, 8
test eax, eax
je 0x41ba4b
inc edi
cmp edi, 6
jne 0x41ba17
mov ecx, dword [esp + 0x28]
push ebp
push 0x4a6a34
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov ebx, edi
cmp word [esi], 0
mov edi, 2
je 0x41ba94
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [edi*4 + 0x4c7f24]
push ecx
push esi
call fcn.0048f769
add esp, 8
test eax, eax
je 0x41ba94
inc edi
cmp edi, 4
jne 0x41ba60
mov ecx, dword [esp + 0x28]
push esi
push 0x4a6a60
call fcn.004301a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
test ebx, ebx
je 0x41ba9d
cmp ebx, 5
jne 0x41baa3
mov dword [0x4ca6a4], edi
cmp ebx, 1
je 0x41baad
cmp ebx, 5
jne 0x41bab3
mov dword [0x4ca6a8], edi
cmp ebx, 3
je 0x41babd
cmp ebx, 5
jne 0x41bac3
mov dword [0x4ca6ac], edi
cmp ebx, 2
je 0x41bacd
cmp ebx, 5
jne 0x41bad3
mov dword [0x4ca6b0], edi
cmp ebx, 4
je 0x41badd
cmp ebx, 5
jne 0x41bae3
mov dword [0x4ca6b4], edi
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x14
ret 8