Function at 0x41b270
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.00409e50
test eax, eax
jne 0x41b2c5
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41b2b0
sub eax, edx
sar eax, 1
lea eax, [ebp + eax*2]
jmp 0x41b30a
mov edx, eax
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x41b2d4
cmp ecx, 9
jne 0x41b2d9
add edx, 2
jmp 0x41b2c7
movzx ecx, word [edx]
test cx, cx
je 0x41b30a
cmp cx, di
je 0x41b2ea
mov esi, edx
jmp 0x41b30c
lea ecx, [edx + 2]
lea ecx, [ecx]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x41b2fd
cmp edx, 9
jne 0x41b302
add ecx, 2
jmp 0x41b2f0
cmp word [ecx], 0
mov esi, ecx
jne 0x41b30c
xor esi, esi
sub eax, ebp
sar eax, 1
mov edi, eax
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d1c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
je 0x41b35e
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d30
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
je 0x41b35e
push 0xffffffffffffffff
push edi
mov eax, 0x4a9d4c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b36d
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, 0x4a9d5c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b399
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, 0x4a9d74
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b3c5
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, 0x4a9d8c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b476
mov dword [0x4cb6b0], 1
test esi, esi
je 0x41b35e
push 0x4a9dac
push esi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41b41c
mov dword [0x4cb6b0], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4a9db8
push esi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41b447
mov dword [0x4cb6b0], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4a7318
push esi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41b35e
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, 0x4a9dc8
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b4a2
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, 0x4a9dec
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b4ce
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, 0x4a9e10
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b517
test esi, esi
je 0x41b501
push eax
call fcn.00409f40
add esp, 4
mov byte [0x4cbd6d], 0
cmp eax, 2
je 0x41b35e
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, 0x4a5688
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b5e9
xor ebx, ebx
cmp esi, ebx
jne 0x41b54a
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.0040a5e0
mov dword [0x4cb6dc], eax
cmp eax, ebx
jne 0x41b35e
mov eax, dword [0x4c7a54]
mov edi, dword [eax + 0xb4]
push ebx
push ebx
push ebx
push 0x4a4910
push ebx
push 0xe3
mov dword [eax + 0xb4], ebx
push esi
mov ecx, 0x4cc518
mov byte [0x4cc561], 1
call fcn.0041ca00
test eax, eax
jne 0x41b59f
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.0040a560
mov dword [0x4cb6dc], eax
cmp eax, ebx
je 0x41b593
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], 0x4a4910
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9e24
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41b620
test esi, esi
je 0x41b35e
call fcn.00415480
mov dword [0x4c7974], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 6
push 0x4a9e3c
push ebp
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41b93b
push 3
lea eax, [ebp + 0xc]
push 0x4a74b4
push eax
call fcn.0049115d
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 0x4a74bc
push edi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41b67f
test bl, bl
setne dl
inc dl
mov byte [esp + 0x10], dl
jmp 0x41b6a2
push 5
push 0x4a7300
push edi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41b92c
test bl, bl
setne al
add al, 3
mov byte [esp + 0x10], al
xor edi, edi
cmp esi, edi
jne 0x41b6bb
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 0x41b6d0
movzx eax, word [ecx]
test ax, ax
je 0x41b6ff
jmp 0x41b6e0
cmp ax, word [0x4c7980]
je 0x41b756
cmp ax, dx
je 0x41b756
cmp ax, bx
je 0x41b756
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b6e0
test edi, edi
je 0x41b837
lea eax, [edi + 2]
call fcn.00409ea0
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.00415420
movzx ebp, word [0x4c7980]
mov ecx, ebx
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x41b83f
lea esp, [esp]
cmp ax, bp
je 0x41b7a1
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b740
jmp 0x41b83f
movzx eax, word [ecx]
test ax, ax
je 0x41b6ff
cmp ax, bx
je 0x41b787
cmp ax, dx
jne 0x41b776
test edi, edi
jne 0x41b787
mov edi, ecx
add ecx, 2
jmp 0x41b6d0
add ecx, 2
cmp word [ecx], 0
je 0x41b6ff
add ecx, 2
jmp 0x41b6d0
push ebp
push 0x4a9e50
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b83f
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b7c1.99
movzx edx, byte [eax + 0x41c340]
jmp dword [edx*4 + 0x41c31c]
mov eax, 7
mov word [edi], ax
jmp case.0x41b7c1.99
mov edx, 8
jmp 0x41b80a
mov eax, 0xc
mov word [edi], ax
jmp case.0x41b7c1.99
mov edx, 0xa
jmp 0x41b80a
mov eax, 0xd
mov word [edi], ax
jmp case.0x41b7c1.99
mov edx, 9
jmp 0x41b80a
mov eax, 0xb
mov word [edi], ax
jmp case.0x41b7c1.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 0x41b812
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.00491770
add esp, 0xc
mov ecx, edi
jmp 0x41b730
mov dword [esp + 0x1c], 0x4a4910
movzx ebp, word [0x4c7980]
mov ecx, esi
movzx eax, word [ecx]
test ax, ax
je 0x41b861
cmp ax, bp
je 0x41b89a
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b850
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push ecx
push esi
push edx
call fcn.0040a300
add esp, 0xc
test eax, eax
jne 0x41b35e
push 0x4a4910
push 0x4a76c0
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b861
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41b8b6.99
movzx edx, byte [eax + 0x41c37c]
jmp dword [edx*4 + 0x41c358]
mov eax, 7
mov word [edi], ax
jmp case.0x41b8b6.99
mov edx, 8
jmp 0x41b8ff
mov eax, 0xc
mov word [edi], ax
jmp case.0x41b8b6.99
mov edx, 0xa
jmp 0x41b8ff
mov eax, 0xd
mov word [edi], ax
jmp case.0x41b8b6.99
mov edx, 9
jmp 0x41b8ff
mov eax, 0xb
mov word [edi], ax
jmp case.0x41b8b6.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 0x41b907
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.00491770
add esp, 0xc
mov ecx, edi
jmp 0x41b848
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4a9ec8
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bae9
test esi, esi
je 0x41b35e
mov eax, 0x4a7a8c
mov ecx, esi
call fcn.00477730
test eax, eax
je 0x41ba6c
mov ebx, 0x4a9ee0
call fcn.00409e50
test eax, eax
je 0x41b35e
push 0x64
add eax, 2
push eax
push 0x4c7988
call fcn.00493864
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 0x41b35e
lea esp, [esp]
cmp ax, bx
je 0x41b9e0
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41b9c0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ecx], 0
je 0x41b35e
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41ba00.99
movzx edx, byte [eax + 0x41c3b8]
jmp dword [edx*4 + 0x41c394]
mov eax, 7
jmp 0x41ba3f
mov edx, 8
mov word [esi], dx
jmp case.0x41ba00.99
mov eax, 0xc
jmp 0x41ba3f
mov edx, 0xa
mov word [esi], dx
jmp case.0x41ba00.99
mov eax, 0xd
jmp 0x41ba3f
mov edx, 9
mov word [esi], dx
jmp case.0x41ba00.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 0x41ba47
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.00491770
add esp, 0xc
mov ecx, esi
jmp 0x41b9b0
push 7
push 0x4a9ee8
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41ba94
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.0040da90
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, 0x4a9ef8
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bb20
test esi, esi
je 0x41b35e
call fcn.0040f2d0
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, 0x4a9f28
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bb6a
test esi, esi
je 0x41b35e
call fcn.0040f2d0
mov dword [0x4c7970], eax
cmp eax, 0xa
jge 0x41b35e
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, 0x4a9f48
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bbb4
test esi, esi
je 0x41b35e
call fcn.0040f2d0
mov dword [0x4c796c], eax
cmp eax, 1
jge 0x41b35e
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, 0x4a9f78
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bc15
test esi, esi
je 0x41b35e
call fcn.0040f2d0
cmp eax, 0xff
jle 0x41bbf7
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 0x41bc01
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, 0x4a9fa4
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bc5e
test esi, esi
je 0x41bc48
push eax
call fcn.00409f40
add esp, 4
mov byte [0x4cb6d8], 0
cmp eax, 2
je 0x41b35e
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, 0x4a9fc8
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bcbf
test esi, esi
je 0x41b35e
call fcn.0040f2d0
cmp eax, 0xff
jle 0x41bca1
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 0x41bcab
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, 0x4a9fe0
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bcf6
test esi, esi
je 0x41b35e
call fcn.0040f2d0
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, 0x4aa004
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bd3f
test esi, esi
je 0x41bd29
push eax
call fcn.00409f40
add esp, 4
mov byte [0x4cbd6c], 0
cmp eax, 2
je 0x41b35e
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, 0x4aa014
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bd6b
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, 0x4aa038
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bda3
mov eax, esi
mov byte [0x4ccfff], 1
call fcn.00416e60
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, 0x4aa054
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41be28
test esi, esi
je 0x41b35e
call fcn.004154b0
fld qword [0x4c1fb0]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x41bde2
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x41bde6
fstp st(1)
jmp 0x41bde8
fstp st(0)
fld qword [0x4c1ec0]
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, 0x4aa064
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41be91
test esi, esi
je 0x41b35e
call fcn.0040f2d0
mov dword [0x4c7960], eax
test eax, eax
jns 0x41be6d
mov dword [0x4c7960], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp eax, 0x1f4
jle 0x41b35e
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, 0x4a9780
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bf78
test esi, esi
je 0x41b35e
cmp word [esi + 2], ax
jne 0x41bf34
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c22b
cmp ax, word [0x4c797c]
je 0x41c22b
cmp ax, word [0x4c7980]
je 0x41c22b
cmp ax, word [0x4c7978]
je 0x41c22b
cmp eax, 0x21
je 0x41c22b
cmp eax, 0x5e
je 0x41c22b
cmp eax, 0x2b
je 0x41c22b
cmp eax, 0x24
je 0x41c22b
cmp eax, 0x7e
je 0x41c22b
cmp eax, 0x2a
je 0x41c22b
cmp eax, 0x3c
je 0x41c22b
cmp eax, 0x3e
je 0x41c22b
push 0xf
push esi
push 0x4c7410
call fcn.00493864
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 0x41bf55
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, 0x4aa07c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41bff0
test esi, esi
je 0x41b35e
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c22b
cmp ax, word [0x4c797c]
je 0x41c22b
cmp ax, word [0x4c7978]
je 0x41c22b
cmp eax, 0x2e
je 0x41c22b
cmp dword [0x4c7404], 1
jne 0x41bfdb
cmp ax, word [0x4c7410]
je 0x41c22b
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, 0x4aa094
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41c05f
test esi, esi
je 0x41b35e
movzx eax, word [esi]
cmp ax, word [0x4c7980]
je 0x41c22b
cmp ax, word [0x4c7978]
je 0x41c22b
cmp eax, 0x2e
je 0x41c22b
cmp dword [0x4c7404], 1
jne 0x41c04a
cmp ax, word [0x4c7410]
je 0x41c22b
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, 0x4aa0ac
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41c0d7
test esi, esi
je 0x41b35e
movzx eax, word [esi]
cmp eax, 0x23
je 0x41c22b
cmp ax, word [0x4c7980]
je 0x41c22b
cmp ax, word [0x4c797c]
je 0x41c22b
cmp eax, 0x2e
je 0x41c22b
cmp dword [0x4c7404], 1
jne 0x41c0c2
cmp ax, word [0x4c7410]
je 0x41c22b
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, 0x4aa0c4
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41c14c
test esi, esi
je 0x41c131
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 0x4c7401
xor ecx, ecx
mov edi, 0x4c7950
mov edx, esi
call fcn.00414640
add esp, 4
test al, al
jne 0x41b35e
mov eax, 0x4a7ac4
push ebp
push eax
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, 0x4aa0e0
push ebp
push eax
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov eax, 0x4aa10c
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41c1a6
test esi, esi
je 0x41c190
call fcn.0040f2d0
test eax, eax
js 0x41c22b
cmp eax, 0x64
jg 0x41c22b
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, 0x4aa124
mov ecx, ebp
call fcn.00477420
add esp, 8
test eax, eax
jne 0x41c2f5
test esi, esi
jne 0x41c1c9
mov esi, 0x4a4910
movzx edx, word [0x4c7978]
push edx
push esi
call fcn.00491ad1
mov edi, eax
add esp, 8
mov ebx, 0x4a4910
test edi, edi
je 0x41c1ff
lea eax, [edi + 2]
call fcn.00409ea0
mov ebx, eax
lea eax, [edi - 2]
mov edx, esi
call fcn.00409ec0
xor ecx, ecx
mov word [eax + 2], cx
cmp word [esi], 0
mov edi, 6
je 0x41c245
xor edi, edi
lea esp, [esp]
mov edx, dword [edi*4 + 0x4aa130]
push edx
push esi
call fcn.00490f59
add esp, 8
test eax, eax
je 0x41c245
inc edi
cmp edi, 7
jne 0x41c210
push ebp
push 0x4a7ac4
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp word [ebx], 0
mov eax, 2
je 0x41c289
xor esi, esi
mov eax, dword [esi*4 + 0x4aa14c]
push eax
push ebx
call fcn.00490f59
add esp, 8
test eax, eax
je 0x41c287
inc esi
cmp esi, 4
jne 0x41c252
push ebx
push 0x4a7af0
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, esi
test edi, edi
je 0x41c292
cmp edi, 6
jne 0x41c297
mov dword [0x4cb698], eax
cmp edi, 1
je 0x41c2a1
cmp edi, 6
jne 0x41c2a6
mov dword [0x4cb69c], eax
cmp edi, 3
je 0x41c2b0
cmp edi, 6
jne 0x41c2b5
mov dword [0x4cb6a0], eax
cmp edi, 2
je 0x41c2bf
cmp edi, 6
jne 0x41c2c4
mov dword [0x4cb6a4], eax
cmp edi, 4
je 0x41c2ce
cmp edi, 6
jne 0x41c2d3
mov dword [0x4cb6a8], eax
cmp edi, 5
je 0x41c2e1
cmp edi, 6
jne 0x41b35e
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, 0x4aa15c
mov ecx, ebp
call fcn.00477420
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