Function at 0x41b1b0
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
mov di, word [0x4c7978]
xor edx, edx
lea ebx, [esp + 0x10]
mov eax, ebp
mov dword [esp + 0x10], 0x90020
mov word [esp + 0x14], di
mov word [esp + 0x16], dx
call fcn.00409e00
test eax, eax
jne 0x41b205
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41b1f0
sub eax, edx
sar eax, 1
lea eax, [ebp + eax*2]
jmp 0x41b24a
mov edx, eax
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x41b214
cmp ecx, 9
jne 0x41b219
add edx, 2
jmp 0x41b207
movzx ecx, word [edx]
test cx, cx
je 0x41b24a
cmp cx, di
je 0x41b22a
mov esi, edx
jmp 0x41b24c
lea ecx, [edx + 2]
lea ecx, [ecx]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x41b23d
cmp edx, 9
jne 0x41b242
add ecx, 2
jmp 0x41b230
cmp word [ecx], 0
mov esi, ecx
jne 0x41b24c
xor esi, esi
sub eax, ebp
sar eax, 1
mov edi, eax
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d14
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
je 0x41b29e
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d28
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
je 0x41b29e
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d44
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b2ad
mov dword [0x4cb6c4], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d54
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b2d9
mov byte [0x4cb697], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d6c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b305
mov byte [0x4cb696], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d84
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b3b6
mov dword [0x4cb6b0], 1
test esi, esi
je 0x41b29e
push 0x4a9da4
push esi
call fcn.00490e99
add esp, 8
test eax, eax
jne 0x41b35c
mov dword [0x4cb6b0], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4a9db0
push esi
call fcn.00490e99
add esp, 8
test eax, eax
jne 0x41b387
mov dword [0x4cb6b0], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4a7328
push esi
call fcn.00490e99
add esp, 8
test eax, eax
jne 0x41b29e
mov dword [0x4cb6b0], 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9dc0
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b3e2
or byte [0x4cbda1], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9de4
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b40e
or byte [0x4cbda1], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9e08
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b457
test esi, esi
je 0x41b441
push eax
call fcn.00409ef0
add esp, 4
mov byte [0x4cbd6d], 0
cmp eax, 2
je 0x41b29e
mov byte [0x4cbd6d], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a5698
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b529
xor ebx, ebx
cmp esi, ebx
jne 0x41b48a
mov dword [0x4cb6dc], ebx
lea eax, [ebx + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov edi, esi
call fcn.0040a590
mov dword [0x4cb6dc], eax
cmp eax, ebx
jne 0x41b29e
mov eax, dword [0x4c7a54]
mov edi, dword [eax + 0xb4]
push ebx
push ebx
push ebx
push 0x4a48a0
push ebx
push 0xe3
mov dword [eax + 0xb4], ebx
push esi
mov ecx, 0x4cc518
mov byte [0x4cc561], 1
call fcn.0041c940
test eax, eax
jne 0x41b4df
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, dword [0x4c7a54]
mov byte [0x4cc561], bl
mov dword [eax + 0xb4], edi
mov edi, dword [0x4cc51c]
call fcn.0040a510
mov dword [0x4cb6dc], eax
cmp eax, ebx
je 0x41b4d3
mov byte [eax], 5
mov dword [eax + 0xc], edi
mov ecx, dword [edi + 8]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x4a48a0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9e1c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41b560
test esi, esi
je 0x41b29e
call fcn.00415420
mov dword [0x4c7974], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 6
push 0x4a9e34
push ebp
call fcn.0049109d
add esp, 0xc
test eax, eax
jne 0x41b87b
push 3
lea eax, [ebp + 0xc]
push 0x4a74c4
push eax
call fcn.0049109d
add esp, 0xc
test eax, eax
sete bl
movzx ecx, bl
neg ecx
sbb ecx, ecx
and ecx, 3
push 6
lea edi, [ebp + ecx*2 + 0xc]
push 0x4a74cc
push edi
call fcn.0049109d
add esp, 0xc
test eax, eax
jne 0x41b5bf
test bl, bl
setne dl
inc dl
mov byte [esp + 0x10], dl
jmp 0x41b5e2
push 5
push 0x4a7310
push edi
call fcn.0049109d
add esp, 0xc
test eax, eax
jne 0x41b86c
test bl, bl
setne al
add al, 3
mov byte [esp + 0x10], al
xor edi, edi
cmp esi, edi
jne 0x41b5fb
mov dword [0x4cb6dc], edi
lea eax, [edi + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov dx, word [0x4c7978]
mov bx, word [0x4c797c]
mov ecx, esi
jmp 0x41b610
movzx eax, word [ecx]
test ax, ax
je 0x41b63f
jmp 0x41b620
cmp ax, word [0x4c7980]
je 0x41b696
cmp ax, dx
je 0x41b696
cmp ax, bx
je 0x41b696
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b620
test edi, edi
je 0x41b777
lea eax, [edi + 2]
call fcn.00409e50
mov ebx, eax
mov eax, edi
sub eax, esi
xor ecx, ecx
sar eax, 1
mov dword [esp + 0x1c], ebx
mov word [edi], cx
call fcn.004153c0
movzx ebp, word [0x4c7980]
mov ecx, ebx
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x41b77f
lea esp, [esp]
cmp ax, bp
je 0x41b6e1
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b680
jmp 0x41b77f
movzx eax, word [ecx]
test ax, ax
je 0x41b63f
cmp ax, bx
je 0x41b6c7
cmp ax, dx
jne 0x41b6b6
test edi, edi
jne 0x41b6c7
mov edi, ecx
add ecx, 2
jmp 0x41b610
add ecx, 2
cmp word [ecx], 0
je 0x41b63f
add ecx, 2
jmp 0x41b610
push ebp
push 0x4a9e48
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b77f
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b701.99
movzx edx, byte [eax + 0x41c280]
jmp dword [edx*4 + 0x41c25c]
mov eax, 7
mov word [edi], ax
jmp case.0x41b701.99
mov edx, 8
jmp 0x41b74a
mov eax, 0xc
mov word [edi], ax
jmp case.0x41b701.99
mov edx, 0xa
jmp 0x41b74a
mov eax, 0xd
mov word [edi], ax
jmp case.0x41b701.99
mov edx, 9
jmp 0x41b74a
mov eax, 0xb
mov word [edi], ax
jmp case.0x41b701.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 0x41b752
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.004916b0
add esp, 0xc
mov ecx, edi
jmp 0x41b670
mov dword [esp + 0x1c], 0x4a48a0
movzx ebp, word [0x4c7980]
mov ecx, esi
movzx eax, word [ecx]
test ax, ax
je 0x41b7a1
cmp ax, bp
je 0x41b7da
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b790
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push ecx
push esi
push edx
call fcn.0040a2b0
add esp, 0xc
test eax, eax
jne 0x41b29e
push 0x4a48a0
push 0x4a76d0
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b7a1
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b7f6.99
movzx edx, byte [eax + 0x41c2bc]
jmp dword [edx*4 + 0x41c298]
mov eax, 7
mov word [edi], ax
jmp case.0x41b7f6.99
mov edx, 8
jmp 0x41b83f
mov eax, 0xc
mov word [edi], ax
jmp case.0x41b7f6.99
mov edx, 0xa
jmp 0x41b83f
mov eax, 0xd
mov word [edi], ax
jmp case.0x41b7f6.99
mov edx, 9
jmp 0x41b83f
mov eax, 0xb
mov word [edi], ax
jmp case.0x41b7f6.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 0x41b847
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.004916b0
add esp, 0xc
mov ecx, edi
jmp 0x41b788
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9ec0
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41ba29
test esi, esi
je 0x41b29e
mov eax, 0x4a7a9c
mov ecx, esi
call fcn.00477670
test eax, eax
je 0x41b9ac
mov ebx, 0x4a9ed8
call fcn.00409e00
test eax, eax
je 0x41b29e
push 0x64
add eax, 2
push eax
push 0x4c7988
call fcn.004937a4
movzx ebx, word [0x4c7980]
add esp, 0xc
xor eax, eax
mov word [0x4c7a50], ax
mov ecx, 0x4c7988
lea ebx, [ebx]
movzx eax, word [ecx]
test ax, ax
je 0x41b29e
lea esp, [esp]
cmp ax, bx
je 0x41b920
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b900
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b29e
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b940.99
movzx edx, byte [eax + 0x41c2f8]
jmp dword [edx*4 + 0x41c2d4]
mov eax, 7
jmp 0x41b97f
mov edx, 8
mov word [esi], dx
jmp case.0x41b940.99
mov eax, 0xc
jmp 0x41b97f
mov edx, 0xa
mov word [esi], dx
jmp case.0x41b940.99
mov eax, 0xd
jmp 0x41b97f
mov edx, 9
mov word [esi], dx
jmp case.0x41b940.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 0x41b987
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.004916b0
add esp, 0xc
mov ecx, esi
jmp 0x41b8f0
push 7
push 0x4a9ee0
push esi
call fcn.0049109d
add esp, 0xc
test eax, eax
jne 0x41b9d4
mov byte [0x4c797a], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4cbd5f
push 0x4cbd5e
push 0x4cbd5d
push 0x4c7953
push 0x4cb6da
push 0x4cbd5c
push 0x4c7952
push 0x4c7403
push 0x4cb6db
push 0x4c7984
push 0x4cbd58
push 0x4cbd04
mov eax, esi
call fcn.0040da40
add esp, 0x30
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9ef0
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41ba60
test esi, esi
je 0x41b29e
call fcn.0040f280
mov dword [0x4c7954], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9f20
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41baaa
test esi, esi
je 0x41b29e
call fcn.0040f280
mov dword [0x4c7970], eax
cmp eax, 0xa
jge 0x41b29e
mov dword [0x4c7970], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9f40
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41baf4
test esi, esi
je 0x41b29e
call fcn.0040f280
mov dword [0x4c796c], eax
cmp eax, 1
jge 0x41b29e
mov dword [0x4c796c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9f70
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bb55
test esi, esi
je 0x41b29e
call fcn.0040f280
cmp eax, 0xff
jle 0x41bb37
mov eax, 0xff
mov byte [0x4c7402], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp eax, 1
jge 0x41bb41
mov eax, 1
mov byte [0x4c7402], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9f9c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bb9e
test esi, esi
je 0x41bb88
push eax
call fcn.00409ef0
add esp, 4
mov byte [0x4cb6d8], 0
cmp eax, 2
je 0x41b29e
mov byte [0x4cb6d8], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9fc0
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bbff
test esi, esi
je 0x41b29e
call fcn.0040f280
cmp eax, 0xff
jle 0x41bbe1
mov eax, 0xff
mov dword [0x4c7968], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp eax, 1
jge 0x41bbeb
mov eax, 1
mov dword [0x4c7968], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9fd8
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bc36
test esi, esi
je 0x41b29e
call fcn.0040f280
mov dword [0x4c7958], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9ffc
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bc7f
test esi, esi
je 0x41bc69
push eax
call fcn.00409ef0
add esp, 4
mov byte [0x4cbd6c], 0
cmp eax, 2
je 0x41b29e
mov byte [0x4cbd6c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa00c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bcab
mov byte [0x4cb695], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa030
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bce3
mov eax, esi
mov byte [0x4ccfff], 1
call fcn.00416e00
mov dword [0x4cd000], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa04c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bd68
test esi, esi
je 0x41b29e
call fcn.00415450
fld qword [0x4c1f90]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x41bd22
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x41bd26
fstp st(1)
jmp 0x41bd28
fstp st(0)
fld qword [0x4c1ea0]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x10], eax
fmulp st(1)
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [0x4c7964], eax
mov eax, 3
fldcw word [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa05c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bdd1
test esi, esi
je 0x41b29e
call fcn.0040f280
mov dword [0x4c7960], eax
test eax, eax
jns 0x41bdad
mov dword [0x4c7960], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp eax, 0x1f4
jle 0x41b29e
mov dword [0x4c7960], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9778
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41beb8
test esi, esi
je 0x41b29e
cmp word [esi + 2], ax
jne 0x41be74
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c16b
cmp ax, word [0x4c797c]
je 0x41c16b
cmp ax, word [0x4c7980]
je 0x41c16b
cmp ax, word [0x4c7978]
je 0x41c16b
cmp eax, 0x21
je 0x41c16b
cmp eax, 0x5e
je 0x41c16b
cmp eax, 0x2b
je 0x41c16b
cmp eax, 0x24
je 0x41c16b
cmp eax, 0x7e
je 0x41c16b
cmp eax, 0x2a
je 0x41c16b
cmp eax, 0x3c
je 0x41c16b
cmp eax, 0x3e
je 0x41c16b
push 0xf
push esi
push 0x4c7410
call fcn.004937a4
add esp, 0xc
xor ecx, ecx
mov eax, 0x4c7410
mov word [0x4c742e], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41be95
sub eax, edx
sar eax, 1
mov dword [0x4c7404], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa074
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bf30
test esi, esi
je 0x41b29e
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c16b
cmp ax, word [0x4c797c]
je 0x41c16b
cmp ax, word [0x4c7978]
je 0x41c16b
cmp eax, 0x2e
je 0x41c16b
cmp dword [0x4c7404], 1
jne 0x41bf1b
cmp ax, word [0x4c7410]
je 0x41c16b
mov word [0x4c7980], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa08c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41bf9f
test esi, esi
je 0x41b29e
movzx eax, word [esi]
cmp ax, word [0x4c7980]
je 0x41c16b
cmp ax, word [0x4c7978]
je 0x41c16b
cmp eax, 0x2e
je 0x41c16b
cmp dword [0x4c7404], 1
jne 0x41bf8a
cmp ax, word [0x4c7410]
je 0x41c16b
mov word [0x4c797c], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa0a4
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41c017
test esi, esi
je 0x41b29e
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c16b
cmp ax, word [0x4c7980]
je 0x41c16b
cmp ax, word [0x4c797c]
je 0x41c16b
cmp eax, 0x2e
je 0x41c16b
cmp dword [0x4c7404], 1
jne 0x41c002
cmp ax, word [0x4c7410]
je 0x41c16b
mov word [0x4c7978], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa0bc
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41c08c
test esi, esi
je 0x41c071
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 0x4c7401
xor ecx, ecx
mov edi, 0x4c7950
mov edx, esi
call fcn.004145e0
add esp, 4
test al, al
jne 0x41b29e
mov eax, 0x4a7ad4
push ebp
push eax
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, 0x4aa0d8
push ebp
push eax
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa104
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41c0e6
test esi, esi
je 0x41c0d0
call fcn.0040f280
test eax, eax
js 0x41c16b
cmp eax, 0x64
jg 0x41c16b
mov byte [0x4cb6d9], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
xor eax, eax
mov byte [0x4cb6d9], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa11c
mov ecx, ebp
call fcn.00477360
add esp, 8
test eax, eax
jne 0x41c235
test esi, esi
jne 0x41c109
mov esi, 0x4a48a0
movzx edx, word [0x4c7978]
push edx
push esi
call fcn.00491a11
mov edi, eax
add esp, 8
mov ebx, 0x4a48a0
test edi, edi
je 0x41c13f
lea eax, [edi + 2]
call fcn.00409e50
mov ebx, eax
lea eax, [edi - 2]
mov edx, esi
call fcn.00409e70
xor ecx, ecx
mov word [eax + 2], cx
cmp word [esi], 0
mov edi, 6
je 0x41c185
xor edi, edi
lea esp, [esp]
mov edx, dword [edi*4 + 0x4aa128]
push edx
push esi
call fcn.00490e99
add esp, 8
test eax, eax
je 0x41c185
inc edi
cmp edi, 7
jne 0x41c150
push ebp
push 0x4a7ad4
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ebx], 0
mov eax, 2
je 0x41c1c9
xor esi, esi
mov eax, dword [esi*4 + 0x4aa144]
push eax
push ebx
call fcn.00490e99
add esp, 8
test eax, eax
je 0x41c1c7
inc esi
cmp esi, 4
jne 0x41c192
push ebx
push 0x4a7b00
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, esi
test edi, edi
je 0x41c1d2
cmp edi, 6
jne 0x41c1d7
mov dword [0x4cb698], eax
cmp edi, 1
je 0x41c1e1
cmp edi, 6
jne 0x41c1e6
mov dword [0x4cb69c], eax
cmp edi, 3
je 0x41c1f0
cmp edi, 6
jne 0x41c1f5
mov dword [0x4cb6a0], eax
cmp edi, 2
je 0x41c1ff
cmp edi, 6
jne 0x41c204
mov dword [0x4cb6a4], eax
cmp edi, 4
je 0x41c20e
cmp edi, 6
jne 0x41c213
mov dword [0x4cb6a8], eax
cmp edi, 5
je 0x41c221
cmp edi, 6
jne 0x41b29e
mov dword [0x4cb6ac], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa154
mov ecx, ebp
call fcn.00477360
add esp, 8
neg eax
pop edi
sbb eax, eax
pop esi
neg eax
pop ebp
add eax, 3
pop ebx
add esp, 8
ret 4