Function at 0x43b110
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b6e85
mov eax, dword fs:[0]
push eax
mov eax, 0x8110
mov dword fs:[0], esp
call fcn.004b5bd0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], edi
cmp dword [edi + 0x44], 0
jne 0x43b14a
cmp dword [edi + 0x58], 0
mov byte [ebp - 0x42], 0
je 0x43b14e
mov byte [ebp - 0x42], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0x1000
mov dword [ebp - 0x1c], 3
mov dword [ebp - 4], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0x1000
mov dword [ebp - 0x58], 3
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 1
push 0x2000
push 0
mov dword [edi + 0x27c], eax
mov dword [ebp - 0x54], 0
call fcn.0049f3d8
add esp, 8
test eax, eax
je 0x43c778
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b1db
add esi, esi
jmp 0x43b1de
mov esi, dword [ebp - 0x5c]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x68]
call fcn.0049f3d8
add esp, 8
test eax, eax
je 0x43c778
mov dword [ebp - 0x68], eax
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x60], esi
mov word [eax], cx
cmp dword [ebp - 0x28], 0xffffffff
je 0x43c6d3
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov al, byte [ebp - 0x15]
mov byte [ebp - 0xd], al
mov dword [ebp - 0x4c], edx
nop
mov eax, dword [ebp - 0x54]
mov ecx, edi
mov dword [edi + 0x280], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x54]
mov dword [edi + 0x644], 0
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043d140
test eax, eax
je 0x43c739
cmp dword [ebp - 0x28], 0
je 0x43bcc6
lea eax, [edi + 0x58]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b373
movzx edx, word [eax + 2]
test dx, dx
je 0x43b373
lea edi, [eax + 2]
mov dword [ebp - 0x38], edi
cmp edx, 0x3a
je 0x43b2ac
push 0x3a
push edi
call fcn.0049ce3f
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x2c]
lea ecx, [esi + 2]
neg esi
sbb esi, esi
and esi, ecx
mov dword [ebp - 0x30], esi
jmp 0x43b2be
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b373
mov esi, ecx
mov dword [ebp - 0x30], ecx
test esi, esi
je 0x43b373
mov al, byte [0x4e8d30]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b307
movzx eax, word [edi]
add edi, 2
mov edx, eax
mov esi, eax
and eax, 0xffdf
add edx, 0xffffff9f
movzx ecx, ax
cmp dx, 0x19
mov eax, esi
mov esi, dword [ebp - 0x30]
cmova ecx, eax
cmp cx, 0x58
je 0x43b2ff
cmp edi, esi
jb 0x43b2d2
jmp 0x43b307
cmp word [edi], 0x30
setne byte [ebp - 0xd]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b335
mov ecx, eax
movzx edx, cx
cmp cx, 0x60
je 0x43b33a
movzx edx, cx
cmp cx, 0x3a
je 0x43b335
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b313
test dx, dx
je 0x43b366
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b3da
test ebx, ebx
jne 0x43b455
cmp word [edi], dx
jne 0x43b455
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b455
test ebx, ebx
jne 0x43b48f
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d7038
push eax
mov dword [ebp - 0x30], esi
call fcn.0049d82e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b498
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b39f
cmp word [ebx + 4], 0x3a
jne 0x43b39f
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b3b9
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b3b2
cmp eax, 9
jne 0x43b3b9
sub esi, 2
cmp esi, ecx
ja 0x43b3a5
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b3d5
cmp eax, 9
jne 0x43b45d
add ecx, 2
jmp 0x43b3c4
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b3ec.99
movzx eax, byte [eax + 0x43c7e0]
jmp dword [eax*4 + 0x43c7bc]
mov eax, 7
jmp 0x43b429
mov eax, 8
jmp 0x43b429
mov eax, 0xc
jmp 0x43b429
mov eax, 0xa
jmp 0x43b429
mov eax, 0xd
jmp 0x43b429
mov eax, 9
jmp 0x43b429
mov eax, 0xb
jmp 0x43b429
mov eax, 0x20
mov word [edi], ax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b431
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049cef0
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b307
push 0
xor edx, edx
call fcn.00415590
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x43c739
xor ecx, ecx
mov word [esi], di
cmp eax, 4
cmove ebx, ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
mov cl, byte [ebp - 0xd]
mov byte [ebp - 0xd], cl
test ebx, ebx
je 0x43b498
cmp ebx, dword [ebp - 0x2c]
ja 0x43b740
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b4fa
cmp dword [ebx + 0x58], 0
lea eax, [ebx + 0x58]
mov dword [ebp - 0x40], eax
je 0x43b4c0
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
je 0x43b4fa
mov esi, dword [ebp - 0x2c]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b4de
push eax
call fcn.004a35e0
add esp, 4
test eax, eax
jne 0x43b4de
cmp word [esi], 0x5f
jne 0x43b4e3
add esi, 2
jmp 0x43b4c3
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b4fa
cmp esi, edi
ja 0x43c0c0
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b583
push 6
push str.HotIf
push edi
call fcn.0049f432
add esp, 0xc
test eax, eax
jne 0x43b54e
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b52c
cmp ecx, 9
jne 0x43b551
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c9b0
test eax, eax
je 0x43c739
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
mov ecx, edi
push eax
mov esi, dword [edi + 0x280]
call fcn.0043dcb0
test eax, eax
je 0x43c739
cmp eax, 3
jne 0x43b586
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x27c], eax
mov dword [edi + 0x280], esi
jmp 0x43bcc6
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b59a
cmp ecx, 0x7d
jne 0x43c242
mov edx, dword [edi + 0x58]
lea ebx, [edi + 0x58]
test edx, edx
je 0x43b6c1
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
jne 0x43b6c1
cmp ecx, 0x7b
je 0x43c6c6
cmp dword [edi + 0x274], 0
je 0x43b5f9
mov eax, dword [edi + 0x278]
mov dword [edi + 0x274], 0
test eax, eax
je 0x43b6e4
push eax
call fcn.0049f3b2
add esp, 4
mov dword [edi + 0x278], 0
jmp 0x43b6e4
lea eax, [edx - 1]
mov dword [ebx], eax
mov ebx, dword [edi + eax*4 + 0x5c]
lea eax, [ebp - 0x34]
push eax
push str.Prototype
mov ecx, ebx
call fcn.00479290
test eax, eax
je 0x43b623
cmp dword [eax + 8], 5
jne 0x43b623
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
jmp 0x43b62a
mov dword [ebp - 0x3c], 0
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x43b65f
lea edi, [esi + esi*2]
shl edi, 3
nop word [eax + eax]
mov eax, dword [ebx + 0x10]
lea edi, [edi - 0x18]
dec esi
cmp dword [edi + eax + 0x10], 3
jne 0x43b658
push ecx
push esi
lea ecx, [ebx + 0x10]
call fcn.0044ddd0
test esi, esi
jne 0x43b640
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x43b691
lea edi, [esi + esi*2]
shl edi, 3
mov eax, dword [ebx + 0x10]
lea edi, [edi - 0x18]
dec esi
cmp dword [edi + eax + 0x10], 3
jne 0x43b68a
push ecx
push esi
lea ecx, [ebx + 0x10]
call fcn.0044ddd0
test esi, esi
jne 0x43b672
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x58]
lea ebx, [edi + 0x58]
mov eax, dword [edi + eax*4 + 0x5c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [edi + 0x70]
push 0x2e
push esi
call fcn.0049cd9e
add esp, 8
test eax, eax
je 0x43b6ba
xor ecx, ecx
mov word [eax], cx
jmp 0x43b6e4
xor eax, eax
mov word [esi], ax
jmp 0x43b6e4
push 0
cmp ecx, 0x7b
mov ecx, edi
push 0
setne al
push 0
add al, 3
push 0
movzx eax, al
push eax
call fcn.00440240
test eax, eax
je 0x43c739
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b6e7
cmp eax, 9
je 0x43b6e7
test ax, ax
je 0x43bcc9
mov edi, dword [ebp - 0x2c]
mov eax, ecx
mov edx, dword [ebp - 0x28]
sub eax, edi
sar eax, 1
sub edx, eax
mov dword [ebp - 0x28], edx
lea eax, [edx*2 + 2]
push eax
push ecx
push edi
call fcn.0049cef0
mov edi, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp - 0x28], 0
mov dword [edi + 0x644], 0
jne 0x43b265
jmp 0x43bcc6
mov eax, dword [0x4e4788]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b758
cmp eax, dword [esi + 0x1c]
jne 0x43c65f
cmp dword [esi + 0x58], 0
jne 0x43c65f
xor eax, eax
mov word [ebx], ax
add ebx, 4
mov dword [ebp - 0x40], ebx
mov ecx, ebx
nop
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b77d
cmp eax, 9
jne 0x43b782
add ecx, 2
jmp 0x43b770
cmp eax, 0x7b
jne 0x43b793
cmp word [ecx + 2], 0
jne 0x43b793
lea edx, [eax - 0x7a]
jmp 0x43b795
xor dl, dl
mov edi, dword [ebp - 0x30]
mov ah, byte [ebp - 0xd]
mov dword [ebp - 0x3c], edx
test edi, edi
je 0x43b7aa
test ah, ah
je 0x43becc
mov ebx, ecx
mov dword [ebp - 0x40], ebx
test edi, edi
jne 0x43becc
cmp word [ecx], 0x60
mov dword [ebp - 0x40], ecx
jne 0x43b7ce
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x40], ebx
mov edi, ebx
test dl, dl
jne 0x43bcf5
cmp word [ebx], 0
je 0x43bcf5
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b869
nop dword [eax]
cmp ax, 0x20
je case.0x43b808.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b808.34
movzx eax, byte [eax + 0x43c800]
jmp dword [eax*4 + 0x43c7f8]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b7f0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041cb20
mov bh, al
add esp, 0xc
mov byte [ebp - 0x15], bh
test bh, bh
jne 0x43b86f
mov ebx, dword [ebp - 0x40]
cmp word [ebx], 0
je 0x43bcfd
push str.AltTab
push ebx
call fcn.0049f2b1
add esp, 8
test eax, eax
jne 0x43bd54
mov edi, 0x7ffe
jmp 0x43bcff
or bh, 0xff
mov byte [ebp - 0x15], bh
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b89b.34
cmp word [esi + 2], 0
je case.0x43b89b.34
movzx eax, word [esi + 2]
cmp ax, 0x20
je case.0x43b89b.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b89b.34
movzx eax, byte [eax + 0x43c868]
jmp dword [eax*4 + 0x43c860]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b883
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041cb20
add esp, 0xc
mov bl, al
mov byte [ebp - 0x43], bl
push 0x4d4134
push esi
call fcn.0049d82e
lea ecx, [ebx - 1]
mov dword [ebp - 0x34], eax
add esp, 8
cmp cl, 5
ja 0x43b8e9
cmp bl, 3
jne 0x43b8f1
mov al, bl
add al, 0x66
cmp al, 5
ja 0x43b8f5
mov cl, 1
jmp 0x43b8f7
xor cl, cl
mov al, bh
dec al
cmp al, 5
ja 0x43b904
cmp bh, 3
jne 0x43b90c
mov al, bh
add al, 0x66
cmp al, 5
ja 0x43b910
mov bl, 1
jmp 0x43b912
xor bl, bl
test cl, cl
jne 0x43b91e
mov byte [ebp - 0x41], 1
test bl, bl
jne 0x43b922
mov byte [ebp - 0x41], 0
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b927
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b94e
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d70c0
jne 0x43b953
mov eax, 0x4cee90
push dword [ebp - 0x2c]
cmp dword [ebp - 0x34], 0
mov ecx, 0x4d2af4
push eax
mov eax, 0x4cee90
cmove eax, ecx
push eax
push 0x4d5910
lea eax, [ebp - 0x110]
push 0x20
push eax
call fcn.00481830
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43b9a9
cmp eax, 0x60
je 0x43b9a9
push 0x1f
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004aa8b4
add esp, 0xc
xor eax, eax
mov word [ebp - 0x92], ax
jmp 0x43b9c5
mov word [ebp - 0xce], ax
mov ecx, 0x60
xor eax, eax
mov word [ebp - 0xd0], cx
mov word [ebp - 0xcc], ax
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x84]
push 7
push esi
push eax
call fcn.004aa8b4
sub edi, esi
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x76], ax
cmp edi, 8
jae 0x43b9f1
mov word [ebp + edi*2 - 0x84], ax
cmp word [ebp - 0x84], 0
jne 0x43ba1c
cmp bh, 0x13
jne 0x43ba1c
lea eax, [ebp - 0xd0]
push str.Pause
push eax
call fcn.0049f2b1
add esp, 8
test eax, eax
je 0x43b83c
mov esi, dword [ebp - 0x14]
mov ecx, esi
cmp dword [esi + 0x1c], 0
jne 0x43c60e
call fcn.0044f5a0
test eax, eax
je 0x43c739
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x47]
lea ecx, [ebp - 0x110]
call fcn.00415e10
mov ecx, dword [esi + 0x1c]
add esp, 4
push dword [ebp - 0x47]
test eax, eax
je 0x43ba61
push ecx
mov ecx, eax
call fcn.004154a0
jmp 0x43ba72
lea eax, [ebp - 0x110]
xor edx, edx
push eax
call fcn.00414b80
add esp, 8
test eax, eax
je 0x43c739
test bl, bl
mov ecx, str.SetKeyDelay
mov eax, str.SetMouseDelay
cmove eax, ecx
push eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x8118]
push str._s__1__
push eax
call fcn.00406670
add esp, 0xc
lea ebx, [ebp - 0x8118]
cmp byte [ebp - 0x41], 0
lea ebx, [ebx + eax*2]
je 0x43bac8
lea eax, [ebp - 0xd0]
push eax
push str._GetKeyState___s__
push ebx
call fcn.00406670
add esp, 0xc
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x38]
lea edi, [ebp - 0x90]
mov edx, dword [ebp - 0x4c]
mov esi, str._
mov dword [ebp - 0x38], eax
mov ecx, 0x21
mov al, byte [ebp - 0xd]
mov byte [ebp - 0xd], al
mov dword [ebp - 0x4c], edx
nop word [eax + eax]
push ecx
lea eax, [ebp - 0x110]
push eax
call fcn.0049ce3f
add esp, 8
test eax, eax
je 0x43bb2b
cmp word [eax + 2], 0
je 0x43bb2b
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0049ce3f
add esp, 8
test eax, eax
jne 0x43bb2b
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 0x43baf0
xor eax, eax
mov ecx, 0x4cee90
mov word [edi], ax
movzx eax, byte [ebp - 0x15]
sub eax, 0x12
je 0x43bb58
sub eax, 0x92
je 0x43bb58
sub eax, 1
jne 0x43bb79
movzx eax, byte [ebp - 0x43]
sub eax, 0x11
je 0x43bb74
sub eax, 0x91
je 0x43bb74
sub eax, 1
jne 0x43bb79
mov ecx, str.RCtrl_up
jmp 0x43bb79
mov ecx, str.LCtrl_up
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x84]
push eax
push ecx
lea eax, [ebp - 0x90]
push eax
push str.Send__Blind_s_s_s_s_DownR__
push ebx
call fcn.00406670
mov edi, dword [ebp - 0x14]
add esp, 0x18
mov ecx, edi
push 0
push 0
push 0
push 0
push 3
call fcn.00440240
test eax, eax
je 0x43c739
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, edi
push eax
call fcn.0043ece0
test eax, eax
je 0x43c739
push 0
push 0
push 0
push 0
push 4
mov ecx, edi
call fcn.00440240
test eax, eax
je 0x43c739
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x8118]
push str._s_up
push eax
call fcn.00406670
add esp, 0xc
mov ecx, edi
call fcn.0044f5a0
test eax, eax
je 0x43c739
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x47]
lea ecx, [ebp - 0x8118]
call fcn.00415e10
mov ecx, dword [edi + 0x1c]
add esp, 4
push dword [ebp - 0x47]
test eax, eax
je 0x43bc41
push ecx
mov ecx, eax
call fcn.004154a0
jmp 0x43bc52
lea eax, [ebp - 0x8118]
xor edx, edx
push eax
call fcn.00414b80
add esp, 8
test eax, eax
je 0x43c739
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0x8118]
push str._s__1__Send__Blind_s_Up___n
push eax
call fcn.00406670
add esp, 0x10
mov ecx, edi
push 0
push 0
push 0
push 0
push 3
call fcn.00440240
test eax, eax
je 0x43c739
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
push eax
mov ecx, edi
call fcn.0043ece0
test eax, eax
je 0x43c739
push 0
push 0
push 0
push 0
push 4
mov ecx, edi
call fcn.00440240
test eax, eax
je 0x43c739
lea ebx, [edi + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
jne 0x43b220
jmp 0x43c6d6
test ebx, ebx
jne 0x43b83f
xor edi, edi
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x47]
mov dword [ebp - 0x50], edi
call fcn.00415e10
mov esi, eax
add esp, 4
test esi, esi
je 0x43be30
test di, di
je 0x43bdc8
mov word [esi + 6], di
mov edi, dword [ebp - 0x30]
cmp word [ebx], 0
je 0x43c0b0
cmp byte [ebp - 0x3c], 0
je 0x43c023
mov edi, dword [ebp - 0x14]
push 0
push 0
push 0
push 0
push 3
jmp 0x43bcb7
push str.ShiftAltTab
push ebx
call fcn.0049f2b1
add esp, 8
test eax, eax
jne 0x43bd6d
mov edi, 0x7ffd
jmp 0x43bcff
push str.AltTabMenu
push ebx
call fcn.0049f2b1
add esp, 8
test eax, eax
jne 0x43bd89
mov edi, 0x7ffc
jmp 0x43bcff
push str.AltTabAndMenu
push ebx
call fcn.0049f2b1
add esp, 8
test eax, eax
jne 0x43bda5
mov edi, 0x7ffb
jmp 0x43bcff
push str.AltTabMenuDismiss
push ebx
call fcn.0049f2b1
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bcff
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bde7
mov eax, dword [0x4e4788]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 8], eax
je 0x43c61d
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43bdd7
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43bdff
mov ecx, edi
call fcn.0044f5a0
test eax, eax
je 0x43c739
push dword [ebp - 0x47]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.004154a0
test eax, eax
je 0x43c637
cmp byte [ebp - 0x16], 0
jne 0x43be27
cmp byte [0x4e8c6f], 0
je 0x43bd2b
mov byte [esi + 0x14], 1
jmp 0x43bd2b
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43be50
test eax, eax
je 0x43be63
push 0x4cee90
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, esi
jmp 0x43c784
test eax, eax
jne 0x43be63
mov ecx, esi
call fcn.0044f5a0
test eax, eax
je 0x43c739
push dword [ebp - 0x47]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414b80
add esp, 8
test eax, eax
jne 0x43bd2b
cmp dword [ebp - 0x4c], 3
jne 0x43c739
cmp byte [esi + 0x6dc], al
jne 0x43bd2b
push dword [ebp - 0x2c]
lea eax, [ebp - 0x218]
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.00481830
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x218]
mov edx, 0x10000
call fcn.00486ca0
add esp, 0x18
jmp 0x43bd2b
cmp word [edi], 0
je 0x43c650
test ah, ah
je 0x43bf26
cmp word [ebx], 0
je 0x43c63f
test dl, dl
jne 0x43c63f
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x1c], 0
lea esi, [eax + 0x1c]
jne 0x43bf0d
mov ecx, eax
call fcn.0044f5a0
test eax, eax
je 0x43c739
cmp byte [ebp - 0xd], 0
jne 0x43bfe3
test bl, bl
jne 0x43bfe3
mov eax, edi
jmp 0x43bfe8
test dl, dl
je 0x43bf80
cmp byte [0x4e8d35], 0
mov esi, dword [ebp - 0x38]
setne bl
cmp esi, edi
jae 0x43bf73
nop dword [eax + eax]
movzx eax, word [esi]
mov ecx, eax
add eax, 0xffffff9f
mov edx, ecx
and edx, 0xffffffdf
cmp ax, 0x19
cmova edx, ecx
sub edx, 0x52
je 0x43bf5e
sub edx, 2
jne 0x43bf66
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bf40
mov edx, dword [ebp - 0x3c]
mov ah, byte [ebp - 0xd]
xor ecx, ecx
movzx edx, dl
test bl, bl
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
mov edi, dword [ebp - 0x40]
mov al, dl
cmp word [edi], 0
je 0x43beef
mov ecx, dword [ebp - 0x30]
mov bl, al
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0xd], ah
mov dword [ebp - 0x4c], edx
test al, al
jne 0x43bef2
test ah, ah
jne 0x43bef2
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x1c], 0
lea esi, [eax + 0x1c]
je 0x43bf1f
dec dword [eax + 0x280]
mov ecx, eax
push 0x4cee90
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c784
mov eax, 0x4cee90
mov ecx, dword [esi]
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
push 0
push dword [ebp - 0x6c]
push eax
push edi
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
call fcn.004163b0
add esp, 0x14
test eax, eax
je 0x43c739
cmp dword [esi], 0
mov ebx, dword [ebp - 0x74]
je 0x43c0b8
mov ebx, dword [ebp - 0x40]
jmp 0x43bd2e
test edi, edi
je 0x43c02d
movzx eax, byte [ebp - 0xd]
jmp 0x43c036
xor eax, eax
cmp word [ebp - 0x50], ax
sete al
test eax, eax
je 0x43c0b0
mov edx, dword [ebp - 0x2c]
mov ecx, ebx
mov eax, dword [ebp - 0x28]
sub ecx, edx
sar ecx, 1
sub eax, ecx
mov dword [ebp - 0x28], eax
add eax, eax
push eax
push ebx
push edx
call fcn.0049cef0
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov edi, dword [ebp - 0x14]
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c9b0
test eax, eax
je 0x43c739
push 0
push 0
push 0
push 0
push 3
mov ecx, edi
call fcn.00440240
test eax, eax
je 0x43c739
push 0
push 0
push 0
push dword [ebp - 0x2c]
jmp 0x43bc9e
mov edi, dword [ebp - 0x14]
jmp 0x43bcc6
mov edi, dword [ebp - 0x14]
jmp 0x43bcc9
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d4610
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049f2b1
add esp, 8
mov edi, ebx
test eax, eax
jne 0x43c11a
mov eax, dword [edi + 0x44]
test eax, eax
je 0x43c11a
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43c11a
cmp byte [eax], 0x1a
jne 0x43c11a
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, edi
call fcn.00440240
test eax, eax
je 0x43c739
mov ebx, dword [ebp - 0x40]
jmp 0x43bcc9
cmp dword [edi + 0x1c], 0
jne 0x43c66e
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c739
mov eax, dword [0x4e4788]
lea esi, [ebx + 8]
mov eax, dword [eax + 0x18]
test eax, eax
lea ecx, [eax + 0x34]
mov edx, ecx
cmove edx, esi
mov dword [ebp - 0x74], edx
je 0x43c152
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43c157
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43c176
nop
push edi
push dword [esi]
call fcn.0049f2b1
add esp, 8
test eax, eax
je 0x43c1c2
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43c160
cmp word [edi], 0
je 0x43c1e1
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43c181
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x34], eax
call fcn.0047e640
mov ebx, eax
test ebx, ebx
je 0x43c7b6
test esi, esi
mov esi, dword [ebp - 0x34]
je 0x43c1ba
push esi
push edi
push ebx
call fcn.0049cef0
add esp, 0xc
xor eax, eax
mov word [ebx + esi], ax
jmp 0x43c1e6
push edi
mov edi, ebx
push str.Duplicate_label.
mov ecx, edi
call fcn.0040d7c0
test eax, eax
je 0x43c739
mov ebx, dword [ebp - 0x40]
jmp 0x43bcc9
mov ebx, 0x4cee90
mov ecx, 0x10
call fcn.0047e640
mov ecx, eax
test ecx, ecx
je 0x43c7b6
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 8], 0
mov dword [ecx], ebx
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x74]
cmp dword [eax], 0
jne 0x43c230
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x40]
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bcc9
mov eax, dword [edx]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bcc9
mov edi, dword [ebp - 0x2c]
push 5
push str.Class
push edi
call fcn.0049f432
add esp, 0xc
test eax, eax
jne 0x43c334
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43c26f
cmp eax, 9
jne 0x43c334
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c27f
cmp eax, 9
jne 0x43c284
add edi, 2
jmp 0x43c272
push eax
push str.__t_____:________n._
call fcn.0049ce3f
add esp, 8
test eax, eax
jne 0x43c334
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
jne 0x43c68b
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c2cf
dec edx
mov ecx, eax
call fcn.00438280
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442280
jmp 0x43bcbe
mov edx, dword [ebp - 0x68]
cmp word [edx], 0x7b
jne 0x43c67d
lea esi, [edx + 2]
mov eax, esi
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c2ee
cmp ecx, 9
jne 0x43c2f3
add eax, 2
jmp 0x43c2e1
mov ecx, dword [ebp - 0x64]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x64], ecx
je 0x43c31f
lea eax, [ecx + ecx]
push eax
push esi
push edx
call fcn.0049cef0
add esp, 0xc
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442280
jmp 0x43bcbe
push edi
mov edi, dword [ebp - 0x14]
xor eax, eax
mov ecx, edi
mov word [edx], ax
call fcn.00442280
jmp 0x43bcbe
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c9b0
test eax, eax
je 0x43c739
cmp dword [edi + 0x274], 0
mov eax, dword [0x4e4788]
je 0x43c418
cmp dword [eax + 0x18], 0
jne 0x43c418
push 3
push 0x4d7434
push dword [ebp - 0x2c]
call fcn.0049f432
add esp, 0xc
test eax, eax
je 0x43c3a5
push 3
push 0x4d743c
push dword [ebp - 0x2c]
call fcn.0049f432
add esp, 0xc
test eax, eax
jne 0x43c69b
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
nop dword [eax + eax]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c3bd
cmp ecx, 9
jne 0x43c3c2
add esi, 2
jmp 0x43c3b0
test cx, cx
jne 0x43c3d0
mov eax, dword [ebp - 0x68]
cmp word [eax], 0x7b
je 0x43c3f0
cmp ecx, 0x7b
jne 0x43c3dc
cmp word [esi + 2], 0
jmp 0x43c3ea
cmp ecx, 0x3d
jne 0x43c69e
cmp word [esi + 2], 0x3e
jne 0x43c69e
push 0x2e
push dword [edi + 0x278]
call fcn.0049ce3f
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov cx, word [ecx]
push esi
mov word [eax + 2], cx
push ecx
mov ecx, edi
call fcn.00442dd0
jmp 0x43bcbe
cmp dword [edi + 0x58], 0
lea ebx, [edi + 0x58]
je 0x43c5cd
cmp dword [eax + 0x18], 0
jne 0x43c5cd
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d2d20
push edi
mov byte [ebp - 0x70], 0
call fcn.0049f432
add esp, 0xc
test eax, eax
jne 0x43c493
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c458
cmp eax, 9
jne 0x43c493
add edi, 0xe
nop dword [eax + eax]
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c46d
cmp eax, 9
jne 0x43c472
add edi, 2
jmp 0x43c460
cmp eax, 0x7f
ja 0x43c48f
push eax
call fcn.004a35e0
add esp, 4
test eax, eax
jne 0x43c48f
cmp word [edi], 0x5f
je 0x43c48f
mov edi, dword [ebp - 0x2c]
jmp 0x43c493
mov byte [ebp - 0x70], 1
mov edx, dword [ebp - 0x68]
mov ecx, edi
call fcn.0043a870
test al, al
je 0x43c4be
push 0
push dword [ebp - 0x70]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00441740
test eax, eax
je 0x43c739
jmp 0x43bcc9
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c4e2
push eax
call fcn.004a35e0
add esp, 4
test eax, eax
jne 0x43c4e2
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c4e2
cmp eax, 0x2e
jne 0x43c4e7
add esi, 2
jmp 0x43c4c0
cmp esi, edi
jbe 0x43c6b6
nop
cmp ax, 0x20
je 0x43c4fc
cmp ax, 9
jne 0x43c505
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c4f0
cmp ax, 0x3a
jne 0x43c531
cmp word [esi + 2], 0x3d
jne 0x43c6b6
push dword [ebp - 0x70]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442ec0
test eax, eax
je 0x43c739
jmp 0x43bcc9
test ax, ax
je 0x43c557
cmp ax, 0x5b
je 0x43c557
cmp ax, 0x7b
je 0x43c557
cmp ax, 0x3d
jne 0x43c6b6
cmp word [esi + 2], 0x3e
jne 0x43c6b6
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x70]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442aa0
test eax, eax
je 0x43c739
cmp byte [ebp - 0x48], 0
jne 0x43bcc9
mov edx, dword [ebp - 0x68]
cmp word [edx], 0x7b
jne 0x43c6a9
lea esi, [edx + 2]
mov eax, esi
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c59d
cmp ecx, 9
jne 0x43c5a2
add eax, 2
jmp 0x43c590
mov ecx, dword [ebp - 0x64]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x64], ecx
je 0x43c5c3
lea eax, [ecx + ecx]
push eax
push esi
push edx
call fcn.0049cef0
add esp, 0xc
jmp 0x43bcc9
xor eax, eax
mov word [edx], ax
jmp 0x43bcc9
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a870
mov ecx, edi
push 0
push 0
test al, al
je 0x43c5f7
push dword [ebp - 0x2c]
call fcn.00441740
test eax, eax
je 0x43c739
jmp 0x43bcc9
push 0
push dword [ebp - 0x2c]
call fcn.0043ece0
test eax, eax
je 0x43c739
jmp 0x43bcc9
push 0x4cee90
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c784
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push str.Duplicate_hotkey.
mov dword [ecx + 0x644], 0
jmp 0x43c784
push dword [ebp - 0x2c]
jmp 0x43c77d
push 0x4cee90
push str.Expected_single_line_action.
mov ecx, esi
jmp 0x43c784
push dword [ebp - 0x2c]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x43c784
push dword [ebp - 0x2c]
mov ecx, esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x43c784
push 0x4cee90
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c782
mov ecx, dword [ebp - 0x14]
push eax
push 0x4d741c
jmp 0x43c784
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push str.Functions_cannot_contain_classes.
jmp 0x43c784
mov edx, dword [ebp - 0x2c]
push edx
push str.Not_a_valid_property_getter_setter.
jmp 0x43c782
push dword [ebp - 0x2c]
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x43c782
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x43c784
push dword [ebp - 0x2c]
push str.Unexpected___
jmp 0x43c782
lea ebx, [edi + 0x58]
cmp byte [ebp - 0x42], 0
jne 0x43c753
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x43c6f5
cmp dword [ebx], eax
je 0x43c753
lea eax, [edi + 0x70]
push eax
push str.Missing___
jmp 0x43c782
cmp byte [0x4ea594], 0
mov ecx, 0x4e9ec0
je 0x43c719
push 0
push eax
push 0
push 0x4cee90
push str.Missing___
call fcn.0040c9d0
jmp 0x43c789
cmp byte [0x4ea597], 0
je 0x43c73d
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cee90
push str.Missing___
call fcn.0040c8d0
xor esi, esi
jmp 0x43c78b
push 0
push eax
push 0x4cee90
push 0
push str.Missing___
call fcn.0040d5c0
jmp 0x43c789
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x43c761
call fcn.0040dac0
jmp 0x43c789
cmp dword [edi + 0x1c], 0
jne 0x43c66e
inc dword [edi + 0x280]
mov esi, 1
jmp 0x43c78b
push 0x4cee90
push str.Out_of_memory.
mov ecx, edi
call fcn.0040d7c0
mov esi, eax
push dword [ebp - 0x68]
call fcn.0049f3b2
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049f3b2
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 8
call fcn.0040dd00
nop
mov bl, 0x43
add dl, bh
mov bl, 0x43
add byte [ecx], al
mov ah, 0x43
add byte [eax], cl
mov ah, 0x43
add byte [edi], cl
mov ah, 0x43
add byte [esp + esi*4], ah
inc ebx
add byte [esi], dl
mov ah, 0x43
add byte [0x2c0043b4], bl
mov ah, 0x43
add byte [eax], al
add dword [eax], ecx
or byte [eax], cl
add cl, byte [eax]
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add ecx, dword [eax]
or byte [eax], cl
add al, 5
push es
or byte [edi], al
nop
invalid