Function at 0x43b1c0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b7265
mov eax, dword fs:[0]
push eax
mov eax, 0x8118
mov dword fs:[0], esp
call fcn.004b5e80
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], edi
cmp dword [edi + 0x44], 0
jne 0x43b1fa
cmp dword [edi + 0x54], 0
mov byte [ebp - 0x41], 0
je 0x43b1fe
mov byte [ebp - 0x41], 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 - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0x1000
mov dword [ebp - 0x60], 3
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 1
push 0x2000
push 0
mov dword [edi + 0x278], eax
mov dword [ebp - 0x5c], 0
call fcn.0049f968
add esp, 8
test eax, eax
je 0x43c828
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b28b
add esi, esi
jmp 0x43b28e
mov esi, dword [ebp - 0x64]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x70]
call fcn.0049f968
add esp, 8
test eax, eax
je 0x43c828
mov dword [ebp - 0x70], eax
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x68], esi
mov word [eax], cx
cmp dword [ebp - 0x28], 0xffffffff
je 0x43c783
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
mov al, byte [ebp - 0x15]
mov byte [ebp - 0xd], al
mov dword [ebp - 0x54], edx
nop
mov eax, dword [ebp - 0x5c]
mov ecx, edi
mov dword [edi + 0x27c], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x5c]
mov dword [edi + 0x640], 0
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043d1f0
test eax, eax
je 0x43c7e9
cmp dword [ebp - 0x28], 0
je 0x43bd59
lea eax, [edi + 0x54]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b430
movzx edx, word [eax + 2]
test dx, dx
je 0x43b430
lea edi, [eax + 2]
mov dword [ebp - 0x38], edi
cmp edx, 0x3a
je 0x43b35e
push 0x3a
push edi
call fcn.0049d3cf
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x2c]
test esi, esi
je 0x43b42e
add esi, 2
mov dword [ebp - 0x34], esi
jmp 0x43b370
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b430
mov esi, ecx
mov dword [ebp - 0x34], ecx
test esi, esi
je 0x43b430
mov al, byte [0x4e8d18]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b3c0
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 - 0x34]
cmova ecx, eax
cmp cx, 0x58
je 0x43b3b1
cmp edi, esi
jb 0x43b384
jmp 0x43b3c0
cmp word [edi], 0x30
setne byte [ebp - 0xd]
nop dword [eax]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b3f2
mov ecx, eax
nop dword [eax]
movzx edx, cx
cmp cx, 0x60
je 0x43b3f7
movzx edx, cx
cmp cx, 0x3a
je 0x43b3f2
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b3d0
test dx, dx
je 0x43b423
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b497
test ebx, ebx
jne 0x43b514
cmp word [edi], dx
jne 0x43b514
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b514
test ebx, ebx
jne 0x43b54e
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d6fd8
push eax
mov dword [ebp - 0x34], esi
call fcn.0049ddbe
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b557
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b45c
cmp word [ebx + 4], 0x3a
jne 0x43b45c
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b476
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b46f
cmp eax, 9
jne 0x43b476
sub esi, 2
cmp esi, ecx
ja 0x43b462
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b492
cmp eax, 9
jne 0x43b51c
add ecx, 2
jmp 0x43b481
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b4a9.99
movzx eax, byte [eax + 0x43c890]
jmp dword [eax*4 + 0x43c86c]
mov eax, 7
jmp 0x43b4e6
mov eax, 8
jmp 0x43b4e6
mov eax, 0xc
jmp 0x43b4e6
mov eax, 0xa
jmp 0x43b4e6
mov eax, 0xd
jmp 0x43b4e6
mov eax, 9
jmp 0x43b4e6
mov eax, 0xb
jmp 0x43b4e6
mov eax, 0x20
mov word [edi], ax
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b4f0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049d480
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b3c0
push 0
xor edx, edx
call fcn.004155b0
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x43c7e9
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 0x43b557
cmp ebx, dword [ebp - 0x2c]
ja 0x43b800
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b5b9
cmp dword [ebx + 0x54], 0
lea eax, [ebx + 0x54]
mov dword [ebp - 0x48], eax
je 0x43b57f
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
je 0x43b5b9
mov esi, dword [ebp - 0x2c]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b59d
push eax
call fcn.004a3b30
add esp, 4
test eax, eax
jne 0x43b59d
cmp word [esi], 0x5f
jne 0x43b5a2
add esi, 2
jmp 0x43b582
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b5b9
cmp esi, edi
ja 0x43c174
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b642
push 6
push str.HotIf
push edi
call fcn.0049f9c2
add esp, 0xc
test eax, eax
jne 0x43b60d
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b5eb
cmp ecx, 9
jne 0x43b610
lea eax, [ebp - 0x74]
mov ecx, ebx
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043ca60
test eax, eax
je 0x43c7e9
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
mov ecx, edi
push eax
mov esi, dword [edi + 0x27c]
call fcn.0043dd60
test eax, eax
je 0x43c7e9
cmp eax, 3
jne 0x43b645
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x278], eax
mov dword [edi + 0x27c], esi
jmp 0x43bd59
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b659
cmp ecx, 0x7d
jne 0x43c2f4
mov edx, dword [edi + 0x54]
lea ebx, [edi + 0x54]
test edx, edx
je 0x43b781
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
jne 0x43b781
cmp ecx, 0x7b
je 0x43c776
cmp dword [edi + 0x270], 0
je 0x43b6b8
mov eax, dword [edi + 0x274]
mov dword [edi + 0x270], 0
test eax, eax
je 0x43b7a4
push eax
call fcn.0049f942
add esp, 4
mov dword [edi + 0x274], 0
jmp 0x43b7a4
lea eax, [edx - 1]
mov dword [ebx], eax
mov ebx, dword [edi + eax*4 + 0x58]
lea eax, [ebp - 0x40]
push eax
push str.Prototype
mov ecx, ebx
call fcn.004791a0
test eax, eax
je 0x43b6e2
cmp dword [eax + 8], 5
jne 0x43b6e2
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
jmp 0x43b6e9
mov dword [ebp - 0x3c], 0
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x43b71f
lea edi, [esi + esi*2]
shl edi, 3
nop dword [eax]
lea edi, [edi - 0x18]
dec esi
cmp dword [edi + eax + 0x10], 3
jne 0x43b718
push ecx
push esi
lea ecx, [ebx + 0x10]
call fcn.0044dec0
mov eax, dword [ebx + 0x10]
test esi, esi
jne 0x43b700
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x43b751
lea edi, [esi + esi*2]
shl edi, 3
lea edi, [edi - 0x18]
dec esi
cmp dword [edi + eax + 0x10], 3
jne 0x43b74a
push ecx
push esi
lea ecx, [ebx + 0x10]
call fcn.0044dec0
mov eax, dword [ebx + 0x10]
test esi, esi
jne 0x43b732
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x54]
lea ebx, [edi + 0x54]
mov eax, dword [edi + eax*4 + 0x58]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [edi + 0x6c]
push 0x2e
push esi
call fcn.0049d32e
add esp, 8
test eax, eax
je 0x43b77a
xor ecx, ecx
mov word [eax], cx
jmp 0x43b7a4
xor eax, eax
mov word [esi], ax
jmp 0x43b7a4
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.00440300
test eax, eax
je 0x43c7e9
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b7a7
cmp eax, 9
je 0x43b7a7
test ax, ax
je 0x43bd5c
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.0049d480
mov edi, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp - 0x28], 0
mov dword [edi + 0x640], 0
jne 0x43b315
jmp 0x43bd59
mov eax, dword [0x4e4788]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b818
cmp eax, dword [esi + 0x1c]
jne 0x43c70f
cmp dword [esi + 0x54], 0
jne 0x43c70f
xor eax, eax
mov word [ebx], ax
add ebx, 4
mov dword [ebp - 0x48], ebx
mov ecx, ebx
nop
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b83d
cmp eax, 9
jne 0x43b842
add ecx, 2
jmp 0x43b830
cmp eax, 0x7b
jne 0x43b853
cmp word [ecx + 2], 0
jne 0x43b853
lea edx, [eax - 0x7a]
jmp 0x43b855
xor dl, dl
mov edi, dword [ebp - 0x34]
mov ah, byte [ebp - 0xd]
mov dword [ebp - 0x3c], edx
test edi, edi
je 0x43b86a
test ah, ah
je 0x43bf85
mov ebx, ecx
mov dword [ebp - 0x48], ebx
test edi, edi
jne 0x43bf85
cmp word [ecx], 0x60
mov dword [ebp - 0x48], ecx
jne 0x43b88e
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x48], ebx
mov edi, ebx
test dl, dl
jne 0x43bd88
cmp word [ebx], 0
je 0x43bd88
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b900
nop dword [eax]
cmp ax, 0x20
je case.0x43b8c8.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b8c8.34
movzx eax, byte [eax + 0x43c8b0]
jmp dword [eax*4 + 0x43c8a8]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b8b0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041cb80
add esp, 0xc
mov byte [ebp - 0x16], al
test al, al
je 0x43bde6
jmp 0x43b904
mov byte [ebp - 0x16], 0xff
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b930.34
cmp word [esi + 2], 0
je case.0x43b930.34
movzx eax, word [esi + 2]
cmp ax, 0x20
je case.0x43b930.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b930.34
movzx eax, byte [eax + 0x43c918]
jmp dword [eax*4 + 0x43c910]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b918
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041cb80
add esp, 0xc
mov bl, al
mov byte [ebp - 0x42], bl
push 0x4d40a4
push esi
call fcn.0049ddbe
add esp, 8
test eax, eax
setne bh
lea ecx, [ebx - 1]
cmp cl, 5
ja 0x43b980
cmp bl, 3
jne 0x43b988
mov al, bl
add al, 0x66
cmp al, 5
ja 0x43b98c
mov cl, 1
jmp 0x43b98e
xor cl, cl
mov dl, byte [ebp - 0x16]
mov al, dl
dec al
cmp al, 5
ja 0x43b99e
cmp dl, 3
jne 0x43b9a6
mov al, dl
add al, 0x66
cmp al, 5
ja 0x43b9aa
mov bl, 1
jmp 0x43b9ac
xor bl, bl
test cl, cl
jne 0x43b9b8
mov byte [ebp - 0x15], 1
test bl, bl
jne 0x43b9bc
mov byte [ebp - 0x15], 0
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b9c1
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b9e8
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d7060
jne 0x43b9ed
mov eax, 0x4cee30
push dword [ebp - 0x2c]
test bh, bh
mov ecx, 0x4d2a68
push eax
mov eax, 0x4cee30
cmove eax, ecx
push eax
push 0x4d58b0
lea eax, [ebp - 0x118]
push 0x20
push eax
call fcn.00481690
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43ba41
cmp eax, 0x60
je 0x43ba41
push 0x1f
lea eax, [ebp - 0xd8]
push edi
push eax
call fcn.004aad14
add esp, 0xc
xor eax, eax
mov word [ebp - 0x9a], ax
jmp 0x43ba5d
mov word [ebp - 0xd6], ax
mov ecx, 0x60
xor eax, eax
mov word [ebp - 0xd8], cx
mov word [ebp - 0xd4], ax
mov esi, dword [ebp - 0x48]
lea eax, [ebp - 0x8c]
push 7
push esi
push eax
call fcn.004aad14
sub edi, esi
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x7e], ax
cmp edi, 8
jae 0x43ba89
mov word [ebp + edi*2 - 0x8c], ax
cmp word [ebp - 0x8c], 0
jne 0x43bab5
cmp byte [ebp - 0x16], 0x13
jne 0x43bab5
lea eax, [ebp - 0xd8]
push str.Pause
push eax
call fcn.0049f841
add esp, 8
test eax, eax
je 0x43bde3
mov esi, dword [ebp - 0x14]
mov ecx, esi
cmp dword [esi + 0x1c], 0
jne 0x43c6be
call fcn.0044f690
test eax, eax
je 0x43c7e9
lea eax, [ebp - 0x2d]
push eax
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x118]
call fcn.00415e30
mov ecx, dword [esi + 0x1c]
add esp, 4
push dword [ebp - 0x4c]
test eax, eax
je 0x43bafa
push ecx
mov ecx, eax
call fcn.004154c0
jmp 0x43bb0b
lea eax, [ebp - 0x118]
xor edx, edx
push eax
call fcn.00414ba0
add esp, 8
test eax, eax
je 0x43c7e9
test bl, bl
mov ecx, str.SetKeyDelay
mov eax, str.SetMouseDelay
cmove eax, ecx
push eax
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x8120]
push str._s__1__
push eax
call fcn.00406720
add esp, 0xc
lea ebx, [ebp - 0x8120]
cmp byte [ebp - 0x15], 0
lea ebx, [ebx + eax*2]
je 0x43bb61
lea eax, [ebp - 0xd8]
push eax
push str._GetKeyState___s__
push ebx
call fcn.00406720
add esp, 0xc
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x38]
lea edi, [ebp - 0x98]
mov edx, dword [ebp - 0x54]
mov esi, str._
mov dword [ebp - 0x38], eax
mov ecx, 0x21
mov al, byte [ebp - 0xd]
mov byte [ebp - 0xd], al
mov dword [ebp - 0x54], edx
push ecx
lea eax, [ebp - 0x118]
push eax
call fcn.0049d3cf
add esp, 8
test eax, eax
je 0x43bbbe
cmp word [eax + 2], 0
je 0x43bbbe
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0049d3cf
add esp, 8
test eax, eax
jne 0x43bbbe
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 0x43bb83
xor eax, eax
mov ecx, 0x4cee30
mov word [edi], ax
movzx eax, byte [ebp - 0x16]
sub eax, 0x12
je 0x43bbeb
sub eax, 0x92
je 0x43bbeb
sub eax, 1
jne 0x43bc0c
movzx eax, byte [ebp - 0x42]
sub eax, 0x11
je 0x43bc07
sub eax, 0x91
je 0x43bc07
sub eax, 1
jne 0x43bc0c
mov ecx, str.RCtrl_up
jmp 0x43bc0c
mov ecx, str.LCtrl_up
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x8c]
push eax
push ecx
lea eax, [ebp - 0x98]
push eax
push str.Send__Blind_s_s_s_s_DownR__
push ebx
call fcn.00406720
mov edi, dword [ebp - 0x14]
add esp, 0x18
mov ecx, edi
push 0
push 0
push 0
push 0
push 3
call fcn.00440300
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
lea eax, [ebp - 0x8120]
mov ecx, edi
push eax
call fcn.0043eda0
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
push 0
push 4
mov ecx, edi
call fcn.00440300
test eax, eax
je 0x43c7e9
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x8120]
push str._s_up
push eax
call fcn.00406720
add esp, 0xc
mov ecx, edi
call fcn.0044f690
test eax, eax
je 0x43c7e9
lea eax, [ebp - 0x2d]
push eax
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x8120]
call fcn.00415e30
mov ecx, dword [edi + 0x1c]
add esp, 4
push dword [ebp - 0x4c]
test eax, eax
je 0x43bcd4
push ecx
mov ecx, eax
call fcn.004154c0
jmp 0x43bce5
lea eax, [ebp - 0x8120]
xor edx, edx
push eax
call fcn.00414ba0
add esp, 8
test eax, eax
je 0x43c7e9
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0x40]
lea eax, [ebp - 0x8120]
push str._s__1__Send__Blind_s_Up___n
push eax
call fcn.00406720
add esp, 0x10
mov ecx, edi
push 0
push 0
push 0
push 0
push 3
call fcn.00440300
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
lea eax, [ebp - 0x8120]
push eax
mov ecx, edi
call fcn.0043eda0
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
push 0
push 4
mov ecx, edi
call fcn.00440300
test eax, eax
je 0x43c7e9
lea ebx, [edi + 0x54]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
jne 0x43b2d0
jmp 0x43c786
test ebx, ebx
jne 0x43bde6
xor edi, edi
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x2d]
push eax
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x58], edi
call fcn.00415e30
mov esi, eax
add esp, 4
test esi, esi
je 0x43bee9
test di, di
je 0x43be7c
mov word [esi + 6], di
mov edi, dword [ebp - 0x34]
cmp word [ebx], 0
je 0x43c164
cmp byte [ebp - 0x3c], 0
je 0x43c0d7
mov edi, dword [ebp - 0x14]
push 0
push 0
push 0
push 0
push 3
jmp 0x43bd4a
mov ebx, dword [ebp - 0x48]
cmp word [ebx], 0
je 0x43bd8c
push str.AltTab
push ebx
call fcn.0049f841
add esp, 8
test eax, eax
jne 0x43be05
mov edi, 0x7ffe
jmp 0x43bd8e
push str.ShiftAltTab
push ebx
call fcn.0049f841
add esp, 8
test eax, eax
jne 0x43be21
mov edi, 0x7ffd
jmp 0x43bd8e
push str.AltTabMenu
push ebx
call fcn.0049f841
add esp, 8
test eax, eax
jne 0x43be3d
mov edi, 0x7ffc
jmp 0x43bd8e
push str.AltTabAndMenu
push ebx
call fcn.0049f841
add esp, 8
test eax, eax
jne 0x43be59
mov edi, 0x7ffb
jmp 0x43bd8e
push str.AltTabMenuDismiss
push ebx
call fcn.0049f841
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bd8e
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bea0
mov eax, dword [0x4e4788]
mov eax, dword [eax + 0x58]
nop dword [eax + eax]
cmp dword [ecx + 8], eax
je 0x43c6cd
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43be90
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43beb8
mov ecx, edi
call fcn.0044f690
test eax, eax
je 0x43c7e9
push dword [ebp - 0x4c]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.004154c0
test eax, eax
je 0x43c6e7
cmp byte [ebp - 0x2d], 0
jne 0x43bee0
cmp byte [0x4e8c57], 0
je 0x43bdba
mov byte [esi + 0x14], 1
jmp 0x43bdba
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43bf09
test eax, eax
je 0x43bf1c
push 0x4cee30
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, esi
jmp 0x43c834
test eax, eax
jne 0x43bf1c
mov ecx, esi
call fcn.0044f690
test eax, eax
je 0x43c7e9
push dword [ebp - 0x4c]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414ba0
add esp, 8
test eax, eax
jne 0x43bdba
cmp dword [ebp - 0x54], 3
jne 0x43c7e9
cmp byte [esi + 0x6d4], al
jne 0x43bdba
push dword [ebp - 0x2c]
lea eax, [ebp - 0x220]
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.00481690
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x220]
mov edx, 0x10000
call fcn.004871d0
add esp, 0x18
jmp 0x43bdba
cmp word [edi], 0
je 0x43c700
test ah, ah
je 0x43bfdf
cmp word [ebx], 0
je 0x43c6ef
test dl, dl
jne 0x43c6ef
mov edi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x1c], 0
lea esi, [eax + 0x1c]
jne 0x43bfc6
mov ecx, eax
call fcn.0044f690
test eax, eax
je 0x43c7e9
cmp byte [ebp - 0xd], 0
jne 0x43c097
test bl, bl
jne 0x43c097
mov eax, edi
jmp 0x43c09c
test dl, dl
je 0x43c034
cmp byte [0x4e8d1d], 0
mov esi, dword [ebp - 0x38]
setne bl
cmp esi, edi
jae 0x43c027
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 0x43c012
sub edx, 2
jne 0x43c01a
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bff4
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 - 0x48]
mov al, dl
cmp word [edi], 0
je 0x43bfa8
mov ecx, dword [ebp - 0x34]
mov bl, al
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0xd], ah
mov dword [ebp - 0x54], edx
test al, al
jne 0x43bfab
test ah, ah
jne 0x43bfab
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x1c], 0
lea esi, [eax + 0x1c]
je 0x43bfd8
dec dword [eax + 0x27c]
mov ecx, eax
push 0x4cee30
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c834
mov eax, 0x4cee30
mov ecx, dword [esi]
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
push 0
push dword [ebp - 0x74]
push eax
push edi
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
call fcn.004163d0
add esp, 0x14
test eax, eax
je 0x43c7e9
cmp dword [esi], 0
mov ebx, dword [ebp - 0x7c]
je 0x43c16c
mov ebx, dword [ebp - 0x48]
jmp 0x43bdbd
test edi, edi
je 0x43c0e1
movzx eax, byte [ebp - 0xd]
jmp 0x43c0ea
xor eax, eax
cmp word [ebp - 0x58], ax
sete al
test eax, eax
je 0x43c164
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.0049d480
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 - 0x74]
push eax
lea eax, [ebp - 0x5c]
mov ecx, edi
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043ca60
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
push 0
push 3
mov ecx, edi
call fcn.00440300
test eax, eax
je 0x43c7e9
push 0
push 0
push 0
push dword [ebp - 0x2c]
jmp 0x43bd31
mov edi, dword [ebp - 0x14]
jmp 0x43bd59
mov edi, dword [ebp - 0x14]
jmp 0x43bd5c
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d4580
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049f841
add esp, 8
mov edi, ebx
test eax, eax
jne 0x43c1ce
mov eax, dword [edi + 0x44]
test eax, eax
je 0x43c1ce
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43c1ce
cmp byte [eax], 0x1a
jne 0x43c1ce
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, edi
call fcn.00440300
test eax, eax
je 0x43c7e9
mov ebx, dword [ebp - 0x48]
jmp 0x43bd5c
cmp dword [edi + 0x1c], 0
jne 0x43c71e
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c7e9
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 - 0x7c], edx
je 0x43c206
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43c20b
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43c228
push edi
push dword [esi]
call fcn.0049f841
add esp, 8
test eax, eax
je 0x43c274
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43c212
cmp word [edi], 0
je 0x43c293
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43c233
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x40], eax
call fcn.0047e4d0
mov ebx, eax
test ebx, ebx
je 0x43c866
test esi, esi
mov esi, dword [ebp - 0x40]
je 0x43c26c
push esi
push edi
push ebx
call fcn.0049d480
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x43c298
push edi
mov edi, ebx
push str.Duplicate_label.
mov ecx, edi
call fcn.0040d830
test eax, eax
je 0x43c7e9
mov ebx, dword [ebp - 0x48]
jmp 0x43bd5c
mov ebx, 0x4cee30
mov ecx, 0x10
call fcn.0047e4d0
mov ecx, eax
test ecx, ecx
je 0x43c866
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 - 0x7c]
cmp dword [eax], 0
jne 0x43c2e2
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x48]
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bd5c
mov eax, dword [edx]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x48]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bd5c
mov edi, dword [ebp - 0x2c]
push 5
push str.Class
push edi
call fcn.0049f9c2
add esp, 0xc
test eax, eax
jne 0x43c3e6
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43c321
cmp eax, 9
jne 0x43c3e6
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c331
cmp eax, 9
jne 0x43c336
add edi, 2
jmp 0x43c324
push eax
push str.__t_____:________n._
call fcn.0049d3cf
add esp, 8
test eax, eax
jne 0x43c3e6
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
jne 0x43c73b
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c381
dec edx
mov ecx, eax
call fcn.00438340
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442330
jmp 0x43bd51
mov edx, dword [ebp - 0x70]
cmp word [edx], 0x7b
jne 0x43c72d
lea esi, [edx + 2]
mov eax, esi
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c3a0
cmp ecx, 9
jne 0x43c3a5
add eax, 2
jmp 0x43c393
mov ecx, dword [ebp - 0x6c]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x6c], ecx
je 0x43c3d1
lea eax, [ecx + ecx]
push eax
push esi
push edx
call fcn.0049d480
add esp, 0xc
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442330
jmp 0x43bd51
push edi
mov edi, dword [ebp - 0x14]
xor eax, eax
mov ecx, edi
mov word [edx], ax
call fcn.00442330
jmp 0x43bd51
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x5c]
mov ecx, edi
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043ca60
test eax, eax
je 0x43c7e9
cmp dword [edi + 0x270], 0
mov eax, dword [0x4e4788]
je 0x43c4c8
cmp dword [eax + 0x18], 0
jne 0x43c4c8
push 3
push 0x4d73d4
push dword [ebp - 0x2c]
call fcn.0049f9c2
add esp, 0xc
test eax, eax
je 0x43c457
push 3
push 0x4d73dc
push dword [ebp - 0x2c]
call fcn.0049f9c2
add esp, 0xc
test eax, eax
jne 0x43c74b
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
nop dword [eax]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c46d
cmp ecx, 9
jne 0x43c472
add esi, 2
jmp 0x43c460
test cx, cx
jne 0x43c480
mov eax, dword [ebp - 0x70]
cmp word [eax], 0x7b
je 0x43c4a0
cmp ecx, 0x7b
jne 0x43c48c
cmp word [esi + 2], 0
jmp 0x43c49a
cmp ecx, 0x3d
jne 0x43c74e
cmp word [esi + 2], 0x3e
jne 0x43c74e
push 0x2e
push dword [edi + 0x274]
call fcn.0049d3cf
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.00442e80
jmp 0x43bd51
cmp dword [edi + 0x54], 0
lea ebx, [edi + 0x54]
je 0x43c67d
cmp dword [eax + 0x18], 0
jne 0x43c67d
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d2c90
push edi
mov byte [ebp - 0x78], 0
call fcn.0049f9c2
add esp, 0xc
test eax, eax
jne 0x43c543
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c508
cmp eax, 9
jne 0x43c543
add edi, 0xe
nop dword [eax + eax]
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c51d
cmp eax, 9
jne 0x43c522
add edi, 2
jmp 0x43c510
cmp eax, 0x7f
ja 0x43c53f
push eax
call fcn.004a3b30
add esp, 4
test eax, eax
jne 0x43c53f
cmp word [edi], 0x5f
je 0x43c53f
mov edi, dword [ebp - 0x2c]
jmp 0x43c543
mov byte [ebp - 0x78], 1
mov edx, dword [ebp - 0x70]
mov ecx, edi
call fcn.0043a920
test al, al
je 0x43c56e
push 0
push dword [ebp - 0x78]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00441800
test eax, eax
je 0x43c7e9
jmp 0x43bd5c
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c592
push eax
call fcn.004a3b30
add esp, 4
test eax, eax
jne 0x43c592
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c592
cmp eax, 0x2e
jne 0x43c597
add esi, 2
jmp 0x43c570
cmp esi, edi
jbe 0x43c766
nop
cmp ax, 0x20
je 0x43c5ac
cmp ax, 9
jne 0x43c5b5
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c5a0
cmp ax, 0x3a
jne 0x43c5e1
cmp word [esi + 2], 0x3d
jne 0x43c766
push dword [ebp - 0x78]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442f70
test eax, eax
je 0x43c7e9
jmp 0x43bd5c
test ax, ax
je 0x43c607
cmp ax, 0x5b
je 0x43c607
cmp ax, 0x7b
je 0x43c607
cmp ax, 0x3d
jne 0x43c766
cmp word [esi + 2], 0x3e
jne 0x43c766
lea eax, [ebp - 0x4d]
push eax
push dword [ebp - 0x78]
push edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.00442b50
test eax, eax
je 0x43c7e9
cmp byte [ebp - 0x4d], 0
jne 0x43bd5c
mov edx, dword [ebp - 0x70]
cmp word [edx], 0x7b
jne 0x43c759
lea esi, [edx + 2]
mov eax, esi
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c64d
cmp ecx, 9
jne 0x43c652
add eax, 2
jmp 0x43c640
mov ecx, dword [ebp - 0x6c]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x6c], ecx
je 0x43c673
lea eax, [ecx + ecx]
push eax
push esi
push edx
call fcn.0049d480
add esp, 0xc
jmp 0x43bd5c
xor eax, eax
mov word [edx], ax
jmp 0x43bd5c
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a920
mov ecx, edi
push 0
push 0
test al, al
je 0x43c6a7
push dword [ebp - 0x2c]
call fcn.00441800
test eax, eax
je 0x43c7e9
jmp 0x43bd5c
push 0
push dword [ebp - 0x2c]
call fcn.0043eda0
test eax, eax
je 0x43c7e9
jmp 0x43bd5c
push 0x4cee30
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c834
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push str.Duplicate_hotkey.
mov dword [ecx + 0x640], 0
jmp 0x43c834
push dword [ebp - 0x2c]
jmp 0x43c82d
push 0x4cee30
push str.Expected_single_line_action.
mov ecx, esi
jmp 0x43c834
push dword [ebp - 0x2c]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x43c834
push dword [ebp - 0x2c]
mov ecx, esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x43c834
push 0x4cee30
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c832
mov ecx, dword [ebp - 0x14]
push eax
push 0x4d73bc
jmp 0x43c834
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push str.Functions_cannot_contain_classes.
jmp 0x43c834
mov edx, dword [ebp - 0x2c]
push edx
push str.Not_a_valid_property_getter_setter.
jmp 0x43c832
push dword [ebp - 0x2c]
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x43c832
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x43c834
push dword [ebp - 0x2c]
push str.Unexpected___
jmp 0x43c832
lea ebx, [edi + 0x54]
cmp byte [ebp - 0x41], 0
jne 0x43c803
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x43c7a5
cmp dword [ebx], eax
je 0x43c803
lea eax, [edi + 0x6c]
push eax
push str.Missing___
jmp 0x43c832
cmp byte [0x4ea58c], 0
mov ecx, 0x4e9ec0
je 0x43c7c9
push 0
push eax
push 0
push 0x4cee30
push str.Missing___
call fcn.0040ca40
jmp 0x43c839
cmp byte [0x4ea58f], 0
je 0x43c7ed
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cee30
push str.Missing___
call fcn.0040c940
xor esi, esi
jmp 0x43c83b
push 0
push eax
push 0x4cee30
push 0
push str.Missing___
call fcn.0040d630
jmp 0x43c839
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x43c811
call fcn.0040db30
jmp 0x43c839
cmp dword [edi + 0x1c], 0
jne 0x43c71e
inc dword [edi + 0x27c]
mov esi, 1
jmp 0x43c83b
push 0x4cee30
push str.Out_of_memory.
mov ecx, edi
call fcn.0040d830
mov esi, eax
push dword [ebp - 0x70]
call fcn.0049f942
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049f942
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.0040dd70
nop
mov al, 0xb4
inc ebx
add byte [edi - 0x41ffbc4c], dh
mov ah, 0x43
add ch, al
mov ah, 0x43
add ah, cl
mov ah, 0x43
add cl, ah
mov ah, 0x43
add bl, dl
mov ah, 0x43
add dl, bl
mov ah, 0x43
add cl, ch
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
iretd