Function at 0x43af70
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b66b5
mov eax, dword fs:[0]
push eax
mov eax, 0x8110
mov dword fs:[0], esp
call fcn.004b5400
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x14], ebx
cmp dword [ebx + 0x44], 0
jne 0x43afaa
cmp dword [ebx + 0x58], 0
mov byte [ebp - 0x36], 0
je 0x43afae
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.0049ec08
add esp, 8
test eax, eax
je 0x43c464
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b03b
add esi, esi
jmp 0x43b03e
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x64]
call fcn.0049ec08
add esp, 8
test eax, eax
je 0x43c464
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 0x43bd7f
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.0043ce50
test eax, eax
je 0x43c425
cmp dword [ebp - 0x28], 0
je 0x43bd58
nop
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b1d1
movzx edx, word [eax + 2]
test dx, dx
je 0x43b1d1
lea edi, [eax + 2]
mov dword [ebp - 0x44], edi
cmp edx, 0x3a
je 0x43b107
push 0x3a
push edi
call fcn.0049c671
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 0x43b119
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b1d1
mov esi, ecx
mov dword [ebp - 0x34], ecx
test esi, esi
je 0x43b1d1
mov al, byte [0x4e7da0]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b165
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 0x43b15d
cmp edi, esi
jb 0x43b130
jmp 0x43b165
cmp word [edi], 0x30
setne byte [ebp - 0xd]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b193
mov ecx, eax
movzx edx, cx
cmp cx, 0x60
je 0x43b198
movzx edx, cx
cmp cx, 0x3a
je 0x43b193
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b171
test dx, dx
je 0x43b1c4
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b238
test ebx, ebx
jne 0x43b2b4
cmp word [edi], dx
jne 0x43b2b4
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b2b4
test ebx, ebx
jne 0x43b2ee
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d6050
push eax
mov dword [ebp - 0x34], esi
call fcn.0049d05e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b2f7
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b1fd
cmp word [ebx + 4], 0x3a
jne 0x43b1fd
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b217
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b210
cmp eax, 9
jne 0x43b217
sub esi, 2
cmp esi, ecx
ja 0x43b203
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b233
cmp eax, 9
jne 0x43b2bc
add ecx, 2
jmp 0x43b222
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b24a.99
movzx eax, byte [eax + 0x43c4cc]
jmp dword [eax*4 + 0x43c4a8]
mov eax, 7
jmp 0x43b287
mov eax, 8
jmp 0x43b287
mov eax, 0xc
jmp 0x43b287
mov eax, 0xa
jmp 0x43b287
mov eax, 0xd
jmp 0x43b287
mov eax, 9
jmp 0x43b287
mov eax, 0xb
jmp 0x43b287
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 0x43b290
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049c720
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b165
push 0
xor edx, edx
call fcn.00415480
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x43c425
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 0x43b2f7
cmp ebx, dword [ebp - 0x2c]
ja 0x43b51a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b357
cmp dword [ebx + 0x58], 0
je 0x43b319
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
je 0x43b357
mov esi, dword [ebp - 0x2c]
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b33b
push eax
call fcn.004a2e10
add esp, 4
test eax, eax
jne 0x43b33b
cmp word [esi], 0x5f
jne 0x43b340
add esi, 2
jmp 0x43b320
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b357
cmp esi, edi
ja 0x43be3a
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b3c9
push 6
push str.HotIf
push edi
call fcn.0049ec62
add esp, 0xc
test eax, eax
jne 0x43b3a7
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b385
cmp ecx, 9
jne 0x43b3aa
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.0043c6c0
test eax, eax
je 0x43c425
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebx + 0x280]
mov ecx, ebx
push eax
call fcn.0043d910
test eax, eax
je 0x43c425
cmp eax, 3
je 0x43bf8d
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b3dd
cmp ecx, 0x7d
jne 0x43bfa1
mov edx, dword [ebx + 0x58]
test edx, edx
je 0x43b49e
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43b49e
cmp ecx, 0x7b
je 0x43c3cf
cmp dword [ebx + 0x274], 0
je 0x43b439
mov eax, dword [ebx + 0x278]
mov dword [ebx + 0x274], 0
test eax, eax
je 0x43b4c1
push eax
call fcn.0049ebe2
add esp, 4
mov dword [ebx + 0x278], 0
jmp 0x43b4c1
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.00478df0
test eax, eax
je 0x43b461
cmp dword [eax + 8], 5
jne 0x43b461
mov esi, dword [eax]
jmp 0x43b463
xor esi, esi
mov ecx, edi
call fcn.00475840
mov ecx, esi
call fcn.00475840
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.0049c5ce
add esp, 8
test eax, eax
je 0x43b497
xor ecx, ecx
mov word [eax], cx
jmp 0x43b4c1
xor eax, eax
mov word [esi], ax
jmp 0x43b4c1
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.0043fe50
test eax, eax
je 0x43c425
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b4c4
cmp eax, 9
je 0x43b4c4
test ax, ax
je 0x43bd58
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.0049c720
add esp, 0xc
mov dword [ebx + 0x644], 0
cmp dword [ebp - 0x28], 0
jne 0x43b0c0
jmp 0x43bd58
mov eax, dword [0x4e37f8]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b532
cmp eax, dword [esi + 0x1c]
jne 0x43c365
cmp dword [esi + 0x58], 0
jne 0x43c365
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 0x43b55d
cmp eax, 9
jne 0x43b562
add ecx, 2
jmp 0x43b550
cmp eax, 0x7b
jne 0x43b573
cmp word [ecx + 2], 0
jne 0x43b573
lea edx, [eax - 0x7a]
jmp 0x43b575
xor dl, dl
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
test edi, edi
je 0x43b589
cmp byte [ebp - 0xd], 0
je 0x43bc69
mov dword [ebp - 0x3c], ecx
test edi, edi
jne 0x43bc69
cmp word [ecx], 0x60
mov ebx, ecx
mov dword [ebp - 0x3c], ecx
jne 0x43b5ad
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
mov edi, ebx
test dl, dl
jne 0x43ba7c
cmp word [ebx], 0
je 0x43ba7c
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b620
nop dword [eax]
cmp ax, 0x20
je case.0x43b5e8.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b5e8.34
movzx eax, byte [eax + 0x43c4ec]
jmp dword [eax*4 + 0x43c4e4]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b5d0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041ca30
add esp, 0xc
mov byte [ebp - 0xe], al
test al, al
je 0x43ba84
jmp 0x43b624
mov byte [ebp - 0xe], 0xff
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b650.34
movzx eax, word [esi + 2]
mov ecx, eax
test ax, ax
je case.0x43b650.34
cmp ax, 0x20
je case.0x43b650.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b650.34
movzx eax, byte [eax + 0x43c554]
jmp dword [eax*4 + 0x43c54c]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b638
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041ca30
add esp, 0xc
mov byte [ebp - 0xf], al
push 0x4d314c
push esi
call fcn.0049d05e
mov ebx, eax
add esp, 8
mov al, byte [ebp - 0xf]
lea ecx, [eax - 1]
cmp cl, 5
ja 0x43b69d
cmp al, 3
jne 0x43b6a3
add al, 0x66
cmp al, 5
ja 0x43b6a7
mov cl, 1
jmp 0x43b6a9
xor cl, cl
mov dl, byte [ebp - 0xe]
mov al, dl
dec al
cmp al, 5
ja 0x43b6b9
cmp dl, 3
jne 0x43b6c1
mov al, dl
add al, 0x66
cmp al, 5
ja 0x43b6c5
mov al, 1
jmp 0x43b6c7
xor al, al
mov byte [ebp - 0x15], al
test cl, cl
jne 0x43b6d6
mov byte [ebp - 0x35], 1
test al, al
jne 0x43b6da
mov byte [ebp - 0x35], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b6e0
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b707
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d60d8
jne 0x43b70c
mov eax, 0x4cdea8
push dword [ebp - 0x2c]
test ebx, ebx
mov ecx, 0x4d1b0c
push eax
mov eax, 0x4cdea8
cmove eax, ecx
push eax
push 0x4d4928
lea eax, [ebp - 0x110]
push 0x20
push eax
call fcn.004814a0
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43b760
cmp eax, 0x60
je 0x43b760
push 0x1f
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004aa0e4
add esp, 0xc
xor eax, eax
mov word [ebp - 0x92], ax
jmp 0x43b77c
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.004aa0e4
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x72], ax
cmp edi, 8
jae 0x43b7a2
mov word [ebp + edi*2 - 0x80], ax
cmp word [ebp - 0x80], 0
jne 0x43b7cb
cmp byte [ebp - 0xe], 0x13
jne 0x43b7cb
lea eax, [ebp - 0xd0]
push str.Pause
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
je 0x43ba84
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
cmp dword [ebx + 0x1c], 0
jne 0x43bceb
call fcn.0044f250
test eax, eax
je 0x43c425
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x110]
call fcn.00415d00
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43b810
push ecx
mov ecx, eax
call fcn.00415390
jmp 0x43b821
lea eax, [ebp - 0x110]
xor edx, edx
push eax
call fcn.00414a70
add esp, 8
test eax, eax
je 0x43c425
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 0x43b876
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.0049c671
add esp, 8
test eax, eax
je 0x43b8d0
cmp word [eax + 2], 0
je 0x43b8d0
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0049c671
add esp, 8
test eax, eax
jne 0x43b8d0
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 0x43b898
xor eax, eax
mov ecx, 0x4cdea8
mov word [edi], ax
movzx eax, byte [ebp - 0xe]
sub eax, 0x12
je 0x43b8fd
sub eax, 0x92
je 0x43b8fd
sub eax, 1
jne 0x43b91e
movzx eax, byte [ebp - 0xf]
sub eax, 0x11
je 0x43b919
sub eax, 0x91
je 0x43b919
sub eax, 1
jne 0x43b91e
mov ecx, str.RCtrl_up
jmp 0x43b91e
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.0043fe50
test eax, eax
je 0x43c425
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043e960
test eax, eax
je 0x43c425
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0043fe50
test eax, eax
je 0x43c425
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.0044f250
test eax, eax
je 0x43c425
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x8118]
call fcn.00415d00
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43b9e3
push ecx
mov ecx, eax
call fcn.00415390
jmp 0x43b9f4
lea eax, [ebp - 0x8118]
xor edx, edx
push eax
call fcn.00414a70
add esp, 8
test eax, eax
je 0x43c425
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.0043fe50
test eax, eax
je 0x43c425
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
push eax
mov ecx, ebx
call fcn.0043e960
test eax, eax
je 0x43c425
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.0043fe50
test eax, eax
je 0x43c425
jmp 0x43bd58
test ebx, ebx
je 0x43bb12
cmp word [ebx], 0
je 0x43bb12
push str.AltTab
push ebx
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x43baa7
mov edi, 0x7ffe
jmp 0x43bb14
push str.ShiftAltTab
push ebx
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x43bac0
mov edi, 0x7ffd
jmp 0x43bb14
push str.AltTabMenu
push ebx
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x43bad9
mov edi, 0x7ffc
jmp 0x43bb14
push str.AltTabAndMenu
push ebx
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x43baf2
mov edi, 0x7ffb
jmp 0x43bb14
push str.AltTabMenuDismiss
push ebx
call fcn.0049eae1
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bb14
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.00415d00
mov esi, eax
add esp, 4
test esi, esi
je 0x43bbcd
test di, di
je 0x43bb65
mov word [esi + 6], di
mov edi, dword [ebp - 0x34]
cmp word [ebx], 0
je 0x43bd55
cmp byte [ebp - 0x30], 0
je 0x43bdad
mov ebx, dword [ebp - 0x14]
push 0
push 0
push 0
push 0
push 3
jmp 0x43ba68
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bb84
mov eax, dword [0x4e37f8]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 8], eax
je 0x43c332
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43bb74
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43bb9c
mov ecx, edi
call fcn.0044f250
test eax, eax
je 0x43c425
push dword [ebp - 0x40]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.00415390
test eax, eax
je 0x43c34c
cmp byte [ebp - 0x16], 0
jne 0x43bbc4
cmp byte [0x4e7cdf], 0
je 0x43bb3c
mov byte [esi + 0x14], 1
jmp 0x43bb3c
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43bbed
test eax, eax
je 0x43bc00
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, esi
jmp 0x43c470
test eax, eax
jne 0x43bc00
mov ecx, esi
call fcn.0044f250
test eax, eax
je 0x43c425
push dword [ebp - 0x40]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414a70
add esp, 8
test eax, eax
jne 0x43bb3c
cmp dword [ebp - 0x68], 3
jne 0x43c425
cmp byte [esi + 0x6dc], al
jne 0x43bb3c
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.004814a0
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x218]
mov edx, 0x10000
call fcn.00486910
add esp, 0x18
jmp 0x43bb3c
cmp word [edi], 0
je 0x43c356
test dl, dl
je 0x43bcc8
cmp byte [0x4e7da5], 0
mov esi, dword [ebp - 0x44]
setne bl
cmp esi, edi
jae 0x43bcb8
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 0x43bca6
sub edx, 2
jne 0x43bcae
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bc88
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 0x43bcfa
test dl, dl
jne 0x43bcfa
cmp byte [ebp - 0xd], dl
jne 0x43bcfa
add esi, 0x1c
cmp dword [esi], 0
je 0x43bd1f
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0x280]
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c470
add esi, 0x1c
cmp dword [esi], 0
jne 0x43bd15
mov ecx, dword [ebp - 0x14]
call fcn.0044f250
test eax, eax
je 0x43c425
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
jne 0x43bd23
test dl, dl
jne 0x43bd23
mov eax, ebx
jmp 0x43bd28
mov eax, 0x4cdea8
mov ecx, dword [esi]
mov edx, dword [ebp - 0x44]
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.004162a0
add esp, 0x14
test eax, eax
je 0x43c425
cmp dword [esi], 0
jne 0x43bb3f
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 0x43b080
cmp byte [ebp - 0x36], 0
jne 0x43c43f
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x43c3de
cmp dword [ebx + 0x58], eax
je 0x43c43f
lea eax, [ebx + 0x70]
mov ecx, ebx
push eax
push str.Missing___
jmp 0x43c470
test edi, edi
je 0x43bdb7
movzx eax, byte [ebp - 0xd]
jmp 0x43bdc0
xor eax, eax
cmp word [ebp - 0x4c], ax
sete al
test eax, eax
je 0x43bd55
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.0049c720
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]
push eax
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0043c6c0
test eax, eax
je 0x43c425
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.0043fe50
test eax, eax
je 0x43c425
push 0
push 0
push 0
push dword [ebp - 0x2c]
jmp 0x43ba4f
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d3628
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x43be80
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x43be80
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43be80
cmp byte [eax], 0x1a
jne 0x43be80
push 0
push 0
push 0
push 0
push 0x1b
jmp 0x43ba68
cmp dword [ebx + 0x1c], 0
jne 0x43c374
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c425
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 0x43beb8
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43bebd
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43beda
push edi
push dword [esi]
call fcn.0049eae1
add esp, 8
test eax, eax
je 0x43bf26
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43bec4
cmp word [edi], 0
je 0x43bf38
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43bee5
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x30], eax
call fcn.0047e200
mov ebx, eax
test ebx, ebx
je 0x43c4a2
test esi, esi
mov esi, dword [ebp - 0x30]
je 0x43bf1e
push esi
push edi
push ebx
call fcn.0049c720
add esp, 0xc
xor eax, eax
mov word [ebx + esi], ax
jmp 0x43bf3d
push edi
push str.Duplicate_label.
mov ecx, ebx
call fcn.0040d5e0
jmp 0x43ba6f
mov ebx, 0x4cdea8
mov ecx, 0x10
call fcn.0047e200
mov ecx, eax
test ecx, ecx
je 0x43c4a2
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 0x43bf81
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bd55
mov eax, dword [edx]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bd55
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x27c], eax
mov dword [ebx + 0x280], esi
jmp 0x43bd58
mov edi, dword [ebp - 0x2c]
push 5
push str.Class
push edi
call fcn.0049ec62
add esp, 0xc
test eax, eax
jne 0x43c090
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43bfce
cmp eax, 9
jne 0x43c090
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43bfde
cmp eax, 9
jne 0x43bfe3
add edi, 2
jmp 0x43bfd1
push eax
push str.__t_____:________n._
call fcn.0049c671
add esp, 8
test eax, eax
jne 0x43c090
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x18], 0
jne 0x43c392
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c02b
dec edx
mov ecx, eax
call fcn.004380d0
push edi
mov ecx, ebx
call fcn.00441e80
jmp 0x43ba6f
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c385
lea eax, [edx + 2]
nop dword [eax + eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c04d
cmp ecx, 9
jne 0x43c052
add eax, 2
jmp 0x43c040
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c07e
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c720
add esp, 0xc
mov ecx, ebx
push edi
call fcn.00441e80
jmp 0x43ba6f
xor eax, eax
mov ecx, ebx
push edi
mov word [edx], ax
call fcn.00441e80
jmp 0x43ba6f
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.0043c6c0
test eax, eax
je 0x43c425
cmp dword [ebx + 0x274], 0
mov eax, dword [0x4e37f8]
je 0x43c16c
cmp dword [eax + 0x18], 0
jne 0x43c16c
push 3
push 0x4d6414
push dword [ebp - 0x2c]
call fcn.0049ec62
add esp, 0xc
test eax, eax
je 0x43c0fe
push 3
push 0x4d641c
push dword [ebp - 0x2c]
call fcn.0049ec62
add esp, 0xc
test eax, eax
jne 0x43c3a1
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c111
cmp ecx, 9
jne 0x43c116
add esi, 2
jmp 0x43c104
test cx, cx
jne 0x43c124
mov eax, dword [ebp - 0x64]
cmp word [eax], 0x7b
je 0x43c144
cmp ecx, 0x7b
jne 0x43c130
cmp word [esi + 2], 0
jmp 0x43c13e
cmp ecx, 0x3d
jne 0x43c3a4
cmp word [esi + 2], 0x3e
jne 0x43c3a4
push 0x2e
push dword [ebx + 0x278]
call fcn.0049c671
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.004429e0
jmp 0x43ba6f
cmp dword [ebx + 0x58], 0
je 0x43c301
cmp dword [eax + 0x18], 0
jne 0x43c301
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d1d38
push edi
mov byte [ebp - 0x70], 0
call fcn.0049ec62
add esp, 0xc
test eax, eax
jne 0x43c1e3
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c1a9
cmp eax, 9
jne 0x43c1e3
add edi, 0xe
nop dword [eax]
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c1bd
cmp eax, 9
jne 0x43c1c2
add edi, 2
jmp 0x43c1b0
cmp eax, 0x7f
ja 0x43c1df
push eax
call fcn.004a2e10
add esp, 4
test eax, eax
jne 0x43c1df
cmp word [edi], 0x5f
je 0x43c1df
mov edi, dword [ebp - 0x2c]
jmp 0x43c1e3
mov byte [ebp - 0x70], 1
mov edx, dword [ebp - 0x64]
mov ecx, edi
call fcn.0043a6c0
test al, al
je 0x43c203
push 0
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00441340
jmp 0x43ba6f
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c227
push eax
call fcn.004a2e10
add esp, 4
test eax, eax
jne 0x43c227
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c227
cmp eax, 0x2e
jne 0x43c22c
add esi, 2
jmp 0x43c205
cmp esi, edi
jbe 0x43c3c0
cmp ax, 0x20
je 0x43c240
cmp ax, 9
jne 0x43c249
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c234
cmp ax, 0x3a
jne 0x43c26a
cmp word [esi + 2], 0x3d
jne 0x43c3c0
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00442ae0
jmp 0x43ba6f
test ax, ax
je 0x43c290
cmp ax, 0x5b
je 0x43c290
cmp ax, 0x7b
je 0x43c290
cmp ax, 0x3d
jne 0x43c3c0
cmp word [esi + 2], 0x3e
jne 0x43c3c0
lea eax, [ebp - 0x45]
mov ecx, ebx
push eax
push dword [ebp - 0x70]
push edi
call fcn.004426b0
test eax, eax
je 0x43c425
cmp byte [ebp - 0x45], 0
jne 0x43bd58
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c3b1
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c2ce
cmp ecx, 9
jne 0x43c2d3
add eax, 2
jmp 0x43c2c1
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c2f7
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049c720
add esp, 0xc
jmp 0x43bd58
xor eax, eax
mov word [edx], ax
jmp 0x43bd58
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a6c0
mov ecx, ebx
push 0
push 0
test al, al
je 0x43c323
push dword [ebp - 0x2c]
call fcn.00441340
jmp 0x43ba6f
push 0
push dword [ebp - 0x2c]
call fcn.0043e960
jmp 0x43ba6f
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push str.Duplicate_hotkey.
mov dword [ecx + 0x644], 0
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, edi
jmp 0x43c46b
push dword [ebp - 0x2c]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x43c470
push 0x4cdea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, ebx
jmp 0x43c470
push eax
push 0x4d63fc
mov ecx, ebx
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Functions_cannot_contain_classes.
jmp 0x43c470
mov edx, dword [ebp - 0x2c]
push edx
push str.Not_a_valid_property_getter_setter.
mov ecx, ebx
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, ebx
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x43c470
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Unexpected___
jmp 0x43c470
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
je 0x43c405
push 0
push eax
push 0
push 0x4cdea8
push str.Missing___
call fcn.0040c7f0
jmp 0x43c475
cmp byte [0x4e9607], 0
je 0x43c429
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push str.Missing___
call fcn.0040c6f0
xor esi, esi
jmp 0x43c477
push 0
push eax
push 0x4cdea8
push 0
push str.Missing___
call fcn.0040d3e0
jmp 0x43c475
mov ecx, dword [ebx + 0x48]
test ecx, ecx
je 0x43c44d
call fcn.0040d8e0
jmp 0x43c475
cmp dword [ebx + 0x1c], 0
jne 0x43c374
inc dword [ebx + 0x280]
mov esi, 1
jmp 0x43c477
push 0x4cdea8
mov ecx, ebx
push str.Out_of_memory.
call fcn.0040d5e0
mov esi, eax
push dword [ebp - 0x64]
call fcn.0049ebe2
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049ebe2
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.0040db20
nop
push ecx
mov dl, 67
add byte [eax - 0x4e], bl
inc ebx
add byte [edi - 0x4e], bl
inc ebx
add byte [esi - 0x4e], ah
inc ebx
add byte [ebp - 0x4e], ch
inc ebx
add byte [edx + 0x740043b2], al
mov dl, 0x43
add byte [ebx - 0x4e], bh
inc ebx
add byte [edx + 0x43b2], cl
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
out dx, eax
mov ch, 67
add bl, bh
mov ch, 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 byte [esi - 112], ah
push edi
mov dh, 67
add byte [ebx - 0x4a], ah
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 ah, cl
int3