Function at 0x4158c0
Capabilities:
Extract resource via kernel32 functions
Get keyboard layout
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x493b6b
mov eax, dword fs:[0]
push eax
mov eax, 0xe288
mov dword fs:[0], esp
call fcn.0048f760
push ebx
push ebp
mov ebp, dword [esp + 0xe2a4]
push esi
push edi
mov edi, dword [esp + 0xe2a8]
test ebp, ebp
je 0x417b59
cmp byte [ebp], 0
je 0x417b59
mov eax, dword [0x4a9c8c]
mov dword [esp + 0x98], eax
test eax, eax
jne 0x41591e
mov eax, dword [edi + 0x5c8]
mov dword [0x4a7cc8], eax
push 0x4000
xor esi, esi
lea ecx, [esp + 0x341]
push esi
push ecx
mov byte [esp + 0x348], 0
call fcn.0048c460
mov ebx, dword [sym.imp.KERNEL32.dll_FindResourceA]
add esp, 0xc
push 0xa
push str._AUTOHOTKEY_SCRIPT_
lea edx, [esp + 0x434c]
lea eax, [esp + 0xa294]
push esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], esi
mov byte [esp + 0xec], 0
call ebx
mov esi, eax
test esi, esi
jne 0x415994
push 0xa
push str._AHK_WITH_ICON_
push eax
call ebx
mov esi, eax
test esi, esi
je 0x417b3f
push esi
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esp + 0xdc], eax
cmp eax, ebx
je 0x417b3f
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x417b3f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0xd8], eax
cmp eax, ebx
je 0x417b3f
lea esi, [esp + 0x44]
call fcn.00414060
push 0xc
mov eax, 0xfde9
lea edx, [esp + 0xdc]
mov ecx, esi
mov dword [esp + 0xe2a4], ebx
call fcn.0046de50
mov ecx, dword [esp + 0x98]
inc dword [0x4a9c8c]
mov dword [edi + 0x16c], ecx
mov eax, esi
xor ecx, ecx
lea edx, [esp + 0x4344]
mov byte [esp + 0x20], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x32], bl
mov dword [esp + 0xa8], 0xffffffff
call fcn.00417dd0
push 2
lea edx, [esp + 0x4348]
push 0x4987a8
push edx
mov dword [esp + 0x28], eax
call fcn.0048508b
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x22], al
test al, al
je 0x415a65
mov byte [esp + 0x4344], bl
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0xffffffff
je 0x417a98
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x14]
push 0xc
inc eax
push str.CommentFlag
xor ebx, ebx
push esi
mov dword [edi + 0x170], eax
mov dword [edi + 0x370], ebx
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x415aad
push esi
push edi
call fcn.00417f60
test eax, eax
je 0x416299
mov byte [esp + 0xc0], bl
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x3c]
inc dword [esp + 0xa8]
mov esi, dword [esp + 0x24]
test ebx, ebx
je 0x415b42
lea eax, [esp + 0x44]
mov ecx, esi
mov edx, ebx
call fcn.00417dd0
mov ebp, eax
mov dword [esp + 0x28], ebp
test ebp, ebp
je 0x415b49
cmp ebp, 0xffffffff
je 0x415b49
test esi, esi
jne 0x415b49
push 2
push 0x4987bc
push ebx
call fcn.0048508b
add esp, 0xc
test eax, eax
jne 0x415b5e
cmp byte [esp + 0x22], al
jne 0x415b11
cmp byte [ebx + 2], 0x3a
jne 0x415b11
cmp byte [ebx + 3], 0x3a
je 0x415b69
lea ecx, [ebp - 1]
push ecx
lea edx, [ebx + 2]
push edx
push ebx
mov byte [esp + 0x2e], 0
call fcn.00483b20
add esp, 0xc
lea eax, [ebp - 2]
mov edi, ebx
call fcn.00412350
cmp byte [ebx], 0
mov ebp, eax
mov dword [esp + 0x28], ebp
je 0x415ab8
jmp 0x415b69
or ebp, 0xffffffff
mov dword [esp + 0x28], ebp
cmp byte [esp + 0x22], 0
je 0x415b87
cmp ebp, 0xffffffff
jne 0x415ab8
jmp 0x4161e1
cmp byte [esp + 0x22], 0
jne 0x415ab8
push 2
push 0x4987a8
push ebx
call fcn.0048508b
add esp, 0xc
test eax, eax
jne 0x415b49
mov byte [esp + 0x22], 1
jmp 0x415ab8
test esi, esi
jne 0x416013
cmp ebp, 0xffffffff
je 0x415c02
cmp byte [ebx], 0x28
jne 0x415c02
cmp byte [ebx + 1], 0x3a
lea esi, [ebx + 1]
je 0x415c02
cmp byte [ebx + ebp - 1], 0x3a
je 0x415c02
mov dl, byte [0x4a84e2]
mov ecx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0xbc], 0
mov byte [esp + 0x38], dl
mov byte [esp + 0x3a], cl
mov byte [esp + 0x3b], 0
mov byte [esp + 0x37], 0
mov byte [esp + 0x36], cl
mov word [esp + 0xe4], 0xa
mov dword [esp + 0xb0], ecx
lea ebx, [ebx]
mov al, byte [esi]
cmp al, 0x20
je 0x415bfe
cmp al, 9
jne 0x415e46
add esi, ecx
jmp 0x415bf0
mov dword [esp + 0x24], 0
cmp ebp, 0xffffffff
je 0x4161e1
test ebp, ebp
je 0x415ab8
cmp byte [ebx + ebp - 1], 0x3a
jne 0x415c2b
cmp byte [ebx], 0x2c
jne 0x4161e1
mov al, byte [ebx]
call fcn.00408ec0
cmp al, 0x41
je 0x415dad
cmp al, 0x4f
je 0x415d73
mov al, byte [ebx]
cmp al, 0x3a
je 0x415c50
cmp al, 0x2b
je 0x415c50
cmp al, 0x2d
jne 0x415c59
cmp byte [ebx + 1], al
je 0x4161e1
movsx eax, al
push eax
push str.____:.___
call fcn.00483f31
add esp, 8
test eax, eax
je 0x4161e1
push 0x4987e4
push ebx
call fcn.00484072
mov edi, eax
add esp, 8
test edi, edi
je 0x415e06
cmp byte [ebx], 0x3a
jne 0x415cd5
mov al, byte [ebx + 1]
lea esi, [ebx + 1]
test al, al
je 0x415ccc
cmp al, 0x3a
je 0x4161e1
mov ecx, 0x107
call fcn.00408ea0
test eax, eax
jne 0x415cc4
movsx eax, byte [esi]
push eax
push str.____t
call fcn.00483f31
add esp, 8
test eax, eax
je 0x415cd5
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x415c99
cmp byte [esi], 0x3a
je 0x4161e1
mov ebx, dword [esp + 0x3c]
cmp byte [ebx], 0x2c
jne 0x415d28
lea esi, [ebx + 1]
mov al, byte [esi]
cmp al, 0x20
je 0x415ceb
cmp al, 9
jne 0x415cee
inc esi
jmp 0x415ce1
push 2
push 0x4987e4
push esi
call fcn.0048508b
add esp, 0xc
test eax, eax
je 0x4161e1
push 3
push 0x497fec
dec esi
push esi
call fcn.0048508b
add esp, 0xc
test eax, eax
je 0x4161e1
mov ebp, dword [esp + 0x28]
jmp 0x415e06
mov eax, ebx
cmp ebx, edi
jae 0x415d3a
mov edi, edi
cmp byte [eax], 0x22
je 0x415d3a
inc eax
cmp eax, edi
jb 0x415d30
cmp eax, edi
je 0x4161e1
mov al, byte [edi + 2]
lea ecx, [edi + 2]
test al, al
je 0x4161e1
cmp al, 0x22
je 0x415d61
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x415d50
jmp 0x4161e1
cmp byte [ecx], 0
je 0x4161e1
mov ebp, dword [esp + 0x28]
jmp 0x415e06
mov al, byte [ebx + 1]
call fcn.00408ec0
cmp al, 0x52
jne 0x4161e1
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x20
je 0x415da0
cmp al, 9
je 0x415da0
cmp al, 0xa0
jne 0x4161e1
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x20
je 0x415daa
cmp al, 9
jne 0x415ded
inc ecx
jmp 0x415da0
push 3
push 0x4987c0
push ebx
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x4161e1
mov al, byte [ebx + 3]
lea ecx, [ebx + 3]
cmp al, 0x20
je 0x415de0
cmp al, 9
je 0x415de0
cmp al, 0xa0
jne 0x4161e1
jmp 0x415de0
mov al, byte [ecx]
cmp al, 0x20
je 0x415dea
cmp al, 9
jne 0x415ded
inc ecx
jmp 0x415de0
movsx eax, byte [ecx]
push eax
push str.____:
call fcn.00483f31
add esp, 8
test eax, eax
jne 0x4161e1
mov esi, dword [esp + 0x1c]
lea eax, [esi + ebp]
cmp eax, 0x4000
jae 0x4178be
cmp byte [ebx], 0x2c
je 0x415e26
mov ecx, dword [esp + 0x14]
mov byte [esi + ecx], 0x20
inc esi
mov eax, dword [esp + 0x14]
lea edx, [ebp + 1]
push edx
lea ecx, [esi + eax]
push ebx
push ecx
call fcn.0048b890
add esp, 0xc
add esi, ebp
mov dword [esp + 0x1c], esi
jmp 0x415ab8
cmp byte [esi], 0
je 0x416006
nop
mov edi, 0x497ff4
mov eax, esi
call fcn.00408ef0
mov ebp, eax
test ebp, ebp
jne 0x415e73
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415e67
sub eax, edx
lea ebp, [eax + esi]
mov bl, byte [ebp]
push 4
push str.Join
push esi
mov byte [esp + 0x1d], bl
mov byte [ebp], 0
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x415f5f
push 0xf
add esi, 4
lea eax, [esp + 0xe8]
push esi
push eax
call fcn.00485ee0
mov bl, byte [0x4a43cd]
mov byte [esp + 0xff], 0
lea ecx, [esp + 0xf0]
mov al, byte [ecx]
add esp, 0xc
test al, al
je 0x415ed3
cmp al, bl
je 0x415ef9
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x415ec7
lea eax, [esp + 0xe4]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415ee0
mov bl, byte [esp + 0x11]
sub eax, edx
mov dword [esp + 0xb0], eax
jmp 0x415fea
cmp byte [ecx], 0
je 0x415ed3
movsx eax, byte [ecx + 1]
lea esi, [ecx + 1]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x415f14.99
movzx edx, byte [eax + 0x417b9c]
jmp dword [edx*4 + 0x417b78]
mov byte [esi], 7
jmp case.0x415f14.99
mov byte [esi], 8
jmp case.0x415f14.99
mov byte [esi], 0xc
jmp case.0x415f14.99
mov byte [esi], 0xa
jmp case.0x415f14.99
mov byte [esi], 0xd
jmp case.0x415f14.99
mov byte [esi], 9
jmp case.0x415f14.99
mov byte [esi], 0xb
jmp case.0x415f14.99
mov byte [esi], 0x20
mov eax, esi
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x415f46
sub eax, edi
inc eax
push eax
push esi
push ecx
call fcn.00483b20
mov ecx, esi
jmp 0x415ebe
push 5
push 0x498818
push esi
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x415f7e
cmp byte [esi + 5], 0x30
setne byte [esp + 0x38]
jmp 0x415fea
push 5
push str.RTrim
push esi
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x415f9d
cmp byte [esi + 5], 0x30
setne byte [esp + 0x3a]
jmp 0x415fea
mov al, byte [esi]
test al, al
je 0x415fea
mov ecx, 2
jmp 0x415fb0
movsx eax, al
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x415fc2.38
movzx eax, byte [eax + 0x417bcc]
jmp dword [eax*4 + 0x417bb4]
mov byte [esp + 0x3b], 1
jmp case.0x415fc2.38
mov byte [esp + 0x37], 1
jmp case.0x415fc2.38
mov byte [esp + 0x36], 0
jmp case.0x415fc2.38
mov dword [esp + 0x24], ecx
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x415fb0
mov byte [ebp], bl
mov esi, ebp
nop
mov al, byte [esi]
cmp al, 0x20
je 0x415ffa
cmp al, 9
jne 0x415ffd
inc esi
jmp 0x415ff0
cmp byte [esi], 0
jne 0x415e50
mov byte [esp + 0xc0], 1
jmp 0x415ab8
cmp ebp, 0xffffffff
je 0x417a70
cmp ebp, 0xfffffffe
je 0x415ab8
cmp byte [ebx], 0x29
jne 0x416049
mov esi, dword [esp + 0x3c]
or eax, 0xffffffff
mov dword [esp + 0x24], 0
lea ebx, [esi + 1]
call fcn.004123c0
dec eax
mov edi, esi
jmp 0x416149
cmp byte [esp + 0x3a], 0
mov edi, dword [esp + 0x3c]
mov ebx, edi
je 0x416065
mov eax, dword [esp + 0x28]
mov esi, edi
call fcn.004123c0
mov dword [esp + 0x28], eax
cmp byte [esp + 0x38], 0
je 0x416079
mov eax, dword [esp + 0x28]
call fcn.00412350
mov dword [esp + 0x28], eax
xor esi, esi
cmp byte [esp + 0x3b], 0
je 0x4160b4
mov al, byte [0x4a43cd]
push esi
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x40], al
mov byte [esp + 0x44], al
mov byte [esp + 0x45], al
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00470a00
add esp, 0x18
mov esi, eax
cmp byte [esp + 0x37], 0
je 0x4160f4
mov al, byte [0x4a43cc]
mov cl, byte [0x4a43cd]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x38], al
mov byte [esp + 0x3d], al
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x44], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00470a00
add esp, 0x18
add esi, eax
cmp byte [esp + 0x36], 0
je 0x416134
mov al, byte [0x4a4367]
mov cl, byte [0x4a43cd]
push 0
push 0xffffffffffffffff
push 1
mov byte [esp + 0x38], al
mov byte [esp + 0x3d], al
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x44], cl
push edi
xor eax, eax
mov ecx, 0x4001
call fcn.00470a00
add esp, 0x18
add esi, eax
test esi, esi
je 0x41614d
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416140
sub eax, edx
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
lea edx, [esi + ecx]
add edx, ebp
cmp edx, 0x4001
jae 0x4178be
mov eax, dword [esp + 0xbc]
inc eax
mov dword [esp + 0xbc], eax
cmp eax, 1
jle 0x4161ab
test esi, esi
je 0x4161ab
cmp ebx, edi
jne 0x4161ab
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0xe8]
push ecx
lea eax, [edx + ebp]
push eax
call fcn.0048b890
add esp, 0xc
add ebp, esi
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x28], 0
je 0x415ab8
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
lea ecx, [edi + 1]
push ecx
lea eax, [esi + edx]
push ebx
push eax
call fcn.0048b890
add esp, 0xc
add esi, edi
mov dword [esp + 0x1c], esi
jmp 0x415ab8
mov byte [ebp], bl
mov ebp, dword [esp + 0xe2a8]
mov eax, dword [esp + 0x1c]
lea esp, [esp]
test eax, eax
je case.0x416fb4.14
cmp byte [esp + 0x33c], 0
je 0x416361
mov ecx, dword [esp + 0x90]
mov edi, dword [ebp + 0x170]
mov edx, dword [esp + 0x14]
mov bl, byte [esp + 0x21]
mov dword [ebp + 0x170], ecx
cmp byte [edx], 0x7b
je 0x41626f
test bl, bl
jne 0x41626f
mov esi, dword [esp + 0x8c]
test esi, esi
jne 0x4178e2
cmp dword [ebp + 0x48], esi
je 0x41624f
mov eax, dword [0x4a4440]
cmp dword [eax + 0x94], esi
je 0x4178f3
push 0
push 0
push 0
push 0
push 0
push 3
lea ecx, [esp + 0x354]
push ecx
mov ecx, ebp
call fcn.004195b0
jmp 0x4162fa
mov esi, dword [esp + 0x8c]
mov eax, esi
sub eax, 0
je 0x4162bb
dec eax
je 0x4162a7
dec eax
jne 0x416308
lea edx, [esp + 0x33c]
push edx
push ebp
call fcn.0041dda0
test eax, eax
jne 0x416308
lea ecx, [esp + 0x44]
call fcn.004140c0
jmp 0x417b59
lea eax, [esp + 0x33c]
push eax
push ebp
call fcn.0041d8f0
test eax, eax
je 0x416299
jmp 0x416308
mov ecx, dword [0x4a4440]
cmp dword [ecx + 0x94], 0
jne 0x417913
lea edx, [esp + 0x834c]
push edx
lea eax, [esp + 0x340]
push eax
push ebp
call fcn.0041d010
test eax, eax
je 0x416299
test bl, bl
je 0x416308
push 0
push 0
push 0
push 0x72
push ebp
call fcn.0041b820
test eax, eax
je 0x416299
mov dword [ebp + 0x370], 0
mov byte [esp + 0x33c], 0
test esi, esi
je 0x41635b
test bl, bl
jne 0x41635b
mov ebx, dword [esp + 0x14]
lea ecx, [ebx + 1]
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x41632a
cmp al, 9
jne 0x41632d
inc ecx
jmp 0x416320
cmp byte [ecx], 0
jne 0x41633d
mov dword [ebp + 0x170], edi
jmp 0x417663
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416342
sub eax, esi
mov dword [esp + 0x1c], eax
inc eax
push eax
push ecx
push ebx
call fcn.00483b20
add esp, 0xc
mov dword [ebp + 0x170], edi
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0x7d
jne 0x416454
cmp dword [ebp + 0x48], 0
je 0x416454
mov edx, dword [0x4a4440]
cmp dword [edx + 0x94], 0
jne 0x416454
cmp dword [ebp + 0x164], 0
mov ebx, ecx
je 0x4163cf
mov eax, dword [ebp + 0x168]
mov dword [ebp + 0x164], 0
test eax, eax
je 0x4163bd
push eax
call fcn.00482f58
add esp, 4
mov dword [ebp + 0x168], 0
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x20
je 0x4163c1
cmp al, 9
je 0x4163c1
mov ebx, ecx
cmp byte [ebx], 0x7d
jne 0x41642a
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x41642a
dec eax
mov dword [ebp + 0x48], eax
mov edi, dword [ebp + eax*4 + 0x4c]
call fcn.0046a3b0
mov eax, dword [ebp + 0x48]
mov eax, dword [ebp + eax*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.00484e4e
add esp, 8
test eax, eax
je 0x41640e
mov byte [eax], 0
jmp 0x416411
mov byte [esi], 0
lea eax, [ebx + 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x416420
cmp cl, 9
jne 0x416423
inc eax
jmp 0x416414
cmp byte [eax], 0x7d
mov ebx, eax
je 0x4163d4
cmp byte [ebx], 0
je 0x417663
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416438
sub eax, edx
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
push ebx
push eax
call fcn.00483b20
add esp, 0xc
cmp dword [ebp + 0x164], 0
je 0x416526
mov ecx, dword [0x4a4440]
cmp dword [ecx + 0x94], 0
jne 0x416526
mov edi, dword [esp + 0x14]
push 3
push 0x498898
push edi
call fcn.004839c0
add esp, 0xc
test eax, eax
je 0x4164a4
push 3
push 0x49889c
push edi
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x417924
lea esi, [edi + 3]
mov al, byte [esi]
cmp al, 0x20
je 0x4164b1
cmp al, 9
jne 0x4164b4
inc esi
jmp 0x4164a7
mov al, byte [esi]
test al, al
je 0x4164cc
cmp al, 0x7b
jne 0x417924
cmp byte [esi + 1], 0
jne 0x417924
mov eax, dword [ebp + 0x168]
lea edx, [esp + 0x33c]
sub edx, eax
jmp 0x4164e0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4164e0
lea edx, [esp + 0x33c]
push 0x2e
push edx
call fcn.00483f31
mov cl, byte [edi]
mov byte [eax + 1], cl
mov edx, dword [ebp + 0x170]
add esp, 8
cmp byte [esi], 0x7b
mov dword [esp + 0x90], edx
sete byte [esp + 0x21]
mov dword [esp + 0x8c], 0
jmp 0x417663
mov edi, dword [esp + 0x14]
lea ebx, [esp + 0x21]
mov eax, edi
call fcn.00415780
test al, al
je 0x41656b
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 0x416544
mov eax, dword [ebp + 0x170]
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], 0
jmp 0x417663
mov ecx, dword [0x4a4440]
cmp dword [ecx + 0x94], 0
jne 0x41671e
lea edx, [esp + 0x21]
push edx
mov eax, edi
call fcn.00415830
add esp, 4
test eax, eax
je 0x4165c7
lea edx, [esp + 0x33c]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4165a0
mov eax, dword [ebp + 0x170]
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], 1
jmp 0x417663
cmp dword [ebp + 0x48], 0
je 0x41671e
mov esi, edi
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x4165ef
push 0x107
push eax
call fcn.0048447e
add esp, 8
test eax, eax
jne 0x4165f9
mov al, byte [esi]
cmp al, 0x5f
je 0x4165f9
cmp al, 0x2e
jne 0x4165fc
inc esi
jmp 0x4165d3
cmp esi, edi
jbe 0x4166a7
mov al, byte [esi]
cmp al, 0x20
je 0x41660e
cmp al, 9
jne 0x416611
inc esi
jmp 0x416604
mov al, byte [esi]
cmp al, 0x3a
jne 0x416633
cmp byte [esi + 1], 0x3d
jne 0x416633
push 0
push edi
push ebp
call fcn.0041df60
test eax, eax
je 0x416299
jmp 0x417663
test al, al
je 0x416645
cmp al, 0x5b
je 0x416645
cmp al, 0x7b
jne 0x4166a7
cmp byte [esi + 1], 0
jne 0x4166a7
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416650
sub eax, edx
cmp byte [eax + edi - 1], 0x7b
sete cl
mov byte [esp + 0x21], cl
test cl, cl
je 0x416671
dec eax
mov esi, edi
call fcn.004123c0
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 0x416680
mov ecx, dword [ebp + 0x170]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], 2
jmp 0x417663
push 6
push str.Static
push edi
call fcn.004839c0
add esp, 0xc
test eax, eax
jne 0x4166df
mov al, byte [edi + 6]
cmp al, 0x20
je 0x4166c6
cmp al, 9
jne 0x4166df
push 1
add edi, 7
push edi
push ebp
call fcn.0041df60
test eax, eax
je 0x416299
jmp 0x417663
cmp byte [edi], 0x23
jne 0x41792e
mov esi, dword [ebp + 0x170]
push edi
push ebp
call fcn.00417f60
test eax, eax
je 0x416299
cmp eax, 3
jne 0x41792e
mov edx, dword [esp + 0x98]
mov dword [ebp + 0x16c], edx
mov dword [ebp + 0x170], esi
jmp 0x417663
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
xor ebx, ebx
cmp byte [edi], 0x3a
mov dword [esp + 0x24], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x1c], ebx
jne 0x4167b8
mov cl, byte [edi + 1]
lea eax, [edi + 1]
test cl, cl
je 0x4167b8
cmp cl, 0x3a
je 0x41676a
push 0x3a
push eax
mov dword [esp + 0xc0], eax
call fcn.00483f31
add esp, 8
cmp eax, ebx
jne 0x416767
mov dword [esp + 0x24], ebx
jmp 0x4167b8
inc eax
jmp 0x416772
cmp byte [edi + 2], bl
lea eax, [edi + 2]
je 0x4167b8
mov dword [esp + 0x24], eax
cmp eax, ebx
je 0x4167b8
mov edi, eax
lea esp, [esp]
mov al, byte [edi]
test al, al
je 0x4167a8
jmp 0x416790
cmp al, byte [0x4a43cd]
je 0x416813
cmp al, 0x3a
je 0x416813
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x416790
test ebx, ebx
jne 0x41690e
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
push 0x4987e4
push edi
call fcn.00484072
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x417204
cmp eax, edi
jne 0x4167e1
cmp byte [eax + 2], 0x3a
jne 0x4167e1
inc eax
mov dword [esp + 0x1c], eax
mov esi, eax
cmp eax, edi
jbe 0x4167f6
mov al, byte [esi]
cmp al, 0x20
je 0x4167f1
cmp al, 9
jne 0x4167f6
dec esi
cmp esi, edi
ja 0x4167e7
mov bl, byte [esi]
mov eax, dword [esp + 0x14]
mov byte [esi], 0
nop
mov cl, byte [eax]
cmp cl, 0x20
je 0x416810
cmp cl, 9
jne 0x416898
inc eax
jmp 0x416800
mov al, byte [edi]
test al, al
je 0x4167a8
lea esi, [edi + 1]
cmp al, 0x3a
jne 0x416832
cmp byte [esi], al
jne 0x416892
mov ebx, edi
mov edi, esi
mov dword [esp + 0x1c], ebx
inc edi
jmp 0x416780
movsx eax, byte [esi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x416844.99
movzx eax, byte [eax + 0x417c2c]
jmp dword [eax*4 + 0x417c0c]
mov byte [esi], 7
jmp case.0x416844.99
mov byte [esi], 8
jmp case.0x416844.99
mov byte [esi], 0xc
jmp case.0x416844.99
mov byte [esi], 0xa
jmp case.0x416844.99
mov byte [esi], 0xd
jmp case.0x416844.99
mov byte [esi], 9
jmp case.0x416844.99
mov byte [esi], 0xb
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416871
sub eax, edx
inc eax
push eax
push esi
push edi
call fcn.00483b20
add esp, 0xc
cmp byte [edi], 0x3a
jne 0x416892
cmp byte [esi], 0x3a
jne 0x416892
mov edi, esi
inc edi
jmp 0x416780
xor edi, edi
push edi
push edi
push eax
call fcn.0040b080
add esp, 0xc
mov dword [esp + 0xd0], eax
cmp eax, edi
je 0x4168fe
cmp eax, 4
jne 0x416902
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], vtable.TextMem.0
cmp eax, edi
je 0x4168dc
cmp byte [esp + 0x80], 0
je 0x4168d8
push eax
call fcn.00482f58
add esp, 4
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], vtable.TextStream.0
cmp eax, edi
je 0x417b59
push eax
call fcn.00482f58
add esp, 4
jmp 0x417b59
mov dword [esp + 0x1c], edi
mov byte [esi], bl
cmp dword [esp + 0x1c], edi
je 0x417204
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x1c], ecx
jbe 0x417204
mov edx, dword [0x4a4440]
cmp dword [edx + 0x94], 0
jne 0x417938
mov edi, dword [esp + 0xe2a8]
mov eax, dword [edi + 4]
test eax, eax
je 0x416946
cmp byte [eax], 0x1a
je 0x41799f
mov ebp, dword [esp + 0x1c]
mov byte [ebp], 0
add ebp, 2
cmp dword [esp + 0x24], 0
mov dword [esp + 0x1c], ebp
jne 0x416ff9
cmp byte [ebp], 0
je 0x416995
mov ecx, ebp
mov al, byte [ecx]
cmp al, 0x20
je 0x416972
cmp al, 9
jne 0x416975
inc ecx
jmp 0x416968
mov eax, ecx
sub eax, ebp
je 0x416995
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416980
sub eax, esi
inc eax
push eax
push ecx
push ebp
call fcn.00483b20
add esp, 0xc
mov ebx, dword [esp + 0x14]
cmp byte [ebx], 0
je 0x4169d8
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4169a3
sub eax, edx
lea eax, [eax + ebx - 1]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4169bc
cmp cl, 9
jne 0x4169c3
cmp eax, ebx
je 0x4169c9
dec eax
jmp 0x4169b0
mov byte [eax + 1], 0
jmp 0x4169d8
mov cl, byte [eax]
cmp cl, 0x20
je 0x4169d5
cmp cl, 9
jne 0x4169d8
mov byte [eax], 0
cmp byte [ebp], 0
mov dword [esp + 0xa4], ebp
je 0x416ffd
cmp byte [ebx], 0
jne 0x4169fc
mov edi, ebx
mov dword [esp + 0xac], edi
jmp 0x416b41
mov esi, dword [esp + 0x14]
xor bl, bl
lea edi, [esi + 1]
mov byte [esp + 0x11], 0
cmp byte [edi], bl
je 0x416b30
mov ebp, dword [esp + 0x94]
lea esp, [esp]
push 0x497ff0
push edi
call fcn.00482f41
add esp, 8
test eax, eax
je case.0x416a4c.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x416a4c.34
movzx ecx, byte [eax + 0x417c64]
jmp dword [ecx*4 + 0x417c44]
mov bl, 1
jmp case.0x416a4c.36
mov byte [esp + 0x11], 1
jmp case.0x416a4c.36
test bl, bl
jne 0x416a76
cmp byte [esp + 0x11], bl
jne 0x416a7d
or ebp, 1
jmp case.0x416a4c.36
cmp byte [esp + 0x11], 0
je 0x416a87
or byte [esp + 0x13], 4
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416a4c.36
or byte [esp + 0x13], 8
jmp 0x416b18
test bl, bl
jne 0x416aa8
cmp byte [esp + 0x11], bl
jne 0x416aaf
or ebp, 2
jmp case.0x416a4c.36
cmp byte [esp + 0x11], 0
je 0x416ab9
or byte [esp + 0x13], 1
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416a4c.36
or byte [esp + 0x13], 2
jmp 0x416b18
test bl, bl
jne 0x416ad3
cmp byte [esp + 0x11], bl
jne 0x416ada
or ebp, 4
jmp case.0x416a4c.36
cmp byte [esp + 0x11], 0
je 0x416ae4
or byte [esp + 0x13], 0x10
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416a4c.36
or byte [esp + 0x13], 0x20
jmp 0x416b18
test bl, bl
jne 0x416afe
cmp byte [esp + 0x11], bl
jne 0x416b05
or ebp, 8
jmp case.0x416a4c.36
cmp byte [esp + 0x11], 0
je 0x416b0f
or byte [esp + 0x13], 0x40
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416a4c.36
or byte [esp + 0x13], 0x80
xor bl, bl
mov esi, edi
cmp byte [esi + 1], 0
lea edi, [esi + 1]
jne 0x416a20
mov dword [esp + 0x94], ebp
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xac], esi
mov edi, esi
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cl, byte [edi]
test cl, cl
jne 0x416b59
mov byte [esp + 0x1b], 0
jmp 0x416c45
cmp byte [edi + 1], 0
jne 0x416ba8
mov byte [esp + 0xd4], cl
cmp cl, 0xa
jne 0x416b72
mov al, 0xd
jmp 0x416c3a
mov edx, dword [esp + 0xd4]
push eax
push edx
call dword [sym.imp.USER32.dll_VkKeyScanExA]
movzx ecx, ax
mov eax, ecx
shr eax, 8
cmp al, 0xff
jne 0x416b99
cmp cl, 0xff
jne 0x416b99
xor al, al
jmp 0x416c3a
and al, 0x38
neg al
sbb al, al
not al
and al, cl
jmp 0x416c3a
movzx esi, cl
test esi, 0xffffff80
jne 0x416bc5
push 2
push esi
call fcn.0048447e
add esp, 8
test eax, eax
je 0x416bc5
and esi, 0xffffffdf
mov eax, esi
cmp al, 0x56
jne 0x416c01
movzx esi, byte [edi + 1]
test esi, 0xffffff80
jne 0x416be9
push 2
push esi
call fcn.0048447e
add esp, 8
test eax, eax
je 0x416be9
and esi, 0xffffffdf
mov eax, esi
cmp al, 0x4b
jne 0x416c01
push 0x10
lea ecx, [edi + 2]
push 0
push ecx
call fcn.004848c4
add esp, 0xc
jmp 0x416c3a
xor esi, esi
mov eax, dword [esi*8 + 0x4a5160]
push edi
push eax
call fcn.00482f41
add esp, 8
test eax, eax
je 0x416ca9
inc esi
cmp esi, 0x6d
jl 0x416c03
mov eax, edi
call fcn.00411690
movzx ecx, ax
test cx, cx
je 0x416b4f
call fcn.00411df0
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
jne 0x416c4f
cmp byte [ebp + 1], 0
jne 0x4170b7
cmp byte [ebp + 1], 0
je 0x416eab
cmp byte [ebp], 0
je 0x416da4
mov esi, ebp
mov ebp, dword [esp + 0xa0]
mov byte [esp + 0x11], 0
xor bl, bl
lea edi, [esi + 1]
push 0x497ff0
push edi
call fcn.00482f41
add esp, 8
test eax, eax
je case.0x416ca2.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x416ca2.34
movzx eax, byte [eax + 0x417ce4]
jmp dword [eax*4 + 0x417cc4]
mov dl, byte [esi*8 + 0x4a5164]
mov byte [esp + 0x1b], dl
jmp 0x416c3e
mov bl, 1
jmp case.0x416ca2.36
mov byte [esp + 0x11], 1
jmp case.0x416ca2.36
test bl, bl
jne 0x416cd9
cmp byte [esp + 0x11], bl
jne 0x416ce0
or ebp, 1
jmp case.0x416ca2.36
cmp byte [esp + 0x11], 0
je 0x416cea
or byte [esp + 0x12], 4
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416ca2.36
or byte [esp + 0x12], 8
jmp 0x416d7b
test bl, bl
jne 0x416d0b
cmp byte [esp + 0x11], bl
jne 0x416d12
or ebp, 2
jmp case.0x416ca2.36
cmp byte [esp + 0x11], 0
je 0x416d1c
or byte [esp + 0x12], 1
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416ca2.36
or byte [esp + 0x12], 2
jmp 0x416d7b
test bl, bl
jne 0x416d36
cmp byte [esp + 0x11], bl
jne 0x416d3d
or ebp, 4
jmp case.0x416ca2.36
cmp byte [esp + 0x11], 0
je 0x416d47
or byte [esp + 0x12], 0x10
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416ca2.36
or byte [esp + 0x12], 0x20
jmp 0x416d7b
test bl, bl
jne 0x416d61
cmp byte [esp + 0x11], bl
jne 0x416d68
or ebp, 8
jmp case.0x416ca2.36
cmp byte [esp + 0x11], 0
je 0x416d72
or byte [esp + 0x12], 0x40
mov byte [esp + 0x11], 0
test bl, bl
je case.0x416ca2.36
or byte [esp + 0x12], 0x80
xor bl, bl
mov esi, edi
cmp byte [esi + 1], 0
jne 0x416c73
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0xac]
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], esi
mov ebp, esi
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cl, byte [ebp]
test cl, cl
je 0x416e80
cmp byte [ebp + 1], 0
jne 0x416e03
mov byte [esp + 0xcc], cl
cmp cl, 0xa
jne 0x416dd0
mov al, 0xd
jmp 0x416e82
mov ecx, dword [esp + 0xcc]
push eax
push ecx
call dword [sym.imp.USER32.dll_VkKeyScanExA]
movzx ecx, ax
mov eax, ecx
shr eax, 8
cmp al, 0xff
jne 0x416df4
cmp cl, 0xff
je 0x416e80
and al, 0x38
neg al
sbb al, al
not al
and al, cl
jmp 0x416e82
movzx esi, cl
test esi, 0xffffff80
jne 0x416e20
push 2
push esi
call fcn.0048447e
add esp, 8
test eax, eax
je 0x416e20
and esi, 0xffffffdf
mov eax, esi
cmp al, 0x56
jne 0x416e44
mov al, byte [ebp + 1]
call fcn.00408ec0
cmp al, 0x4b
jne 0x416e44
push 0x10
lea eax, [ebp + 2]
push 0
push eax
call fcn.004848c4
add esp, 0xc
jmp 0x416e82
xor esi, esi
mov eax, dword [esi*8 + 0x4a5160]
push ebp
push eax
call fcn.00482f41
add esp, 8
test eax, eax
je 0x416e77
inc esi
cmp esi, 0x6d
jl 0x416e46
mov eax, ebp
call fcn.00411690
movzx ecx, ax
test cx, cx
je 0x416e80
call fcn.00411df0
jmp 0x416e82
mov al, byte [esi*8 + 0x4a5164]
jmp 0x416e82
xor al, al
mov byte [esp + 0x20], al
test al, al
je 0x4170b7
mov cl, byte [esp + 0x1b]
lea edx, [ecx - 1]
cmp dl, 5
ja 0x416e9f
cmp cl, 3
jne 0x416ea7
add cl, 0x66
cmp cl, 5
ja 0x416eba
mov cl, 1
jmp 0x416ebc
mov ebp, dword [esp + 0xa4]
or al, 0xff
mov byte [esp + 0x20], al
jmp 0x416e8e
xor cl, cl
lea edx, [eax - 1]
cmp dl, 5
ja 0x416ec8
cmp al, 3
jne 0x416ece
add al, 0x66
cmp al, 5
ja 0x416ed5
mov byte [esp + 0x23], 1
jmp 0x416eda
mov byte [esp + 0x23], 0
test cl, cl
jne 0x416ee9
mov byte [esp + 0x39], 1
cmp byte [esp + 0x23], cl
jne 0x416eee
mov byte [esp + 0x39], 0
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416ef3
sub eax, edx
cmp eax, 1
jne 0x416f14
movzx eax, byte [edi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x49891c
jne 0x416f19
mov eax, 0x496816
mov ecx, dword [esp + 0x14]
push ecx
push eax
push str._s_s
mov esi, 0x20
lea edi, [esp + 0x120]
call fcn.00470290
add esp, 0xc
push 0x1f
lea edx, [esp + 0xf8]
push ebp
push edx
call fcn.00485ee0
mov esi, dword [esp + 0x28]
add esp, 0xc
push 7
lea eax, [esp + 0xc8]
push esi
push eax
mov byte [esp + 0x11f], 0
call fcn.00485ee0
mov eax, ebp
sub eax, esi
add esp, 0xc
mov byte [esp + 0xcb], 0
cmp eax, 8
jae 0x416f83
mov byte [esp + eax + 0xc4], 0
cmp byte [esp + 0xc4], 0
mov dword [esp + 0x9c], 0
jne case.0x416fb4.14
movzx eax, byte [esp + 0x20]
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x416fb4.14
movzx ecx, byte [eax + 0x417d54]
jmp dword [ecx*4 + 0x417d44]
mov edi, 0x4981c0
mov eax, esi
call fcn.00408ef0
test eax, eax
jne case.0x416fb4.19
jmp case.0x416fb4.14
lea edx, [esp + 0xf4]
push str.Return
push edx
call fcn.00482f41
add esp, 8
test eax, eax
jne case.0x416fb4.14
mov edi, dword [esp + 0xe2a8]
mov byte [esp + 0x20], 0
mov ebx, dword [esp + 0x14]
cmp byte [edi + 0x174], 0
je 0x41702c
xor esi, esi
push esi
push 0xff
push esi
push 0x66
push edi
mov byte [edi + 0x174], 0
call fcn.0041b820
test eax, eax
je 0x4179b5
mov dword [edi + 0x370], esi
push 1
push edi
mov eax, ebx
call fcn.00419460
test eax, eax
je 0x417081
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
xor edi, edi
cmp byte [esi], 0
je 0x4170de
test ebp, ebp
jne 0x4170c3
push ebp
call fcn.00409050
movzx edi, ax
add esp, 4
test di, di
jne 0x4170c3
mov ebx, dword [esp + 0xe2a8]
push 0
push 0
push 0
push 0
push 0
push 0
push esi
mov ecx, ebx
call fcn.004195b0
test eax, eax
jne 0x4170ca
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], vtable.TextMem.0
test eax, eax
je 0x4170ac
cmp byte [esp + 0x80], 0
je 0x4170a4
push eax
call fcn.00482f58
add esp, 4
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x74]
test eax, eax
jmp 0x4179e2
mov edi, dword [esp + 0xe2a8]
jmp 0x416ffd
mov ebx, dword [esp + 0xe2a8]
push 0
push 0
push 0
push 0x66
push ebx
call fcn.0041b820
test eax, eax
je 0x417081
jmp 0x4170e5
mov ebx, dword [esp + 0xe2a8]
test ebp, ebp
je 0x417128
cmp byte [ebp], 0
je 0x4179fe
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x417103
mov eax, 0x496816
mov ecx, dword [esp + 0xc0]
mov edx, dword [ebx + 0x14]
push ecx
push esi
push eax
push edx
mov edi, ebp
call fcn.0040c290
add esp, 0x10
test eax, eax
je 0x417081
jmp case.0x416fb4.14
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x43]
push eax
lea ecx, [esp + 0xb8]
push ecx
push ebp
call fcn.0040b880
mov esi, eax
add esp, 0xc
test esi, esi
je 0x41719a
test di, di
je 0x417156
mov word [esi + 2], di
jmp case.0x416fb4.14
mov eax, esi
call fcn.0040af00
test eax, eax
jne 0x417a0f
mov edx, dword [esp + 0xb4]
mov edi, dword [ebx + 0x14]
push edx
call fcn.0040af60
test eax, eax
je 0x417a26
cmp byte [esp + 0x43], 0
jne 0x417191
cmp byte [0x4a84e3], 0
je case.0x416fb4.14
mov byte [esi + 0x16], 1
jmp case.0x416fb4.14
mov eax, dword [esp + 0xb4]
mov ecx, dword [ebx + 0x14]
push eax
push 0
push edi
push ecx
xor bl, bl
call fcn.0040a7d0
add esp, 0x10
test eax, eax
jne case.0x416fb4.14
cmp dword [esp + 0xd0], 3
jne 0x416299
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.00470290
fldz
add esp, 8
push 0
sub esp, 8
fstp qword [esp]
push 0
mov edx, edi
push 0x10000
push edx
call fcn.00474a90
add esp, 0x18
jmp case.0x416fb4.14
mov ebx, dword [esp + 0x14]
cmp byte [ebx + ebp - 1], 0x3a
lea edi, [ebx + ebp]
jne 0x417483
cmp ebp, 1
je 0x417a33
mov al, byte [ebx]
mov ecx, ebx
test al, al
je 0x417260
mov dl, byte [0x4a4367]
lea ecx, [ecx]
cmp al, 0x20
je 0x417483
cmp al, 9
je 0x417483
cmp al, dl
je 0x417483
cmp al, byte [0x4a43cd]
je 0x417483
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x417230
mov ebx, dword [esp + 0x14]
cmp byte [edi - 2], 0x3a
jne 0x41726f
cmp ebp, 2
ja 0x417483
dec ebp
mov byte [ebx + ebp], 0
cmp byte [ebx], 0
mov eax, ebp
je 0x417081
cmp ebp, 0xffffffff
jne 0x417299
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417290
sub eax, edx
lea eax, [eax + ebx - 1]
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4172ac
cmp cl, 9
jne 0x4172b3
cmp eax, ebx
je 0x4172b9
dec eax
jmp 0x4172a0
mov byte [eax + 1], 0
jmp 0x4172c8
mov cl, byte [eax]
cmp cl, 0x20
je 0x4172c5
cmp cl, 9
jne 0x4172c8
mov byte [eax], 0
cmp byte [ebx], 0
je 0x417081
mov edi, dword [esp + 0xe2a8]
mov esi, dword [edi + 0x10]
test esi, esi
je 0x4172fb
nop
mov eax, dword [esi]
push ebx
push eax
call fcn.00482f41
add esp, 8
test eax, eax
je 0x4173a7
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4172e0
cmp byte [ebx], 0
je 0x4173c1
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417310
sub eax, edx
mov ebp, eax
lea edi, [ebp + 1]
lea eax, [edi - 1]
cmp eax, 0x7fff
ja 0x4178a5
cmp dword [0x4a9ca8], 0
jne 0x417347
call fcn.0046d7e0
mov dword [0x4a9ca8], eax
test eax, eax
je 0x4178a5
mov esi, dword [0x4a9cac]
cmp edi, dword [esi + 8]
jbe 0x417368
call fcn.0046d7e0
mov esi, dword [0x4a9cac]
mov dword [esi + 0xc], eax
test eax, eax
je 0x4178a5
mov ebx, dword [esi + 4]
mov eax, edi
and eax, 3
mov dword [0x4a9cb0], ebx
je 0x41737d
sub edi, eax
add edi, 4
sub dword [esi + 8], edi
lea ecx, [edi + ebx]
mov dword [esi + 4], ecx
test ebx, ebx
je 0x4178a5
test ebp, ebp
je 0x4173a1
mov edx, dword [esp + 0x14]
push ebp
push edx
push ebx
call fcn.0048b890
add esp, 0xc
mov byte [ebx + ebp], 0
jmp 0x4173cc
push ebx
push str.Duplicate_label.
mov ecx, edi
call fcn.0042db20
test eax, eax
je 0x417081
jmp case.0x416fb4.14
mov esi, dword [0x4a9cac]
mov ebx, 0x496816
cmp dword [0x4a9ca8], 0
jne 0x4173ed
call fcn.0046d7e0
xor edi, edi
mov dword [0x4a9ca8], eax
cmp eax, edi
je 0x417441
mov esi, dword [0x4a9cac]
jmp 0x4173ef
xor edi, edi
cmp dword [esi + 8], 0x10
jae 0x417407
call fcn.0046d7e0
mov esi, dword [0x4a9cac]
mov dword [esi + 0xc], eax
cmp eax, edi
je 0x417441
mov eax, dword [esi + 4]
add dword [esi + 8], 0xfffffff0
lea ecx, [eax + 0x10]
mov dword [0x4a9cb0], eax
mov dword [esi + 4], ecx
cmp eax, edi
je 0x417441
mov esi, dword [esp + 0xe2a8]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov edx, dword [esi + 0x14]
mov dword [eax + 8], edx
mov ebp, eax
cmp dword [esi + 0x10], edi
jne 0x417457
mov dword [esi + 0x10], eax
jmp 0x41745d
mov ecx, dword [esp + 0xe2a8]
push 0x496816
push str.Out_of_memory.
jmp 0x4173af
mov ecx, dword [esi + 0x14]
mov dword [ecx + 0xc], eax
push str.OnClipboardChange
push ebx
mov dword [esi + 0x14], eax
call fcn.00482f41
add esp, 8
test eax, eax
jne case.0x416fb4.14
mov dword [esi + 0x594], ebp
mov ebp, esi
jmp 0x417663
mov ebp, dword [esp + 0x14]
cmp byte [ebp], 0x23
mov ebx, dword [esp + 0xe2a8]
jne 0x4174c8
mov esi, dword [ebx + 0x170]
push ebp
push ebx
call fcn.00417f60
test eax, eax
je 0x417081
cmp eax, 3
jne 0x4174c8
mov edx, dword [esp + 0x98]
mov dword [ebx + 0x16c], edx
mov dword [ebx + 0x170], esi
mov ebp, ebx
jmp 0x417663
mov al, byte [ebp]
cmp al, 0x7b
je 0x417618
cmp al, 0x7d
je 0x417618
mov esi, ebp
test al, al
je 0x417508
mov dl, al
mov ecx, str._t__
mov al, 9
lea ebx, [ebx]
cmp dl, al
je 0x417581
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4174f0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4174e3
mov ebx, edi
mov ebp, dword [esp + 0x14]
mov edi, ebx
sub edi, ebp
push 0xffffffffffffffff
push edi
mov eax, str.Else
mov ecx, ebp
mov esi, 1
call fcn.00470320
add esp, 8
test eax, eax
je 0x417585
push 0xffffffffffffffff
push edi
mov eax, 0x4974ac
mov ecx, ebp
call fcn.00470320
add esp, 8
test eax, eax
je 0x417591
push 0xffffffffffffffff
push edi
mov eax, str.Finally
mov ecx, ebp
call fcn.00470320
mov esi, eax
add esp, 8
test esi, esi
je 0x417585
mov ecx, dword [esp + 0xe2a8]
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
call fcn.004195b0
test eax, eax
je 0x417081
jmp case.0x416fb4.14
mov ebx, esi
jmp 0x41750a
neg esi
sbb esi, esi
and esi, 0xffffff97
add esi, 0x71
jmp 0x417596
mov esi, 0x6e
xor edi, edi
push edi
push edi
push edi
push esi
mov esi, dword [esp + 0xe2b8]
push esi
call fcn.0041b820
test eax, eax
je 0x417a3e
mov dword [esi + 0x370], edi
mov eax, ebx
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4175cc
cmp cl, 9
jne 0x4175cf
inc eax
jmp 0x4175c0
mov dl, byte [eax]
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp dl, byte [0x4a4367]
jne 0x4175f3
lea ecx, [eax + 1]
mov al, byte [ecx]
cmp al, 0x20
je 0x4175ec
cmp al, 9
jne 0x4175ef
inc ecx
jmp 0x4175e2
mov dword [esp + 0x14], ecx
cmp byte [ecx], 0
je case.0x416fb4.14
mov eax, ecx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417600
sub eax, edx
mov ebp, eax
mov eax, esi
mov dword [eax + 0x370], edi
jmp 0x416722
cmp al, 0x7b
push 0
setne cl
push 0
add cl, 0x72
movzx edx, cl
push 0
push edx
push ebx
call fcn.0041b820
test eax, eax
je 0x417081
lea eax, [ebp + 1]
jmp 0x417640
mov cl, byte [eax]
cmp cl, 0x20
je 0x41764c
cmp cl, 9
jne 0x41764f
inc eax
jmp 0x417640
cmp byte [eax], 0
mov dword [esp + 0x14], eax
jne 0x4177d0
mov ebp, dword [esp + 0xe2a8]
mov bl, byte [esp + 0x20]
test bl, bl
je case.0x41768f.4
mov eax, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x9c], eax
dec eax
cmp eax, 9
ja case.0x41768f.4
movzx eax, byte [eax + 0x417dbc]
jmp dword [eax*4 + 0x417da8]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x114]
push ecx
push str._s::
push edx
call fcn.00483478
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x41671e
mov ax, word [0x498a0c]
mov esi, dword [esp + 0x14]
cmp byte [esp + 0x23], 0
mov word [esi], ax
mov cl, byte [0x498a0e]
push 0
setne al
push 1
add al, 0xc0
mov byte [esi + 2], cl
lea edx, [esp + 0x1c]
movzx ecx, al
push edx
push ecx
push ebp
call fcn.0041b820
cmp byte [esp + 0x39], 0
je 0x417721
lea edx, [esp + 0xf4]
push edx
push str.if_not_GetKeyState___s__
push esi
call fcn.00483478
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x9c], 9
jmp 0x41671e
mov esi, dword [esp + 0x14]
mov ecx, 0x496816
cmp bl, 0x12
je 0x417735
cmp bl, 0xa3
jbe 0x417755
cmp bl, 0xa5
ja 0x417755
movzx eax, byte [esp + 0x1b]
sub eax, 0x11
je 0x417750
sub eax, 0x91
je 0x417750
dec eax
jne 0x417755
mov ecx, str.RCtrl_up
jmp 0x417755
mov ecx, str.LCtrl_up
lea eax, [esp + 0xf4]
push eax
lea edx, [esp + 0xc8]
push edx
push ecx
push str.Blind_s_s_s_DownTemp
xor edi, edi
push esi
mov dword [ebp + 0x370], edi
call fcn.00483478
add esp, 0x14
push edi
push 1
lea eax, [esp + 0x1c]
push eax
push 0x40
push ebp
call fcn.0041b820
test eax, eax
je 0x417a3e
mov ecx, dword [esp + 0xe2a8]
push edi
push edi
push edi
push 0x66
push ecx
call fcn.0041b820
lea edx, [esp + 0x114]
push edx
push str._s_up::
push esi
call fcn.00483478
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x9c], 2
jmp 0x41671e
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4177d3
mov ebp, dword [esp + 0xe2a8]
sub eax, edx
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x370], 0
jmp 0x4161f0
mov ax, word [0x498a0c]
mov esi, dword [esp + 0x14]
cmp byte [esp + 0x23], 0
mov word [esi], ax
mov cl, byte [0x498a0e]
push 0
setne al
push 1
add al, 0xc0
mov byte [esi + 2], cl
lea edx, [esp + 0x1c]
movzx ecx, al
push edx
push ecx
push ebp
call fcn.0041b820
lea edx, [esp + 0xf4]
push edx
push str.Blind_s_Up
push esi
call fcn.00483478
add esp, 0xc
push 0
push 1
lea eax, [esp + 0x1c]
push eax
push 0x40
push ebp
call fcn.0041b820
push 0
push 0
push 0
push 0x66
push ebp
call fcn.0041b820
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0xe2a8]
lea edx, [esp + 0x4344]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
cmp eax, edx
jne 0x417895
lea eax, [esp + 0xa28c]
mov dword [esp + 0x3c], eax
jmp 0x415a65
lea ecx, [esp + 0x4344]
mov dword [esp + 0x3c], ecx
jmp 0x415a65
mov edx, dword [esp + 0x14]
push edx
push str.Out_of_memory.
mov ecx, 0x4a9d50
call fcn.0042db20
jmp 0x417081
mov ecx, dword [esp + 0xe2a8]
push ebx
push str.Continuation_section_too_long.
call fcn.0042db20
lea ecx, [esp + 0x44]
mov esi, eax
call fcn.004140c0
mov eax, esi
jmp 0x417b5b
lea eax, [esp + 0x33c]
push eax
push 0x498858
mov ecx, ebp
jmp 0x4178cb
cmp dword [ebp + 0x164], 0
mov eax, 0x498858
jne 0x417906
mov eax, str.Not_a_valid_method__class_or_property_definition.
lea ecx, [esp + 0x33c]
push ecx
push eax
mov ecx, ebp
jmp 0x4178cb
lea edx, [esp + 0x33c]
push edx
push str.Functions_cannot_contain_functions.
mov ecx, ebp
jmp 0x4178cb
push edi
push str.Not_a_valid_property_getter_setter.
mov ecx, ebp
jmp 0x4178cb
push edi
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, ebp
jmp 0x4178cb
mov eax, dword [esp + 0x14]
push eax
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
mov ecx, dword [esp + 0xe2b0]
call fcn.0042db20
mov esi, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], vtable.TextMem.0
test eax, eax
je 0x41797b
cmp byte [esp + 0x80], 0
je 0x417973
push eax
call fcn.00482f58
add esp, 4
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], vtable.TextStream.0
test eax, eax
je 0x4178db
push eax
call fcn.00482f58
add esp, 4
mov eax, esi
jmp 0x417b5b
mov edx, dword [esp + 0x14]
mov ecx, eax
push edx
mov dword [edi + 0x370], ecx
push str.IfWin_should_be_IfWin.
mov ecx, edi
jmp 0x417949
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], vtable.TextMem.0
cmp eax, esi
je 0x4179dc
cmp byte [esp + 0x80], 0
je 0x4179d8
push eax
call fcn.00482f58
add esp, 4
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x74]
cmp eax, esi
mov dword [esp + 0x44], vtable.TextStream.0
je 0x417b59
push eax
call fcn.00482f58
add esp, 4
jmp 0x417b59
mov eax, dword [esp + 0x14]
push eax
push str.This_hotstring_is_missing_its_abbreviation.
mov ecx, ebx
jmp 0x417949
push ebp
mov dword [ebx + 0x370], 0
push str.Duplicate_hotkey.
mov ecx, ebx
jmp 0x4178cb
push ebp
push str.Out_of_memory.
mov ecx, ebx
jmp 0x4178cb
push ebx
push str.This_line_does_not_contain_a_recognized_action.
jmp 0x417942
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], vtable.TextMem.0
cmp eax, edi
je 0x417a65
cmp byte [esp + 0x80], 0
je 0x417a61
push eax
call fcn.00482f58
add esp, 4
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x74]
cmp eax, edi
jmp 0x4179e2
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0xe2ac]
push 0x498828
call fcn.0042db20
lea ecx, [esp + 0x44]
mov esi, eax
call fcn.004140c0
mov eax, esi
jmp 0x417b5b
cmp byte [esp + 0x33c], 0
je 0x417b09
cmp dword [esp + 0x8c], 0
mov edx, dword [esp + 0x90]
mov esi, dword [edi + 0x170]
mov dword [edi + 0x170], edx
je 0x417ae0
cmp byte [esp + 0x21], 0
mov eax, str.Missing___
jne 0x417ad0
mov eax, 0x498858
lea ecx, [esp + 0x33c]
push ecx
push eax
mov ecx, edi
jmp 0x4178cb
push 0
push 0
push 0
push 0
push 0
push 3
lea edx, [esp + 0x354]
push edx
mov ecx, edi
call fcn.004195b0
test eax, eax
je 0x416299
mov dword [edi + 0x170], esi
cmp dword [edi + 0x48], 0
je 0x417b29
cmp dword [esp + 0x98], 0
jne 0x417b29
lea eax, [edi + 0x60]
push eax
push str.Missing___
mov ecx, edi
jmp 0x4178cb
inc dword [edi + 0x170]
lea ecx, [esp + 0x44]
call fcn.004140c0
mov eax, 1
jmp 0x417b5b
fldz
push 0
sub esp, 8
fstp qword [esp]
push ebp
push 0
push str.Could_not_extract_script_from_EXE.
call fcn.00474a90
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