Function at 0x419f40
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 0x14
push ebx
mov bl, byte [0x4a83b3]
push ebp
mov ebp, dword [esp + 0x24]
push esi
push edi
mov word [esp + 0x2c], 0x920
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0
mov esi, ebp
test ebp, ebp
je 0x419f8a
mov dl, byte [ebp]
test dl, dl
je 0x419f8a
mov edi, edi
lea ecx, [esp + 0x2c]
mov al, 0x20
cmp dl, al
je 0x419fa4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x419f76
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x419f70
mov eax, ebp
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x419f90
sub eax, edx
xor esi, esi
lea edi, [eax + ebp]
mov dword [esp + 0x2c], esi
jmp 0x419ff1
mov edi, esi
mov eax, esi
mov cl, byte [eax]
cmp cl, 0x20
je 0x419fb4
cmp cl, 9
jne 0x419fb7
inc eax
jmp 0x419fa8
mov cl, byte [eax]
test cl, cl
jne 0x419fc5
xor esi, esi
mov dword [esp + 0x2c], esi
jmp 0x419ff1
cmp cl, bl
je 0x419fcf
mov dword [esp + 0x2c], eax
jmp 0x419fed
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x419fcf
cmp cl, 9
je 0x419fcf
mov dword [esp + 0x2c], eax
test cl, cl
jne 0x419fed
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x2c]
sub edi, ebp
push 0xffffffffffffffff
push edi
mov eax, 0x49d54c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
je 0x41aef3
push 0xffffffffffffffff
push edi
mov eax, 0x49d558
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
je 0x41aef3
push 0xffffffffffffffff
push edi
mov eax, 0x49d568
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a056
mov dword [0x4ac434], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d570
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a082
mov byte [0x4ac40b], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d57c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a0ae
mov byte [0x4ac40a], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d588
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a15f
mov dword [0x4ac420], 1
test esi, esi
je 0x41aef3
push 0x49d598
push esi
call fcn.00486ea1
add esp, 8
test eax, eax
jne 0x41a105
mov dword [0x4ac420], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x49d5a0
push esi
call fcn.00486ea1
add esp, 8
test eax, eax
jne 0x41a130
mov dword [0x4ac420], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x49bec4
push esi
call fcn.00486ea1
add esp, 8
test eax, eax
jne 0x41aef3
mov dword [0x4ac420], 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d5a8
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a18b
or byte [0x4acb11], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d5bc
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a1b7
or byte [0x4acb11], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d5d0
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a200
test esi, esi
je 0x41a1ea
push eax
call fcn.00409460
add esp, 4
mov byte [0x4acadd], 0
cmp eax, 2
je 0x41aef3
mov byte [0x4acadd], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49af98
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a2cf
xor ebx, ebx
cmp esi, ebx
jne 0x41a233
mov dword [0x4ac44c], ebx
lea eax, [ebx + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov edi, esi
call fcn.00409a00
mov dword [0x4ac44c], eax
cmp eax, ebx
jne 0x41aef3
mov eax, dword [0x4a8978]
mov edi, dword [eax + 0x94]
push 0
push 0
push 0
push 0x49a8ad
push 0
mov dword [eax + 0x94], ebx
mov ebx, dword [esp + 0x3c]
push 0xe3
push esi
mov ecx, ebx
mov byte [ebx + 0x49], 1
call fcn.0041b600
test eax, eax
jne 0x41a28a
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov eax, dword [0x4a8978]
mov byte [ebx + 0x49], 0
mov dword [eax + 0x94], edi
mov esi, dword [ebx + 4]
call fcn.00409980
mov dword [0x4ac44c], eax
test eax, eax
je 0x41a27e
mov byte [eax], 5
mov dword [eax + 0xc], esi
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x49a8ad
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d5dc
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a306
test esi, esi
je 0x41aef3
call fcn.004142e0
mov dword [0x4a8904], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 6
push 0x49d5e8
push ebp
call fcn.00487920
add esp, 0xc
test eax, eax
jne 0x41a5ab
push 3
lea eax, [ebp + 6]
push 0x49bf98
push eax
call fcn.00487920
add esp, 0xc
test eax, eax
sete bl
movzx ecx, bl
neg ecx
sbb ecx, ecx
and ecx, 3
add ecx, 6
push 6
lea edi, [ecx + ebp]
push 0x49bf9c
push edi
call fcn.00487920
add esp, 0xc
test eax, eax
jne 0x41a367
test bl, bl
setne dl
inc dl
mov byte [esp + 0x18], dl
jmp 0x41a38a
push 5
push 0x49beb4
push edi
call fcn.00487920
add esp, 0xc
test eax, eax
jne 0x41a59c
test bl, bl
setne al
add al, 3
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x41a3a5
mov dword [0x4ac44c], edx
lea eax, [edx + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov al, byte [0x4a83b3]
xor esi, esi
lea esp, [esp]
mov cl, byte [edx]
test cl, cl
je 0x41a3d2
cmp cl, byte [0x4a88e3]
je 0x41a3ef
cmp cl, al
je 0x41a3ef
cmp cl, byte [0x4a88e2]
je 0x41a3ef
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x41a3b6
test esi, esi
je 0x41a4ca
lea edi, [esi + 1]
lea ecx, [ecx]
mov cl, byte [edi]
cmp cl, 0x20
je 0x41a3ec
cmp cl, 9
jne 0x41a42c
inc edi
jmp 0x41a3e0
mov cl, byte [edx]
test cl, cl
je 0x41a3d2
cmp cl, byte [0x4a88e2]
je 0x41a413
cmp cl, al
jne 0x41a40a
test esi, esi
jne 0x41a413
mov esi, edx
inc edx
jmp 0x41a3b0
inc edx
cmp byte [edx], 0
je 0x41a3d2
inc edx
jmp 0x41a3b0
mov ecx, dword [esp + 0x28]
push ebp
push 0x49d5f0
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov byte [esi], 0
mov eax, esi
mov esi, dword [esp + 0x2c]
sub eax, esi
mov dword [esp + 0x14], edi
call fcn.004141d0
mov bl, byte [0x4a88e3]
mov ecx, edi
mov al, byte [ecx]
test al, al
je 0x41a4d2
cmp al, bl
je 0x41a460
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41a452
jmp 0x41a4d2
cmp byte [ecx], 0
je 0x41a4d2
movsx eax, byte [ecx + 1]
lea edi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41a47b.99
movzx edx, byte [eax + 0x41af28]
jmp dword [edx*4 + 0x41af04]
mov byte [edi], 7
jmp case.0x41a47b.99
mov byte [edi], 8
jmp case.0x41a47b.99
mov byte [edi], 0xc
jmp case.0x41a47b.99
mov byte [edi], 0xa
jmp case.0x41a47b.99
mov byte [edi], 0xd
jmp case.0x41a47b.99
mov byte [edi], 9
jmp case.0x41a47b.99
mov byte [edi], 0xb
jmp case.0x41a47b.99
mov byte [edi], 0x20
mov eax, edi
lea ebp, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x41a4b0
sub eax, ebp
inc eax
push eax
push edi
push ecx
call fcn.00487a80
add esp, 0xc
jmp 0x41a446
mov dword [esp + 0x14], 0x49a8ad
mov bl, byte [0x4a88e3]
mov ecx, dword [esp + 0x2c]
lea esp, [esp]
mov al, byte [ecx]
test al, al
je 0x41a4f2
cmp al, bl
je 0x41a52d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41a4e6
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
push ecx
push edx
call fcn.004097a0
add esp, 8
test eax, eax
jne 0x41aef3
mov ecx, dword [esp + 0x28]
push 0x49a8ad
push 0x49c0a0
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp byte [ecx], 0
je 0x41a4f2
movsx eax, byte [ecx + 1]
lea edi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41a548.99
movzx eax, byte [eax + 0x41af64]
jmp dword [eax*4 + 0x41af40]
mov byte [edi], 7
jmp case.0x41a548.99
mov byte [edi], 8
jmp case.0x41a548.99
mov byte [edi], 0xc
jmp case.0x41a548.99
mov byte [edi], 0xa
jmp case.0x41a548.99
mov byte [edi], 0xd
jmp case.0x41a548.99
mov byte [edi], 9
jmp case.0x41a548.99
mov byte [edi], 0xb
jmp case.0x41a548.99
mov byte [edi], 0x20
mov eax, edi
lea ebp, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x41a580
sub eax, ebp
inc eax
push eax
push edi
push ecx
call fcn.00487a80
add esp, 0xc
mov ecx, edi
jmp 0x41a4e0
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d62c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a726
test esi, esi
je 0x41aef3
push 0x49c2a4
mov eax, esi
call fcn.004740a0
add esp, 4
test eax, eax
je 0x41a6a9
mov edi, 0x49d638
call fcn.00409380
test eax, eax
je 0x41aef3
push 0x64
inc eax
push eax
push 0x4a8910
call fcn.00489e40
mov bl, byte [0x4a88e3]
mov byte [0x4a8974], 0
mov ecx, 0x4a8910
mov al, byte [ecx]
add esp, 0xc
test al, al
je 0x41aef3
cmp al, bl
je 0x41a63e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41a623
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp byte [ecx], 0
je 0x41aef3
movsx eax, byte [ecx + 1]
lea esi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41a65d.99
movzx eax, byte [eax + 0x41afa0]
jmp dword [eax*4 + 0x41af7c]
mov byte [esi], 7
jmp case.0x41a65d.99
mov byte [esi], 8
jmp case.0x41a65d.99
mov byte [esi], 0xc
jmp case.0x41a65d.99
mov byte [esi], 0xa
jmp case.0x41a65d.99
mov byte [esi], 0xd
jmp case.0x41a65d.99
mov byte [esi], 9
jmp case.0x41a65d.99
mov byte [esi], 0xb
mov eax, esi
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x41a690
sub eax, edi
inc eax
push eax
push esi
push ecx
call fcn.00487a80
mov ecx, esi
jmp 0x41a616
push 7
push 0x49d63c
push esi
call fcn.00487920
add esp, 0xc
test eax, eax
jne 0x41a6d1
mov byte [0x4a890f], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0x4acacf
push 0x4acace
push 0x4acacd
push 0x4a890e
push 0x4ac44a
push 0x4acacc
push 0x4a890d
push 0x4a890c
push 0x4ac44b
push 0x4a8908
push 0x4acac8
push 0x4aca74
mov eax, esi
call fcn.0040ccf0
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, 0x49d644
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a75d
test esi, esi
je 0x41aef3
call fcn.0040e430
mov dword [0x4a88e4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d65c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a7a7
test esi, esi
je 0x41aef3
call fcn.0040e430
mov dword [0x4a8900], eax
cmp eax, 0xa
jge 0x41aef3
mov dword [0x4a8900], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d66c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a7f1
test esi, esi
je 0x41aef3
call fcn.0040e430
mov dword [0x4a88fc], eax
cmp eax, 1
jge 0x41aef3
mov dword [0x4a88fc], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d684
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a852
test esi, esi
je 0x41aef3
call fcn.0040e430
cmp eax, 0xff
jle 0x41a834
mov eax, 0xff
mov byte [0x4a83b2], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 1
jge 0x41a83e
mov eax, 1
mov byte [0x4a83b2], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d69c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a89b
test esi, esi
je 0x41a885
push eax
call fcn.00409460
add esp, 4
mov byte [0x4ac448], 0
cmp eax, 2
je 0x41aef3
mov byte [0x4ac448], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6b0
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a8fc
test esi, esi
je 0x41aef3
call fcn.0040e430
cmp eax, 0xff
jle 0x41a8de
mov eax, 0xff
mov dword [0x4a88f8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 1
jge 0x41a8e8
mov eax, 1
mov dword [0x4a88f8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6bc
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a933
test esi, esi
je 0x41aef3
call fcn.0040e430
mov dword [0x4a88e8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6d0
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a97c
test esi, esi
je 0x41a966
push eax
call fcn.00409460
add esp, 4
mov byte [0x4acadc], 0
cmp eax, 2
je 0x41aef3
mov byte [0x4acadc], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6d8
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a9a8
mov byte [0x4ac408], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6ec
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a9d8
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x61b], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d6fc
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41aa5e
test esi, esi
je 0x41aef3
call fcn.00414310
fld qword [0x4a2ea0]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x41aa17
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x41aa1b
fstp st(1)
jmp 0x41aa1d
fstp st(0)
fld qword [0x4a2da8]
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 edx, dword [esp + 0x18]
mov dword [0x4a88f4], edx
fldcw word [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d704
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41aac7
test esi, esi
je 0x41aef3
call fcn.0040e430
mov dword [0x4a88f0], eax
test eax, eax
jns 0x41aaa3
mov dword [0x4a88f0], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp eax, 0x1f4
jle 0x41aef3
mov dword [0x4a88f0], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d260
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41ab9d
test esi, esi
je 0x41aef3
cmp byte [esi + 1], al
jne 0x41ab5c
mov al, byte [esi]
cmp al, 0x23
je 0x41ae4b
cmp al, byte [0x4a88e2]
je 0x41ae4b
cmp al, byte [0x4a88e3]
je 0x41ae4b
cmp al, byte [0x4a83b3]
je 0x41ae4b
cmp al, 0x21
je 0x41ae4b
cmp al, 0x5e
je 0x41ae4b
cmp al, 0x2b
je 0x41ae4b
cmp al, 0x24
je 0x41ae4b
cmp al, 0x7e
je 0x41ae4b
cmp al, 0x2a
je 0x41ae4b
cmp al, 0x3c
je 0x41ae4b
cmp al, 0x3e
je 0x41ae4b
push 0xf
push esi
push 0x4a83c0
call fcn.00489e40
mov eax, 0x4a83c0
add esp, 0xc
mov byte [0x4a83cf], 0
lea edx, [eax + 1]
jmp 0x41ab80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41ab80
sub eax, edx
mov dword [0x4a83b4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d710
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41ac0e
test esi, esi
je 0x41aef3
mov al, byte [esi]
cmp al, 0x23
je 0x41ae4b
cmp al, byte [0x4a88e2]
je 0x41ae4b
cmp al, byte [0x4a83b3]
je 0x41ae4b
cmp al, 0x2e
je 0x41ae4b
cmp dword [0x4a83b4], 1
jne 0x41abfa
cmp al, byte [0x4a83c0]
je 0x41ae4b
mov byte [0x4a88e3], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d71c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41ac77
test esi, esi
je 0x41aef3
mov al, byte [esi]
cmp al, byte [0x4a88e3]
je 0x41ae4b
cmp al, byte [0x4a83b3]
je 0x41ae4b
cmp al, 0x2e
je 0x41ae4b
cmp dword [0x4a83b4], 1
jne 0x41ac63
cmp al, byte [0x4a83c0]
je 0x41ae4b
mov byte [0x4a88e2], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d728
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41ace8
test esi, esi
je 0x41aef3
mov al, byte [esi]
cmp al, 0x23
je 0x41ae4b
cmp al, byte [0x4a88e3]
je 0x41ae4b
cmp al, byte [0x4a88e2]
je 0x41ae4b
cmp al, 0x2e
je 0x41ae4b
cmp dword [0x4a83b4], 1
jne 0x41acd4
cmp al, byte [0x4a83c0]
je 0x41ae4b
mov byte [0x4a83b3], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d734
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41ad5b
test esi, esi
je 0x41ad41
push eax
call dword [sym.imp.USER32.DLL_GetKeyboardLayout]
push 0x4a83b1
xor ecx, ecx
mov edi, 0x4a88e0
mov edx, esi
call fcn.00413480
add esp, 4
test al, al
jne 0x41aef3
mov ecx, dword [esp + 0x28]
mov eax, 0x49c2c4
push ebp
push eax
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
mov ecx, dword [esp + 0x28]
mov eax, 0x49d744
push ebp
push eax
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d75c
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41adb5
test esi, esi
je 0x41ad9f
call fcn.0040e430
test eax, eax
js 0x41ae4b
cmp eax, 0x64
jg 0x41ae4b
mov byte [0x4ac449], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
xor eax, eax
mov byte [0x4ac449], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49d768
mov ecx, ebp
call fcn.00473db0
add esp, 8
test eax, eax
jne 0x41a59c
mov ebx, 0x49a8ad
test esi, esi
jne 0x41adde
mov dword [esp + 0x2c], ebx
mov esi, ebx
movsx eax, byte [0x4a83b3]
push eax
push esi
call fcn.00487e91
add esp, 8
test eax, eax
je 0x41ae19
lea edx, [eax + 1]
mov cl, byte [edx]
cmp cl, 0x20
je 0x41ae02
cmp cl, 9
jne 0x41ae05
inc edx
jmp 0x41adf6
mov esi, dword [esp + 0x2c]
mov ebx, edx
dec eax
mov edx, esi
call fcn.004093e0
mov byte [eax + 1], 0
jmp 0x41ae1d
mov esi, dword [esp + 0x2c]
cmp byte [esi], 0
mov edi, 5
je 0x41ae64
xor edi, edi
lea esp, [esp]
mov eax, dword [edi*4 + 0x4a9e6c]
push eax
push esi
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x41ae64
inc edi
cmp edi, 6
jne 0x41ae30
mov ecx, dword [esp + 0x28]
push ebp
push 0x49c2c4
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
cmp byte [ebx], 0
mov esi, 2
je 0x41aea4
xor esi, esi
mov eax, dword [esi*4 + 0x4a9e84]
push eax
push ebx
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x41aea4
inc esi
cmp esi, 4
jne 0x41ae70
mov ecx, dword [esp + 0x28]
push ebx
push 0x49c2dc
call fcn.0042f2b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
test edi, edi
je 0x41aead
cmp edi, 5
jne 0x41aeb3
mov dword [0x4ac40c], esi
cmp edi, 1
je 0x41aebd
cmp edi, 5
jne 0x41aec3
mov dword [0x4ac410], esi
cmp edi, 3
je 0x41aecd
cmp edi, 5
jne 0x41aed3
mov dword [0x4ac414], esi
cmp edi, 2
je 0x41aedd
cmp edi, 5
jne 0x41aee3
mov dword [0x4ac418], esi
cmp edi, 4
je 0x41aeed
cmp edi, 5
jne 0x41aef3
mov dword [0x4ac41c], esi
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x14
ret 8