Function at 0x43b0b0
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b6a65
mov eax, dword fs:[0]
push eax
mov eax, 0x8110
mov dword fs:[0], esp
call fcn.004b57d0
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x14], ebx
cmp dword [ebx + 0x44], 0
jne 0x43b0ea
cmp dword [ebx + 0x58], 0
mov byte [ebp - 0x36], 0
je 0x43b0ee
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.0049efe8
add esp, 8
test eax, eax
je 0x43c614
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x1000
test esi, esi
je 0x43b17b
add esi, esi
jmp 0x43b17e
mov esi, dword [ebp - 0x58]
lea eax, [esi + esi]
push eax
push dword [ebp - 0x64]
call fcn.0049efe8
add esp, 8
test eax, eax
je 0x43c614
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 0x43bece
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.0043d000
test eax, eax
je 0x43c5d5
cmp dword [ebp - 0x28], 0
je 0x43bea7
nop
mov eax, dword [ebp - 0x2c]
xor esi, esi
xor ebx, ebx
cmp word [eax], 0x3a
jne 0x43b311
movzx edx, word [eax + 2]
test dx, dx
je 0x43b311
lea edi, [eax + 2]
mov dword [ebp - 0x44], edi
cmp edx, 0x3a
je 0x43b247
push 0x3a
push edi
call fcn.0049ca51
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 0x43b259
cmp word [eax + 4], bx
lea ecx, [eax + 4]
je 0x43b311
mov esi, ecx
mov dword [ebp - 0x34], ecx
test esi, esi
je 0x43b311
mov al, byte [0x4e8da0]
mov byte [ebp - 0xd], al
cmp edi, esi
jae 0x43b2a5
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 0x43b29d
cmp edi, esi
jb 0x43b270
jmp 0x43b2a5
cmp word [edi], 0x30
setne byte [ebp - 0xd]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x43b2d3
mov ecx, eax
movzx edx, cx
cmp cx, 0x60
je 0x43b2d8
movzx edx, cx
cmp cx, 0x3a
je 0x43b2d3
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x43b2b1
test dx, dx
je 0x43b304
lea edi, [esi + 2]
cmp dx, 0x3a
jne 0x43b378
test ebx, ebx
jne 0x43b3f4
cmp word [edi], dx
jne 0x43b3f4
cmp byte [ebp - 0xd], 0
mov ebx, esi
mov esi, edi
je 0x43b3f4
test ebx, ebx
jne 0x43b42e
mov eax, dword [ebp - 0x2c]
xor esi, esi
push 0x4d6fb8
push eax
mov dword [ebp - 0x34], esi
call fcn.0049d43e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43b437
mov ecx, dword [ebp - 0x2c]
cmp ebx, ecx
jne 0x43b33d
cmp word [ebx + 4], 0x3a
jne 0x43b33d
add ebx, 2
mov esi, ebx
cmp ebx, ecx
jbe 0x43b357
movzx eax, word [esi]
cmp eax, 0x20
je 0x43b350
cmp eax, 9
jne 0x43b357
sub esi, 2
cmp esi, ecx
ja 0x43b343
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43b373
cmp eax, 9
jne 0x43b3fc
add ecx, 2
jmp 0x43b362
movzx eax, word [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x43b38a.99
movzx eax, byte [eax + 0x43c67c]
jmp dword [eax*4 + 0x43c658]
mov eax, 7
jmp 0x43b3c7
mov eax, 8
jmp 0x43b3c7
mov eax, 0xc
jmp 0x43b3c7
mov eax, 0xa
jmp 0x43b3c7
mov eax, 0xd
jmp 0x43b3c7
mov eax, 9
jmp 0x43b3c7
mov eax, 0xb
jmp 0x43b3c7
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 0x43b3d0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edi
push esi
call fcn.0049cb00
add esp, 0xc
dec dword [ebp - 0x28]
add esi, 2
jmp 0x43b2a5
push 0
xor edx, edx
call fcn.00415530
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x43c5d5
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 0x43b437
cmp ebx, dword [ebp - 0x2c]
ja 0x43b65a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
cmp word [ecx + eax*2 - 2], 0x3a
jne 0x43b497
cmp dword [ebx + 0x58], 0
je 0x43b459
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x18], 0
je 0x43b497
mov esi, dword [ebp - 0x2c]
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43b47b
push eax
call fcn.004a31f0
add esp, 4
test eax, eax
jne 0x43b47b
cmp word [esi], 0x5f
jne 0x43b480
add esi, 2
jmp 0x43b460
mov edi, dword [ebp - 0x2c]
mov eax, esi
sub eax, edi
sar eax, 1
inc eax
cmp eax, dword [ebp - 0x28]
jne 0x43b497
cmp esi, edi
ja 0x43bfd3
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0x23
jne 0x43b509
push 6
push str.HotIf
push edi
call fcn.0049f042
add esp, 0xc
test eax, eax
jne 0x43b4e7
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 0xc]
cmp ecx, 0x20
je 0x43b4c5
cmp ecx, 9
jne 0x43b4ea
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.0043c870
test eax, eax
je 0x43c5d5
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebx + 0x280]
mov ecx, ebx
push eax
call fcn.0043dac0
test eax, eax
je 0x43c5d5
cmp eax, 3
je 0x43c140
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x43b51d
cmp ecx, 0x7d
jne 0x43c154
mov edx, dword [ebx + 0x58]
test edx, edx
je 0x43b5de
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x18], 0
jne 0x43b5de
cmp ecx, 0x7b
je 0x43c582
cmp dword [ebx + 0x274], 0
je 0x43b579
mov eax, dword [ebx + 0x278]
mov dword [ebx + 0x274], 0
test eax, eax
je 0x43b601
push eax
call fcn.0049efc2
add esp, 4
mov dword [ebx + 0x278], 0
jmp 0x43b601
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.00479130
test eax, eax
je 0x43b5a1
cmp dword [eax + 8], 5
jne 0x43b5a1
mov esi, dword [eax]
jmp 0x43b5a3
xor esi, esi
mov ecx, edi
call fcn.00475b80
mov ecx, esi
call fcn.00475b80
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.0049c9ae
add esp, 8
test eax, eax
je 0x43b5d7
xor ecx, ecx
mov word [eax], cx
jmp 0x43b601
xor eax, eax
mov word [esi], ax
jmp 0x43b601
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.00440000
test eax, eax
je 0x43c5d5
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x43b604
cmp eax, 9
je 0x43b604
test ax, ax
je 0x43bea7
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.0049cb00
add esp, 0xc
mov dword [ebx + 0x644], 0
cmp dword [ebp - 0x28], 0
jne 0x43b200
jmp 0x43bea7
mov eax, dword [0x4e47f8]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43b672
cmp eax, dword [esi + 0x1c]
jne 0x43c529
cmp dword [esi + 0x58], 0
jne 0x43c529
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 0x43b69d
cmp eax, 9
jne 0x43b6a2
add ecx, 2
jmp 0x43b690
cmp eax, 0x7b
jne 0x43b6b3
cmp word [ecx + 2], 0
jne 0x43b6b3
lea edx, [eax - 0x7a]
jmp 0x43b6b5
xor dl, dl
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
test edi, edi
je 0x43b6c9
cmp byte [ebp - 0xd], 0
je 0x43bdb8
mov dword [ebp - 0x3c], ecx
test edi, edi
jne 0x43bdb8
cmp word [ecx], 0x60
mov ebx, ecx
mov dword [ebp - 0x3c], ecx
jne 0x43b6ed
cmp word [ecx + 2], 0x7b
lea eax, [ecx + 2]
cmove ebx, eax
mov dword [ebp - 0x3c], ebx
mov edi, ebx
test dl, dl
jne 0x43bbbc
cmp word [ebx], 0
je 0x43bbbc
movzx eax, word [ebx + 2]
mov ecx, eax
test ax, ax
je 0x43b760
nop dword [eax]
cmp ax, 0x20
je case.0x43b728.34
movzx eax, word [edi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b728.34
movzx eax, byte [eax + 0x43c69c]
jmp dword [eax*4 + 0x43c694]
movzx eax, word [edi + 4]
add edi, 2
test ax, ax
jne 0x43b710
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, edi
call fcn.0041cb10
add esp, 0xc
mov byte [ebp - 0xe], al
test al, al
je 0x43bbc4
jmp 0x43b764
mov byte [ebp - 0xe], 0xff
mov esi, dword [ebp - 0x2c]
cmp word [esi], 0
je case.0x43b790.34
movzx eax, word [esi + 2]
mov ecx, eax
test ax, ax
je case.0x43b790.34
cmp ax, 0x20
je case.0x43b790.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x43b790.34
movzx eax, byte [eax + 0x43c704]
jmp dword [eax*4 + 0x43c6fc]
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x43b778
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.0041cb10
add esp, 0xc
mov byte [ebp - 0xf], al
push 0x4d40b4
push esi
call fcn.0049d43e
mov ebx, eax
add esp, 8
mov al, byte [ebp - 0xf]
lea ecx, [eax - 1]
cmp cl, 5
ja 0x43b7dd
cmp al, 3
jne 0x43b7e3
add al, 0x66
cmp al, 5
ja 0x43b7e7
mov cl, 1
jmp 0x43b7e9
xor cl, cl
mov dl, byte [ebp - 0xe]
mov al, dl
dec al
cmp al, 5
ja 0x43b7f9
cmp dl, 3
jne 0x43b801
mov al, dl
add al, 0x66
cmp al, 5
ja 0x43b805
mov al, 1
jmp 0x43b807
xor al, al
mov byte [ebp - 0x15], al
test cl, cl
jne 0x43b816
mov byte [ebp - 0x35], 1
test al, al
jne 0x43b81a
mov byte [ebp - 0x35], 0
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43b820
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jne 0x43b847
movzx eax, word [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperW]
test eax, eax
mov eax, 0x4d7040
jne 0x43b84c
mov eax, 0x4ceea8
push dword [ebp - 0x2c]
test ebx, ebx
mov ecx, 0x4d2a74
push eax
mov eax, 0x4ceea8
cmove eax, ecx
push eax
push 0x4d5890
lea eax, [ebp - 0x110]
push 0x20
push eax
call fcn.00481810
movzx eax, word [edi]
add esp, 0x18
cmp eax, 0x22
je 0x43b8a0
cmp eax, 0x60
je 0x43b8a0
push 0x1f
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004aa4b4
add esp, 0xc
xor eax, eax
mov word [ebp - 0x92], ax
jmp 0x43b8bc
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.004aa4b4
sub edi, ebx
xor eax, eax
sar edi, 1
add esp, 0xc
mov word [ebp - 0x72], ax
cmp edi, 8
jae 0x43b8e2
mov word [ebp + edi*2 - 0x80], ax
cmp word [ebp - 0x80], 0
jne 0x43b90b
cmp byte [ebp - 0xe], 0x13
jne 0x43b90b
lea eax, [ebp - 0xd0]
push str.Pause
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
je 0x43bbc4
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
cmp dword [ebx + 0x1c], 0
jne 0x43be3a
call fcn.0044f4d0
test eax, eax
je 0x43c5d5
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x110]
call fcn.00415db0
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43b950
push ecx
mov ecx, eax
call fcn.00415440
jmp 0x43b961
lea eax, [ebp - 0x110]
xor edx, edx
push eax
call fcn.00414b20
add esp, 8
test eax, eax
je 0x43c5d5
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 0x43b9b6
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.0049ca51
add esp, 8
test eax, eax
je 0x43ba10
cmp word [eax + 2], 0
je 0x43ba10
movzx eax, word [esi]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0049ca51
add esp, 8
test eax, eax
jne 0x43ba10
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 0x43b9d8
xor eax, eax
mov ecx, 0x4ceea8
mov word [edi], ax
movzx eax, byte [ebp - 0xe]
sub eax, 0x12
je 0x43ba3d
sub eax, 0x92
je 0x43ba3d
sub eax, 1
jne 0x43ba5e
movzx eax, byte [ebp - 0xf]
sub eax, 0x11
je 0x43ba59
sub eax, 0x91
je 0x43ba59
sub eax, 1
jne 0x43ba5e
mov ecx, str.RCtrl_up
jmp 0x43ba5e
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.00440000
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043eb10
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440000
test eax, eax
je 0x43c5d5
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.0044f4d0
test eax, eax
je 0x43c5d5
lea eax, [ebp - 0x16]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x8118]
call fcn.00415db0
mov ecx, dword [ebx + 0x1c]
add esp, 4
push dword [ebp - 0x40]
test eax, eax
je 0x43bb23
push ecx
mov ecx, eax
call fcn.00415440
jmp 0x43bb34
lea eax, [ebp - 0x8118]
xor edx, edx
push eax
call fcn.00414b20
add esp, 8
test eax, eax
je 0x43c5d5
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.00440000
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
lea eax, [ebp - 0x8118]
mov ecx, ebx
push eax
call fcn.0043eb10
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440000
test eax, eax
je 0x43c5d5
jmp 0x43bea7
test ebx, ebx
je 0x43bc52
cmp word [ebx], 0
je 0x43bc52
push str.AltTab
push ebx
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x43bbe7
mov edi, 0x7ffe
jmp 0x43bc54
push str.ShiftAltTab
push ebx
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x43bc00
mov edi, 0x7ffd
jmp 0x43bc54
push str.AltTabMenu
push ebx
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x43bc19
mov edi, 0x7ffc
jmp 0x43bc54
push str.AltTabAndMenu
push ebx
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x43bc32
mov edi, 0x7ffb
jmp 0x43bc54
push str.AltTabMenuDismiss
push ebx
call fcn.0049eec1
add esp, 8
neg eax
sbb edi, edi
and edi, 0xffff8006
add edi, 0x7ffa
jmp 0x43bc54
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.00415db0
mov esi, eax
add esp, 4
test esi, esi
je 0x43bd1c
test di, di
je 0x43bcb4
mov word [esi + 6], di
mov edi, dword [ebp - 0x34]
cmp word [ebx], 0
je 0x43bea4
cmp byte [ebp - 0x30], 0
je 0x43befc
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
push 0
push 0
push 0
push 0
push 3
call fcn.00440000
test eax, eax
je 0x43c5d5
jmp 0x43bea7
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x43bcd3
mov eax, dword [0x4e47f8]
mov eax, dword [eax + 0x58]
cmp dword [ecx + 8], eax
je 0x43c4f6
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x43bcc3
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x1c], 0
jne 0x43bceb
mov ecx, edi
call fcn.0044f4d0
test eax, eax
je 0x43c5d5
push dword [ebp - 0x40]
mov ecx, esi
push dword [edi + 0x1c]
call fcn.00415440
test eax, eax
je 0x43c510
cmp byte [ebp - 0x16], 0
jne 0x43bd13
cmp byte [0x4e8cdf], 0
je 0x43bc7c
mov byte [esi + 0x14], 1
jmp 0x43bc7c
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
test di, di
je 0x43bd3c
test eax, eax
je 0x43bd4f
push 0x4ceea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, esi
jmp 0x43c620
test eax, eax
jne 0x43bd4f
mov ecx, esi
call fcn.0044f4d0
test eax, eax
je 0x43c5d5
push dword [ebp - 0x40]
mov ecx, dword [esi + 0x1c]
mov edx, edi
push dword [ebp - 0x2c]
call fcn.00414b20
add esp, 8
test eax, eax
jne 0x43bc7c
cmp dword [ebp - 0x68], 3
jne 0x43c5d5
cmp byte [esi + 0x6dc], al
jne 0x43bc7c
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.00481810
push 0
push 0
xorps xmm3, xmm3
lea ecx, [ebp - 0x218]
mov edx, 0x10000
call fcn.00486ce0
add esp, 0x18
jmp 0x43bc7c
cmp word [edi], 0
je 0x43c51a
test dl, dl
je 0x43be17
cmp byte [0x4e8da5], 0
mov esi, dword [ebp - 0x44]
setne bl
cmp esi, edi
jae 0x43be07
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 0x43bdf5
sub edx, 2
jne 0x43bdfd
cmp word [esi + 2], 0x30
setne bl
add esi, 2
cmp esi, edi
jb 0x43bdd7
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 0x43be49
test dl, dl
jne 0x43be49
cmp byte [ebp - 0xd], dl
jne 0x43be49
add esi, 0x1c
cmp dword [esi], 0
je 0x43be6e
mov ecx, dword [ebp - 0x14]
dec dword [ecx + 0x280]
push 0x4ceea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
jmp 0x43c620
add esi, 0x1c
cmp dword [esi], 0
jne 0x43be64
mov ecx, dword [ebp - 0x14]
call fcn.0044f4d0
test eax, eax
je 0x43c5d5
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
jne 0x43be72
test dl, dl
jne 0x43be72
mov eax, ebx
jmp 0x43be77
mov eax, 0x4ceea8
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.00416350
add esp, 0x14
test eax, eax
je 0x43c5d5
cmp dword [esi], 0
jne 0x43bc7f
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 0x43b1c0
cmp byte [ebp - 0x36], 0
jne 0x43c5ef
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x43c591
cmp dword [ebx + 0x58], eax
je 0x43c5ef
lea eax, [ebx + 0x70]
mov ecx, ebx
push eax
push str.Missing___
jmp 0x43c620
test edi, edi
je 0x43bf06
movzx eax, byte [ebp - 0xd]
jmp 0x43bf0f
xor eax, eax
cmp word [ebp - 0x4c], ax
sete al
test eax, eax
je 0x43bea4
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.0049cb00
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.0043c870
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
push 0
push 3
mov ecx, ebx
call fcn.00440000
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0043eb10
test eax, eax
je 0x43c5d5
push 0
push 0
push 0
push 0
push 4
mov ecx, ebx
call fcn.00440000
test eax, eax
je 0x43c5d5
cmp esi, dword [ebx + 0x44]
je 0x43bea7
mov dword [ebx + 0x644], 0
push 0x4ceea8
push str.Hotkey_or_hotstring_is_missing_its_opening_brace.
mov ecx, ebx
jmp 0x43c620
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x28], edx
push 0x4d4590
mov word [eax + edx*2], cx
push dword [ebp - 0x2c]
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x43c028
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x43c028
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43c028
cmp byte [eax], 0x1a
jne 0x43c028
push 0
push 0
push 0
push 0
push 0x1b
mov ecx, ebx
call fcn.00440000
test eax, eax
je 0x43c5d5
jmp 0x43bea7
cmp dword [ebx + 0x1c], 0
jne 0x43bfc2
mov edi, dword [ebp - 0x2c]
cmp word [edi], 0
je 0x43c5d5
mov eax, dword [0x4e47f8]
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 0x43c05c
mov esi, dword [ecx]
add eax, 0x38
jmp 0x43c061
mov esi, dword [esi]
lea eax, [ebx + 0xc]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x43c07e
push edi
push dword [esi]
call fcn.0049eec1
add esp, 8
test eax, eax
je 0x43c0d1
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x43c068
cmp word [edi], 0
je 0x43c0eb
mov esi, edi
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x43c090
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x30], eax
call fcn.0047e570
mov ebx, eax
test ebx, ebx
je 0x43c652
test esi, esi
mov esi, dword [ebp - 0x30]
je 0x43c0c9
push esi
push edi
push ebx
call fcn.0049cb00
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x43c0f0
push edi
push str.Duplicate_label.
mov ecx, ebx
call fcn.0040d680
test eax, eax
je 0x43c5d5
jmp 0x43bea7
mov ebx, 0x4ceea8
mov ecx, 0x10
call fcn.0047e570
mov ecx, eax
test ecx, ecx
je 0x43c652
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 0x43c134
mov dword [eax], ecx
mov dword [edx], ecx
jmp 0x43bea4
mov eax, dword [edx]
mov dword [eax + 0xc], ecx
mov dword [edx], ecx
jmp 0x43bea4
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x27c], eax
mov dword [ebx + 0x280], esi
jmp 0x43bea7
mov edi, dword [ebp - 0x2c]
push 5
push str.Class
push edi
call fcn.0049f042
add esp, 0xc
test eax, eax
jne 0x43c230
movzx eax, word [edi + 0xa]
cmp eax, 0x20
je 0x43c181
cmp eax, 9
jne 0x43c230
add edi, 0xc
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c191
cmp eax, 9
jne 0x43c196
add edi, 2
jmp 0x43c184
push eax
push str.__t_____:________n._
call fcn.0049ca51
add esp, 8
test eax, eax
jne 0x43c230
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x18], 0
jne 0x43c545
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
cmp word [eax + edx*2 - 2], 0x7b
jne 0x43c1d3
dec edx
mov ecx, eax
call fcn.004381d0
jmp 0x43c21b
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c538
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c1f0
cmp ecx, 9
jne 0x43c1f5
add eax, 2
jmp 0x43c1e3
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c216
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049cb00
add esp, 0xc
jmp 0x43c21b
xor eax, eax
mov word [edx], ax
push edi
mov ecx, ebx
call fcn.00442060
test eax, eax
je 0x43c5d5
jmp 0x43bea7
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.0043c870
test eax, eax
je 0x43c5d5
cmp dword [ebx + 0x274], 0
mov eax, dword [0x4e47f8]
je 0x43c314
cmp dword [eax + 0x18], 0
jne 0x43c314
push 3
push 0x4d737c
push dword [ebp - 0x2c]
call fcn.0049f042
add esp, 0xc
test eax, eax
je 0x43c29e
push 3
push 0x4d7384
push dword [ebp - 0x2c]
call fcn.0049f042
add esp, 0xc
test eax, eax
jne 0x43c554
mov edx, dword [ebp - 0x2c]
lea esi, [edx + 6]
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x43c2b1
cmp ecx, 9
jne 0x43c2b6
add esi, 2
jmp 0x43c2a4
test cx, cx
jne 0x43c2c4
mov eax, dword [ebp - 0x64]
cmp word [eax], 0x7b
je 0x43c2e4
cmp ecx, 0x7b
jne 0x43c2d0
cmp word [esi + 2], 0
jmp 0x43c2de
cmp ecx, 0x3d
jne 0x43c557
cmp word [esi + 2], 0x3e
jne 0x43c557
push 0x2e
push dword [ebx + 0x278]
call fcn.0049ca51
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.00442bc0
test eax, eax
je 0x43c5d5
jmp 0x43bea7
cmp dword [ebx + 0x58], 0
je 0x43c4b5
cmp dword [eax + 0x18], 0
jne 0x43c4b5
mov edi, dword [ebp - 0x2c]
push 6
push 0x4d2ca0
push edi
mov byte [ebp - 0x70], 0
call fcn.0049f042
add esp, 0xc
test eax, eax
jne 0x43c387
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x43c351
cmp eax, 9
jne 0x43c387
add edi, 0xe
movzx eax, word [edi]
cmp eax, 0x20
je 0x43c361
cmp eax, 9
jne 0x43c366
add edi, 2
jmp 0x43c354
cmp eax, 0x7f
ja 0x43c383
push eax
call fcn.004a31f0
add esp, 4
test eax, eax
jne 0x43c383
cmp word [edi], 0x5f
je 0x43c383
mov edi, dword [ebp - 0x2c]
jmp 0x43c387
mov byte [ebp - 0x70], 1
mov edx, dword [ebp - 0x64]
mov ecx, edi
call fcn.0043a7e0
test al, al
je 0x43c3af
push 0
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00441520
test eax, eax
je 0x43c5d5
jmp 0x43bea7
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43c3d3
push eax
call fcn.004a31f0
add esp, 4
test eax, eax
jne 0x43c3d3
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43c3d3
cmp eax, 0x2e
jne 0x43c3d8
add esi, 2
jmp 0x43c3b1
cmp esi, edi
jbe 0x43c573
cmp ax, 0x20
je 0x43c3ec
cmp ax, 9
jne 0x43c3f5
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43c3e0
cmp ax, 0x3a
jne 0x43c41e
cmp word [esi + 2], 0x3d
jne 0x43c573
push dword [ebp - 0x70]
mov ecx, ebx
push edi
call fcn.00442cc0
test eax, eax
je 0x43c5d5
jmp 0x43bea7
test ax, ax
je 0x43c444
cmp ax, 0x5b
je 0x43c444
cmp ax, 0x7b
je 0x43c444
cmp ax, 0x3d
jne 0x43c573
cmp word [esi + 2], 0x3e
jne 0x43c573
lea eax, [ebp - 0x45]
mov ecx, ebx
push eax
push dword [ebp - 0x70]
push edi
call fcn.00442890
test eax, eax
je 0x43c5d5
cmp byte [ebp - 0x45], 0
jne 0x43bea7
mov edx, dword [ebp - 0x64]
cmp word [edx], 0x7b
jne 0x43c564
lea eax, [edx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43c482
cmp ecx, 9
jne 0x43c487
add eax, 2
jmp 0x43c475
mov ecx, dword [ebp - 0x60]
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x60], ecx
je 0x43c4ab
lea eax, [ecx + ecx]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.0049cb00
add esp, 0xc
jmp 0x43bea7
xor eax, eax
mov word [edx], ax
jmp 0x43bea7
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
call fcn.0043a7e0
mov ecx, ebx
push 0
push 0
test al, al
je 0x43c4df
push dword [ebp - 0x2c]
call fcn.00441520
test eax, eax
je 0x43c5d5
jmp 0x43bea7
push 0
push dword [ebp - 0x2c]
call fcn.0043eb10
test eax, eax
je 0x43c5d5
jmp 0x43bea7
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push str.Duplicate_hotkey.
mov dword [ecx + 0x644], 0
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, edi
jmp 0x43c61b
push dword [ebp - 0x2c]
mov ecx, esi
push str.This_hotstring_is_missing_its_abbreviation.
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions_or_classes.
jmp 0x43c620
push eax
push 0x4d7364
mov ecx, ebx
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Functions_cannot_contain_classes.
jmp 0x43c620
mov edx, dword [ebp - 0x2c]
push edx
push str.Not_a_valid_property_getter_setter.
mov ecx, ebx
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, ebx
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Not_a_valid_method__class_or_property_definition.
jmp 0x43c620
push dword [ebp - 0x2c]
mov ecx, ebx
push str.Unexpected___
jmp 0x43c620
cmp byte [0x4ea604], 0
mov ecx, 0x4e9f30
je 0x43c5b5
push 0
push eax
push 0
push 0x4ceea8
push str.Missing___
call fcn.0040c840
jmp 0x43c625
cmp byte [0x4ea607], 0
je 0x43c5d9
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4ceea8
push str.Missing___
call fcn.0040c740
xor esi, esi
jmp 0x43c627
push 0
push eax
push 0x4ceea8
push 0
push str.Missing___
call fcn.0040d480
jmp 0x43c625
mov ecx, dword [ebx + 0x48]
test ecx, ecx
je 0x43c5fd
call fcn.0040d990
jmp 0x43c625
cmp dword [ebx + 0x1c], 0
jne 0x43bfc2
inc dword [ebx + 0x280]
mov esi, 1
jmp 0x43c627
push 0x4ceea8
mov ecx, ebx
push str.Out_of_memory.
call fcn.0040d680
mov esi, eax
push dword [ebp - 0x64]
call fcn.0049efc2
add esp, 4
push dword [ebp - 0x2c]
call fcn.0049efc2
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.0040dbd0
nop
xchg ecx, eax
mov bl, 67
add byte [eax - 0x60ffbc4d], bl
mov bl, 0x43
add byte [esi - 0x52ffbc4d], ah
mov bl, 0x43
add dl, al
mov bl, 0x43
add byte [ebx + esi*4 - 0x4c44ffbd], dh
inc ebx
add dl, 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
das
mov bh, 67
add byte [ebx], bh
mov bh, 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
xchg edi, eax
mov bh, 67
add byte [ebx + 0x43b7], ah
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