Function at 0x416290
Capabilities:
Extract resource via kernel32 functions
Get keyboard layout
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4960cb
mov eax, dword fs:[0]
push eax
mov eax, 0xe288
mov dword fs:[0], esp
call fcn.00491c90
push ebx
push ebp
mov ebp, dword [esp + 0xe2a4]
push esi
push edi
mov edi, dword [esp + 0xe2a8]
test ebp, ebp
je 0x41846c
cmp byte [ebp], 0
je 0x41846c
mov eax, dword [0x4accc4]
mov dword [esp + 0x9c], eax
test eax, eax
jne 0x4162ee
mov eax, dword [edi + 0x5e8]
mov dword [0x4aacb8], eax
push 0x4000
xor esi, esi
lea ecx, [esp + 0x341]
push esi
push ecx
mov byte [esp + 0x348], 0
call fcn.0048e990
mov ebx, dword [sym.imp.KERNEL32.dll_FindResourceA]
add esp, 0xc
push 0xa
push str._AUTOHOTKEY_SCRIPT_
lea edx, [esp + 0x628c]
lea eax, [esp + 0xa294]
push esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
mov byte [esp + 0xe4], 0
call ebx
mov esi, eax
test esi, esi
jne 0x416364
push 0xa
push str._AHK_WITH_ICON_
push eax
call ebx
mov esi, eax
test esi, esi
je 0x418452
push esi
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esp + 0xd4], eax
cmp eax, ebx
je 0x418452
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x418452
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0xd0], eax
cmp eax, ebx
je 0x418452
lea esi, [esp + 0x4c]
call fcn.004149f0
push 0xc
mov eax, 0xfde9
lea edx, [esp + 0xd4]
mov ecx, esi
mov dword [esp + 0xe2a4], ebx
call fcn.00470300
mov ecx, dword [esp + 0x9c]
inc dword [0x4accc4]
mov dword [edi + 0x16c], ecx
mov eax, esi
xor ecx, ecx
lea edx, [esp + 0x6284]
mov byte [esp + 0x1d], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x36], bl
mov dword [esp + 0xa8], 0xffffffff
call fcn.004186e0
push 2
lea edx, [esp + 0x6288]
push 0x49b7d0
push edx
mov dword [esp + 0x2c], eax
call fcn.00487667
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x26], al
test al, al
je 0x416435
mov byte [esp + 0x6284], bl
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], 0xffffffff
je 0x4183ab
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x18]
push 0xc
inc eax
push str.CommentFlag
xor ebx, ebx
push esi
mov dword [edi + 0x170], eax
mov dword [edi + 0x370], ebx
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41647d
push esi
push edi
call fcn.00418870
test eax, eax
je 0x416c5a
mov byte [esp + 0xb8], bl
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x30]
inc dword [esp + 0xa8]
test ebx, ebx
je 0x416512
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x4c]
mov ecx, esi
mov edx, ebx
call fcn.004186e0
mov ebp, eax
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x416519
cmp ebp, 0xffffffff
je 0x416519
test esi, esi
jne 0x416519
push 2
push 0x49b7e4
push ebx
call fcn.00487667
add esp, 0xc
test eax, eax
jne 0x41652e
cmp byte [esp + 0x26], al
jne 0x4164e1
cmp byte [ebx + 2], 0x3a
jne 0x4164e1
cmp byte [ebx + 3], 0x3a
je 0x416541
lea ecx, [ebp - 1]
push ecx
lea edx, [ebx + 2]
push edx
push ebx
mov byte [esp + 0x32], 0
call fcn.00486050
add esp, 0xc
lea eax, [ebp - 2]
mov edi, ebx
call fcn.00412aa0
cmp byte [ebx], 0
mov ebp, eax
mov dword [esp + 0x40], ebp
je 0x416488
jmp 0x416541
or ebp, 0xffffffff
mov dword [esp + 0x40], ebp
cmp byte [esp + 0x26], 0
je 0x41655f
cmp ebp, 0xffffffff
jne 0x41648c
jmp 0x416ba5
cmp byte [esp + 0x26], 0
jne 0x416488
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
push 2
push 0x49b7d0
push ebx
call fcn.00487667
add esp, 0xc
test eax, eax
jne 0x416519
mov byte [esp + 0x26], 1
jmp 0x41648c
cmp dword [esp + 0x28], 0
jne 0x4169e3
cmp ebp, 0xffffffff
je 0x4165d7
cmp byte [ebx], 0x28
jne 0x4165d7
cmp byte [ebx + 1], 0x3a
lea esi, [ebx + 1]
je 0x4165d7
cmp byte [ebx + ebp - 1], 0x3a
je 0x4165d7
mov dl, byte [0x4ab51a]
mov ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0xb4], 0
mov byte [esp + 0x3d], dl
mov byte [esp + 0x3c], cl
mov byte [esp + 0x3f], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x3a], cl
mov word [esp + 0xe0], 0xa
mov dword [esp + 0xac], ecx
mov al, byte [esi]
cmp al, 0x20
je 0x4165d3
cmp al, 9
jne 0x416816
add esi, ecx
jmp 0x4165c5
mov dword [esp + 0x28], 0
cmp ebp, 0xffffffff
je 0x416ba5
test ebp, ebp
je 0x41648c
cmp byte [ebx + ebp - 1], 0x3a
jne 0x416600
cmp byte [ebx], 0x2c
jne 0x416ba5
mov al, byte [ebx]
call fcn.00409370
cmp al, 0x41
je 0x41677d
cmp al, 0x4f
je 0x416746
mov al, byte [ebx]
cmp al, 0x3a
je 0x416625
cmp al, 0x2b
je 0x416625
cmp al, 0x2d
jne 0x41662e
cmp byte [ebx + 1], al
je 0x416ba5
movsx eax, al
push eax
push str.____:.___
call fcn.00486461
add esp, 8
test eax, eax
je 0x416ba5
push 0x49b80c
push ebx
call fcn.004865a2
mov edi, eax
add esp, 8
test edi, edi
je 0x4167d6
cmp byte [ebx], 0x3a
jne 0x4166aa
mov al, byte [ebx + 1]
lea esi, [ebx + 1]
test al, al
je 0x4166a1
cmp al, 0x3a
je 0x416ba5
mov ecx, 0x107
call fcn.00409350
test eax, eax
jne 0x416699
movsx eax, byte [esi]
push eax
push str.____t
call fcn.00486461
add esp, 8
test eax, eax
je 0x4166aa
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41666e
cmp byte [esi], 0x3a
je 0x416ba5
mov ebx, dword [esp + 0x30]
cmp byte [ebx], 0x2c
jne 0x4166fd
lea esi, [ebx + 1]
mov al, byte [esi]
cmp al, 0x20
je 0x4166c0
cmp al, 9
jne 0x4166c3
inc esi
jmp 0x4166b6
push 2
push 0x49b80c
push esi
call fcn.00487667
add esp, 0xc
test eax, eax
je 0x416ba5
push 3
push 0x49afec
dec esi
push esi
call fcn.00487667
add esp, 0xc
test eax, eax
je 0x416ba5
mov ebp, dword [esp + 0x40]
jmp 0x4167d6
mov eax, ebx
cmp ebx, edi
jae 0x41670d
cmp byte [eax], 0x22
je 0x41670d
inc eax
cmp eax, edi
jb 0x416703
cmp eax, edi
je 0x416ba5
mov al, byte [edi + 2]
lea ecx, [edi + 2]
test al, al
je 0x416ba5
cmp al, 0x22
je 0x416734
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x416723
jmp 0x416ba5
cmp byte [ecx], 0
je 0x416ba5
mov ebp, dword [esp + 0x40]
jmp 0x4167d6
mov al, byte [ebx + 1]
call fcn.00409370
cmp al, 0x52
jne 0x416ba5
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x20
je 0x416770
cmp al, 9
je 0x416770
cmp al, 0xa0
jne 0x416ba5
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x20
je 0x41677a
cmp al, 9
jne 0x4167bd
inc ecx
jmp 0x416770
push 3
push 0x49b7e8
push ebx
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x416ba5
mov al, byte [ebx + 3]
lea ecx, [ebx + 3]
cmp al, 0x20
je 0x4167b0
cmp al, 9
je 0x4167b0
cmp al, 0xa0
jne 0x416ba5
jmp 0x4167b0
mov al, byte [ecx]
cmp al, 0x20
je 0x4167ba
cmp al, 9
jne 0x4167bd
inc ecx
jmp 0x4167b0
movsx eax, byte [ecx]
push eax
push str.____:
call fcn.00486461
add esp, 8
test eax, eax
jne 0x416ba5
mov esi, dword [esp + 0x20]
lea eax, [esi + ebp]
cmp eax, 0x4000
jae 0x4181cb
cmp byte [ebx], 0x2c
je 0x4167f6
mov ecx, dword [esp + 0x18]
mov byte [esi + ecx], 0x20
inc esi
mov eax, dword [esp + 0x18]
lea edx, [ebp + 1]
push edx
lea ecx, [esi + eax]
push ebx
push ecx
call fcn.0048ddc0
add esp, 0xc
add esi, ebp
mov dword [esp + 0x20], esi
jmp 0x41648c
cmp byte [esi], 0
je 0x4169d6
nop
mov edi, 0x49aff4
mov eax, esi
call fcn.004093a0
mov ebp, eax
test ebp, ebp
jne 0x416843
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416837
sub eax, edx
lea ebp, [eax + esi]
mov bl, byte [ebp]
push 4
push str.Join
push esi
mov byte [esp + 0x21], bl
mov byte [ebp], 0
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41692f
push 0xf
add esi, 4
lea eax, [esp + 0xe4]
push esi
push eax
call fcn.00488410
mov bl, byte [0x4a73cd]
mov byte [esp + 0xfb], 0
lea ecx, [esp + 0xec]
mov al, byte [ecx]
add esp, 0xc
test al, al
je 0x4168a3
cmp al, bl
je 0x4168c9
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x416897
lea eax, [esp + 0xe0]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4168b0
mov bl, byte [esp + 0x15]
sub eax, edx
mov dword [esp + 0xac], eax
jmp 0x4169ba
cmp byte [ecx], 0
je 0x4168a3
movsx eax, byte [ecx + 1]
lea esi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4168e4.99
movzx edx, byte [eax + 0x4184b0]
jmp dword [edx*4 + 0x41848c]
mov byte [esi], 7
jmp case.0x4168e4.99
mov byte [esi], 8
jmp case.0x4168e4.99
mov byte [esi], 0xc
jmp case.0x4168e4.99
mov byte [esi], 0xa
jmp case.0x4168e4.99
mov byte [esi], 0xd
jmp case.0x4168e4.99
mov byte [esi], 9
jmp case.0x4168e4.99
mov byte [esi], 0xb
jmp case.0x4168e4.99
mov byte [esi], 0x20
mov eax, esi
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416916
sub eax, edi
inc eax
push eax
push esi
push ecx
call fcn.00486050
mov ecx, esi
jmp 0x41688e
push 5
push 0x49b840
push esi
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41694e
cmp byte [esi + 5], 0x30
setne byte [esp + 0x3d]
jmp 0x4169ba
push 5
push str.RTrim
push esi
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41696d
cmp byte [esi + 5], 0x30
setne byte [esp + 0x3c]
jmp 0x4169ba
mov al, byte [esi]
test al, al
je 0x4169ba
mov ecx, 2
jmp 0x416980
movsx eax, al
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x416992.38
movzx eax, byte [eax + 0x4184e0]
jmp dword [eax*4 + 0x4184c8]
mov byte [esp + 0x3f], 1
jmp case.0x416992.38
mov byte [esp + 0x3b], 1
jmp case.0x416992.38
mov byte [esp + 0x3a], 0
jmp case.0x416992.38
mov dword [esp + 0x28], ecx
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x416980
mov byte [ebp], bl
mov esi, ebp
nop
mov al, byte [esi]
cmp al, 0x20
je 0x4169ca
cmp al, 9
jne 0x4169cd
inc esi
jmp 0x4169c0
cmp byte [esi], 0
jne 0x416820
mov byte [esp + 0xb8], 1
jmp 0x416488
cmp ebp, 0xffffffff
je 0x418383
cmp ebp, 0xfffffffe
je 0x41648c
cmp byte [ebx], 0x29
jne 0x416a1f
mov esi, dword [esp + 0x30]
or eax, 0xffffffff
mov dword [esp + 0x28], 0
lea ebx, [esi + 1]
call fcn.00412b10
dec eax
mov dword [esp + 0x40], eax
mov ebp, eax
mov edi, esi
jmp 0x416b1e
cmp byte [esp + 0x3c], 0
mov edi, dword [esp + 0x30]
mov ebx, edi
je 0x416a3b
mov eax, dword [esp + 0x40]
mov esi, edi
call fcn.00412b10
mov ebp, eax
jmp 0x416a3f
mov ebp, dword [esp + 0x40]
cmp byte [esp + 0x3d], 0
je 0x416a4f
mov eax, ebp
call fcn.00412aa0
mov ebp, eax
xor esi, esi
cmp byte [esp + 0x3f], 0
je 0x416a8a
mov al, byte [0x4a73cd]
push esi
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x40], al
mov byte [esp + 0x48], al
mov byte [esp + 0x49], al
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00472f10
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x3b], 0
je 0x416aca
mov al, byte [0x4a73cc]
mov cl, byte [0x4a73cd]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x38], al
mov byte [esp + 0x41], al
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x48], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00472f10
add esp, 0x18
add esi, eax
cmp byte [esp + 0x3a], 0
je 0x416b0a
mov al, byte [0x4a7367]
mov cl, byte [0x4a73cd]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x38], al
mov byte [esp + 0x41], al
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x48], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00472f10
add esp, 0x18
add esi, eax
test esi, esi
je 0x416b1e
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416b13
sub eax, edx
mov ebp, eax
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x20]
lea ecx, [eax + ebp]
add ecx, esi
cmp ecx, 0x4001
jae 0x4181cb
mov ecx, dword [esp + 0xb4]
inc ecx
mov dword [esp + 0xb4], ecx
cmp ecx, 1
jle 0x416b7a
test eax, eax
je 0x416b7a
cmp ebx, edi
jne 0x416b7a
mov ecx, dword [esp + 0x18]
mov edi, eax
lea edx, [edi + 1]
push edx
lea eax, [esp + 0xe4]
push eax
lea edx, [esi + ecx]
push edx
call fcn.0048ddc0
add esp, 0xc
add esi, edi
mov dword [esp + 0x20], esi
test ebp, ebp
je 0x416488
mov ecx, dword [esp + 0x18]
lea eax, [ebp + 1]
push eax
lea edx, [esi + ecx]
push ebx
push edx
call fcn.0048ddc0
add esp, 0xc
add esi, ebp
mov dword [esp + 0x20], esi
jmp 0x416488
mov byte [ebp], bl
mov ebp, dword [esp + 0xe2a8]
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x417904.14
cmp byte [esp + 0x33c], 0
je 0x416d21
mov eax, dword [esp + 0x98]
mov edi, dword [ebp + 0x170]
mov ecx, dword [esp + 0x18]
mov bl, byte [esp + 0x1f]
mov dword [ebp + 0x170], eax
cmp byte [ecx], 0x7b
je 0x416c30
test bl, bl
jne 0x416c30
mov esi, dword [esp + 0x94]
test esi, esi
jne 0x4181ef
cmp dword [ebp + 0x48], esi
je 0x416c10
mov edx, dword [0x4a7440]
cmp dword [edx + 0x94], esi
je 0x418200
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [esp + 0x354]
push eax
mov ecx, ebp
call fcn.00419f50
jmp 0x416cba
mov esi, dword [esp + 0x94]
mov eax, esi
sub eax, 0
je 0x416c7c
dec eax
je 0x416c68
dec eax
jne 0x416cc8
lea ecx, [esp + 0x33c]
push ecx
push ebp
call fcn.0041e890
test eax, eax
jne 0x416cc8
lea ecx, [esp + 0x4c]
call fcn.00414a50
jmp 0x41846c
lea edx, [esp + 0x33c]
push edx
push ebp
call fcn.0041e3e0
test eax, eax
je 0x416c5a
jmp 0x416cc8
mov eax, dword [0x4a7440]
cmp dword [eax + 0x94], 0
lea edx, [esp + 0x33c]
jne 0x418220
lea ecx, [esp + 0x4344]
push ecx
push edx
push ebp
call fcn.0041d940
test eax, eax
je 0x416c5a
test bl, bl
je 0x416cc8
push 0
push 0
push 0
push 0x73
push ebp
call fcn.0041c0a0
test eax, eax
je 0x416c5a
mov dword [ebp + 0x370], 0
mov byte [esp + 0x33c], 0
test esi, esi
je 0x416d1b
test bl, bl
jne 0x416d1b
mov ebx, dword [esp + 0x18]
lea ecx, [ebx + 1]
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x416cea
cmp al, 9
jne 0x416ced
inc ecx
jmp 0x416ce0
cmp byte [ecx], 0
jne 0x416cfd
mov dword [ebp + 0x170], edi
jmp 0x417f73
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416d02
sub eax, esi
mov dword [esp + 0x20], eax
inc eax
push eax
push ecx
push ebx
call fcn.00486050
add esp, 0xc
mov dword [ebp + 0x170], edi
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x7d
jne 0x416e14
cmp dword [ebp + 0x48], 0
je 0x416e14
mov ecx, dword [0x4a7440]
cmp dword [ecx + 0x94], 0
jne 0x416e14
cmp dword [ebp + 0x164], 0
mov ebx, eax
je 0x416d8f
mov eax, dword [ebp + 0x168]
mov dword [ebp + 0x164], 0
test eax, eax
je 0x416d7d
push eax
call fcn.00485488
add esp, 4
mov dword [ebp + 0x168], 0
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x20
je 0x416d81
cmp al, 9
je 0x416d81
mov ebx, ecx
cmp byte [ebx], 0x7d
jne 0x416dea
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x416dea
dec eax
mov dword [ebp + 0x48], eax
mov edi, dword [ebp + eax*4 + 0x4c]
call fcn.0046c500
mov edx, dword [ebp + 0x48]
mov eax, dword [ebp + edx*4 + 0x4c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [ebp + 0x60]
push 0x2e
push esi
call fcn.0048742a
add esp, 8
test eax, eax
je 0x416dce
mov byte [eax], 0
jmp 0x416dd1
mov byte [esi], 0
lea eax, [ebx + 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x416de0
cmp cl, 9
jne 0x416de3
inc eax
jmp 0x416dd4
cmp byte [eax], 0x7d
mov ebx, eax
je 0x416d94
cmp byte [ebx], 0
je 0x417f73
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416df8
sub eax, edx
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
push ebx
push eax
call fcn.00486050
add esp, 0xc
cmp dword [ebp + 0x164], 0
je 0x416eea
mov ecx, dword [0x4a7440]
cmp dword [ecx + 0x94], 0
jne 0x416eea
mov esi, dword [esp + 0x18]
push 3
push 0x49b8c0
push esi
call fcn.00485ef0
add esp, 0xc
test eax, eax
je 0x416e64
push 3
push 0x49b8c4
push esi
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41822a
mov edi, dword [esp + 0x18]
lea esi, [edi + 3]
jmp 0x416e70
mov al, byte [esi]
cmp al, 0x20
je 0x416e7a
cmp al, 9
jne 0x416e7d
inc esi
jmp 0x416e70
mov al, byte [esi]
test al, al
je 0x416e95
cmp al, 0x7b
jne 0x41822e
cmp byte [esi + 1], 0
jne 0x41822e
mov eax, dword [ebp + 0x168]
lea edx, [esp + 0x33c]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x416ea4
lea edx, [esp + 0x33c]
push 0x2e
push edx
call fcn.00486461
mov cl, byte [edi]
mov byte [eax + 1], cl
mov edx, dword [ebp + 0x170]
add esp, 8
cmp byte [esi], 0x7b
mov dword [esp + 0x98], edx
sete byte [esp + 0x1f]
mov dword [esp + 0x94], 0
jmp 0x417f73
mov edi, dword [esp + 0x18]
lea ebx, [esp + 0x1f]
mov eax, edi
call fcn.00416150
test al, al
je 0x416f2f
lea edx, [esp + 0x33c]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x416f08
mov eax, dword [ebp + 0x170]
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], 0
jmp 0x417f73
mov ecx, dword [0x4a7440]
cmp dword [ecx + 0x94], 0
jne 0x4170de
lea edx, [esp + 0x1f]
push edx
mov eax, edi
call fcn.00416200
add esp, 4
test eax, eax
je 0x416f87
lea edx, [esp + 0x33c]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x416f60
mov eax, dword [ebp + 0x170]
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], 1
jmp 0x417f73
cmp dword [ebp + 0x48], 0
je 0x4170de
mov esi, edi
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x416faf
push 0x107
push eax
call fcn.004869ae
add esp, 8
test eax, eax
jne 0x416fb9
mov al, byte [esi]
cmp al, 0x5f
je 0x416fb9
cmp al, 0x2e
jne 0x416fbc
inc esi
jmp 0x416f93
cmp esi, edi
jbe 0x417067
mov al, byte [esi]
cmp al, 0x20
je 0x416fce
cmp al, 9
jne 0x416fd1
inc esi
jmp 0x416fc4
mov al, byte [esi]
cmp al, 0x3a
jne 0x416ff3
cmp byte [esi + 1], 0x3d
jne 0x416ff3
push 0
push edi
push ebp
call fcn.0041ea40
test eax, eax
je 0x416c5a
jmp 0x417f73
test al, al
je 0x417005
cmp al, 0x5b
je 0x417005
cmp al, 0x7b
jne 0x417067
cmp byte [esi + 1], 0
jne 0x417067
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417010
sub eax, edx
cmp byte [eax + edi - 1], 0x7b
sete cl
mov byte [esp + 0x1f], cl
test cl, cl
je 0x417031
dec eax
mov esi, edi
call fcn.00412b10
lea edx, [esp + 0x33c]
mov eax, edi
sub edx, edi
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x417040
mov ecx, dword [ebp + 0x170]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], 2
jmp 0x417f73
push 6
push str.Static
push edi
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x41709f
mov al, byte [edi + 6]
cmp al, 0x20
je 0x417086
cmp al, 9
jne 0x41709f
push 1
add edi, 7
push edi
push ebp
call fcn.0041ea40
test eax, eax
je 0x416c5a
jmp 0x417f73
cmp byte [edi], 0x23
jne 0x418238
mov esi, dword [ebp + 0x170]
push edi
push ebp
call fcn.00418870
test eax, eax
je 0x416c5a
cmp eax, 3
jne 0x418238
mov edx, dword [esp + 0x9c]
mov dword [ebp + 0x16c], edx
mov dword [ebp + 0x170], esi
jmp 0x417f73
mov edx, dword [esp + 0x18]
xor ebx, ebx
xor ebp, ebp
cmp byte [edx], 0x3a
mov dword [esp + 0x28], ebx
mov dword [esp + 0xbc], ebx
jne 0x41716a
mov cl, byte [edx + 1]
lea eax, [edx + 1]
test cl, cl
je 0x41716a
cmp cl, 0x3a
je 0x41711e
push 0x3a
push eax
mov dword [esp + 0xc4], eax
call fcn.00486461
add esp, 8
cmp eax, ebx
je 0x417166
inc eax
jmp 0x417126
cmp byte [edx + 2], bl
lea eax, [edx + 2]
je 0x41716a
mov dword [esp + 0x28], eax
cmp eax, ebx
je 0x41716a
mov edi, eax
mov al, byte [edi]
test al, al
je 0x41715c
jmp 0x417140
cmp al, byte [0x4a73cd]
je 0x4171cb
cmp al, 0x3a
je 0x4171cb
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417140
cmp ebp, ebx
jne 0x4172c8
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x18]
push 0x49b80c
push ecx
call fcn.004865a2
mov ebp, eax
add esp, 8
cmp ebp, ebx
je 0x417b22
mov ecx, dword [esp + 0x18]
cmp ebp, ecx
jne 0x417195
cmp byte [ebp + 2], 0x3a
jne 0x417195
inc ebp
mov esi, ebp
cmp ebp, ecx
jbe 0x4171af
jmp 0x4171a0
mov al, byte [esi]
cmp al, 0x20
je 0x4171aa
cmp al, 9
jne 0x4171af
dec esi
cmp esi, ecx
ja 0x4171a0
mov bl, byte [esi]
mov eax, dword [esp + 0x18]
mov byte [esi], 0
mov cl, byte [eax]
cmp cl, 0x20
je 0x4171c8
cmp cl, 9
jne 0x41724c
inc eax
jmp 0x4171b8
mov al, byte [edi]
test al, al
je 0x41715c
lea esi, [edi + 1]
cmp al, 0x3a
jne 0x4171e6
cmp byte [esi], al
jne 0x417246
mov ebp, edi
mov edi, esi
inc edi
jmp 0x417130
movsx eax, byte [esi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4171f8.99
movzx eax, byte [eax + 0x418540]
jmp dword [eax*4 + 0x418520]
mov byte [esi], 7
jmp case.0x4171f8.99
mov byte [esi], 8
jmp case.0x4171f8.99
mov byte [esi], 0xc
jmp case.0x4171f8.99
mov byte [esi], 0xa
jmp case.0x4171f8.99
mov byte [esi], 0xd
jmp case.0x4171f8.99
mov byte [esi], 9
jmp case.0x4171f8.99
mov byte [esi], 0xb
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417225
sub eax, edx
inc eax
push eax
push esi
push edi
call fcn.00486050
add esp, 0xc
cmp byte [edi], 0x3a
jne 0x417246
cmp byte [esi], 0x3a
jne 0x417246
mov edi, esi
inc edi
jmp 0x417130
push 0
push 0
push eax
call fcn.0040b670
add esp, 0xc
mov dword [esp + 0xc8], eax
test eax, eax
je 0x4172bc
cmp eax, 4
jne 0x4172be
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.TextMem.0
test eax, eax
je 0x41729a
cmp byte [esp + 0x88], 0
je 0x41728f
push eax
call fcn.00485488
add esp, 4
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x7c]
test eax, eax
mov dword [esp + 0x4c], vtable.TextStream.0
je 0x41846c
push eax
call fcn.00485488
add esp, 4
jmp 0x41846c
xor ebp, ebp
mov byte [esi], bl
test ebp, ebp
je 0x417b22
mov ebx, dword [esp + 0x18]
cmp ebp, ebx
jbe 0x417b22
mov edx, dword [0x4a7440]
cmp dword [edx + 0x94], 0
jne 0x418242
mov edi, dword [esp + 0xe2a8]
mov eax, dword [edi + 4]
test eax, eax
je 0x4172fe
cmp byte [eax], 0x1b
je 0x4182ab
mov byte [ebp], 0
add ebp, 2
cmp dword [esp + 0x28], 0
mov dword [esp + 0x20], ebp
jne 0x417951
cmp byte [ebp], 0
je 0x41734d
mov ecx, ebp
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x20
je 0x41732a
cmp al, 9
jne 0x41732d
inc ecx
jmp 0x417320
mov eax, ecx
sub eax, ebp
je 0x41734d
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417338
sub eax, esi
inc eax
push eax
push ecx
push ebp
call fcn.00486050
add esp, 0xc
cmp byte [ebx], 0
je 0x41738c
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417357
sub eax, edx
lea eax, [eax + ebx - 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x417370
cmp cl, 9
jne 0x417377
cmp eax, ebx
je 0x41737d
dec eax
jmp 0x417364
mov byte [eax + 1], 0
jmp 0x41738c
mov cl, byte [eax]
cmp cl, 0x20
je 0x417389
cmp cl, 9
jne 0x41738c
mov byte [eax], 0
mov esi, dword [esp + 0x20]
cmp byte [esi], 0
mov ebp, esi
je 0x417949
cmp byte [esi + 1], 0
je 0x417603
mov ebp, dword [esp + 0xa0]
mov byte [esp + 0x15], 0
xor bl, bl
lea edi, [esi + 1]
push 0x49aff0
push edi
call fcn.00485471
add esp, 8
test eax, eax
je case.0x4173e2.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x4173e2.34
movzx ecx, byte [eax + 0x418578]
jmp dword [ecx*4 + 0x418558]
mov bl, 1
jmp case.0x4173e2.36
mov byte [esp + 0x15], 1
jmp case.0x4173e2.36
test bl, bl
jne 0x41740c
cmp byte [esp + 0x15], bl
jne 0x417413
or ebp, 1
jmp case.0x4173e2.36
cmp byte [esp + 0x15], 0
je 0x41741d
or byte [esp + 0x17], 4
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4173e2.36
or byte [esp + 0x17], 8
jmp 0x4174ae
test bl, bl
jne 0x41743e
cmp byte [esp + 0x15], bl
jne 0x417445
or ebp, 2
jmp case.0x4173e2.36
cmp byte [esp + 0x15], 0
je 0x41744f
or byte [esp + 0x17], 1
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4173e2.36
or byte [esp + 0x17], 2
jmp 0x4174ae
test bl, bl
jne 0x417469
cmp byte [esp + 0x15], bl
jne 0x417470
or ebp, 4
jmp case.0x4173e2.36
cmp byte [esp + 0x15], 0
je 0x41747a
or byte [esp + 0x17], 0x10
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4173e2.36
or byte [esp + 0x17], 0x20
jmp 0x4174ae
test bl, bl
jne 0x417494
cmp byte [esp + 0x15], bl
jne 0x41749b
or ebp, 8
jmp case.0x4173e2.36
cmp byte [esp + 0x15], 0
je 0x4174a5
or byte [esp + 0x17], 0x40
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4173e2.36
or byte [esp + 0x17], 0x80
xor bl, bl
mov esi, edi
cmp byte [esi + 1], 0
jne 0x4173b3
mov dword [esp + 0xa0], ebp
push 0
mov ebp, esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cl, byte [esi]
test cl, cl
je 0x4175a0
cmp byte [esi + 1], 0
jne 0x417523
mov byte [esp + 0xcc], cl
cmp cl, 0xa
jne 0x4174f0
mov al, 0xd
jmp 0x4175a2
mov edx, dword [esp + 0xcc]
push eax
push edx
call dword [sym.imp.USER32.dll_VkKeyScanExA]
movzx ecx, ax
mov eax, ecx
shr eax, 8
cmp al, 0xff
jne 0x417514
cmp cl, 0xff
je 0x4175a0
and al, 0x38
neg al
sbb al, al
not al
and al, cl
jmp 0x4175a2
movzx edi, cl
test edi, 0xffffff80
jne 0x417540
push 2
push edi
call fcn.004869ae
add esp, 8
test eax, eax
je 0x417540
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x56
jne 0x417564
mov al, byte [esi + 1]
call fcn.00409370
cmp al, 0x4b
jne 0x417564
push 0x10
push 0
add esi, 2
push esi
call fcn.00486df4
add esp, 0xc
jmp 0x4175a2
xor edi, edi
mov eax, dword [edi*8 + 0x4a8180]
push esi
push eax
call fcn.00485471
add esp, 8
test eax, eax
je 0x417597
inc edi
cmp edi, 0x6d
jl 0x417566
mov eax, esi
call fcn.00411d70
movzx ecx, ax
test cx, cx
je 0x4175a0
call fcn.004124d0
jmp 0x4175a2
mov al, byte [edi*8 + 0x4a8184]
jmp 0x4175a2
xor al, al
mov byte [esp + 0x1d], al
test al, al
je 0x417942
mov bl, al
mov esi, dword [esp + 0x18]
cmp byte [esi], 0
je 0x4176f1
xor bl, bl
lea edi, [esi + 1]
mov byte [esp + 0x15], 0
cmp byte [edi], bl
je case.0x4175fc.34
nop
push 0x49aff0
push edi
call fcn.00485471
add esp, 8
test eax, eax
je case.0x4175fc.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x4175fc.34
movzx ecx, byte [eax + 0x4185f8]
jmp dword [ecx*4 + 0x4185d8]
or bl, 0xff
mov byte [esp + 0x1d], bl
jmp 0x4175b0
mov bl, 1
jmp case.0x4175fc.36
mov byte [esp + 0x15], 1
jmp case.0x4175fc.36
test bl, bl
jne 0x417631
cmp byte [esp + 0x15], bl
jne 0x417638
or dword [esp + 0x48], 1
jmp case.0x4175fc.36
cmp byte [esp + 0x15], 0
je 0x417642
or byte [esp + 0x16], 4
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4175fc.36
or byte [esp + 0x16], 8
jmp 0x4176dc
test bl, bl
jne 0x417668
cmp byte [esp + 0x15], bl
jne 0x41766f
or dword [esp + 0x48], 2
jmp case.0x4175fc.36
cmp byte [esp + 0x15], 0
je 0x417679
or byte [esp + 0x16], 1
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4175fc.36
or byte [esp + 0x16], 2
jmp 0x4176dc
test bl, bl
jne 0x417695
cmp byte [esp + 0x15], bl
jne 0x41769c
or dword [esp + 0x48], 4
jmp case.0x4175fc.36
cmp byte [esp + 0x15], 0
je 0x4176a6
or byte [esp + 0x16], 0x10
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4175fc.36
or byte [esp + 0x16], 0x20
jmp 0x4176dc
test bl, bl
jne 0x4176c2
cmp byte [esp + 0x15], bl
jne 0x4176c9
or dword [esp + 0x48], 8
jmp case.0x4175fc.36
cmp byte [esp + 0x15], 0
je 0x4176d3
or byte [esp + 0x16], 0x40
mov byte [esp + 0x15], 0
test bl, bl
je case.0x4175fc.36
or byte [esp + 0x16], 0x80
xor bl, bl
mov esi, edi
cmp byte [esi + 1], 0
lea edi, [esi + 1]
jne 0x4175d0
mov bl, byte [esp + 0x1d]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cl, byte [esi]
test cl, cl
jne 0x417729
mov byte [esp + 0x1e], 0
xor al, al
lea edx, [ebx - 1]
cmp dl, 5
ja 0x417713
cmp bl, 3
jne 0x41771f
add bl, 0x66
cmp bl, 5
ja 0x417825
mov byte [esp + 0x27], 1
jmp 0x41782a
cmp byte [esi + 1], 0
jne 0x417778
mov byte [esp + 0xdc], cl
cmp cl, 0xa
jne 0x417742
mov al, 0xd
jmp 0x4177f3
mov edx, dword [esp + 0xdc]
push eax
push edx
call dword [sym.imp.USER32.dll_VkKeyScanExA]
movzx ecx, ax
mov eax, ecx
shr eax, 8
cmp al, 0xff
jne 0x417769
cmp cl, 0xff
jne 0x417769
xor al, al
jmp 0x4177f3
and al, 0x38
neg al
sbb al, al
not al
and al, cl
jmp 0x4177f3
movzx edi, cl
test edi, 0xffffff80
jne 0x417795
push 2
push edi
call fcn.004869ae
add esp, 8
test eax, eax
je 0x417795
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x56
jne 0x4177b9
mov al, byte [esi + 1]
call fcn.00409370
cmp al, 0x4b
jne 0x4177b9
push 0x10
lea ecx, [esi + 2]
push 0
push ecx
call fcn.00486df4
add esp, 0xc
jmp 0x4177f3
xor edi, edi
jmp 0x4177c0
mov eax, dword [edi*8 + 0x4a8180]
push esi
push eax
call fcn.00485471
add esp, 8
test eax, eax
je 0x417818
inc edi
cmp edi, 0x6d
jl 0x4177c0
mov eax, esi
call fcn.00411d70
movzx ecx, ax
test cx, cx
je 0x4176ff
call fcn.004124d0
mov byte [esp + 0x1e], al
mov al, byte [esp + 0x1e]
lea ecx, [eax - 1]
cmp cl, 5
ja 0x417807
cmp al, 3
jne 0x417811
add al, 0x66
cmp al, 5
ja 0x417704
mov al, 1
jmp 0x417706
mov dl, byte [edi*8 + 0x4a8184]
mov byte [esp + 0x1e], dl
jmp 0x4177f7
mov byte [esp + 0x27], 0
test al, al
jne 0x417839
mov byte [esp + 0x3e], 1
cmp byte [esp + 0x27], al
jne 0x41783e
mov byte [esp + 0x3e], 0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417843
sub eax, edx
cmp eax, 1
jne 0x417864
movzx eax, byte [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x49b93c
jne 0x417869
mov eax, 0x499831
mov ecx, dword [esp + 0x18]
push ecx
push eax
push str._s_s
mov esi, 0x20
lea edi, [esp + 0x120]
call fcn.00472750
add esp, 0xc
push 0x1f
lea edx, [esp + 0xf8]
push ebp
push edx
call fcn.00488410
mov esi, dword [esp + 0x2c]
add esp, 0xc
push 7
lea eax, [esp + 0xc4]
push esi
push eax
mov byte [esp + 0x11f], 0
call fcn.00488410
mov eax, ebp
sub eax, esi
add esp, 0xc
mov byte [esp + 0xc7], 0
cmp eax, 8
jae 0x4178d3
mov byte [esp + eax + 0xc0], 0
cmp byte [esp + 0xc0], 0
mov dword [esp + 0xa4], 0
jne case.0x417904.14
movzx eax, byte [esp + 0x1d]
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x417904.14
movzx ecx, byte [eax + 0x418668]
jmp dword [ecx*4 + 0x418658]
mov edi, 0x49b1c0
mov eax, esi
call fcn.004093a0
test eax, eax
jne case.0x417904.19
jmp case.0x417904.14
lea edx, [esp + 0xf4]
push str.Return
push edx
call fcn.00485471
add esp, 8
test eax, eax
jne case.0x417904.14
mov byte [esp + 0x1d], 0
mov edi, dword [esp + 0xe2a8]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
cmp byte [edi + 0x174], 0
je 0x417980
xor esi, esi
push esi
push 0xff
push esi
push 0x67
push edi
mov byte [edi + 0x174], 0
call fcn.0041c0a0
test eax, eax
je 0x4182bb
mov dword [edi + 0x370], esi
push 1
push edi
mov eax, ebx
call fcn.00419df0
test eax, eax
je 0x417269
xor esi, esi
cmp byte [ebp], 0
je 0x4179e5
cmp dword [esp + 0x28], esi
jne 0x4179cf
push esi
mov esi, ebp
call fcn.00409600
movzx esi, ax
add esp, 4
test si, si
jne 0x4179cf
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
mov ecx, edi
call fcn.00419f50
test eax, eax
je 0x417269
push 0
push 0
push 0
push 0x67
push edi
call fcn.0041c0a0
test eax, eax
je 0x417269
mov eax, dword [esp + 0x28]
test eax, eax
je 0x417a34
cmp byte [eax], 0
je 0x41830a
mov eax, dword [esp + 0xbc]
test eax, eax
jne 0x417a06
mov eax, 0x499831
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xe2a8]
mov edi, dword [esp + 0x28]
push ecx
push ebp
push eax
mov eax, dword [edx + 0x14]
push eax
call fcn.0040c860
add esp, 0x10
test eax, eax
je 0x417269
jmp case.0x417904.14
mov ebp, dword [esp + 0x18]
lea ecx, [esp + 0x47]
push ecx
lea edx, [esp + 0xb4]
push edx
push ebp
call fcn.0040be70
mov edi, eax
add esp, 0xc
test edi, edi
je 0x417aaf
test si, si
je 0x417a62
mov word [edi + 2], si
jmp case.0x417904.14
mov eax, edi
call fcn.0040b4d0
test eax, eax
jne 0x418317
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0xe2a8]
push eax
mov eax, dword [esi + 0x14]
call fcn.0040b530
test eax, eax
je 0x418333
cmp byte [esp + 0x47], 0
jne 0x417aa4
cmp byte [0x4ab51b], 0
je case.0x417904.14
mov byte [edi + 0x16], 1
mov ebp, esi
jmp 0x417f73
mov ecx, dword [esp + 0xe2a8]
mov eax, dword [ecx + 0x14]
mov edx, dword [esp + 0xb0]
mov ecx, dword [eax + 4]
push edx
push ecx
push esi
push eax
xor bl, bl
call fcn.0040adb0
add esp, 0x10
test eax, eax
jne case.0x417904.14
cmp dword [esp + 0xc8], 3
jne 0x416c5a
push ebp
push str.Note:_The_hotkey__s_will_not_be_active_because_it_does_not_exist_in_the_current_keyboard_layout.
mov esi, 0x204
lea edi, [esp + 0x13c]
call fcn.00472750
fldz
add esp, 8
push 0
sub esp, 8
fstp qword [esp]
push 0
mov edx, edi
push 0x10000
push edx
call fcn.00476fb0
add esp, 0x18
jmp case.0x417904.14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
cmp byte [eax + ecx - 1], 0x3a
lea edi, [eax + ecx]
jne 0x417d9b
cmp eax, 1
je 0x418340
mov al, byte [ecx]
test al, al
je 0x417b79
mov dl, byte [0x4a7367]
cmp al, 0x20
je 0x417d9b
cmp al, 9
je 0x417d9b
cmp al, dl
je 0x417d9b
cmp al, byte [0x4a73cd]
je 0x417d9b
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x417b4d
cmp byte [edi - 2], 0x3a
mov eax, dword [esp + 0x20]
jne 0x417b8c
cmp eax, 2
ja 0x417d9b
mov edi, dword [esp + 0x18]
dec eax
mov byte [eax + edi], 0
cmp byte [edi], 0
je 0x417269
cmp eax, 0xffffffff
jne 0x417bb1
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417ba8
sub eax, edx
lea eax, [eax + edi - 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x417bc1
cmp cl, 9
jne 0x417bc8
cmp eax, edi
je 0x417bce
dec eax
jmp 0x417bb5
mov byte [eax + 1], 0
jmp 0x417bdd
mov cl, byte [eax]
cmp cl, 0x20
je 0x417bda
cmp cl, 9
jne 0x417bdd
mov byte [eax], 0
cmp byte [edi], 0
je 0x417269
mov ebx, dword [esp + 0xe2a8]
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x417c10
mov eax, dword [esi + 4]
push edi
push eax
call fcn.00485471
add esp, 8
test eax, eax
je 0x417cb8
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x417bf4
cmp byte [edi], 0
je 0x417cd2
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417c20
sub eax, edx
mov ebp, eax
lea edi, [ebp + 1]
lea edx, [edi - 1]
cmp edx, 0x7fff
ja 0x4181b2
cmp dword [0x4acce0], 0
jne 0x417c58
call fcn.0046fc90
mov dword [0x4acce0], eax
test eax, eax
je 0x4181b2
mov esi, dword [0x4acce4]
cmp edi, dword [esi + 8]
jbe 0x417c79
call fcn.0046fc90
mov esi, dword [0x4acce4]
mov dword [esi + 0xc], eax
test eax, eax
je 0x4181b2
mov ebx, dword [esi + 4]
mov eax, edi
and eax, 3
mov dword [0x4acce8], ebx
je 0x417c8e
sub edi, eax
add edi, 4
sub dword [esi + 8], edi
lea eax, [edi + ebx]
mov dword [esi + 4], eax
test ebx, ebx
je 0x4181b2
test ebp, ebp
je 0x417cb2
mov ecx, dword [esp + 0x18]
push ebp
push ecx
push ebx
call fcn.0048ddc0
add esp, 0xc
mov byte [ebx + ebp], 0
jmp 0x417cdd
push edi
push str.Duplicate_label.
mov ecx, ebx
call fcn.0042ecb0
test eax, eax
je 0x417269
jmp case.0x417904.14
mov esi, dword [0x4acce4]
mov ebx, 0x499831
cmp dword [0x4acce0], 0
jne 0x417cfe
call fcn.0046fc90
xor edi, edi
mov dword [0x4acce0], eax
cmp eax, edi
je 0x417d59
mov esi, dword [0x4acce4]
jmp 0x417d00
xor edi, edi
cmp dword [esi + 8], 0x14
jae 0x417d18
call fcn.0046fc90
mov esi, dword [0x4acce4]
mov dword [esi + 0xc], eax
cmp eax, edi
je 0x417d59
mov eax, dword [esi + 4]
add dword [esi + 8], 0xffffffec
lea edx, [eax + 0x14]
mov dword [0x4acce8], eax
mov dword [esi + 4], edx
cmp eax, edi
je 0x417d59
mov esi, dword [esp + 0xe2a8]
mov dword [eax], vtable.Label.0
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov ecx, dword [esi + 0x14]
mov dword [eax + 0xc], ecx
mov ebp, eax
cmp dword [esi + 0x10], edi
jne 0x417d6f
mov dword [esi + 0x10], eax
jmp 0x417d75
mov ecx, dword [esp + 0xe2a8]
push 0x499831
push str.Out_of_memory.
jmp 0x417cc0
mov edx, dword [esi + 0x14]
mov dword [edx + 0x10], eax
push str.OnClipboardChange
push ebx
mov dword [esi + 0x14], eax
call fcn.00485471
add esp, 8
test eax, eax
jne case.0x417904.14
mov dword [esi + 0x5ac], ebp
mov ebp, esi
jmp 0x417f73
mov ebp, dword [esp + 0x18]
cmp byte [ebp], 0x23
mov ebx, dword [esp + 0xe2a8]
jne 0x417de0
mov esi, dword [ebx + 0x170]
push ebp
push ebx
call fcn.00418870
test eax, eax
je 0x417269
cmp eax, 3
jne 0x417de0
mov eax, dword [esp + 0x9c]
mov dword [ebx + 0x16c], eax
mov dword [ebx + 0x170], esi
mov ebp, ebx
jmp 0x417f73
mov al, byte [ebp]
cmp al, 0x7b
je 0x417f28
cmp al, 0x7d
je 0x417f28
mov esi, ebp
test al, al
je 0x417e1f
mov dl, al
jmp 0x417e00
mov ecx, 0x49ba1c
mov al, 9
cmp dl, al
je 0x417e94
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x417e07
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x417e00
mov ebx, edi
mov edi, ebx
sub edi, ebp
push 0xffffffffffffffff
push edi
mov eax, str.Else
mov ecx, ebp
mov esi, 1
call fcn.004727e0
add esp, 8
test eax, eax
je 0x417e98
push 0xffffffffffffffff
push edi
mov eax, 0x49a4a8
mov ecx, ebp
call fcn.004727e0
add esp, 8
test eax, eax
je 0x417ea4
push 0xffffffffffffffff
push edi
mov eax, str.Finally
mov ecx, ebp
call fcn.004727e0
mov esi, eax
add esp, 8
test esi, esi
je 0x417e98
mov ecx, dword [esp + 0xe2a8]
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
call fcn.00419f50
test eax, eax
je 0x417269
jmp case.0x417904.14
mov ebx, esi
jmp 0x417e21
neg esi
sbb esi, esi
and esi, 0xffffff97
add esi, 0x71
jmp 0x417ea9
mov esi, 0x6f
xor edi, edi
push edi
push edi
push edi
push esi
mov esi, dword [esp + 0xe2b8]
push esi
call fcn.0041c0a0
test eax, eax
je 0x41834b
mov dword [esi + 0x370], edi
mov eax, ebx
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x20
je 0x417edc
cmp cl, 9
jne 0x417edf
inc eax
jmp 0x417ed0
mov dl, byte [eax]
mov ecx, eax
mov dword [esp + 0x18], ecx
cmp dl, byte [0x4a7367]
jne 0x417f03
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x417eef
cmp cl, 9
je 0x417eef
mov ecx, eax
mov dword [esp + 0x18], ecx
cmp byte [ecx], 0
je case.0x417904.14
mov eax, ecx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417f10
sub eax, edx
mov dword [esp + 0x20], eax
mov dword [esi + 0x370], edi
jmp 0x4170de
cmp al, 0x7b
push 0
setne al
push 0
add al, 0x73
movzx ecx, al
push 0
push ecx
push ebx
call fcn.0041c0a0
test eax, eax
je 0x417269
lea eax, [ebp + 1]
lea ebx, [ebx]
mov cl, byte [eax]
cmp cl, 0x20
je 0x417f5c
cmp cl, 9
jne 0x417f5f
inc eax
jmp 0x417f50
cmp byte [eax], 0
mov dword [esp + 0x18], eax
jne 0x4180da
mov ebp, dword [esp + 0xe2a8]
mov bl, byte [esp + 0x1d]
test bl, bl
je case.0x417f9f.4
mov eax, dword [esp + 0xa4]
inc eax
mov dword [esp + 0xa4], eax
dec eax
cmp eax, 9
ja case.0x417f9f.4
movzx edx, byte [eax + 0x4186d0]
jmp dword [edx*4 + 0x4186bc]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x114]
push eax
push str._s::
push ecx
call fcn.004859a8
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4170de
mov dx, word [0x49ba2c]
mov esi, dword [esp + 0x18]
cmp byte [esp + 0x27], 0
mov word [esi], dx
mov al, byte [0x49ba2e]
push 0
setne dl
push 1
add dl, 0xc1
mov byte [esi + 2], al
lea ecx, [esp + 0x20]
movzx eax, dl
push ecx
push eax
push ebp
call fcn.0041c0a0
cmp byte [esp + 0x3e], 0
je 0x418032
lea ecx, [esp + 0xf4]
push ecx
push str.if_not_GetKeyState___s__
push esi
call fcn.004859a8
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0xa4], 9
jmp 0x4170de
mov esi, dword [esp + 0x18]
mov ecx, 0x499831
cmp bl, 0x12
je 0x418046
cmp bl, 0xa3
jbe 0x418066
cmp bl, 0xa5
ja 0x418066
movzx eax, byte [esp + 0x1e]
sub eax, 0x11
je 0x418061
sub eax, 0x91
je 0x418061
dec eax
jne 0x418066
mov ecx, str.RCtrl_up
jmp 0x418066
mov ecx, str.LCtrl_up
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0xc4]
push eax
push ecx
push str.Blind_s_s_s_DownTemp
xor edi, edi
push esi
mov dword [ebp + 0x370], edi
call fcn.004859a8
add esp, 0x14
push edi
push 1
lea ecx, [esp + 0x20]
push ecx
push 0x41
push ebp
call fcn.0041c0a0
test eax, eax
je 0x41834b
push edi
push edi
push edi
push 0x67
push ebp
call fcn.0041c0a0
lea edx, [esp + 0x114]
push edx
push str._s_up::
push esi
call fcn.004859a8
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0xa4], 2
jmp 0x4170de
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4180e0
mov ebp, dword [esp + 0xe2a8]
sub eax, edx
mov dword [esp + 0x20], eax
mov dword [ebp + 0x370], 0
jmp 0x416bb0
mov ax, word [0x49ba2c]
mov esi, dword [esp + 0x18]
cmp byte [esp + 0x27], 0
mov word [esi], ax
mov cl, byte [0x49ba2e]
push 0
setne al
push 1
add al, 0xc1
mov byte [esi + 2], cl
lea edx, [esp + 0x20]
movzx ecx, al
push edx
push ecx
push ebp
call fcn.0041c0a0
lea edx, [esp + 0xf4]
push edx
push str.Blind_s_Up
push esi
call fcn.004859a8
add esp, 0xc
push 0
push 1
lea eax, [esp + 0x20]
push eax
push 0x41
push ebp
call fcn.0041c0a0
push 0
push 0
push 0
push 0x67
push ebp
call fcn.0041c0a0
mov byte [esp + 0x1d], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0xe2a8]
lea edx, [esp + 0x6284]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
cmp eax, edx
jne 0x4181a2
lea eax, [esp + 0xa28c]
mov dword [esp + 0x30], eax
jmp 0x416435
lea ecx, [esp + 0x6284]
mov dword [esp + 0x30], ecx
jmp 0x416435
mov edx, dword [esp + 0x18]
push edx
push str.Out_of_memory.
mov ecx, 0x4acd80
call fcn.0042ecb0
jmp 0x417269
mov ecx, dword [esp + 0xe2a8]
push ebx
push str.Continuation_section_too_long.
call fcn.0042ecb0
lea ecx, [esp + 0x4c]
mov esi, eax
call fcn.00414a50
mov eax, esi
jmp 0x41846e
lea eax, [esp + 0x33c]
push eax
push 0x49b880
mov ecx, ebp
jmp 0x4181d8
cmp dword [ebp + 0x164], 0
mov eax, 0x49b880
jne 0x418213
mov eax, str.Not_a_valid_method__class_or_property_definition.
lea ecx, [esp + 0x33c]
push ecx
push eax
mov ecx, ebp
jmp 0x4181d8
push edx
push str.Functions_cannot_contain_functions.
mov ecx, ebp
jmp 0x4181d8
mov edi, dword [esp + 0x18]
push edi
push str.Not_a_valid_property_getter_setter.
mov ecx, ebp
jmp 0x4181d8
push edi
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, ebp
jmp 0x4181d8
push ebx
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
mov ecx, dword [esp + 0xe2b0]
call fcn.0042ecb0
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.TextMem.0
test eax, eax
je 0x418287
cmp byte [esp + 0x88], 0
je 0x41827c
push eax
call fcn.00485488
add esp, 4
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], vtable.TextStream.0
test eax, eax
je 0x4181e8
push eax
call fcn.00485488
add esp, 4
mov eax, esi
jmp 0x41846e
push ebx
mov dword [edi + 0x370], eax
push str.IfWin_should_be_IfWin.
mov ecx, edi
jmp 0x41824f
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.TextMem.0
cmp eax, esi
je 0x4182e8
cmp byte [esp + 0x88], 0
je 0x4182e1
push eax
call fcn.00485488
add esp, 4
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], vtable.TextStream.0
cmp eax, esi
je 0x41846c
push eax
call fcn.00485488
add esp, 4
jmp 0x41846c
push ebx
push str.This_hotstring_is_missing_its_abbreviation.
mov ecx, edi
jmp 0x41824f
mov ecx, dword [esp + 0xe2a8]
push ebp
mov dword [ecx + 0x370], 0
push str.Duplicate_hotkey.
jmp 0x4181d8
push ebp
push str.Out_of_memory.
mov ecx, esi
jmp 0x4181d8
push ecx
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x418248
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], vtable.TextMem.0
cmp eax, edi
je 0x418378
cmp byte [esp + 0x88], 0
je 0x418371
push eax
call fcn.00485488
add esp, 4
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x7c]
cmp eax, edi
jmp 0x4172a0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xe2a8]
push edx
push 0x49b850
call fcn.0042ecb0
lea ecx, [esp + 0x4c]
mov esi, eax
call fcn.00414a50
mov eax, esi
jmp 0x41846e
cmp byte [esp + 0x33c], 0
je 0x41841c
cmp dword [esp + 0x94], 0
mov eax, dword [esp + 0x98]
mov esi, dword [edi + 0x170]
mov dword [edi + 0x170], eax
je 0x4183f3
cmp byte [esp + 0x1f], 0
mov eax, str.Missing___
jne 0x4183e3
mov eax, 0x49b880
lea ecx, [esp + 0x33c]
push ecx
push eax
mov ecx, edi
jmp 0x4181d8
push 0
push 0
push 0
push 0
push 0
push 3
lea edx, [esp + 0x354]
push edx
mov ecx, edi
call fcn.00419f50
test eax, eax
je 0x416c5a
mov dword [edi + 0x170], esi
cmp dword [edi + 0x48], 0
je 0x41843c
cmp dword [esp + 0x9c], 0
jne 0x41843c
lea eax, [edi + 0x60]
push eax
push str.Missing___
mov ecx, edi
jmp 0x4181d8
inc dword [edi + 0x170]
lea ecx, [esp + 0x4c]
call fcn.00414a50
mov eax, 1
jmp 0x41846e
fldz
push 0
sub esp, 8
fstp qword [esp]
push ebp
push 0
push str.Could_not_extract_script_from_EXE.
call fcn.00476fb0
add esp, 0x18
xor eax, eax
mov ecx, dword [esp + 0xe298]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe294
ret 8