Function at 0x416540
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ad7f5
mov eax, dword fs:[0]
push eax
mov eax, 0x8214
mov dword fs:[0], esp
call fcn.004ac150
mov eax, dword [0x4dccf0]
push ebx
mov ebx, ecx
dec eax
push esi
push edi
mov dword [ebp - 0x1c], ebx
cmp dword [ebx + 0x44], 0
mov dword [ebp - 0x78], eax
jne 0x416583
cmp dword [ebx + 0x54], 0
mov byte [ebp - 0x3f], 0
je 0x416587
mov byte [ebp - 0x3f], 1
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0x1000
mov dword [ebp - 0x24], 3
mov dword [ebp - 4], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0x1000
mov dword [ebp - 0x5c], 3
mov byte [ebp - 4], 1
push 0x2000
push 0
mov dword [ebx + 0x27c], eax
mov dword [ebp - 0x58], 0xffffffff
call fcn.0049acd3
add esp, 8
test eax, eax
je 0x417c91
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x2c], 0x1000
add eax, ecx
add eax, ecx
div ecx
mov esi, eax
imul esi, ecx
lea ecx, [esi + esi]
push ecx
push dword [ebp - 0x6c]
call fcn.0049acd3
add esp, 8
test eax, eax
je 0x417c91
mov dword [ebp - 0x6c], eax
xor ecx, ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x64], esi
mov word [eax], cx
cmp dword [ebp - 0x30], 0xffffffff
je 0x417b1f
nop dword [eax]
mov eax, dword [ebp - 0x58]
mov ecx, ebx
mov dword [ebx + 0x280], eax
lea eax, [ebp - 0x70]
push 0
push eax
lea eax, [ebp - 0x58]
mov dword [ebx + 0x644], 0
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.004182b0
test eax, eax
je 0x417b9d
cmp dword [ebp - 0x30], 0
je 0x417af8
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov dword [ebp - 0x18], 0
cmp word [eax], 0x3a
jne 0x4166d2
movzx edx, word [eax + 2]
test dx, dx
je 0x4166d2
lea edi, [eax + 2]
mov dword [ebp - 0x48], edi
cmp edx, 0x3a
je 0x41673e
push 0x3a
push edi
call fcn.0049515e
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x34]
test esi, esi
jne 0x416736
mov dword [ebp - 0x18], ebx
push 0x4c9f60
push eax
call fcn.00495225
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4168d1
mov ecx, dword [ebp - 0x34]
cmp ebx, ecx
jne 0x4166fb
cmp word [ebx + 4], 0x3a
jne 0x4166fb
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x416715
movzx eax, word [esi]
cmp eax, 0x20
je 0x41670e
cmp eax, 9
jne 0x416715
sub esi, 2
cmp esi, ecx
ja 0x416701
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x416731
cmp eax, 9
jne 0x4168b3
add ecx, 2
jmp 0x416720
add esi, 2
mov dword [ebp - 0x18], esi
jmp 0x41674c
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x4166d2
mov esi, ecx
mov dword [ebp - 0x18], ecx
test esi, esi
je 0x4166d2
mov esi, edi
mov al, byte [0x4dbc7d]
mov byte [ebp - 0x11], al
cmp edi, dword [ebp - 0x18]
jae 0x4167a6
movzx eax, word [esi]
mov edi, eax
test eax, 0xffffff80
je 0x416773
xor eax, eax
jmp 0x41677c
push eax
call fcn.00498650
add esp, 4
mov ecx, edi
add esi, 2
and ecx, 0xffdf
test eax, eax
movzx edx, cx
mov ecx, edi
cmove edx, ecx
cmp dx, 0x58
je 0x41679e
cmp esi, dword [ebp - 0x18]
jb 0x416763
jmp 0x4167a6
cmp word [esi], 0x30
setne byte [ebp - 0x11]
mov esi, dword [ebp - 0x18]
nop dword [eax]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x4167e2
mov ecx, eax
nop dword [eax]
movzx edx, cx
cmp cx, 0x60
je 0x4167e7
movzx edx, cx
cmp cx, 0x3a
je 0x4167e2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x4167c0
test dx, dx
je 0x41680f
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x416822
test ebx, ebx
jne 0x4168a1
cmp word [edi], dx
jne 0x4168a1
cmp byte [ebp - 0x11], 0
mov ebx, esi
mov esi, edi
je 0x4168a1
test ebx, ebx
jne 0x4168a9
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], ebx
jmp 0x4166d2
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x416834.99
movzx eax, byte [eax + 0x417cf4]
jmp dword [eax*4 + 0x417cd0]
mov eax, 7
jmp 0x416871
mov eax, 8
jmp 0x416871
mov eax, 0xc
jmp 0x416871
mov eax, 0xa
jmp 0x416871
mov eax, 0xd
jmp 0x416871
mov eax, 9
jmp 0x416871
mov eax, 0xb
jmp 0x416871
mov eax, 0x20
mov word [edi], ax
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416880
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.00496c80
add esp, 0xc
add esi, 2
jmp 0x4167b0
mov eax, dword [ebp - 0x48]
mov edi, ebx
mov dword [ebp - 0x38], eax
jmp 0x4168dd
xor edx, edx
call fcn.0040b8d0
mov dword [ebp - 0x54], eax
test eax, eax
je 0x4168cc
cmp eax, 4
je 0x417b9d
jmp 0x4168ce
xor ebx, ebx
mov word [esi], di
mov eax, dword [ebp - 0x48]
mov edi, ebx
mov dword [ebp - 0x38], eax
test ebx, ebx
je 0x4168e6
cmp ebx, dword [ebp - 0x34]
ja 0x416b33
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x1c]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x416947
cmp dword [ebx + 0x54], 0
je 0x416908
mov eax, dword [0x4d78c8]
cmp dword [eax + 0x18], 0
je 0x416947
mov esi, dword [ebp - 0x34]
nop dword [eax + eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x41692b
push eax
call fcn.004985b7
add esp, 4
test eax, eax
jne 0x41692b
cmp word [esi], 0x5f
jne 0x416930
add esi, 2
jmp 0x416910
mov edi, dword [ebp - 0x34]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x30]
jne 0x416947
cmp esi, edi
ja 0x41757b
mov edi, dword [ebp - 0x34]
cmp word [edi], 0x23
jne 0x4169b9
push 6
push 0x4b496c
push edi
call fcn.00497b0e
add esp, 0xc
test eax, eax
jne 0x416997
mov eax, dword [ebp - 0x34]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x416975
cmp ecx, 9
jne 0x41699a
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.00417d10
test eax, eax
je 0x417b9d
mov eax, dword [ebp - 0x34]
mov esi, dword [ebx + 0x280]
mov ecx, ebx
push eax
call fcn.00419130
test eax, eax
je 0x417b9d
cmp eax, 3
je 0x4176fd
mov eax, dword [ebp - 0x34]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4169cd
cmp ecx, 0x7d
jne 0x417711
mov edx, dword [ebx + 0x54]
test edx, edx
je 0x416ab7
mov eax, dword [0x4d78c8]
cmp dword [eax + 0x18], 0
jne 0x416ab7
cmp ecx, 0x7b
je 0x417c02
cmp dword [ebx + 0x274], 0
je 0x416a29
mov eax, dword [ebx + 0x278]
mov dword [ebx + 0x274], 0
test eax, eax
je 0x416ada
push eax
call fcn.00497f48
add esp, 4
mov dword [ebx + 0x278], 0
jmp 0x416ada
lea eax, [edx - 1]
lea ecx, [ebp - 0x38]
mov dword [ebx + 0x54], eax
push ecx
mov ecx, dword [ebx + eax*4 + 0x58]
push str.Prototype
call fcn.00473f10
test eax, eax
je 0x416a4f
cmp dword [eax + 8], 5
jne 0x416a4f
mov ebx, dword [eax]
jmp 0x416a51
xor ebx, ebx
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x416a87
lea edi, [esi + esi*2]
shl edi, 3
mov eax, dword [ebx + 0x10]
lea edi, [edi - 0x18]
dec esi
cmp dword [edi + eax + 0x10], 0
jne 0x416a83
mov eax, dword [edi + eax + 8]
cmp dword [eax + 4], 0
jne 0x416a83
push ecx
push esi
lea ecx, [ebx + 0x10]
call fcn.0042b110
test esi, esi
jne 0x416a61
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x54]
mov eax, dword [ebx + eax*4 + 0x58]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [ebx + 0x6c]
push 0x2e
push esi
call fcn.00495490
add esp, 8
test eax, eax
je 0x416ab0
xor ecx, ecx
mov word [eax], cx
jmp 0x416ada
xor eax, eax
mov word [esi], ax
jmp 0x416ada
push 0
cmp ecx, 0x7b
mov ecx, ebx
push 0
setne al
push 0
add al, 3
push 0
movzx eax, al
push eax
call fcn.0041b540
test eax, eax
je 0x417b9d
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x416add
cmp eax, 9
je 0x416add
test ax, ax
je 0x417af8
mov edi, dword [ebp - 0x34]
mov eax, ecx
mov edx, dword [ebp - 0x30]
sub eax, edi
sar eax, 1
sub edx, eax
mov dword [ebp - 0x30], edx
lea eax, [edx*2 + 2]
push eax
push ecx
push edi
call fcn.00496c80
add esp, 0xc
mov dword [ebx + 0x644], 0
cmp dword [ebp - 0x30], 0
jne 0x416691
jmp 0x417af8
mov eax, dword [0x4d78c8]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x416b4b
cmp eax, dword [edx + 0x1c]
jne 0x417bb3
cmp dword [edx + 0x54], 0
jne 0x417bb3
xor eax, eax
mov word [ebx], ax
add ebx, 4
mov dword [ebp - 0x3c], ebx
mov ecx, ebx
movzx eax, word [ecx]
cmp eax, 0x20
je 0x416b6f
cmp eax, 9
jne 0x416b74
add ecx, 2
jmp 0x416b62
cmp eax, 0x7b
jne 0x416b93
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x416b79
cmp eax, 9
je 0x416b79
test ax, ax
jne 0x416b93
mov bl, 1
jmp 0x416b95
xor bl, bl
mov esi, dword [ebp - 0x18]
mov byte [ebp - 0x12], bl
test esi, esi
jne 0x417280
mov ecx, dword [ebp - 0x3c]
movzx eax, word [ecx]
test ax, ax
je 0x416bfa
mov edx, ecx
cmp ax, 0x20
je 0x416bbc
cmp ax, 9
jne 0x416bc5
movzx eax, word [edx + 2]
add edx, 2
jmp 0x416bb0
mov eax, edx
sub eax, ecx
cmp eax, 2
jb 0x416bfa
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416bd3
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
mov ecx, dword [ebp - 0x3c]
push eax
push edx
push ecx
call fcn.00496c80
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
cmp word [ecx], 0x60
jne 0x416c13
cmp word [edi + 6], 0x7b
lea eax, [edi + 6]
mov edi, dword [ebp - 0x3c]
cmove edi, eax
mov dword [ebp - 0x3c], edi
jmp 0x416c16
mov edi, dword [ebp - 0x3c]
mov esi, edi
test bl, bl
jne 0x417059
cmp word [edi], 0
je 0x417059
cmp word [edi + 2], 0
je 0x416c5d
push 0
xor edx, edx
mov ecx, edi
call fcn.0040b9f0
add esp, 4
mov esi, eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.00413120
add esp, 0xc
mov bl, al
jmp 0x416c60
or bl, 0xff
mov byte [ebp - 0x1d], bl
test bl, bl
je 0x417061
mov ecx, dword [ebp - 0x34]
xor edx, edx
push 0
call fcn.0040b9f0
add esp, 4
mov edi, eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.00413120
add esp, 0xc
mov byte [ebp - 0x3e], al
push 0x4c677c
push edi
call fcn.00495225
add esp, 8
test eax, eax
mov al, byte [ebp - 0x3e]
setne bh
lea ecx, [eax - 1]
cmp cl, 5
ja 0x416cb9
cmp al, 3
jne 0x416cbf
add al, 0x66
cmp al, 5
ja 0x416cc3
mov cl, 1
jmp 0x416cc5
xor cl, cl
mov al, bl
dec al
cmp al, 5
ja 0x416cd2
cmp bl, 3
jne 0x416cda
mov al, bl
add al, 0x66
cmp al, 5
ja 0x416cde
mov bl, 1
jmp 0x416ce0
xor bl, bl
test cl, cl
jne 0x416cec
mov byte [ebp - 0x3d], 1
test bl, bl
jne 0x416cf0
mov byte [ebp - 0x3d], 0
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416cf5
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x416d1c
movzx eax, word [edi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4c9fe8
jne 0x416d21
mov eax, 0x4b431c
push dword [ebp - 0x34]
test bh, bh
mov ecx, 0x4c9e84
push eax
mov eax, 0x4b431c
cmove eax, ecx
push eax
push 0x4c9fec
lea eax, [ebp - 0x114]
push 0x20
push eax
call fcn.0047a7e0
movzx eax, word [esi]
add esp, 0x18
cmp eax, 0x22
je 0x416d75
cmp eax, 0x60
je 0x416d75
push 0x1f
lea eax, [ebp - 0xd4]
push esi
push eax
call fcn.0049fc44
add esp, 0xc
xor eax, eax
mov word [ebp - 0x96], ax
jmp 0x416d91
mov word [ebp - 0xd2], ax
mov ecx, 0x60
xor eax, eax
mov word [ebp - 0xd4], cx
mov word [ebp - 0xd0], ax
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x88]
push 7
push edi
push eax
call fcn.0049fc44
sub esi, edi
xor eax, eax
sar esi, 1
add esp, 0xc
mov word [ebp - 0x7a], ax
cmp esi, 8
jae 0x416dbd
mov word [ebp + esi*2 - 0x88], ax
cmp word [ebp - 0x88], 0
jne 0x416de9
cmp byte [ebp - 0x1d], 0x13
jne 0x416de9
lea eax, [ebp - 0xd4]
push str.Pause
push eax
call fcn.004979b3
add esp, 8
test eax, eax
je 0x417061
mov esi, dword [ebp - 0x1c]
mov ecx, esi
cmp dword [esi + 0x1c], 0
jne 0x417b4b
call fcn.00436170
test eax, eax
je 0x417b9d
lea eax, [ebp - 0x1e]
push eax
lea edx, [ebp - 0x43]
lea ecx, [ebp - 0x114]
call fcn.0040bf80
mov ecx, dword [esi + 0x1c]
add esp, 4
push dword [ebp - 0x43]
test eax, eax
je 0x416e2e
push ecx
mov ecx, eax
call fcn.0040b7e0
jmp 0x416e3f
lea eax, [ebp - 0x114]
xor edx, edx
push eax
call fcn.0040b130
add esp, 8
test eax, eax
je 0x417b9d
test bl, bl
mov ecx, 0x4ca064
mov eax, str.Mouse
cmove eax, ecx
push eax
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x821c]
push str.Set_sDelay__1__
push eax
call fcn.0040d540
add esp, 0xc
lea ebx, [ebp - 0x821c]
cmp byte [ebp - 0x3d], 0
lea ebx, [ebx + eax*2]
je 0x416e95
lea eax, [ebp - 0xd4]
push eax
push str._GetKeyState___s__
push ebx
call fcn.0040d540
add esp, 0xc
lea ebx, [ebx + eax*2]
lea edi, [ebp - 0x94]
mov esi, str._
mov ecx, 0x21
push ecx
lea eax, [ebp - 0x114]
push eax
call fcn.0049515e
add esp, 8
test eax, eax
je 0x416ec9
cmp word [eax + 2], 0
je 0x416ec9
mov ax, word [esi]
mov word [edi], ax
add edi, 2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x416ea5
xor eax, eax
mov ecx, 0x4b431c
mov word [edi], ax
mov al, byte [ebp - 0x1d]
cmp al, 0x12
je 0x416eee
add al, 0x5c
cmp al, 1
ja 0x416f0f
movzx eax, byte [ebp - 0x3e]
sub eax, 0x11
je 0x416f0a
sub eax, 0x91
je 0x416f0a
sub eax, 1
jne 0x416f0f
mov ecx, str.RCtrl_up
jmp 0x416f0f
mov ecx, str.LCtrl_up
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x88]
push eax
push ecx
lea eax, [ebp - 0x94]
push eax
push str.Send__Blind_s_s_s_s_DownR__
push ebx
call fcn.0040d540
mov ebx, dword [ebp - 0x1c]
add esp, 0x18
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.0041b540
test eax, eax
je 0x417b9d
push 0
push 0
push 0
lea eax, [ebp - 0x821c]
mov ecx, ebx
push eax
call fcn.00419fc0
test eax, eax
je 0x417b9d
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0041b540
test eax, eax
je 0x417b9d
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x821c]
push str._s_up
push eax
call fcn.0040d540
add esp, 0xc
mov ecx, ebx
call fcn.00436170
test eax, eax
je 0x417b9d
lea eax, [ebp - 0x1e]
push eax
lea edx, [ebp - 0x43]
lea ecx, [ebp - 0x821c]
call fcn.0040bf80
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x43]
test eax, eax
je 0x416fd7
push ecx
mov ecx, eax
call fcn.0040b7e0
jmp 0x416fe8
lea eax, [ebp - 0x821c]
xor edx, edx
push eax
call fcn.0040b130
add esp, 8
test eax, eax
je 0x417b9d
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x821c]
push str.Set_sDelay__1__Send__Blind_s_Up___n
push eax
call fcn.0040d540
add esp, 0x10
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.0041b540
test eax, eax
je 0x417b9d
push 0
push 0
push 0
lea eax, [ebp - 0x821c]
push eax
mov ecx, ebx
call fcn.00419fc0
test eax, eax
je 0x417b9d
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0041b540
jmp 0x417af0
test edi, edi
je 0x4170ef
cmp word [edi], 0
je 0x4170ef
push str.AltTab
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x417084
mov ebx, 0x7ffe
jmp 0x4170f1
push str.ShiftAltTab
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x41709d
mov ebx, 0x7ffd
jmp 0x4170f1
push str.AltTabMenu
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4170b6
mov ebx, 0x7ffc
jmp 0x4170f1
push str.AltTabAndMenu
push edi
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4170cf
mov ebx, 0x7ffb
jmp 0x4170f1
push str.AltTabMenuDismiss
push edi
call fcn.004979b3
add esp, 8
neg eax
sbb ebx, ebx
and ebx, 0xffff8006
add ebx, 0x7ffa
jmp 0x4170f1
xor ebx, ebx
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x1e]
push eax
lea edx, [ebp - 0x43]
mov dword [ebp - 0x4c], ebx
call fcn.0040bf80
mov esi, eax
add esp, 4
test esi, esi
je 0x4171b9
test bx, bx
je 0x417149
mov word [esi + 6], bx
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp word [edi], 0
je 0x417af8
cmp byte [ebp - 0x12], 0
je 0x4174ed
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.0041b540
jmp 0x417af0
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x417170
mov eax, dword [0x4d78c8]
mov eax, dword [eax + 0x58]
nop dword [eax + eax]
cmp dword [ecx + 8], eax
je 0x417b5a
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x417160
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx + 0x1c], 0
jne 0x417188
mov ecx, ebx
call fcn.00436170
test eax, eax
je 0x417b9d
push dword [ebp - 0x43]
mov ecx, esi
push dword [ebx + 0x1c]
call fcn.0040b7e0
test eax, eax
je 0x417b74
cmp byte [ebp - 0x1e], 0
jne 0x4171b0
cmp byte [0x4dbcb1], 0
je 0x41711c
mov byte [esi + 0x14], 1
jmp 0x41711c
cmp word [ebp - 0x4c], 0
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x1c]
je 0x4171d9
test eax, eax
je 0x4171ec
push 0x4b431c
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x417c9b
test eax, eax
jne 0x4171ec
mov ecx, ebx
call fcn.00436170
test eax, eax
je 0x417b9d
mov ecx, dword [ebp - 0x34]
mov esi, ecx
lea edx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4171f4
sub esi, edx
lea eax, [ebp - 0x414]
sar esi, 1
push esi
push ecx
push eax
call fcn.0049fc44
mov edx, dword [ebp - 0x4c]
add esp, 0xc
mov ecx, dword [ebx + 0x1c]
xor eax, eax
mov word [ebp + esi*2 - 0x414], ax
lea eax, [ebp - 0x414]
push dword [ebp - 0x43]
push eax
call fcn.0040b130
add esp, 8
test eax, eax
jne 0x41711c
cmp dword [ebp - 0x54], 3
jne 0x417b9d
push dword [ebp - 0x34]
lea eax, [ebp - 0x214]
push str.Note:_The_hotkey__s_will_not_be_active_because_it_does_not_exist_in_the_current_keyboard_layout.
push 0x80
push eax
call fcn.0047a7e0
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x214]
mov edx, 0x10000
call fcn.0047fbd0
add esp, 0x18
jmp 0x41711c
cmp word [esi], 0
je 0x417ba4
cmp byte [ebp - 0x11], 0
je 0x41729d
mov eax, dword [ebp - 0x3c]
cmp word [eax], 0
je 0x417b7c
xor al, al
test bl, bl
je 0x4173ed
mov ebx, dword [ebp - 0x48]
test ebx, ebx
je 0x4173de
push 0x4ca22c
push ebx
call fcn.00495225
add esp, 8
test eax, eax
jne 0x4173d4
push 0x4ca234
push ebx
call fcn.00495225
add esp, 8
test eax, eax
jne 0x4173d4
push 0x4ca23c
push ebx
call fcn.00495225
add esp, 8
test eax, eax
jne 0x4173d4
push 0x4ca244
push ebx
call fcn.00495225
add esp, 8
test eax, eax
jne 0x4173d4
mov edi, ebx
movzx ebx, word [ebx]
test bx, bx
je 0x4173b6
mov esi, ebx
nop word [eax + eax]
mov ecx, 0x4ca24c
mov edx, 0x54
nop word [eax + eax]
cmp si, dx
je 0x4173af
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x417330
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x417320
mov eax, dword [ebp - 0x18]
mov esi, ebx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x48], ebx
mov bl, byte [ebp - 0x11]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x54]
mov byte [ebp - 0x11], bl
mov dword [ebp - 0x54], eax
nop
mov ecx, 0x4c6d58
mov edx, 0x52
nop word [eax + eax]
cmp si, dx
je 0x4173af
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x417380
mov eax, dword [ebp - 0x38]
add eax, 2
mov dword [ebp - 0x38], eax
movzx eax, word [eax]
mov esi, eax
test ax, ax
jne 0x417370
movzx eax, byte [0x4dbd5e]
jmp 0x4173d6
mov eax, 1
jmp 0x4173d6
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x48], eax
mov al, byte [ebp - 0x11]
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
movzx eax, byte [0x4dbd5e]
mov dword [ebp - 0x18], esi
jmp 0x4173d6
xor eax, eax
mov edx, dword [ebp - 0x1c]
test eax, eax
setne al
mov bl, byte [ebp - 0x11]
test bl, bl
jne 0x4173f0
test al, al
jne 0x4173f0
mov al, 1
jmp 0x4173f2
mov bl, byte [ebp - 0x11]
xor al, al
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 0x12], al
cmp word [ecx], 0
je 0x417423
test al, al
jne 0x417423
test bl, bl
jne 0x417423
cmp dword [edx + 0x1c], 0
je 0x417438
dec dword [edx + 0x280]
mov ecx, edx
push 0x4b431c
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x417c9d
cmp dword [edx + 0x1c], 0
jne 0x417438
mov ecx, edx
call fcn.00436170
test eax, eax
je 0x417b9d
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x417491
cmp word [edi], 0
je 0x417491
mov esi, edi
lea ecx, [esi + 2]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x417450
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x38], eax
call fcn.00477ed0
mov ebx, eax
test ebx, ebx
je 0x417b8d
test esi, esi
mov esi, dword [ebp - 0x38]
je 0x417489
push esi
push edi
push ebx
call fcn.00497340
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x417496
mov ebx, 0x4b431c
cmp byte [ebp - 0x11], 0
jne 0x4174a9
cmp byte [ebp - 0x12], 0
jne 0x4174a9
mov edi, dword [ebp - 0x3c]
mov eax, edi
jmp 0x4174b1
mov edi, dword [ebp - 0x3c]
mov eax, 0x4b431c
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
push 0
push dword [ebp - 0x70]
mov edx, dword [ecx + 0x1c]
push eax
push esi
push ecx
mov eax, esp
mov ecx, ebx
mov dword [eax], edx
mov edx, dword [ebp - 0x48]
call fcn.0040c4e0
add esp, 0x14
test eax, eax
je 0x417b9d
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx + 0x1c], 0
je 0x417af8
jmp 0x41711f
test esi, esi
je 0x4174f7
movzx eax, byte [ebp - 0x11]
jmp 0x417500
xor eax, eax
cmp word [ebp - 0x4c], ax
sete al
test eax, eax
je 0x417af8
mov edx, dword [ebp - 0x34]
mov ecx, edi
mov eax, dword [ebp - 0x30]
sub ecx, edx
sar ecx, 1
sub eax, ecx
mov dword [ebp - 0x30], eax
add eax, eax
push eax
push edi
push edx
call fcn.00496c80
mov ecx, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 0x34]
xor edx, edx
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
mov ecx, ebx
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.00417d10
test eax, eax
je 0x417b9d
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.0041b540
test eax, eax
je 0x417b9d
push 0
push 0
push 0
push dword [ebp - 0x34]
jmp 0x417034
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0x34]
dec edx
mov dword [ebp - 0x30], edx
push str.Default
mov word [eax + edx*2], cx
push dword [ebp - 0x34]
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x4175c8
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x4175c8
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4175c8
cmp byte [eax], 0x1a
jne 0x4175c8
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, ebx
call fcn.0041b540
jmp 0x417af0
cmp dword [ebx + 0x1c], 0
jne 0x4171ca
mov edi, dword [ebp - 0x34]
cmp word [edi], 0
je 0x417b9d
mov eax, dword [0x4d78c8]
lea esi, [ebx + 8]
mov ecx, dword [eax + 0x18]
test ecx, ecx
lea eax, [ecx + 0x34]
cmove eax, esi
mov dword [ebp - 0x18], eax
lea eax, [ebx + 0xc]
lea ebx, [ecx + 0x38]
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
je 0x417608
mov esi, dword [ecx + 0x34]
jmp 0x41760a
mov esi, dword [esi]
test esi, esi
je 0x417626
nop
push edi
push dword [esi]
call fcn.004979b3
add esp, 8
test eax, eax
je 0x417672
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x417610
cmp word [edi], 0
je 0x417688
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x417631
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x38], eax
call fcn.00477ed0
mov ebx, eax
test ebx, ebx
je 0x417b8d
test esi, esi
mov esi, dword [ebp - 0x38]
je 0x41766a
push esi
push edi
push ebx
call fcn.00497340
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x41768d
mov ebx, dword [ebp - 0x1c]
mov eax, str.Duplicate_label.
push edi
push eax
mov ecx, ebx
call fcn.00428f20
jmp 0x417af0
mov ebx, 0x4b431c
mov ecx, 0x10
call fcn.00477ed0
mov ecx, eax
mov dword [ebp - 0x38], ecx
test ecx, ecx
je 0x4176e2
mov edx, dword [ebp - 0x3c]
mov dword [ecx], ebx
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
jne 0x4176d3
mov ebx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x417af8
mov eax, dword [edx]
mov ebx, dword [ebp - 0x1c]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x417af8
mov ebx, dword [ebp - 0x1c]
mov edi, 0x4b431c
mov eax, str.Out_of_memory.
mov ecx, ebx
push edi
push eax
call fcn.00428f20
jmp 0x417af0
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x27c], eax
mov dword [ebx + 0x280], esi
jmp 0x417af8
cmp dword [ebx + 0x274], 0
je 0x4177cd
mov eax, dword [0x4d78c8]
cmp dword [eax + 0x18], 0
jne 0x4177cd
push 3
push 0x4ca35c
push dword [ebp - 0x34]
call fcn.00497b0e
add esp, 0xc
test eax, eax
je 0x41775d
push 3
push 0x4ca364
push dword [ebp - 0x34]
call fcn.00497b0e
add esp, 0xc
test eax, eax
jne 0x417bc2
mov ecx, dword [ebp - 0x34]
lea esi, [ecx + 6]
movzx eax, word [esi]
cmp eax, 0x20
je 0x417770
cmp eax, 9
jne 0x417775
add esi, 2
jmp 0x417763
test ax, ax
jne 0x417783
mov eax, dword [ebp - 0x6c]
cmp word [eax], 0x7b
jmp 0x41779d
cmp eax, 0x7b
jne 0x41778f
cmp word [esi + 2], 0
jmp 0x41779d
cmp eax, 0x3d
jne 0x417bc5
cmp word [esi + 2], 0x3e
jne 0x417bc5
push 0x2e
push dword [ebx + 0x278]
call fcn.0049515e
mov ecx, dword [ebp - 0x34]
add esp, 8
mov cx, word [ecx]
mov word [eax + 2], cx
mov ecx, ebx
push esi
push dword [ebp - 0x34]
call fcn.0041e000
jmp 0x417af0
mov edi, dword [ebp - 0x34]
push 5
push 0x4c9e88
push edi
call fcn.00497b0e
add esp, 0xc
test eax, eax
jne 0x41790f
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x4177fa
cmp eax, 9
jne 0x41790f
add edi, 0xc
nop dword [eax]
movzx eax, word [edi]
cmp eax, 0x20
je 0x41780d
cmp eax, 9
jne 0x417812
add edi, 2
jmp 0x417800
push eax
push str.__t_____:________n._
call fcn.0049515e
add esp, 8
test eax, eax
jne 0x41790f
mov eax, dword [0x4d78c8]
cmp dword [eax + 0x18], 0
jne 0x417bdb
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
cmp word [edx + ecx*2 - 2], 0x7b
jne 0x4178b0
dec ecx
cmp word [edx], 0
je 0x417902
cmp ecx, 0xffffffff
jne 0x41786f
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417860
sub ecx, esi
sar ecx, 1
lea eax, [edx - 2]
lea eax, [eax + ecx*2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x417882
cmp ecx, 9
jne 0x41788b
cmp eax, edx
je 0x41789e
sub eax, 2
jmp 0x417875
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, ebx
push edi
call fcn.0041d530
jmp 0x417af0
xor ecx, ecx
mov word [eax], cx
mov ecx, ebx
push edi
call fcn.0041d530
jmp 0x417af0
mov esi, dword [ebp - 0x6c]
cmp word [esi], 0x7b
jne 0x417bd0
lea edx, [esi + 2]
mov eax, edx
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x4178cf
cmp ecx, 9
jne 0x4178d4
add eax, 2
jmp 0x4178c2
mov ecx, dword [ebp - 0x68]
sub eax, esi
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x68], ecx
je 0x4178fd
lea eax, [ecx + ecx]
push eax
push edx
push esi
call fcn.00496c80
add esp, 0xc
mov ecx, ebx
push edi
call fcn.0041d530
jmp 0x417af0
xor eax, eax
mov word [esi], ax
push edi
mov ecx, ebx
call fcn.0041d530
jmp 0x417af0
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call fcn.00417d10
test eax, eax
je 0x417b9d
cmp dword [ebx + 0x54], 0
je 0x417ac7
mov eax, dword [0x4d78c8]
cmp dword [eax + 0x18], 0
jne 0x417ac7
mov edi, dword [ebp - 0x34]
push 6
push 0x4b495c
push edi
mov byte [ebp - 0x74], 0
call fcn.00497b0e
add esp, 0xc
test eax, eax
jne 0x4179a9
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x417973
cmp eax, 9
jne 0x4179a9
add edi, 0xe
movzx eax, word [edi]
cmp eax, 0x20
je 0x417983
cmp eax, 9
jne 0x417988
add edi, 2
jmp 0x417976
cmp eax, 0x7f
ja 0x4179a5
push eax
call fcn.004985b7
add esp, 4
test eax, eax
jne 0x4179a5
cmp word [edi], 0x5f
je 0x4179a5
mov edi, dword [ebp - 0x34]
jmp 0x4179a9
mov byte [ebp - 0x74], 1
mov edx, dword [ebp - 0x6c]
mov ecx, edi
call fcn.00416460
test al, al
je 0x4179c9
push 0
push dword [ebp - 0x74]
mov ecx, ebx
push edi
call fcn.0041c6f0
jmp 0x417af0
mov esi, edi
nop dword [eax + eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x4179f2
push eax
call fcn.004985b7
add esp, 4
test eax, eax
jne 0x4179f2
movzx eax, word [esi]
cmp eax, 0x5f
je 0x4179f2
cmp eax, 0x2e
jne 0x4179f7
add esi, 2
jmp 0x4179d0
cmp esi, edi
jbe 0x417bf5
nop
cmp ax, 0x20
je 0x417a0c
cmp ax, 9
jne 0x417a15
movzx eax, word [esi + 2]
add esi, 2
jmp 0x417a00
cmp ax, 0x3a
jne 0x417a36
cmp word [esi + 2], 0x3d
jne 0x417bf5
push dword [ebp - 0x74]
mov ecx, ebx
push edi
call fcn.0041e110
jmp 0x417af0
test ax, ax
je 0x417a5c
cmp ax, 0x5b
je 0x417a5c
cmp ax, 0x7b
je 0x417a5c
cmp ax, 0x3d
jne 0x417bf5
cmp word [esi + 2], 0x3e
jne 0x417bf5
lea eax, [ebp - 0x4d]
mov ecx, ebx
push eax
push dword [ebp - 0x74]
push edi
call fcn.0041dd40
test eax, eax
je 0x417b9d
cmp byte [ebp - 0x4d], 0
jne 0x417af8
mov edx, dword [ebp - 0x6c]
cmp word [edx], 0x7b
jne 0x417be8
lea esi, [edx + 2]
mov eax, esi
nop
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x417a9d
cmp ecx, 9
jne 0x417aa2
add eax, 2
jmp 0x417a90
mov ecx, dword [ebp - 0x68]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x68], ecx
je 0x417ac0
lea eax, [ecx + ecx]
push eax
push esi
push edx
call fcn.00496c80
add esp, 0xc
jmp 0x417af8
xor eax, eax
mov word [edx], ax
jmp 0x417af8
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x34]
call fcn.00416460
mov ecx, ebx
push 0
push 0
test al, al
je 0x417ae6
push dword [ebp - 0x34]
call fcn.0041c6f0
jmp 0x417af0
push 0
push dword [ebp - 0x34]
call fcn.00419fc0
test eax, eax
je 0x417b9d
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x30], eax
cmp eax, 0xffffffff
jne 0x416650
cmp byte [ebp - 0x3f], 0
jne 0x417c6c
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x417c0f
cmp dword [ebx + 0x54], eax
je 0x417c6c
lea eax, [ebx + 0x6c]
push eax
push str.Missing___
jmp 0x417c9b
push 0x4b431c
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x417c9d
mov ecx, dword [ebp - 0x1c]
push dword [ebp - 0x34]
push 0x4ca250
mov dword [ecx + 0x644], 0
jmp 0x417c9d
push dword [ebp - 0x34]
jmp 0x417c96
push 0x4b431c
push str.Expected_single_line_action.
mov ecx, edx
jmp 0x417c9d
push edi
push str.Out_of_memory.
mov ecx, 0x4dcd68
call fcn.00428f20
xor esi, esi
jmp 0x417ca4
push dword [ebp - 0x34]
mov ecx, edx
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x417c9d
push dword [ebp - 0x34]
mov ecx, edx
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x417c9d
mov ecx, dword [ebp - 0x34]
push ecx
push str.Not_a_valid_property_getter_setter.
jmp 0x417c9b
push edx
push 0x4ca3fc
jmp 0x417c9b
push dword [ebp - 0x34]
push str.Functions_cannot_contain_classes.
jmp 0x417c9b
push dword [ebp - 0x34]
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x417c9b
push dword [ebp - 0x34]
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x417c9b
push dword [ebp - 0x34]
push str.Unexpected___
jmp 0x417c9b
cmp byte [0x4dd434], 0
mov ecx, 0x4dcd68
je 0x417c34
push eax
push 0
push 0x4b431c
push str.Missing___
call fcn.00428b60
jmp 0x417ca2
cmp byte [0x4dd437], 0
je 0x417c58
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4b431c
push str.Missing___
call fcn.00428a60
xor esi, esi
jmp 0x417ca4
push eax
push 0x4b431c
push 0
push str.Missing___
call fcn.00428bd0
jmp 0x417ca2
mov ecx, dword [ebx + 0x48]
test ecx, ecx
je 0x417c7a
call fcn.00429370
jmp 0x417ca2
cmp dword [ebx + 0x1c], 0
jne 0x4171ca
inc dword [ebx + 0x280]
mov esi, 1
jmp 0x417ca4
push 0x4b431c
push str.Out_of_memory.
mov ecx, ebx
call fcn.00428f20
mov esi, eax
push dword [ebp - 0x6c]
call fcn.00497f48
add esp, 4
push dword [ebp - 0x34]
call fcn.00497f48
mov ecx, dword [ebp - 0xc]
add esp, 4
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4