Function at 0x43aff0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b6875
mov eax, dword fs:[0]
push eax
mov eax, 0x8110
mov dword fs:[0], esp
call fcn.004b55e0
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x14], ebx
cmp dword [ebx + 0x44], 0
jne 0x43b02a
cmp dword [ebx + 0x58], 0
mov byte [ebp - 0x36], 0
je 0x43b02e
mov byte [ebp - 0x36], 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 - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0x1000
mov dword [ebp - 0x54], 3
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 1
push 0x2000
push 0
mov dword [ebx + 0x27c], eax
mov dword [ebp - 0x50], 0
call fcn.0049edf8
add esp, 8
test eax, eax
je 0x43c554
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b0bb
add esi, esi
jmp 0x43b0be
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x64]
call fcn.0049edf8
add esp, 8
test eax, eax
je 0x43c554
mov dword [ebp - 0x64], eax
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], esi
mov word [eax], cx
cmp dword [ebp - 0x28], 0xffffffff
je 0x43be0e
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0xf]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x68], eax
nop
mov eax, dword [ebp - 0x50]
mov ecx, ebx
mov dword [ebx + 0x280], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x50]
mov dword [ebx + 0x644], 0
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043cf40
test eax, eax
je 0x43c515
cmp dword [ebp - 0x28], 0
je 0x43bde7
nop
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b251
movzx edx, word [eax + 2]
test dx, dx
je 0x43b251
lea edi, [eax + 2]
mov dword [ebp - 0x44], edi
cmp edx, 0x3a
je 0x43b187
push 0x3a
push edi
call fcn.0049c861
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 - 0x34], esi
jmp 0x43b199
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b251
mov esi, ecx
mov dword [ebp - 0x34], ecx
test esi, esi
je 0x43b251
mov al, byte [0x4e7da0]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b1e5
nop dword [eax]
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 0x43b1dd
cmp edi, esi
jb 0x43b1b0
jmp 0x43b1e5
cmp word [edi], 0x30
setne byte [ebp - 0xd]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b213
mov ecx, eax
movzx edx, cx
cmp cx, 0x60
je 0x43b218
movzx edx, cx
cmp cx, 0x3a
je 0x43b213
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b1f1
test dx, dx
je 0x43b244
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b2b8
test ebx, ebx
jne 0x43b334
cmp word [edi], dx
jne 0x43b334
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b334
test ebx, ebx
jne 0x43b36e
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d5fb8
push eax
mov dword [ebp - 0x34], esi
call fcn.0049d24e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b377
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b27d
cmp word [ebx + 4], 0x3a
jne 0x43b27d
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b297
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b290
cmp eax, 9
jne 0x43b297
sub esi, 2
cmp esi, ecx
ja 0x43b283
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b2b3
cmp eax, 9
jne 0x43b33c
add ecx, 2
jmp 0x43b2a2
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b2ca.99
movzx eax, byte [eax + 0x43c5bc]
jmp dword [eax*4 + 0x43c598]
mov eax, 7
jmp 0x43b307
mov eax, 8
jmp 0x43b307
mov eax, 0xc
jmp 0x43b307
mov eax, 0xa
jmp 0x43b307
mov eax, 0xd
jmp 0x43b307
mov eax, 9
jmp 0x43b307
mov eax, 0xb
jmp 0x43b307
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 0x43b310
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049c910
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b1e5
push 0
xor edx, edx
call fcn.004154b0
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x43c515
xor ecx, ecx
mov word [esi], di
cmp eax, 4
cmove ebx, ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov cl, byte [ebp - 0xd]
mov byte [ebp - 0xd], cl
test ebx, ebx
je 0x43b377
cmp ebx, dword [ebp - 0x2c]
ja 0x43b59a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b3d7
cmp dword [ebx + 0x58], 0
je 0x43b399
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
je 0x43b3d7
mov esi, dword [ebp - 0x2c]
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b3bb
push eax
call fcn.004a3000
add esp, 4
test eax, eax
jne 0x43b3bb
cmp word [esi], 0x5f
jne 0x43b3c0
add esi, 2
jmp 0x43b3a0
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b3d7
cmp esi, edi
ja 0x43bf13
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b449
push 6
push str.HotIf
push edi
call fcn.0049ee52
add esp, 0xc
test eax, eax
jne 0x43b427
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b405
cmp ecx, 9
jne 0x43b42a
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c7b0
test eax, eax
je 0x43c515
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebx + 0x280]
mov ecx, ebx
push eax
call fcn.0043da00
test eax, eax
je 0x43c515
cmp eax, 3
je 0x43c080
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b45d
cmp ecx, 0x7d
jne 0x43c094
mov edx, dword [ebx + 0x58]
test edx, edx
je 0x43b51e
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43b51e
cmp ecx, 0x7b
je 0x43c4c2
cmp dword [ebx + 0x274], 0
je 0x43b4b9
mov eax, dword [ebx + 0x278]
mov dword [ebx + 0x274], 0
test eax, eax
je 0x43b541
push eax
call fcn.0049edd2
add esp, 4
mov dword [ebx + 0x278], 0
jmp 0x43b541
lea eax, [edx - 1]
mov dword [ebx + 0x58], eax
mov edi, dword [ebx + eax*4 + 0x5c]
lea eax, [ebp - 0x30]
push eax
push str.Prototype
mov ecx, edi
call fcn.00478f90
test eax, eax
je 0x43b4e1
cmp dword [eax + 8], 5
jne 0x43b4e1
mov esi, dword [eax]
jmp 0x43b4e3
xor esi, esi
mov ecx, edi
call fcn.004759e0
mov ecx, esi
call fcn.004759e0
mov eax, dword [ebx + 0x58]
mov eax, dword [ebx + eax*4 + 0x5c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [ebx + 0x70]
push 0x2e
push esi
call fcn.0049c7be
add esp, 8
test eax, eax
je 0x43b517
xor ecx, ecx
mov word [eax], cx
jmp 0x43b541
xor eax, eax
mov word [esi], ax
jmp 0x43b541
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.0043ff40
test eax, eax
je 0x43c515
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b544
cmp eax, 9
je 0x43b544
test ax, ax
je 0x43bde7
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.0049c910
add esp, 0xc
mov dword [ebx + 0x644], 0
cmp dword [ebp - 0x28], 0
jne 0x43b140
jmp 0x43bde7
mov eax, dword [0x4e37f8]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b5b2
cmp eax, dword [esi + 0x1c]
jne 0x43c469
cmp dword [esi + 0x58], 0
jne 0x43c469
xor eax, eax
mov word [ebx], ax
add ebx, 4
mov dword [ebp - 0x3c], ebx
mov ecx, ebx
nop dword [eax]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b5dd
cmp eax, 9
jne 0x43b5e2
add ecx, 2
jmp 0x43b5d0
cmp eax, 0x7b
jne 0x43b5f3
cmp word [ecx + 2], 0
jne 0x43b5f3
lea edx, [eax - 0x7a]
jmp 0x43b5f5
xor dl, dl
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
test edi, edi
je 0x43b609
cmp byte [ebp - 0xd], 0
je 0x43bcf8
mov dword [ebp - 0x3c], ecx
test edi, edi
jne 0x43bcf8
cmp word [ecx], 0x60
mov ebx, ecx
mov dword [ebp - 0x3c], ecx
jne 0x43b62d
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
mov edi, ebx
test dl, dl
jne 0x43bafc
cmp word [ebx], 0
je 0x43bafc
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b6a0
nop dword [eax]
cmp ax, 0x20
je case.0x43b668.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b668.34
movzx eax, byte [eax + 0x43c5dc]
jmp dword [eax*4 + 0x43c5d4]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b650
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041ca90
add esp, 0xc
mov byte [ebp - 0xe], al
test al, al
je 0x43bb04
jmp 0x43b6a4
mov byte [ebp - 0xe], 0xff
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b6d0.34
movzx eax, word [esi + 2]
mov ecx, eax
test ax, ax
je case.0x43b6d0.34
cmp ax, 0x20
je case.0x43b6d0.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b6d0.34
movzx eax, byte [eax + 0x43c644]
jmp dword [eax*4 + 0x43c63c]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b6b8
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041ca90
add esp, 0xc
mov byte [ebp - 0xf], al
push 0x4d30b4
push esi
call fcn.0049d24e
mov ebx, eax
add esp, 8
mov al, byte [ebp - 0xf]
lea ecx, [eax - 1]
cmp cl, 5
ja 0x43b71d
cmp al, 3
jne 0x43b723
add al, 0x66
cmp al, 5
ja 0x43b727
mov cl, 1
jmp 0x43b729
xor cl, cl
mov dl, byte [ebp - 0xe]
mov al, dl
dec al
cmp al, 5
ja 0x43b739
cmp dl, 3
jne 0x43b741
mov al, dl
add al, 0x66
cmp al, 5
ja 0x43b745
mov al, 1
jmp 0x43b747
xor al, al
mov byte [ebp - 0x15], al
test cl, cl
jne 0x43b756
mov byte [ebp - 0x35], 1
test al, al
jne 0x43b75a
mov byte [ebp - 0x35], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b760
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b787
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d6040
jne 0x43b78c
mov eax, 0x4cdea8
push dword [ebp - 0x2c]
test ebx, ebx
mov ecx, 0x4d1a74
push eax
mov eax, 0x4cdea8
cmove eax, ecx
push eax
push 0x4d4890
lea eax, [ebp - 0x110]
push 0x20
push eax
call fcn.00481670
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43b7e0
cmp eax, 0x60
je 0x43b7e0
push 0x1f
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004aa2c4
add esp, 0xc
xor eax, eax
mov word [ebp - 0x92], ax
jmp 0x43b7fc
mov word [ebp - 0xce], ax
mov ecx, 0x60
xor eax, eax
mov word [ebp - 0xd0], cx
mov word [ebp - 0xcc], ax
mov ebx, dword [ebp - 0x3c]
lea eax, [ebp - 0x80]
push 7
push ebx
push eax
call fcn.004aa2c4
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x72], ax
cmp edi, 8
jae 0x43b822
mov word [ebp + edi*2 - 0x80], ax
cmp word [ebp - 0x80], 0
jne 0x43b84b
cmp byte [ebp - 0xe], 0x13
jne 0x43b84b
lea eax, [ebp - 0xd0]
push str.Pause
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
je 0x43bb04
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
cmp dword [ebx + 0x1c], 0
jne 0x43bd7a
call fcn.0044f3d0
test eax, eax
je 0x43c515
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x110]
call fcn.00415d30
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43b890
push ecx
mov ecx, eax
call fcn.004153c0
jmp 0x43b8a1
lea eax, [ebp - 0x110]
xor edx, edx
push eax
call fcn.00414aa0
add esp, 8
test eax, eax
je 0x43c515
cmp byte [ebp - 0x15], 0
mov ecx, str.SetKeyDelay
mov eax, str.SetMouseDelay
cmove eax, ecx
push eax
lea eax, [ebp - 0x8118]
push str._s__1__
push eax
call fcn.00406520
add esp, 0xc
lea ebx, [ebp - 0x8118]
cmp byte [ebp - 0x35], 0
lea ebx, [ebx + eax*2]
je 0x43b8f6
lea eax, [ebp - 0xd0]
push eax
push str._GetKeyState___s__
push ebx
call fcn.00406520
add esp, 0xc
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x44]
lea edi, [ebp - 0x8c]
mov dword [ebp - 0x44], eax
mov esi, str._
mov al, byte [ebp - 0xd]
mov ecx, 0x21
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x68], eax
push ecx
lea eax, [ebp - 0x110]
push eax
call fcn.0049c861
add esp, 8
test eax, eax
je 0x43b950
cmp word [eax + 2], 0
je 0x43b950
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0049c861
add esp, 8
test eax, eax
jne 0x43b950
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 0x43b918
xor eax, eax
mov ecx, 0x4cdea8
mov word [edi], ax
movzx eax, byte [ebp - 0xe]
sub eax, 0x12
je 0x43b97d
sub eax, 0x92
je 0x43b97d
sub eax, 1
jne 0x43b99e
movzx eax, byte [ebp - 0xf]
sub eax, 0x11
je 0x43b999
sub eax, 0x91
je 0x43b999
sub eax, 1
jne 0x43b99e
mov ecx, str.RCtrl_up
jmp 0x43b99e
mov ecx, str.LCtrl_up
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x80]
push eax
push ecx
lea eax, [ebp - 0x8c]
push eax
push str.Send__Blind_s_s_s_s_DownR__
push ebx
call fcn.00406520
mov ebx, dword [ebp - 0x14]
add esp, 0x18
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.0043ff40
test eax, eax
je 0x43c515
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043ea50
test eax, eax
je 0x43c515
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0043ff40
test eax, eax
je 0x43c515
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x8118]
push str._s_up
push eax
call fcn.00406520
add esp, 0xc
mov ecx, ebx
call fcn.0044f3d0
test eax, eax
je 0x43c515
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x8118]
call fcn.00415d30
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43ba63
push ecx
mov ecx, eax
call fcn.004153c0
jmp 0x43ba74
lea eax, [ebp - 0x8118]
xor edx, edx
push eax
call fcn.00414aa0
add esp, 8
test eax, eax
je 0x43c515
cmp byte [ebp - 0x15], 0
lea eax, [ebp - 0xd0]
push eax
mov ecx, str.SetKeyDelay
mov eax, str.SetMouseDelay
cmove eax, ecx
push eax
lea eax, [ebp - 0x8118]
push str._s__1__Send__Blind_s_Up___n
push eax
call fcn.00406520
add esp, 0x10
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.0043ff40
test eax, eax
je 0x43c515
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043ea50
test eax, eax
je 0x43c515
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0043ff40
test eax, eax
je 0x43c515
jmp 0x43bde7
test ebx, ebx
je 0x43bb92
cmp word [ebx], 0
je 0x43bb92
push str.AltTab
push ebx
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x43bb27
mov edi, 0x7ffe
jmp 0x43bb94
push str.ShiftAltTab
push ebx
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x43bb40
mov edi, 0x7ffd
jmp 0x43bb94
push str.AltTabMenu
push ebx
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x43bb59
mov edi, 0x7ffc
jmp 0x43bb94
push str.AltTabAndMenu
push ebx
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x43bb72
mov edi, 0x7ffb
jmp 0x43bb94
push str.AltTabMenuDismiss
push ebx
call fcn.0049ecd1
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bb94
xor edi, edi
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
mov dword [ebp - 0x4c], edi
call fcn.00415d30
mov esi, eax
add esp, 4
test esi, esi
je 0x43bc5c
test di, di
je 0x43bbf4
mov word [esi + 6], di
mov edi, dword [ebp - 0x34]
cmp word [ebx], 0
je 0x43bde4
cmp byte [ebp - 0x30], 0
je 0x43be3c
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.0043ff40
test eax, eax
je 0x43c515
jmp 0x43bde7
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bc13
mov eax, dword [0x4e37f8]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 8], eax
je 0x43c436
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43bc03
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43bc2b
mov ecx, edi
call fcn.0044f3d0
test eax, eax
je 0x43c515
push dword [ebp - 0x40]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.004153c0
test eax, eax
je 0x43c450
cmp byte [ebp - 0x16], 0
jne 0x43bc53
cmp byte [0x4e7cdf], 0
je 0x43bbbc
mov byte [esi + 0x14], 1
jmp 0x43bbbc
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43bc7c
test eax, eax
je 0x43bc8f
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, esi
jmp 0x43c560
test eax, eax
jne 0x43bc8f
mov ecx, esi
call fcn.0044f3d0
test eax, eax
je 0x43c515
push dword [ebp - 0x40]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414aa0
add esp, 8
test eax, eax
jne 0x43bbbc
cmp dword [ebp - 0x68], 3
jne 0x43c515
cmp byte [esi + 0x6dc], al
jne 0x43bbbc
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.00481670
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x218]
mov edx, 0x10000
call fcn.00486af0
add esp, 0x18
jmp 0x43bbbc
cmp word [edi], 0
je 0x43c45a
test dl, dl
je 0x43bd57
cmp byte [0x4e7da5], 0
mov esi, dword [ebp - 0x44]
setne bl
cmp esi, edi
jae 0x43bd47
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 0x43bd35
sub edx, 2
jne 0x43bd3d
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bd17
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x14]
xor eax, eax
test bl, bl
movzx edx, dl
cmovne edx, eax
mov dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x3c]
cmp word [ebx], 0
je 0x43bd89
test dl, dl
jne 0x43bd89
cmp byte [ebp - 0xd], dl
jne 0x43bd89
add esi, 0x1c
cmp dword [esi], 0
je 0x43bdae
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0x280]
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c560
add esi, 0x1c
cmp dword [esi], 0
jne 0x43bda4
mov ecx, dword [ebp - 0x14]
call fcn.0044f3d0
test eax, eax
je 0x43c515
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
jne 0x43bdb2
test dl, dl
jne 0x43bdb2
mov eax, ebx
jmp 0x43bdb7
mov eax, 0x4cdea8
mov ecx, dword [ebp - 0x2c]
mov edx, dword [esi]
push 0
push dword [ebp - 0x6c]
push eax
push edi
push ecx
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp - 0x44]
call fcn.004162d0
add esp, 0x14
test eax, eax
je 0x43c515
cmp dword [esi], 0
jne 0x43bbbf
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
jne 0x43b100
cmp byte [ebp - 0x36], 0
jne 0x43c52f
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x43c4d1
cmp dword [ebx + 0x58], eax
je 0x43c52f
lea eax, [ebx + 0x70]
mov ecx, ebx
push eax
push str.Missing___
jmp 0x43c560
test edi, edi
je 0x43be46
movzx eax, byte [ebp - 0xd]
jmp 0x43be4f
xor eax, eax
cmp word [ebp - 0x4c], ax
sete al
test eax, eax
je 0x43bde4
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.0049c910
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ebx, dword [ebp - 0x14]
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x6c]
mov esi, dword [ebx + 0x44]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c7b0
test eax, eax
je 0x43c515
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.0043ff40
test eax, eax
je 0x43c515
push 0
push 0
push 0
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0043ea50
test eax, eax
je 0x43c515
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0043ff40
test eax, eax
je 0x43c515
cmp esi, dword [ebx + 0x44]
je 0x43bde7
mov dword [ebx + 0x644], 0
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, ebx
jmp 0x43c560
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d3590
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x43bf68
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x43bf68
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43bf68
cmp byte [eax], 0x1a
jne 0x43bf68
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, ebx
call fcn.0043ff40
test eax, eax
je 0x43c515
jmp 0x43bde7
cmp dword [ebx + 0x1c], 0
jne 0x43bf02
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c515
mov eax, dword [0x4e37f8]
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 - 0x34], edx
je 0x43bf9c
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43bfa1
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43bfbe
push edi
push dword [esi]
call fcn.0049ecd1
add esp, 8
test eax, eax
je 0x43c011
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43bfa8
cmp word [edi], 0
je 0x43c02b
mov esi, edi
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43bfd0
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x30], eax
call fcn.0047e3d0
mov ebx, eax
test ebx, ebx
je 0x43c592
test esi, esi
mov esi, dword [ebp - 0x30]
je 0x43c009
push esi
push edi
push ebx
call fcn.0049c910
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x43c030
push edi
push str.Duplicate_label.
mov ecx, ebx
call fcn.0040d610
test eax, eax
je 0x43c515
jmp 0x43bde7
mov ebx, 0x4cdea8
mov ecx, 0x10
call fcn.0047e3d0
mov ecx, eax
test ecx, ecx
je 0x43c592
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 - 0x34]
cmp dword [eax], 0
jne 0x43c074
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bde4
mov eax, dword [edx]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bde4
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x27c], eax
mov dword [ebx + 0x280], esi
jmp 0x43bde7
mov edi, dword [ebp - 0x2c]
push 5
push str.Class
push edi
call fcn.0049ee52
add esp, 0xc
test eax, eax
jne 0x43c170
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43c0c1
cmp eax, 9
jne 0x43c170
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c0d1
cmp eax, 9
jne 0x43c0d6
add edi, 2
jmp 0x43c0c4
push eax
push str.__t_____:________n._
call fcn.0049c861
add esp, 8
test eax, eax
jne 0x43c170
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43c485
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c113
dec edx
mov ecx, eax
call fcn.00438150
jmp 0x43c15b
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c478
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c130
cmp ecx, 9
jne 0x43c135
add eax, 2
jmp 0x43c123
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c156
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c910
add esp, 0xc
jmp 0x43c15b
xor eax, eax
mov word [edx], ax
push edi
mov ecx, ebx
call fcn.00441f70
test eax, eax
je 0x43c515
jmp 0x43bde7
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c7b0
test eax, eax
je 0x43c515
cmp dword [ebx + 0x274], 0
mov eax, dword [0x4e37f8]
je 0x43c254
cmp dword [eax + 0x18], 0
jne 0x43c254
push 3
push 0x4d637c
push dword [ebp - 0x2c]
call fcn.0049ee52
add esp, 0xc
test eax, eax
je 0x43c1de
push 3
push 0x4d6384
push dword [ebp - 0x2c]
call fcn.0049ee52
add esp, 0xc
test eax, eax
jne 0x43c494
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c1f1
cmp ecx, 9
jne 0x43c1f6
add esi, 2
jmp 0x43c1e4
test cx, cx
jne 0x43c204
mov eax, dword [ebp - 0x64]
cmp word [eax], 0x7b
je 0x43c224
cmp ecx, 0x7b
jne 0x43c210
cmp word [esi + 2], 0
jmp 0x43c21e
cmp ecx, 0x3d
jne 0x43c497
cmp word [esi + 2], 0x3e
jne 0x43c497
push 0x2e
push dword [ebx + 0x278]
call fcn.0049c861
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov cx, word [ecx]
push esi
mov word [eax + 2], cx
push ecx
mov ecx, ebx
call fcn.00442ad0
test eax, eax
je 0x43c515
jmp 0x43bde7
cmp dword [ebx + 0x58], 0
je 0x43c3f5
cmp dword [eax + 0x18], 0
jne 0x43c3f5
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d1ca0
push edi
mov byte [ebp - 0x70], 0
call fcn.0049ee52
add esp, 0xc
test eax, eax
jne 0x43c2c7
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c291
cmp eax, 9
jne 0x43c2c7
add edi, 0xe
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c2a1
cmp eax, 9
jne 0x43c2a6
add edi, 2
jmp 0x43c294
cmp eax, 0x7f
ja 0x43c2c3
push eax
call fcn.004a3000
add esp, 4
test eax, eax
jne 0x43c2c3
cmp word [edi], 0x5f
je 0x43c2c3
mov edi, dword [ebp - 0x2c]
jmp 0x43c2c7
mov byte [ebp - 0x70], 1
mov edx, dword [ebp - 0x64]
mov ecx, edi
call fcn.0043a740
test al, al
je 0x43c2ef
push 0
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00441430
test eax, eax
je 0x43c515
jmp 0x43bde7
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c313
push eax
call fcn.004a3000
add esp, 4
test eax, eax
jne 0x43c313
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c313
cmp eax, 0x2e
jne 0x43c318
add esi, 2
jmp 0x43c2f1
cmp esi, edi
jbe 0x43c4b3
cmp ax, 0x20
je 0x43c32c
cmp ax, 9
jne 0x43c335
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c320
cmp ax, 0x3a
jne 0x43c35e
cmp word [esi + 2], 0x3d
jne 0x43c4b3
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00442bd0
test eax, eax
je 0x43c515
jmp 0x43bde7
test ax, ax
je 0x43c384
cmp ax, 0x5b
je 0x43c384
cmp ax, 0x7b
je 0x43c384
cmp ax, 0x3d
jne 0x43c4b3
cmp word [esi + 2], 0x3e
jne 0x43c4b3
lea eax, [ebp - 0x45]
mov ecx, ebx
push eax
push dword [ebp - 0x70]
push edi
call fcn.004427a0
test eax, eax
je 0x43c515
cmp byte [ebp - 0x45], 0
jne 0x43bde7
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c4a4
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c3c2
cmp ecx, 9
jne 0x43c3c7
add eax, 2
jmp 0x43c3b5
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c3eb
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c910
add esp, 0xc
jmp 0x43bde7
xor eax, eax
mov word [edx], ax
jmp 0x43bde7
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a740
mov ecx, ebx
push 0
push 0
test al, al
je 0x43c41f
push dword [ebp - 0x2c]
call fcn.00441430
test eax, eax
je 0x43c515
jmp 0x43bde7
push 0
push dword [ebp - 0x2c]
call fcn.0043ea50
test eax, eax
je 0x43c515
jmp 0x43bde7
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push str.Duplicate_hotkey.
mov dword [ecx + 0x644], 0
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, edi
jmp 0x43c55b
push dword [ebp - 0x2c]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x43c560
push eax
push 0x4d6364
mov ecx, ebx
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Functions_cannot_contain_classes.
jmp 0x43c560
mov edx, dword [ebp - 0x2c]
push edx
push str.Not_a_valid_property_getter_setter.
mov ecx, ebx
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, ebx
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x43c560
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Unexpected___
jmp 0x43c560
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
je 0x43c4f5
push 0
push eax
push 0
push 0x4cdea8
push str.Missing___
call fcn.0040c7e0
jmp 0x43c565
cmp byte [0x4e9607], 0
je 0x43c519
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push str.Missing___
call fcn.0040c6e0
xor esi, esi
jmp 0x43c567
push 0
push eax
push 0x4cdea8
push 0
push str.Missing___
call fcn.0040d410
jmp 0x43c565
mov ecx, dword [ebx + 0x48]
test ecx, ecx
je 0x43c53d
call fcn.0040d910
jmp 0x43c565
cmp dword [ebx + 0x1c], 0
jne 0x43bf02
inc dword [ebx + 0x280]
mov esi, 1
jmp 0x43c567
push 0x4cdea8
mov ecx, ebx
push str.Out_of_memory.
call fcn.0040d610
mov esi, eax
push dword [ebp - 0x64]
call fcn.0049edd2
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049edd2
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.0040db50
nop
sal dword [edx - 0x4d27ffbd], 1
inc ebx
add bh, bl
mov dl, 0x43
add dh, ah
mov dl, 0x43
add ch, ch
mov dl, 0x43
add byte [edx], al
mov bl, 0x43
add ah, dh
mov dl, 0x43
add bl, bh
mov dl, 0x43
add byte [edx], cl
mov bl, 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
outsd dx, dword [esi]
mov dh, 67
add byte [ebx - 0x4a], bh
inc ebx
add byte [eax], al
add dword [eax], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [esi - 112], ah
xlatb
mov dh, 67
add bl, ah
mov dh, 0x43
add byte [eax], al
add dword [eax], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add ah, cl
int3