Function at 0x418740
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 0xc
push ebx
mov bl, byte [0x4a6367]
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
mov word [esp + 0x24], 0x920
mov byte [esp + 0x26], bl
mov byte [esp + 0x27], 0
mov esi, ebp
test ebp, ebp
je 0x41878a
mov dl, byte [ebp]
test dl, dl
je 0x41878a
mov edi, edi
lea ecx, [esp + 0x24]
mov al, 0x20
cmp dl, al
je 0x41879e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418776
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x418770
mov eax, ebp
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418790
sub eax, edx
lea edi, [eax + ebp]
jmp 0x4187d7
mov edi, esi
mov eax, esi
mov cl, byte [eax]
cmp cl, 0x20
je 0x4187ae
cmp cl, 9
jne 0x4187b1
inc eax
jmp 0x4187a2
mov cl, byte [eax]
test cl, cl
je 0x4187d7
cmp cl, bl
je 0x4187bf
mov esi, eax
jmp 0x4187d9
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x4187bf
cmp cl, 9
je 0x4187bf
mov esi, eax
mov dword [esp + 0x24], esi
test cl, cl
jne 0x4187dd
xor esi, esi
mov dword [esp + 0x24], esi
sub edi, ebp
push 0xffffffffffffffff
push edi
mov eax, 0x49aab0
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
je 0x41882b
push 0xffffffffffffffff
push edi
mov eax, 0x49aabc
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
je 0x41882b
push 0xffffffffffffffff
push edi
mov eax, 0x49aacc
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41883a
mov dword [0x4a9e84], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49aad4
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418866
mov byte [0x4a9e71], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49aae0
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418892
mov byte [0x4a9e70], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49aaec
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418943
mov dword [0x4a9e6c], 1
test esi, esi
je 0x41882b
push 0x49aafc
push esi
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x4188e9
mov dword [0x4a9e6c], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0x49ab04
push esi
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x418914
mov dword [0x4a9e6c], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0x499dfc
push esi
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x41882b
mov dword [0x4a9e6c], 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ab0c
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41896f
or byte [0x4aa62b], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ab20
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41899b
or byte [0x4aa62b], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ab34
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4189e4
test esi, esi
je 0x4189ce
push eax
call fcn.00413f90
add esp, 4
mov byte [0x4aa51b], 0
cmp eax, 2
je 0x41882b
mov byte [0x4aa51b], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x498f00
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418b1a
test esi, esi
jne 0x418a2f
mov eax, 0x498831
mov dword [0x4a63bc], eax
mov dword [0x4a63c0], eax
mov byte [0x4a9e94], 0
mov dword [0x4a63c4], 0xffffffff
lea eax, [esi + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov eax, dword [0x4a6440]
mov edi, dword [eax + 0x94]
mov ecx, dword [esp + 0x20]
push 0
push 0
push 0
push 0x498831
push 0
push 0xe1
mov dword [eax + 0x94], 0
push esi
mov byte [ecx + 0x45], 1
call fcn.00419e40
test eax, eax
jne 0x418a72
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov ebp, dword [esp + 0x20]
mov eax, dword [0x4a6440]
mov ebx, dword [0x4a9ea4]
mov byte [ebp + 0x45], 0
mov dword [eax + 0x94], edi
mov esi, dword [ebp + 4]
mov ecx, dword [esi + 8]
mov eax, dword [0x4a9ea8]
mov edx, dword [ecx + 4]
lea edi, [ebx + 1]
mov byte [0x4a9e94], 5
mov dword [0x4a63bc], edx
mov dword [0x4a63c0], 0x498831
cmp edi, eax
jle 0x418af7
mov ecx, dword [0x4a9ea0]
add eax, 0x64
mov dword [0x4a9ea8], eax
add eax, eax
add eax, eax
push eax
push ecx
call fcn.00486667
add esp, 8
mov dword [0x4a9ea0], eax
test eax, eax
jne 0x418afc
push 0x498831
push 0x499f48
mov ecx, ebp
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov eax, dword [0x4a9ea0]
mov dword [eax + ebx*4], esi
mov dword [0x4a63c4], ebx
mov dword [0x4a9ea4], edi
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ab40
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418b51
test esi, esi
je 0x41882b
call fcn.00412c50
mov dword [0x4a63c8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 6
push 0x49ab4c
push ebp
call fcn.00485b40
add esp, 0xc
test eax, eax
jne 0x418e0e
push 3
lea edx, [ebp + 6]
push 0x499ed0
push edx
call fcn.00485b40
add esp, 0xc
test eax, eax
sete bl
movzx eax, bl
neg eax
sbb eax, eax
and eax, 3
lea edi, [eax + 6]
push 6
add edi, ebp
push 0x499ed4
push edi
call fcn.00485b40
add esp, 0xc
test eax, eax
jne 0x418bb3
test bl, bl
setne cl
inc cl
mov byte [0x4a9e94], cl
jmp 0x418bd9
push 5
push 0x499dec
push edi
call fcn.00485b40
add esp, 0xc
test eax, eax
jne 0x418dff
test bl, bl
setne dl
add dl, 3
mov byte [0x4a9e94], dl
mov edx, dword [esp + 0x24]
mov dword [0x4a63c4], 0xffffffff
test edx, edx
jne 0x418c0d
mov eax, 0x498831
mov dword [0x4a63bc], eax
mov dword [0x4a63c0], eax
mov byte [0x4a9e94], dl
lea eax, [edx + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov al, byte [0x4a6367]
xor esi, esi
mov cl, byte [edx]
test cl, cl
je 0x418c3c
lea ebx, [ebx]
cmp cl, byte [0x4a63cd]
je 0x418c56
cmp cl, al
je 0x418c56
cmp cl, byte [0x4a63cc]
je 0x418c56
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x418c20
test esi, esi
je 0x418d3a
lea edi, [esi + 1]
mov cl, byte [edi]
cmp cl, 0x20
je 0x418c53
cmp cl, 9
jne 0x418c93
inc edi
jmp 0x418c47
mov cl, byte [edx]
test cl, cl
je 0x418c3c
cmp cl, byte [0x4a63cc]
je 0x418c7a
cmp cl, al
jne 0x418c71
test esi, esi
jne 0x418c7a
mov esi, edx
inc edx
jmp 0x418c14
inc edx
cmp byte [edx], 0
je 0x418c3c
inc edx
jmp 0x418c14
mov ecx, dword [esp + 0x20]
push ebp
push 0x49ab54
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov ebp, dword [esp + 0x24]
mov eax, esi
mov byte [esi], 0
sub eax, ebp
mov esi, ebp
mov dword [esp + 0x10], edi
call fcn.00412b40
mov bl, byte [0x4a63cd]
mov ecx, edi
mov al, byte [ecx]
test al, al
je 0x418d46
jmp 0x418cc0
cmp al, bl
je 0x418cce
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418cc0
jmp 0x418d46
cmp byte [ecx], 0
je 0x418d46
movsx eax, byte [ecx + 1]
lea edi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x418ce9.99
movzx eax, byte [eax + 0x4197e4]
jmp dword [eax*4 + 0x4197c0]
mov byte [edi], 7
jmp case.0x418ce9.99
mov byte [edi], 8
jmp case.0x418ce9.99
mov byte [edi], 0xc
jmp case.0x418ce9.99
mov byte [edi], 0xa
jmp case.0x418ce9.99
mov byte [edi], 0xd
jmp case.0x418ce9.99
mov byte [edi], 9
jmp case.0x418ce9.99
mov byte [edi], 0xb
jmp case.0x418ce9.99
mov byte [edi], 0x20
mov eax, edi
lea esi, [eax + 1]
jmp 0x418d20
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x418d20
sub eax, esi
inc eax
push eax
push edi
push ecx
call fcn.00485ca0
add esp, 0xc
jmp 0x418caf
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x10], 0x498831
mov bl, byte [0x4a63cd]
mov ecx, ebp
mov edi, edi
mov al, byte [ecx]
test al, al
je 0x418d62
cmp al, bl
je 0x418d96
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418d56
mov eax, dword [esp + 0x10]
push eax
mov ebx, ebp
call fcn.00409850
add esp, 4
test eax, eax
jne 0x41882b
mov ecx, dword [esp + 0x20]
push 0x498831
push 0x499f48
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp byte [ecx], 0
je 0x418d62
movsx eax, byte [ecx + 1]
lea edi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x418db1.99
movzx edx, byte [eax + 0x419820]
jmp dword [edx*4 + 0x4197fc]
mov byte [edi], 7
jmp case.0x418db1.99
mov byte [edi], 8
jmp case.0x418db1.99
mov byte [edi], 0xc
jmp case.0x418db1.99
mov byte [edi], 0xa
jmp case.0x418db1.99
mov byte [edi], 0xd
jmp case.0x418db1.99
mov byte [edi], 9
jmp case.0x418db1.99
mov byte [edi], 0xb
jmp case.0x418db1.99
mov byte [edi], 0x20
mov eax, edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x418de3
sub eax, esi
inc eax
push eax
push edi
push ecx
call fcn.00485ca0
add esp, 0xc
mov ecx, edi
jmp 0x418d50
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ab90
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418f81
test esi, esi
je 0x41882b
push 0x49ab9c
mov eax, esi
call fcn.004726b0
add esp, 4
test eax, eax
je 0x418f09
mov edi, 0x49aba8
call fcn.00409440
test eax, eax
je 0x41882b
push 0x64
inc eax
push eax
push str._____:____.___n__t
call fcn.00488060
mov bl, byte [0x4a63cd]
mov byte [0x4a643c], 0
mov ecx, str._____:____.___n__t
mov al, byte [ecx]
add esp, 0xc
test al, al
je 0x41882b
cmp al, bl
je 0x418ea1
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418e86
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp byte [ecx], 0
je 0x41882b
movsx eax, byte [ecx + 1]
lea esi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x418ec0.99
movzx edx, byte [eax + 0x41985c]
jmp dword [edx*4 + 0x419838]
mov byte [esi], 7
jmp case.0x418ec0.99
mov byte [esi], 8
jmp case.0x418ec0.99
mov byte [esi], 0xc
jmp case.0x418ec0.99
mov byte [esi], 0xa
jmp case.0x418ec0.99
mov byte [esi], 0xd
jmp case.0x418ec0.99
mov byte [esi], 9
jmp case.0x418ec0.99
mov byte [esi], 0xb
mov eax, esi
lea edi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x418ef0
sub eax, edi
inc eax
push eax
push esi
push ecx
call fcn.00485ca0
mov ecx, esi
jmp 0x418e79
push 7
push 0x49abac
push esi
call fcn.00485b40
add esp, 0xc
test eax, eax
jne 0x418f31
mov byte [0x4a63d5], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0x4aa519
push 0x4aa518
push 0x4a63d4
push 0x4a9e97
push 0x4a9e96
push 0x4a63cf
push 0x4a63ce
push 0x4a9e95
push 0x4a63d0
push 0x4aa514
push 0x4aa510
mov eax, esi
call fcn.0040ccc0
add esp, 0x2c
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49abb4
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418fb8
test esi, esi
je 0x41882b
call fcn.0040cf00
mov dword [0x4a639c], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49abcc
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419002
test esi, esi
je 0x41882b
call fcn.0040cf00
mov dword [0x4a63b8], eax
cmp eax, 0xa
jge 0x41882b
mov dword [0x4a63b8], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49abdc
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41904c
test esi, esi
je 0x41882b
call fcn.0040cf00
mov dword [0x4a63b4], eax
cmp eax, 1
jge 0x41882b
mov dword [0x4a63b4], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49abf4
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4190ad
test esi, esi
je 0x41882b
call fcn.0040cf00
cmp eax, 0xff
jle 0x41908f
mov eax, 0xff
mov byte [0x4a6366], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp eax, 1
jge 0x419099
mov eax, 1
mov byte [0x4a6366], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac0c
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4190f6
test esi, esi
je 0x4190e0
push eax
call fcn.00413f90
add esp, 4
mov byte [0x4a9e7a], 0
cmp eax, 2
je 0x41882b
mov byte [0x4a9e7a], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac20
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419157
test esi, esi
je 0x41882b
call fcn.0040cf00
cmp eax, 0xff
jle 0x419139
mov eax, 0xff
mov dword [0x4a63b0], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp eax, 1
jge 0x419143
mov eax, 1
mov dword [0x4a63b0], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac2c
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41918e
test esi, esi
je 0x41882b
call fcn.0040cf00
mov dword [0x4a63a0], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac40
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4191d7
test esi, esi
je 0x4191c1
push eax
call fcn.00413f90
add esp, 4
mov byte [0x4aa51a], 0
cmp eax, 2
je 0x41882b
mov byte [0x4aa51a], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac48
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419203
mov byte [0x4a9e42], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac5c
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419233
mov eax, dword [esp + 0x20]
mov byte [eax + 0x603], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac6c
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4192b9
test esi, esi
je 0x41882b
call fcn.00412c80
fld qword [0x4a0980]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x419272
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x419276
fstp st(1)
jmp 0x419278
fstp st(0)
fld qword [0x4a0888]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x24], eax
mov eax, 3
fmulp st(1)
fldcw word [esp + 0x24]
fistp qword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [0x4a63ac], ecx
fldcw word [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac74
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419322
test esi, esi
je 0x41882b
call fcn.0040cf00
mov dword [0x4a63a8], eax
test eax, eax
jns 0x4192fe
mov dword [0x4a63a8], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
cmp eax, 0x1f4
jle 0x41882b
mov dword [0x4a63a8], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49a7e0
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4193dd
test esi, esi
je 0x41882b
cmp byte [esi + 1], al
jne 0x4193a0
mov al, byte [esi]
cmp al, 0x23
je 0x419387
cmp al, byte [0x4a63cc]
je 0x419387
cmp al, byte [0x4a63cd]
je 0x419387
cmp al, byte [0x4a6367]
je 0x419387
cmp al, 0x21
je 0x419387
cmp al, 0x5e
je 0x419387
cmp al, 0x2b
je 0x419387
cmp al, 0x24
je 0x419387
cmp al, 0x7e
je 0x419387
cmp al, 0x2a
je 0x419387
cmp al, 0x3c
je 0x419387
cmp al, 0x3e
jne 0x4193a0
mov ecx, dword [esp + 0x20]
push ebp
push 0x49ac80
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xf
push esi
push 0x4a6380
call fcn.00488060
mov eax, 0x4a6380
add esp, 0xc
mov byte [0x4a638f], 0
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4193c0
sub eax, edx
mov dword [0x4a6390], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ac98
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x41944a
test esi, esi
je 0x41882b
mov al, byte [esi]
cmp al, 0x23
je 0x419387
cmp al, byte [0x4a63cc]
je 0x419387
cmp al, byte [0x4a6367]
je 0x419387
cmp al, 0x2e
je 0x419387
cmp dword [0x4a6390], 1
jne 0x419436
cmp al, byte [0x4a6380]
je 0x419387
mov byte [0x4a63cd], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49aca4
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4194b3
test esi, esi
je 0x41882b
mov al, byte [esi]
cmp al, byte [0x4a63cd]
je 0x419387
cmp al, byte [0x4a6367]
je 0x419387
cmp al, 0x2e
je 0x419387
cmp dword [0x4a6390], 1
jne 0x41949f
cmp al, byte [0x4a6380]
je 0x419387
mov byte [0x4a63cc], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49acb0
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419524
test esi, esi
je 0x41882b
mov al, byte [esi]
cmp al, 0x23
je 0x419387
cmp al, byte [0x4a63cd]
je 0x419387
cmp al, byte [0x4a63cc]
je 0x419387
cmp al, 0x2e
je 0x419387
cmp dword [0x4a6390], 1
jne 0x419510
cmp al, byte [0x4a6380]
je 0x419387
mov byte [0x4a6367], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49acbc
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419598
test esi, esi
je 0x41957e
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 1
mov ecx, eax
push 1
xor edx, edx
mov eax, esi
call fcn.00411e40
add esp, 8
mov byte [0x4a6365], al
test al, al
jne 0x41882b
mov ecx, dword [esp + 0x20]
mov eax, 0x49ac80
push ebp
push eax
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [esp + 0x20]
mov eax, 0x49accc
push ebp
push eax
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49ace4
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4195f2
test esi, esi
je 0x4195dc
call fcn.0040cf00
test eax, eax
js 0x419387
cmp eax, 0x64
jg 0x419387
mov byte [0x4a9e7b], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
xor eax, eax
mov byte [0x4a9e7b], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x49acf0
mov ecx, ebp
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x418dff
test esi, esi
jne 0x419618
mov dword [esp + 0x24], 0x49acf8
movsx eax, byte [0x4a6367]
mov esi, dword [esp + 0x24]
push eax
push esi
call fcn.004860b1
add esp, 8
or edi, 0xffffffff
mov ebx, 0x498831
test eax, eax
je 0x419662
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [ecx]
cmp dl, 0x20
je 0x41964c
cmp dl, 9
jne 0x41964f
inc ecx
jmp 0x419640
dec eax
mov edx, esi
mov ebx, ecx
call fcn.004094a0
mov edi, 1
sub edi, esi
add edi, eax
push 0xffffffffffffffff
push edi
mov eax, 0x49acf8
mov ecx, esi
call fcn.004723c0
add esp, 8
test eax, eax
je 0x4196eb
test edi, edi
je 0x4196eb
push 0xffffffffffffffff
push edi
mov eax, 0x49acfc
mov ecx, esi
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419696
xor esi, esi
jmp 0x4196f0
push 0xffffffffffffffff
push edi
mov eax, 0x49ad0c
mov ecx, esi
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4196b1
lea esi, [eax + 1]
jmp 0x4196f0
push 0xffffffffffffffff
push edi
mov eax, 0x49ad1c
mov ecx, esi
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x4196cc
lea esi, [eax + 3]
jmp 0x4196f0
push 0xffffffffffffffff
push edi
mov eax, 0x49ad24
mov ecx, esi
call fcn.004723c0
add esp, 8
test eax, eax
jne 0x419387
lea esi, [eax + 2]
jmp 0x4196f0
mov esi, 4
cmp byte [ebx], 0
jne 0x4196fc
mov eax, 2
jmp 0x419759
push 0x4997dc
push ebx
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x419715
mov eax, 2
jmp 0x419759
push 0x4990a0
push ebx
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x41972e
mov eax, 1
jmp 0x419759
push 0x49ad38
push ebx
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x419747
mov eax, 3
jmp 0x419759
push 0x499dfc
push ebx
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x4197a7
test esi, esi
je 0x419762
cmp esi, 4
jne 0x419767
mov dword [0x4a9e5c], eax
cmp esi, 1
je 0x419771
cmp esi, 4
jne 0x419776
mov dword [0x4a9e60], eax
cmp esi, 3
je 0x419780
cmp esi, 4
jne 0x419785
mov dword [0x4a9e64], eax
cmp esi, 2
je 0x419793
cmp esi, 4
jne 0x41882b
mov dword [0x4a9e68], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [esp + 0x20]
push ebp
push 0x49ad40
call fcn.0042e860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8