Function at 0x416990
Capabilities:
Extract resource via kernel32 functions
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x496b5b
mov eax, dword fs:[0]
push eax
mov eax, 0xe29c
mov dword fs:[0], esp
call fcn.004918b0
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 0x20], eax
push edi
test esi, esi
je 0x416a45
cmp byte [esi], 0
je 0x416a45
mov ecx, dword [0x4adbdc]
mov dword [ebp - 0x68], ecx
test ecx, ecx
jne 0x4169e2
mov eax, dword [eax + 0x5fc]
mov dword [0x4adbd8], eax
push 0xa
lea eax, [ebp - 0x835c]
mov byte [ebp - 0x4354], 0
push 0x4a1a44
push dword [0x4ad120]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0xe2a4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov byte [ebp - 0x78], 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x416a5a
sub esp, 8
xorps xmm0, xmm0
xor edx, edx
mov ecx, str.Could_not_extract_script_from_EXE.
movsd qword [esp], xmm0
push eax
push esi
call fcn.00476030
add esp, 0x10
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
push dword [0x4ad120]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
push dword [0x4ad120]
mov dword [ebp - 0x7c], eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x416a9c
cld
mov esi, 1
mov ecx, 2
xor eax, eax
movzx ebx, byte [esi]
add eax, ebx
rol eax, 1
inc esi
loop 0x416a90
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x80], eax
call fcn.00415080
push 0xfde9
push 0xc
lea eax, [ebp - 0x80]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0xfc]
call fcn.0046f1f0
mov eax, dword [ebp - 0x7c]
inc eax
push eax
call fcn.0048578d
add esp, 4
lea ecx, [ebp - 0xfc]
mov edi, eax
mov dword [ebp - 0x98], edi
push 0
push dword [ebp - 0x7c]
push edi
call fcn.0046f370
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x416b27
cmp dword [ebp - 0xd0], 0
jne 0x416b27
mov eax, dword [ebp - 0xfc]
push ecx
push dword [ebp - 0xcc]
lea ecx, [ebp - 0xfc]
call dword [eax + 0x10]
mov dword [ebp - 0xf4], 0
mov eax, dword [ebp - 0xfc]
lea ecx, [ebp - 0xfc]
mov byte [ebp - 0xd4], 0
call dword [eax + 8]
mov esi, dword [ebp - 0x7c]
xor edx, edx
xor ecx, ecx
mov eax, 1
test esi, esi
je 0x416b79
mov ebx, dword [ebp + 8]
cmp eax, 1
jne 0x416b5b
movsx ebx, byte [ecx + edi]
jmp 0x416b73
cmp eax, 2
je 0x416b73
cmp eax, 3
jne 0x416b73
mov al, byte [ecx + edi]
xor al, bl
mov byte [edx + edi], al
xor eax, eax
mov esi, dword [ebp - 0x7c]
inc edx
inc ecx
inc eax
cmp ecx, esi
jb 0x416b50
mov edi, dword [ebp - 0x80]
xor ecx, ecx
cmp dword [edi], ecx
je 0x416b8d
mov eax, edi
lea eax, [eax + 4]
inc ecx
cmp dword [eax], 0
jne 0x416b84
sub ecx, 0x28
test ecx, ecx
jle 0x416b98
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0xfc]
push 0xfde9
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x80]
push 0xc
push eax
mov dword [ebp - 0x7c], edx
call fcn.0046f1f0
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x835c]
inc dword [0x4adbdc]
xor al, al
mov byte [ebp + 0xb], al
mov byte [ebp - 0x33], al
mov byte [ebp - 0x36], al
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x16c], eax
lea eax, [ebp - 0xfc]
push eax
push 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x48], 0xffffffff
call fcn.00418a60
push 2
mov edi, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x835c]
push 0x49f7ec
push eax
call fcn.0048682f
add esp, 0xc
test eax, eax
sete al
mov byte [ebp - 0x12], al
test al, al
je 0x416c2f
xor edi, edi
mov byte [ebp - 0x835c], 0
mov dword [ebp - 0x18], edi
mov eax, dword [ebp + 8]
lea esi, [ebp - 0x835c]
mov dword [ebp - 0x5c], eax
xorps xmm0, xmm0
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x11], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c], eax
mov al, byte [ebp + 0xb]
movsd qword [ebp - 0x104], xmm0
mov byte [ebp - 0x13], al
jmp 0x416c60
cmp edi, 0xffffffff
je 0x418753
mov eax, dword [ebp - 0x48]
push 0xc
inc eax
mov dword [ebx + 0x370], 0
push str.CommentFlag
push esi
mov dword [ebx + 0x170], eax
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x416ca1
push esi
mov ecx, ebx
call fcn.00418bf0
test eax, eax
je 0x4187ad
mov byte [ebp - 0x94], 0
xor ebx, ebx
mov al, byte [ebp - 0x12]
lea ecx, [ecx]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x48]
inc ecx
mov dword [ebp - 0x48], ecx
test edx, edx
je 0x416dc3
lea eax, [ebp - 0xfc]
mov ecx, edx
push eax
push ebx
call fcn.00418a60
mov edi, eax
mov dword [ebp - 0x2c], edi
test edi, edi
je 0x416db8
cmp edi, 0xffffffff
je 0x416db8
test ebx, ebx
jne 0x416db8
push 2
push 0x49f800
push dword [ebp - 0x24]
call fcn.0048682f
mov edx, dword [ebp - 0x24]
add esp, 0xc
test eax, eax
mov al, byte [ebp - 0x12]
jne 0x416daa
test al, al
jne 0x416d1f
cmp byte [edx + 2], 0x3a
jne 0x416d1f
cmp byte [edx + 3], 0x3a
je 0x416d8c
xor al, al
sub edi, 2
mov byte [ebp - 0x12], al
lea eax, [edi + 1]
push eax
lea eax, [edx + 2]
push eax
push edx
call fcn.00484fa0
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx], 0
jne 0x416d44
xor edi, edi
jmp 0x416d84
mov ecx, edx
mov al, byte [ecx]
cmp al, 0x20
je 0x416d50
cmp al, 9
jne 0x416d53
inc ecx
jmp 0x416d46
mov eax, ecx
sub eax, edx
je 0x416d84
cmp edi, 0xffffffff
jne 0x416d71
mov edi, ecx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x416d63
sub edi, edx
mov edx, dword [ebp - 0x24]
jmp 0x416d73
sub edi, eax
lea eax, [edi + 1]
push eax
push ecx
push edx
call fcn.00484fa0
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx], 0
mov dword [ebp - 0x2c], edi
je 0x416db0
push 2
push 0x49f7ec
push edx
call fcn.0048682f
add esp, 0xc
test eax, eax
jne 0x416db8
mov al, 1
mov byte [ebp - 0x12], al
jmp 0x416cb0
test al, al
je 0x416d8c
mov edi, edi
mov al, byte [ebp - 0x12]
jmp 0x416cb3
mov edx, dword [ebp - 0x24]
mov al, byte [ebp - 0x12]
mov ecx, dword [ebp - 0x48]
jmp 0x416dc9
or edi, 0xffffffff
mov dword [ebp - 0x2c], edi
test al, al
je 0x416ddb
cmp edi, 0xffffffff
jne 0x416cb6
jmp 0x417481
test ebx, ebx
jne 0x41721f
cmp edi, 0xffffffff
je 0x416fa2
cmp byte [edx], 0x28
jne 0x416fa2
cmp byte [edx + 1], 0x3a
lea esi, [edx + 1]
je 0x416f9f
cmp byte [edi + edx - 1], 0x3a
je 0x416f9f
mov al, byte [0x4ad132]
mov ebx, 1
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x3f], al
mov byte [ebp - 0x43], bl
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x42], 0
mov byte [ebp - 0x40], bl
mov word [ebp - 0xb4], 0xa
mov dword [ebp - 0x70], ebx
mov al, byte [esi]
cmp al, 0x20
je 0x416e4b
cmp al, 9
jne 0x416e4e
inc esi
jmp 0x416e41
cmp byte [esi], 0
je 0x416f8d
mov dl, byte [esi]
mov edi, esi
test dl, dl
je 0x416e7b
nop
mov ecx, 0x49e8b4
mov al, 0x20
cmp dl, al
je 0x416e8c
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x416e67
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x416e60
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416e80
sub ecx, edx
lea edi, [esi + ecx]
mov bl, byte [edi]
push 4
push str.Join
push esi
mov byte [edi], 0
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x416ef1
push 0xf
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00487600
add esp, 0xc
mov byte [ebp - 0xa5], 0
lea ecx, [ebp - 0xb4]
push 1
call fcn.00473910
lea edx, [ebp - 0xb4]
add esp, 4
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x416ee0
sub edx, ecx
mov dword [ebp - 0x70], edx
jmp 0x416f6d
push 5
push 0x49f85c
push esi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x416f0f
cmp byte [esi + 5], 0x30
setne byte [ebp - 0x3f]
jmp 0x416f6d
push 5
push str.RTrim
push esi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x416f2d
cmp byte [esi + 5], 0x30
setne byte [ebp - 0x43]
jmp 0x416f6d
mov al, byte [esi]
test al, al
je 0x416f6d
movsx eax, al
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x416f45.38
movzx eax, byte [eax + 0x41885c]
jmp dword [eax*4 + 0x418844]
mov byte [ebp - 0x41], 1
jmp case.0x416f45.38
mov byte [ebp - 0x42], 1
jmp case.0x416f45.38
mov byte [ebp - 0x40], 0
jmp case.0x416f45.38
mov dword [ebp - 0x3c], 2
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x416f33
mov byte [edi], bl
mov esi, edi
mov al, byte [esi]
cmp al, 0x20
je 0x416f7b
cmp al, 9
jne 0x416f7e
inc esi
jmp 0x416f71
cmp byte [esi], 0
jne 0x416e57
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x1c]
mov al, byte [ebp - 0x12]
mov byte [ebp - 0x94], 1
jmp 0x416cb3
mov esi, dword [ebp - 0x1c]
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
cmp edi, 0xffffffff
je 0x417481
test edi, edi
je 0x416cb6
cmp byte [edi + edx - 1], 0x3a
jne 0x416fc8
cmp byte [edx], 0x2c
jne 0x417481
mov bl, byte [edx]
movzx eax, bl
test eax, 0xffffff80
jne 0x416fe6
push 2
push eax
call fcn.00485bac
add esp, 8
test eax, eax
je 0x416fe6
and bl, 0xdf
mov esi, dword [ebp - 0x24]
mov al, bl
cmp al, 0x41
je 0x4171dd
cmp al, 0x4f
je 0x41716f
mov al, byte [esi]
cmp al, 0x3a
je 0x417009
cmp al, 0x2b
je 0x417009
cmp al, 0x2d
jne 0x417012
cmp byte [esi + 1], al
je 0x417481
movsx eax, al
push eax
push str.____:.___
call fcn.004855e4
add esp, 8
test eax, eax
je 0x417481
push 0x49f828
push esi
call fcn.00485696
mov edi, eax
add esp, 8
test edi, edi
je 0x4170e9
cmp byte [esi], 0x3a
jne 0x41709e
mov cl, byte [esi + 1]
inc esi
test cl, cl
je 0x417092
cmp cl, 0x3a
je 0x417481
movzx eax, cl
test eax, 0xffffff80
jne 0x417075
push 0x107
push eax
call fcn.00485bac
add esp, 8
test eax, eax
jne 0x41708a
movsx eax, byte [esi]
push eax
push str.____t
call fcn.004855e4
add esp, 8
test eax, eax
je 0x41709b
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417050
cmp byte [esi], 0x3a
je 0x417481
mov esi, dword [ebp - 0x24]
cmp byte [esi], 0x2c
jne 0x41712a
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4170a7
cmp al, 9
je 0x4170a7
push 2
push 0x49f828
push esi
call fcn.0048682f
add esp, 0xc
test eax, eax
je 0x417481
push 3
lea eax, [esi - 1]
push 0x49e8ac
push eax
call fcn.0048682f
add esp, 0xc
test eax, eax
je 0x417481
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x18]
lea eax, [edi + ebx]
cmp eax, 0x4000
jae 0x418607
cmp byte [esi], 0x2c
mov esi, dword [ebp - 0x1c]
je 0x41710a
mov byte [ebx + esi], 0x20
inc ebx
lea eax, [edi + 1]
push eax
push dword [ebp - 0x24]
lea eax, [ebx + esi]
push eax
call fcn.0048cfd0
add esp, 0xc
add ebx, edi
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x3c]
jmp 0x416caa
mov eax, esi
cmp esi, edi
jae 0x41713a
cmp byte [eax], 0x22
je 0x41713a
inc eax
cmp eax, edi
jb 0x417130
cmp eax, edi
je 0x417481
mov al, byte [edi + 2]
lea ecx, [edi + 2]
test al, al
je 0x417481
cmp al, 0x22
je 0x417161
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x417150
jmp 0x417481
cmp byte [ecx], 0
je 0x417481
jmp 0x4170e9
movzx ebx, byte [esi + 1]
test ebx, 0xffffff80
jne 0x41718d
push 2
push ebx
call fcn.00485bac
add esp, 8
test eax, eax
je 0x41718d
and ebx, 0xffffffdf
cmp bl, 0x52
jne 0x417481
mov cl, byte [esi + 2]
lea eax, [esi + 2]
cmp cl, 0x20
je 0x4171b0
cmp cl, 9
je 0x4171b0
cmp cl, 0xa0
jne 0x417481
nop
mov cl, byte [eax]
cmp cl, 0x20
je 0x4171bc
cmp cl, 9
jne 0x4171bf
inc eax
jmp 0x4171b0
movsx eax, byte [eax]
push eax
push str.____:
call fcn.004855e4
add esp, 8
test eax, eax
jne 0x417481
jmp 0x4170ec
push 3
push 0x49f804
push esi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x417481
mov cl, byte [esi + 3]
lea eax, [esi + 3]
cmp cl, 0x20
je 0x417210
cmp cl, 9
je 0x417210
cmp cl, 0xa0
jne 0x417481
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x20
je 0x41721c
cmp cl, 9
jne 0x4171bf
inc eax
jmp 0x417210
cmp edi, 0xffffffff
je 0x41873e
cmp edi, 0xfffffffe
je 0x416cb6
mov al, byte [edx]
cmp al, 0x29
jne 0x41728c
xor ebx, ebx
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x417240
mov edi, dword [ebp - 0x24]
sub edx, ecx
lea eax, [edi - 1]
add eax, edx
mov cl, byte [eax]
cmp cl, 0x20
je 0x41725d
cmp cl, 9
jne 0x417265
cmp eax, edi
je 0x417272
dec eax
dec edx
jmp 0x417251
inc edi
mov byte [eax + 1], bl
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x417404
mov cl, byte [eax]
cmp cl, 0x20
je 0x41727e
cmp cl, 9
jne 0x417282
mov byte [eax], bl
xor edx, edx
inc edi
dec edx
mov dword [ebp - 0x2c], edx
jmp 0x417404
cmp byte [ebp - 0x43], 0
mov edi, edx
je 0x4172df
test al, al
jne 0x41729f
xor esi, esi
mov dword [ebp - 0x2c], esi
jmp 0x4172e2
mov esi, dword [ebp - 0x2c]
lea eax, [esi - 1]
add eax, edx
mov cl, byte [eax]
cmp cl, 0x20
je 0x4172b3
cmp cl, 9
jne 0x4172bb
cmp eax, edx
je 0x4172c4
dec eax
dec esi
jmp 0x4172a7
mov byte [eax + 1], 0
mov dword [ebp - 0x2c], esi
jmp 0x4172e2
mov cl, byte [eax]
cmp cl, 0x20
je 0x4172d5
cmp cl, 9
je 0x4172d5
mov dword [ebp - 0x2c], esi
jmp 0x4172e2
xor esi, esi
mov byte [eax], 0
mov dword [ebp - 0x2c], esi
jmp 0x4172e2
mov esi, dword [ebp - 0x2c]
cmp byte [ebp - 0x3f], 0
je 0x417334
cmp byte [edx], 0
jne 0x4172f4
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x417334
mov ecx, edx
mov al, byte [ecx]
cmp al, 0x20
je 0x417300
cmp al, 9
jne 0x417303
inc ecx
jmp 0x4172f6
mov eax, ecx
sub eax, edx
je 0x417331
cmp esi, 0xffffffff
jne 0x417321
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x417313
sub esi, edx
mov edx, dword [ebp - 0x24]
jmp 0x417323
sub esi, eax
lea eax, [esi + 1]
push eax
push ecx
push edx
call fcn.00484fa0
add esp, 0xc
mov dword [ebp - 0x2c], esi
xor esi, esi
cmp byte [ebp - 0x41], 0
je 0x417369
mov al, byte [str.___M]
lea edx, [ebp - 0x34]
mov ecx, dword [ebp - 0x24]
push esi
push esi
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x34], al
mov byte [ebp - 0x38], al
mov byte [ebp - 0x37], al
lea eax, [ebp - 0x38]
push 1
push eax
call fcn.00471db0
add esp, 0x18
mov esi, eax
cmp byte [ebp - 0x42], 0
je 0x4173a5
mov dl, byte [0x4aa62e]
lea eax, [ebp - 0x38]
mov cl, byte [str.___M]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x38], cl
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 0x37], dl
lea edx, [ebp - 0x34]
push 1
push eax
call fcn.00471db0
add esp, 0x18
add esi, eax
cmp byte [ebp - 0x40], 0
je 0x4173e0
mov al, byte [str.___M]
lea edx, [ebp - 0x34]
mov cl, byte [0x4aa62f]
push 0
push 0
push 0x4001
push 0xffffffffffffffff
mov byte [ebp - 0x38], al
lea eax, [ebp - 0x38]
mov byte [ebp - 0x34], cl
mov byte [ebp - 0x37], cl
mov ecx, dword [ebp - 0x24]
push 1
push eax
call fcn.00471db0
add esp, 0x18
add esi, eax
test esi, esi
je 0x4173fe
mov edx, dword [ebp - 0x24]
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x4173f0
sub edx, ecx
mov dword [ebp - 0x2c], edx
jmp 0x417401
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x18]
add eax, edx
add eax, ecx
cmp eax, 0x4001
jae 0x418729
mov eax, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x88], eax
cmp eax, 1
jle 0x417458
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x417458
cmp edi, dword [ebp - 0x24]
jne 0x417458
inc eax
push eax
lea eax, [ebp - 0xb4]
push eax
lea eax, [ecx + esi]
push eax
call fcn.0048cfd0
mov ecx, dword [ebp - 0x18]
add esp, 0xc
add ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ecx
mov al, byte [ebp - 0x12]
test edx, edx
je 0x416cb0
lea eax, [edx + 1]
push eax
lea eax, [ecx + esi]
push edi
push eax
call fcn.0048cfd0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
add dword [ebp - 0x18], eax
jmp 0x416caa
mov byte [edi], bl
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
lea ebx, [ebx]
test edx, edx
je 0x4179ae
cmp byte [ebp - 0x4354], 0
je 0x417607
mov esi, dword [edi + 0x170]
mov eax, dword [ebp - 0x60]
mov dword [edi + 0x170], eax
cmp byte [ebx], 0x7b
je 0x417500
cmp byte [ebp - 0x25], 0
jne 0x417500
cmp dword [ebp - 0x58], 0
jne 0x418646
cmp dword [edi + 0x48], 0
je 0x4174e1
mov eax, dword [0x4aa1d8]
cmp dword [eax + 0x94], 0
je 0x41861c
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [ebp - 0x4354]
mov ecx, edi
push eax
call fcn.0041a040
jmp 0x417597
mov eax, dword [ebp - 0x58]
sub eax, 0
je 0x417553
dec eax
je 0x417534
dec eax
jne 0x4175a9
lea eax, [ebp - 0x4354]
mov ecx, edi
push eax
call fcn.0041e760
test eax, eax
je 0x4187ad
mov byte [ebp - 0x4354], 0
jmp 0x4175b6
lea eax, [ebp - 0x4354]
mov ecx, edi
push eax
call fcn.0041e220
test eax, eax
je 0x4187ad
mov byte [ebp - 0x4354], 0
jmp 0x4175b6
mov eax, dword [0x4aa1d8]
mov ecx, edi
cmp dword [eax + 0x94], 0
jne 0x418660
lea eax, [ebp - 0xa29c]
push eax
lea eax, [ebp - 0x4354]
push eax
call fcn.0041d9c0
test eax, eax
je 0x4187ad
cmp byte [ebp - 0x25], 0
je 0x4175a9
push 0
push 0
push 0
push 0x73
mov ecx, edi
call fcn.0041c260
test eax, eax
je 0x4187ad
mov dword [edi + 0x370], 0
cmp dword [ebp - 0x58], 0
mov byte [ebp - 0x4354], 0
je 0x417601
cmp byte [ebp - 0x25], 0
jne 0x417601
lea ecx, [ebx + 1]
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x4175ca
cmp al, 9
jne 0x4175cd
inc ecx
jmp 0x4175c0
cmp byte [ecx], 0
je 0x4179a8
mov ebx, ecx
lea edx, [ebx + 1]
jmp 0x4175e0
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4175e0
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x1c]
sub eax, edx
mov dword [ebp - 0x18], eax
inc eax
push eax
push ecx
push ebx
call fcn.00484fa0
add esp, 0xc
mov dword [edi + 0x170], esi
cmp byte [ebx], 0x7d
jne 0x4176d3
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x4176d3
mov eax, dword [0x4aa1d8]
cmp dword [eax + 0x94], 0
jne 0x4176d3
cmp dword [edi + 0x164], 0
je 0x41765f
mov eax, dword [edi + 0x168]
mov dword [edi + 0x164], 0
test eax, eax
je 0x417693
push eax
call fcn.004843d4
add esp, 4
mov dword [edi + 0x168], 0
jmp 0x417693
dec ecx
mov dword [edi + 0x48], ecx
mov ecx, dword [edi + ecx*4 + 0x4c]
call fcn.0046aff0
mov eax, dword [edi + 0x48]
mov eax, dword [edi + eax*4 + 0x4c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea esi, [edi + 0x60]
push 0x2e
push esi
call fcn.0048695e
add esp, 8
test eax, eax
je 0x417690
mov byte [eax], 0
jmp 0x417693
mov byte [esi], 0
inc ebx
mov dword [ebp - 0x1c], ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4176a1
cmp al, 9
jne 0x4176a4
inc ebx
jmp 0x417697
cmp byte [ebx], 0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x54], ebx
je 0x4179ae
mov edx, ebx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4176b8
sub edx, ecx
mov dword [edi + 0x370], 0
mov dword [ebp - 0x18], edx
jmp 0x417490
cmp dword [edi + 0x164], 0
je 0x417793
mov eax, dword [0x4aa1d8]
cmp dword [eax + 0x94], 0
jne 0x417793
push 3
push 0x49f8dc
push ebx
call fcn.00484c8d
add esp, 0xc
test eax, eax
je 0x41771e
push 3
push 0x49f8e0
push ebx
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x418678
lea esi, [ebx + 3]
mov al, byte [esi]
cmp al, 0x20
je 0x41772b
cmp al, 9
jne 0x41772e
inc esi
jmp 0x417721
mov al, byte [esi]
test al, al
je 0x417746
cmp al, 0x7b
jne 0x418678
cmp byte [esi + 1], 0
jne 0x418678
mov ecx, dword [edi + 0x168]
lea edx, [ebp - 0x4354]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x417754
lea eax, [ebp - 0x4354]
push 0x2e
push eax
call fcn.004855e4
mov cl, byte [ebx]
add esp, 8
mov dword [ebp - 0x58], 0
mov byte [eax + 1], cl
cmp byte [esi], 0x7b
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x60], eax
sete byte [ebp - 0x25]
jmp 0x4179ae
lea edx, [ebp - 0x25]
mov ecx, ebx
call fcn.00416830
test al, al
je 0x4177d2
lea edx, [ebp - 0x4354]
mov ecx, ebx
sub edx, ebx
jmp 0x4177b0
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4177b0
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], 0
jmp 0x4179ae
mov eax, dword [0x4aa1d8]
cmp dword [eax + 0x94], 0
jne 0x417aef
lea edx, [ebp - 0x25]
mov ecx, ebx
call fcn.004168f0
mov ecx, eax
test ecx, ecx
je 0x417822
lea edx, [ebp - 0x4354]
sub edx, ecx
lea esp, [esp]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x417800
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], 1
jmp 0x4179ae
cmp dword [edi + 0x48], 0
je 0x417aef
mov esi, ebx
mov edi, edi
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x41784c
push 0x107
push eax
call fcn.00485bac
add esp, 8
test eax, eax
jne 0x41785a
mov al, byte [esi]
cmp al, 0x5f
je 0x41785a
cmp al, 0x7f
ja 0x41785a
cmp al, 0x2e
jne 0x41785d
inc esi
jmp 0x417830
cmp esi, ebx
jbe 0x417941
mov al, byte [esi]
cmp al, 0x20
je 0x41786f
cmp al, 9
jne 0x417872
inc esi
jmp 0x417865
mov al, byte [esi]
cmp al, 0x3a
jne 0x417895
cmp byte [esi + 1], 0x3d
jne 0x417895
push 0
push ebx
mov ecx, edi
call fcn.0041e900
test eax, eax
je 0x4187ad
jmp 0x4179ae
test al, al
je 0x4178af
cmp al, 0x5b
je 0x4178af
cmp al, 0x7b
jne 0x417941
cmp byte [esi + 1], 0
jne 0x417941
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4178b4
sub ecx, edx
cmp byte [ecx + ebx - 1], 0x7b
sete al
mov byte [ebp - 0x25], al
test al, al
je 0x417918
dec ecx
cmp byte [ebx], 0
je 0x417918
cmp ecx, 0xffffffff
jne 0x4178e9
mov ecx, ebx
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4178e0
sub ecx, edx
lea eax, [ebx - 1]
add eax, ecx
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x20
je 0x4178fc
cmp cl, 9
jne 0x417903
cmp eax, ebx
je 0x417909
dec eax
jmp 0x4178f0
mov byte [eax + 1], 0
jmp 0x417918
mov cl, byte [eax]
cmp cl, 0x20
je 0x417915
cmp cl, 9
jne 0x417918
mov byte [eax], 0
lea edx, [ebp - 0x4354]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x417922
mov eax, dword [edi + 0x170]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], 2
jmp 0x4179ae
push 6
push str.Static
push ebx
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x417977
mov al, byte [ebx + 6]
cmp al, 0x20
je 0x417960
cmp al, 9
jne 0x417977
push 1
lea eax, [ebx + 7]
mov ecx, edi
push eax
call fcn.0041e900
test eax, eax
je 0x4187ad
jmp 0x4179ae
cmp byte [ebx], 0x23
jne 0x41868c
mov esi, dword [edi + 0x170]
mov ecx, edi
push ebx
call fcn.00418bf0
test eax, eax
je 0x4187ad
cmp eax, 3
jne 0x41868c
mov eax, dword [ebp - 0x68]
mov dword [edi + 0x16c], eax
mov dword [edi + 0x170], esi
mov esi, dword [ebp - 0x18]
mov dl, byte [ebp + 0xb]
test dl, dl
je case.0x4179d4.4
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
dec eax
cmp eax, 9
ja case.0x4179d4.4
movzx eax, byte [eax + 0x4188b0]
jmp dword [eax*4 + 0x41889c]
lea eax, [ebp - 0x144]
push eax
push str._s::
push ebx
call fcn.0048498d
jmp 0x417ae9
mov ax, word [0x49e638]
mov ecx, edi
cmp byte [ebp - 0x2d], 0
mov word [ebx], ax
mov al, byte [0x49e63a]
mov byte [ebx + 2], al
lea eax, [ebp - 0x54]
push 0
push 1
push eax
setne al
add al, 0xc1
movzx eax, al
push eax
call fcn.0041c260
cmp byte [ebp - 0x3e], 0
je 0x417a43
lea eax, [ebp - 0x124]
push eax
push str.if_not_GetKeyState___s__
push ebx
call fcn.0048498d
mov dword [ebp - 0x64], 9
jmp 0x417ae9
mov dl, byte [ebp + 0xb]
mov ecx, 0x49bc4d
cmp dl, 0x12
je 0x417a58
mov al, dl
add al, 0x5c
cmp al, 1
ja 0x417a77
movzx eax, byte [ebp - 0x3d]
sub eax, 0x11
je 0x417a72
sub eax, 0x91
je 0x417a72
dec eax
jne 0x417a77
mov ecx, str.RCtrl_up
jmp 0x417a77
mov ecx, str.LCtrl_up
lea eax, [ebp - 0x124]
mov dword [edi + 0x370], 0
push eax
lea eax, [ebp - 0xa0]
push eax
push ecx
push str.Blind_s_s_s_DownR
push ebx
call fcn.0048498d
add esp, 0x14
lea eax, [ebp - 0x54]
mov ecx, edi
push 0
push 1
push eax
push 0x41
call fcn.0041c260
test eax, eax
je 0x4187ad
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041c260
lea eax, [ebp - 0x144]
mov dword [edi + 0x370], 0
push eax
push str._s_up::
push ebx
call fcn.0048498d
mov dword [ebp - 0x64], 2
add esp, 0xc
mov dword [ebp - 0x18], eax
xor eax, eax
xor esi, esi
cmp byte [ebx], 0x3a
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x74], esi
jne 0x417b77
mov al, byte [ebx + 1]
test al, al
je 0x417b77
cmp al, 0x3a
je 0x417b33
lea edi, [ebx + 1]
push 0x3a
push edi
mov dword [ebp - 0x84], edi
call fcn.004855e4
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x417b6f
inc ebx
mov dword [ebp - 0x3c], ebx
jmp 0x417b41
cmp byte [ebx + 2], 0
lea eax, [ebx + 2]
je 0x417b77
mov ebx, eax
mov dword [ebp - 0x3c], eax
test ebx, ebx
je 0x417b74
mov esi, ebx
mov al, byte [esi]
test al, al
je 0x417b64
lea ecx, [ecx]
cmp al, byte [str.___M]
je 0x417bc8
cmp al, 0x3a
je 0x417bc8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x417b50
mov edi, dword [ebp - 0x74]
test edi, edi
jne 0x417c7f
xor eax, eax
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x1c]
push 0x49f828
push ebx
call fcn.00485696
mov edi, eax
add esp, 8
test edi, edi
je 0x41839f
cmp edi, ebx
jne 0x417b9a
cmp byte [edi + 2], 0x3a
jne 0x417b9a
inc edi
mov esi, edi
cmp edi, ebx
jbe 0x417baf
mov al, byte [esi]
cmp al, 0x20
je 0x417baa
cmp al, 9
jne 0x417baf
dec esi
cmp esi, ebx
ja 0x417ba0
mov bl, byte [esi]
mov ecx, dword [ebp - 0x1c]
mov byte [esi], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x417bc5
cmp al, 9
jne 0x417c4f
inc ecx
jmp 0x417bb7
mov al, byte [esi]
test al, al
je 0x417b64
lea edi, [esi + 1]
cmp al, 0x3a
jne 0x417be8
cmp byte [edi], al
jne 0x417c49
mov dword [ebp - 0x74], esi
mov esi, edi
inc esi
jmp 0x417b47
movsx eax, byte [edi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x417bfa.99
movzx eax, byte [eax + 0x4188dc]
jmp dword [eax*4 + 0x4188bc]
mov byte [edi], 7
jmp case.0x417bfa.99
mov byte [edi], 8
jmp case.0x417bfa.99
mov byte [edi], 0xc
jmp case.0x417bfa.99
mov byte [edi], 0xa
jmp case.0x417bfa.99
mov byte [edi], 0xd
jmp case.0x417bfa.99
mov byte [edi], 9
jmp case.0x417bfa.99
mov byte [edi], 0xb
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417c27
sub ecx, edx
lea eax, [ecx + 1]
push eax
push edi
push esi
call fcn.00484fa0
add esp, 0xc
cmp byte [esi], 0x3a
jne 0x417c49
cmp byte [edi], 0x3a
cmove esi, edi
inc esi
jmp 0x417b47
push 0
xor edx, edx
call fcn.0040bcc0
add esp, 4
mov dword [ebp - 0xa4], eax
test eax, eax
je 0x417c70
cmp eax, 4
je 0x4187ad
jmp 0x417c72
xor edi, edi
mov byte [esi], bl
test edi, edi
je 0x41839c
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x1c]
cmp edi, esi
jbe 0x41839c
mov eax, dword [0x4aa1d8]
mov ecx, dword [ebp - 0x20]
cmp dword [eax + 0x94], 0
jne 0x418702
mov eax, dword [ecx + 4]
test eax, eax
je 0x417caf
cmp byte [eax], 0x1a
je 0x4186a0
mov byte [edi], 0
add edi, 2
mov dword [ebp - 0x74], edi
test ebx, ebx
jne 0x4180ea
cmp byte [edi], bl
je 0x417cfa
mov ecx, edi
mov al, byte [ecx]
cmp al, 0x20
je 0x417cd0
cmp al, 9
jne 0x417cd3
inc ecx
jmp 0x417cc6
mov eax, ecx
sub eax, edi
je 0x417cfa
mov edx, ecx
lea esi, [edx + 1]
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x417ce0
sub edx, esi
lea eax, [edx + 1]
push eax
push ecx
push edi
call fcn.00484fa0
mov esi, dword [ebp - 0x1c]
add esp, 0xc
cmp byte [edi], 0
mov dword [ebp - 0x6c], edi
je 0x4180ea
mov al, byte [edi + 1]
test al, al
je 0x417e48
mov esi, dword [ebp - 0x5c]
xor cl, cl
mov ebx, edi
xor dl, dl
lea ebx, [ebx]
cmp al, 0x20
je case.0x417d3e.34
movsx eax, byte [ebx]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x417d3e.34
movzx eax, byte [eax + 0x418914]
jmp dword [eax*4 + 0x4188f4]
mov dl, 1
jmp case.0x417d3e.36
mov cl, 1
jmp case.0x417d3e.36
test dl, dl
jne 0x417d63
test cl, cl
jne 0x417d67
or esi, 1
jmp case.0x417d3e.36
test cl, cl
je 0x417d73
mov al, byte [ebp - 0x11]
or al, 4
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x417d76
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x417d3e.36
or al, 8
jmp 0x417dfe
test dl, dl
jne 0x417d95
test cl, cl
jne 0x417d99
or esi, 2
jmp case.0x417d3e.36
test cl, cl
je 0x417da5
mov al, byte [ebp - 0x11]
or al, 1
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x417da8
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x417d3e.36
or al, 2
jmp 0x417dfe
test dl, dl
jne 0x417dbd
test cl, cl
jne 0x417dc1
or esi, 4
jmp case.0x417d3e.36
test cl, cl
je 0x417dcd
mov al, byte [ebp - 0x11]
or al, 0x10
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x417dd0
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x417d3e.36
or al, 0x20
jmp 0x417dfe
test dl, dl
jne 0x417de5
test cl, cl
jne 0x417de9
or esi, 8
jmp case.0x417d3e.36
test cl, cl
je 0x417df5
mov al, byte [ebp - 0x11]
or al, 0x40
xor cl, cl
mov byte [ebp - 0x11], al
jmp 0x417df8
mov al, byte [ebp - 0x11]
test dl, dl
je case.0x417d3e.36
or al, 0x80
xor dl, dl
mov byte [ebp - 0x11], al
mov al, byte [ebx + 2]
inc ebx
test al, al
jne 0x417d20
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x5c], esi
push 0
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, ebx
call fcn.00412340
mov esi, dword [ebp - 0x1c]
mov bh, al
add esp, 0xc
mov byte [ebp + 0xb], bh
test bh, bh
je 0x4180e7
jmp 0x417e4e
or bh, 0xff
mov byte [ebp + 0xb], bh
cmp byte [esi], 0
je 0x417f54
mov eax, dword [ebp - 0x1c]
xor cl, cl
xor dl, dl
lea edi, [eax + 1]
mov al, byte [edi]
test al, al
je 0x417f51
mov bh, byte [ebp - 0x13]
mov edi, edi
cmp al, 0x20
je case.0x417e8e.34
movsx eax, byte [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x417e8e.34
movzx eax, byte [eax + 0x418994]
jmp dword [eax*4 + 0x418974]
mov dl, 1
jmp case.0x417e8e.36
mov cl, 1
jmp case.0x417e8e.36
test dl, dl
jne 0x417eb4
test cl, cl
jne 0x417eb8
or dword [ebp - 0x4c], 1
jmp case.0x417e8e.36
test cl, cl
je 0x417ebd
or bh, 4
xor cl, cl
test dl, dl
je case.0x417e8e.36
or bh, 8
jmp 0x417f24
test dl, dl
jne 0x417ed4
test cl, cl
jne 0x417ed8
or dword [ebp - 0x4c], 2
jmp case.0x417e8e.36
test cl, cl
je 0x417edd
or bh, 1
xor cl, cl
test dl, dl
je case.0x417e8e.36
or bh, 2
jmp 0x417f24
test dl, dl
jne 0x417ef4
test cl, cl
jne 0x417ef8
or dword [ebp - 0x4c], 4
jmp case.0x417e8e.36
test cl, cl
je 0x417efd
or bh, 0x10
xor cl, cl
test dl, dl
je case.0x417e8e.36
or bh, 0x20
jmp 0x417f24
test dl, dl
jne 0x417f14
test cl, cl
jne 0x417f18
or dword [ebp - 0x4c], 8
jmp case.0x417e8e.36
test cl, cl
je 0x417f1d
or bh, 0x40
xor cl, cl
test dl, dl
je case.0x417e8e.36
or bh, 0x80
xor dl, dl
mov esi, edi
mov al, byte [esi + 1]
lea edi, [esi + 1]
test al, al
jne 0x417e70
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov byte [ebp - 0x13], bh
mov bh, byte [ebp + 0xb]
mov edi, dword [ebp - 0x74]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push ecx
push 0
xor edx, edx
mov ecx, esi
call fcn.00412340
add esp, 0xc
mov byte [ebp - 0x3d], al
push 0x49e8ac
push esi
call fcn.00485696
add esp, 8
test eax, eax
mov al, byte [ebp - 0x3d]
setne bl
lea ecx, [eax - 1]
cmp cl, 5
ja 0x417f91
cmp al, 3
jne 0x417f97
add al, 0x66
cmp al, 5
ja 0x417f9b
mov cl, 1
jmp 0x417f9d
xor cl, cl
mov al, bh
sub al, 1
cmp al, 5
ja 0x417faa
cmp bh, 3
jne 0x417fb2
mov al, bh
add al, 0x66
cmp al, 5
ja 0x417fb6
mov al, 1
jmp 0x417fb8
xor al, al
mov byte [ebp - 0x2d], al
test cl, cl
jne 0x417fc7
mov byte [ebp - 0x3e], 1
test al, al
jne 0x417fcb
mov byte [ebp - 0x3e], 0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417fd0
sub ecx, edx
cmp ecx, 1
jne 0x417ff1
movzx eax, byte [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x49f958
jne 0x417ff6
mov eax, 0x49bc4d
push dword [ebp - 0x1c]
test bl, bl
mov ecx, 0x49f784
push eax
mov eax, 0x49bc4d
cmove eax, ecx
push eax
push str._s_s_s
lea eax, [ebp - 0x144]
push 0x20
push eax
call fcn.004715d0
mov ebx, dword [ebp - 0x6c]
lea eax, [ebp - 0x124]
push 0x1f
push ebx
push eax
call fcn.00487600
add esp, 0x24
mov byte [ebp - 0x105], 0
lea eax, [ebp - 0xa0]
push 7
push edi
push eax
call fcn.00487600
sub ebx, edi
mov byte [ebp - 0x99], 0
add esp, 0xc
cmp ebx, 8
jae 0x418061
mov byte [ebp + ebx - 0xa0], 0
mov dl, byte [ebp + 0xb]
xor eax, eax
mov dword [ebp - 0x64], eax
cmp byte [ebp - 0xa0], al
jne case.0x41808b.14
movzx eax, dl
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x41808b.14
movzx eax, byte [eax + 0x418a04]
jmp dword [eax*4 + 0x4189f4]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x418529
mov edi, edi
mov ecx, 0x49eb40
mov al, 0x20
cmp dl, al
je case.0x41808b.19
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4180a7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4180a0
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
jmp 0x4179ae
lea eax, [ebp - 0x124]
push str.Return
push eax
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418529
xor al, al
mov byte [ebp + 0xb], al
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x20]
cmp byte [esi + 0x174], 0
je 0x418121
push 0
push 0xff
push 0
push 0x67
mov ecx, esi
mov byte [esi + 0x174], 0
call fcn.0041c260
test eax, eax
je 0x4187ad
mov dword [esi + 0x370], 0
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
push 1
push esi
call fcn.00419eb0
test eax, eax
je 0x4187ad
test ebx, ebx
je 0x4181e2
cmp byte [ebx], 0
je 0x4186b8
mov eax, dword [ebp - 0x84]
mov edx, 0x49bc4d
push 0
push dword [ebp - 0x94]
test eax, eax
push edi
push ebx
mov ebx, dword [ebp - 0x20]
cmovne edx, eax
push ecx
mov ecx, esp
mov eax, dword [ebx + 0x14]
mov dword [ecx], eax
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + 4]
call fcn.0040cf00
add esp, 0x14
test eax, eax
je 0x4187ad
cmp byte [edi], 0
je 0x418529
mov ecx, dword [0x4adb40]
mov eax, dword [0x4adb44]
mov eax, dword [ecx + eax*4 - 4]
cmp byte [eax + 0x2d], 0
je 0x4181c1
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov edi, ebx
mov ecx, edi
call fcn.0041a040
test eax, eax
je 0x4187ad
jmp 0x4181c3
mov edi, ebx
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041c260
test eax, eax
je 0x4187ad
mov ebx, dword [ebp - 0x1c]
jmp 0x4179ae
xor esi, esi
cmp byte [edi], 0
je 0x41829e
push str.AltTab
push edi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418209
mov esi, 0x7ffe
jmp 0x418286
push str.ShiftAltTab
push edi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418222
mov esi, 0x7ffd
jmp 0x418286
push str.AltTabMenu
push edi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x41823b
mov esi, 0x7ffc
jmp 0x418286
push str.AltTabAndMenu
push edi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418254
mov esi, 0x7ffb
jmp 0x418286
push str.AltTabMenuDismiss
push edi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x41826d
mov esi, 0x7ffa
jmp 0x418286
mov ecx, dword [ebp - 0x20]
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push esi
push edi
call fcn.0041a040
test eax, eax
je 0x4187ad
mov ecx, dword [ebp - 0x20]
push 0
push 0
push 0
push 0x67
call fcn.0041c260
test eax, eax
je 0x4187ad
mov ebx, dword [ebp - 0x1c]
lea eax, [ebp - 0x4d]
push eax
lea edx, [ebp - 0x90]
mov ecx, ebx
call fcn.0040c460
mov edi, eax
add esp, 4
test edi, edi
je 0x418329
test si, si
je 0x4182cc
mov word [edi + 6], si
mov edi, dword [ebp - 0x20]
jmp 0x4179ae
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4182f0
mov ecx, dword [0x4ad9c4]
lea esp, [esp]
cmp dword [eax + 4], ecx
je 0x4186cd
mov eax, dword [eax + 8]
test eax, eax
jne 0x4182e0
mov esi, dword [ebp - 0x20]
mov ecx, edi
push dword [ebp - 0x90]
push dword [esi + 0x14]
call fcn.0040bba0
test eax, eax
je 0x4186ee
cmp byte [ebp - 0x4d], 0
jne 0x41831e
cmp byte [0x4ad131], 0
je 0x41853a
mov byte [edi + 0x14], 1
mov edi, esi
jmp 0x4179ae
mov edi, dword [ebp - 0x20]
mov edx, esi
push 0
push dword [ebp - 0x90]
mov ecx, dword [edi + 0x14]
push dword [ecx + 4]
call fcn.0040b510
add esp, 0xc
test eax, eax
jne 0x41853c
cmp dword [ebp - 0xa4], 3
jne 0x4187ad
push ebx
push str.Note:_The_hotkey__s_will_not_be_active_because_it_does_not_exist_in_the_current_keyboard_layout.
lea eax, [ebp - 0x34c]
push 0x204
push eax
call fcn.004715d0
movsd xmm0, qword [ebp - 0x104]
lea ecx, [ebp - 0x34c]
add esp, 8
mov edx, 0x10000
movsd qword [esp], xmm0
push 0
push 0
call fcn.00476030
add esp, 0x10
jmp 0x4179ae
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp byte [esi + ebx - 1], 0x3a
jne 0x418462
cmp esi, 1
je 0x418714
mov al, byte [ebx]
mov ecx, ebx
test al, al
je 0x4183f0
mov dl, byte [0x4aa62f]
cmp al, 0x20
je 0x418462
cmp al, 9
je 0x418462
cmp al, dl
je 0x418462
cmp al, byte [str.___M]
je 0x418462
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4183c4
cmp byte [esi + ebx - 2], 0x3a
jne 0x4183fc
cmp esi, 2
ja 0x418462
dec esi
mov ecx, esi
mov byte [esi + ebx], 0
cmp byte [ebx], 0
je 0x418448
cmp esi, 0xffffffff
jne 0x41841b
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418412
sub ecx, edx
lea eax, [ebx - 1]
add eax, ecx
mov cl, byte [eax]
cmp cl, 0x20
je 0x41842c
cmp cl, 9
jne 0x418433
cmp eax, ebx
je 0x418439
dec eax
jmp 0x418420
mov byte [eax + 1], 0
jmp 0x418448
mov cl, byte [eax]
cmp cl, 0x20
je 0x418445
cmp cl, 9
jne 0x418448
mov byte [eax], 0
mov edi, dword [ebp - 0x20]
mov ecx, edi
push 0
push ebx
call fcn.00419eb0
test eax, eax
je 0x4187ad
jmp 0x4179b1
cmp byte [ebx], 0x23
mov edi, dword [ebp - 0x20]
jne 0x41848c
mov esi, dword [edi + 0x170]
mov ecx, edi
push ebx
call fcn.00418bf0
test eax, eax
je 0x4187ad
cmp eax, 3
je 0x41799f
mov esi, dword [ebp - 0x18]
mov al, byte [ebx]
cmp al, 0x7b
je 0x4184b7
cmp al, 0x7d
je 0x4184b7
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
mov ecx, edi
call fcn.0041a040
test eax, eax
je 0x4187ad
jmp 0x4179b1
cmp al, 0x7b
mov ecx, edi
push 0
setne al
push 0
add al, 0x73
push 0
movzx eax, al
push eax
call fcn.0041c260
test eax, eax
je 0x4187ad
inc ebx
mov dword [ebp - 0x1c], ebx
jmp 0x4184e0
mov al, byte [ebx]
cmp al, 0x20
je 0x4184ea
cmp al, 9
jne 0x4184ed
inc ebx
jmp 0x4184e0
cmp byte [ebx], 0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x54], ebx
je 0x41853c
mov edx, ebx
lea ecx, [edx + 1]
lea ecx, [ecx]
mov al, byte [edx]
inc edx
test al, al
jne 0x418500
sub edx, ecx
mov dword [edi + 0x370], 0
mov dword [ebp - 0x18], edx
jmp 0x417490
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
jmp 0x4179b4
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov dl, byte [ebp + 0xb]
mov esi, dword [ebp - 0x18]
jmp 0x4179b4
mov edi, esi
mov dl, byte [ebp + 0xb]
mov esi, dword [ebp - 0x18]
jmp 0x4179b4
mov ax, word [0x49e638]
mov ecx, edi
cmp byte [ebp - 0x2d], 0
mov word [ebx], ax
mov al, byte [0x49e63a]
mov byte [ebx + 2], al
lea eax, [ebp - 0x54]
push 0
push 1
push eax
setne al
add al, 0xc1
movzx eax, al
push eax
call fcn.0041c260
lea eax, [ebp - 0x124]
push eax
push str.Blind_s_Up
push ebx
call fcn.0048498d
add esp, 0xc
lea eax, [ebp - 0x54]
mov ecx, edi
push 0
push 1
push eax
push 0x41
call fcn.0041c260
push 0
push 0
push 0
push 0x67
mov ecx, edi
call fcn.0041c260
xor al, al
mov byte [ebp + 0xb], al
test esi, esi
je 0x4185da
mov ebx, dword [ebp - 0x8c]
mov ecx, esi
mov edi, dword [ebp - 0x98]
mov edx, ecx
shr ecx, 2
add edi, ebx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
add ebx, esi
rep stosb byte es:[edi], al
mov dword [ebp - 0x8c], ebx
mov esi, dword [ebp - 0x24]
lea ebx, [ebp - 0x835c]
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0xe2a4]
cmp esi, ebx
mov dword [ebp - 0x1c], esi
mov edx, ebx
mov dword [ebp - 0x54], esi
mov ebx, dword [ebp - 0x20]
cmovne eax, edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], eax
jmp 0x416c60
mov ecx, dword [ebp - 0x20]
push esi
push str.Continuation_section_too_long.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
cmp dword [edi + 0x164], 0
lea eax, [ebp - 0x4354]
push eax
mov ecx, str.Not_a_valid_method__class_or_property_definition.
mov eax, 0x49f89c
cmove eax, ecx
mov ecx, edi
push eax
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
lea eax, [ebp - 0x4354]
mov ecx, edi
push eax
push 0x49f89c
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
lea eax, [ebp - 0x4354]
push eax
push str.Functions_cannot_contain_functions.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push ebx
push str.Not_a_valid_property_getter_setter.
mov ecx, edi
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push ebx
push str.Not_a_valid_method__class_or_property_definition.
mov ecx, edi
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push esi
push str.IfWin_should_be_IfWin.
mov dword [ecx + 0x370], eax
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
mov ecx, dword [ebp - 0x20]
push esi
push str.This_hotstring_is_missing_its_abbreviation.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
mov eax, dword [ebp - 0x20]
mov ecx, eax
push ebx
push str.Duplicate_hotkey.
mov dword [eax + 0x370], 0
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push ebx
push str.Out_of_memory.
mov ecx, esi
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push esi
push str.Hotkeys_hotstrings_are_not_allowed_inside_functions.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
mov ecx, dword [ebp - 0x20]
push ebx
push str.This_line_does_not_contain_a_recognized_action.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
mov ecx, dword [ebp - 0x20]
push edi
push str.Continuation_section_too_long.
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
mov ecx, dword [ebp - 0x20]
push esi
push 0x49f86c
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
cmp byte [ebp - 0x4354], 0
je 0x4187b7
cmp dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x60]
mov esi, dword [ebx + 0x170]
mov dword [ebx + 0x170], eax
lea eax, [ebp - 0x4354]
je 0x418795
cmp byte [ebp - 0x25], 0
mov ecx, 0x49f89c
push eax
mov eax, str.Missing___
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
push 0
push 0
push 0
push 0
push 0
push 3
push eax
mov ecx, ebx
call fcn.0041a040
test eax, eax
jne 0x4187b1
xor esi, esi
jmp 0x4187e2
mov dword [ebx + 0x170], esi
cmp dword [ebx + 0x48], 0
je 0x4187d7
cmp dword [ebp - 0x68], 0
jne 0x4187d7
lea eax, [ebx + 0x60]
mov ecx, ebx
push eax
push str.Missing___
call fcn.0042ce80
mov esi, eax
jmp 0x4187e2
inc dword [ebx + 0x170]
mov esi, 1
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xfc], vtable.TextMem.0
test eax, eax
je 0x418812
cmp byte [ebp - 0xc0], 0
je 0x418808
push eax
call fcn.004843d4
add esp, 4
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xfc], vtable.TextStream.0
test eax, eax
je 0x41882f
push eax
call fcn.004843d4
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc