408815:	6a 01                	push   $0x1
408817:	50                   	push   %eax
408818:	e8 8f 10 00 00       	call   0x4098ac
40881d:	6a 00                	push   $0x0
40881f:	8b f0                	mov    %eax,%esi
408821:	e8 fe 0f 00 00       	call   0x409824
408826:	83 c4 0c             	add    $0xc,%esp
408829:	8b c6                	mov    %esi,%eax
40882b:	5f                   	pop    %edi
40882c:	5e                   	pop    %esi
40882d:	5d                   	pop    %ebp
40882e:	c3                   	ret
40882f:	8b ff                	mov    %edi,%edi
408831:	55                   	push   %ebp
408832:	8b ec                	mov    %esp,%ebp
408834:	5d                   	pop    %ebp
408835:	e9 fb fc ff ff       	jmp    0x408535
40883a:	a1 4c 41 42 00       	mov    0x42414c,%eax
40883f:	85 c0                	test   %eax,%eax
408841:	75 25                	jne    0x408868
408843:	39 05 50 41 42 00    	cmp    %eax,0x424150
408849:	75 03                	jne    0x40884e
40884b:	33 c0                	xor    %eax,%eax
40884d:	c3                   	ret
40884e:	e8 45 00 00 00       	call   0x408898
408853:	85 c0                	test   %eax,%eax
408855:	75 f4                	jne    0x40884b
408857:	e8 e3 02 00 00       	call   0x408b3f
40885c:	f7 d8                	neg    %eax
40885e:	1b c0                	sbb    %eax,%eax
408860:	f7 d0                	not    %eax
408862:	23 05 4c 41 42 00    	and    0x42414c,%eax
408868:	c3                   	ret
408869:	a1 50 41 42 00       	mov    0x424150,%eax
40886e:	85 c0                	test   %eax,%eax
408870:	75 25                	jne    0x408897
408872:	39 05 4c 41 42 00    	cmp    %eax,0x42414c
408878:	75 03                	jne    0x40887d
40887a:	33 c0                	xor    %eax,%eax
40887c:	c3                   	ret
40887d:	e8 6f 00 00 00       	call   0x4088f1
408882:	85 c0                	test   %eax,%eax
408884:	75 f4                	jne    0x40887a
408886:	e8 33 03 00 00       	call   0x408bbe
40888b:	f7 d8                	neg    %eax
40888d:	1b c0                	sbb    %eax,%eax
40888f:	f7 d0                	not    %eax
408891:	23 05 50 41 42 00    	and    0x424150,%eax
408897:	c3                   	ret
408898:	83 3d 4c 41 42 00 00 	cmpl   $0x0,0x42414c
40889f:	74 03                	je     0x4088a4
4088a1:	33 c0                	xor    %eax,%eax
4088a3:	c3                   	ret
4088a4:	56                   	push   %esi
4088a5:	57                   	push   %edi
4088a6:	e8 58 70 00 00       	call   0x40f903
4088ab:	e8 bc 73 00 00       	call   0x40fc6c
4088b0:	8b f0                	mov    %eax,%esi
4088b2:	85 f6                	test   %esi,%esi
4088b4:	75 05                	jne    0x4088bb
4088b6:	83 cf ff             	or     $0xffffffff,%edi
4088b9:	eb 2a                	jmp    0x4088e5
4088bb:	56                   	push   %esi
4088bc:	e8 84 00 00 00       	call   0x408945
4088c1:	59                   	pop    %ecx
4088c2:	85 c0                	test   %eax,%eax
4088c4:	75 05                	jne    0x4088cb
4088c6:	83 cf ff             	or     $0xffffffff,%edi
4088c9:	eb 12                	jmp    0x4088dd
4088cb:	50                   	push   %eax
4088cc:	b9 4c 41 42 00       	mov    $0x42414c,%ecx
4088d1:	a3 58 41 42 00       	mov    %eax,0x424158
4088d6:	e8 bb 7c 00 00       	call   0x410596
4088db:	33 ff                	xor    %edi,%edi
4088dd:	6a 00                	push   $0x0
4088df:	e8 40 0f 00 00       	call   0x409824
4088e4:	59                   	pop    %ecx
4088e5:	56                   	push   %esi
4088e6:	e8 39 0f 00 00       	call   0x409824
4088eb:	59                   	pop    %ecx
4088ec:	8b c7                	mov    %edi,%eax
4088ee:	5f                   	pop    %edi
4088ef:	5e                   	pop    %esi
4088f0:	c3                   	ret
4088f1:	83 3d 50 41 42 00 00 	cmpl   $0x0,0x424150
4088f8:	74 03                	je     0x4088fd
4088fa:	33 c0                	xor    %eax,%eax
4088fc:	c3                   	ret
4088fd:	56                   	push   %esi
4088fe:	57                   	push   %edi
4088ff:	e8 eb 73 00 00       	call   0x40fcef
408904:	8b f0                	mov    %eax,%esi
408906:	85 f6                	test   %esi,%esi
408908:	75 05                	jne    0x40890f
40890a:	83 cf ff             	or     $0xffffffff,%edi
40890d:	eb 2a                	jmp    0x408939
40890f:	56                   	push   %esi
408910:	e8 01 01 00 00       	call   0x408a16
408915:	59                   	pop    %ecx
408916:	85 c0                	test   %eax,%eax
408918:	75 05                	jne    0x40891f
40891a:	83 cf ff             	or     $0xffffffff,%edi
40891d:	eb 12                	jmp    0x408931
40891f:	50                   	push   %eax
408920:	b9 50 41 42 00       	mov    $0x424150,%ecx
408925:	a3 54 41 42 00       	mov    %eax,0x424154
40892a:	e8 67 7c 00 00       	call   0x410596
40892f:	33 ff                	xor    %edi,%edi
408931:	6a 00                	push   $0x0
408933:	e8 ec 0e 00 00       	call   0x409824
408938:	59                   	pop    %ecx
408939:	56                   	push   %esi
40893a:	e8 e5 0e 00 00       	call   0x409824
40893f:	59                   	pop    %ecx
408940:	8b c7                	mov    %edi,%eax
408942:	5f                   	pop    %edi
408943:	5e                   	pop    %esi
408944:	c3                   	ret
408945:	8b ff                	mov    %edi,%edi
408947:	55                   	push   %ebp
408948:	8b ec                	mov    %esp,%ebp
40894a:	51                   	push   %ecx
40894b:	51                   	push   %ecx
40894c:	53                   	push   %ebx
40894d:	56                   	push   %esi
40894e:	57                   	push   %edi
40894f:	8b 7d 08             	mov    0x8(%ebp),%edi
408952:	33 d2                	xor    %edx,%edx
408954:	8b f7                	mov    %edi,%esi
408956:	8a 07                	mov    (%edi),%al
408958:	eb 18                	jmp    0x408972
40895a:	3c 3d                	cmp    $0x3d,%al
40895c:	74 01                	je     0x40895f
40895e:	42                   	inc    %edx
40895f:	8b ce                	mov    %esi,%ecx
408961:	8d 59 01             	lea    0x1(%ecx),%ebx
408964:	8a 01                	mov    (%ecx),%al
408966:	41                   	inc    %ecx
408967:	84 c0                	test   %al,%al
408969:	75 f9                	jne    0x408964
40896b:	2b cb                	sub    %ebx,%ecx
40896d:	46                   	inc    %esi
40896e:	03 f1                	add    %ecx,%esi
408970:	8a 06                	mov    (%esi),%al
408972:	84 c0                	test   %al,%al
408974:	75 e4                	jne    0x40895a
408976:	8d 42 01             	lea    0x1(%edx),%eax
408979:	6a 04                	push   $0x4
40897b:	50                   	push   %eax
40897c:	e8 2b 0f 00 00       	call   0x4098ac
408981:	8b d8                	mov    %eax,%ebx
408983:	59                   	pop    %ecx
408984:	59                   	pop    %ecx
408985:	85 db                	test   %ebx,%ebx
408987:	74 6d                	je     0x4089f6
408989:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40898c:	eb 52                	jmp    0x4089e0
40898e:	8b cf                	mov    %edi,%ecx
408990:	8d 51 01             	lea    0x1(%ecx),%edx
408993:	8a 01                	mov    (%ecx),%al
408995:	41                   	inc    %ecx
408996:	84 c0                	test   %al,%al
408998:	75 f9                	jne    0x408993
40899a:	2b ca                	sub    %edx,%ecx
40899c:	80 3f 3d             	cmpb   $0x3d,(%edi)
40899f:	8d 41 01             	lea    0x1(%ecx),%eax
4089a2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4089a5:	74 37                	je     0x4089de
4089a7:	6a 01                	push   $0x1
4089a9:	50                   	push   %eax
4089aa:	e8 fd 0e 00 00       	call   0x4098ac
4089af:	8b f0                	mov    %eax,%esi
4089b1:	59                   	pop    %ecx
4089b2:	59                   	pop    %ecx
4089b3:	85 f6                	test   %esi,%esi
4089b5:	74 30                	je     0x4089e7
4089b7:	57                   	push   %edi
4089b8:	ff 75 f8             	push   -0x8(%ebp)
4089bb:	56                   	push   %esi
4089bc:	e8 c6 0d 00 00       	call   0x409787
4089c1:	83 c4 0c             	add    $0xc,%esp
4089c4:	85 c0                	test   %eax,%eax
4089c6:	75 41                	jne    0x408a09
4089c8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4089cb:	6a 00                	push   $0x0
4089cd:	89 30                	mov    %esi,(%eax)
4089cf:	83 c0 04             	add    $0x4,%eax
4089d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4089d5:	e8 4a 0e 00 00       	call   0x409824
4089da:	8b 45 f8             	mov    -0x8(%ebp),%eax
4089dd:	59                   	pop    %ecx
4089de:	03 f8                	add    %eax,%edi
4089e0:	80 3f 00             	cmpb   $0x0,(%edi)
4089e3:	75 a9                	jne    0x40898e
4089e5:	eb 11                	jmp    0x4089f8
4089e7:	53                   	push   %ebx
4089e8:	e8 23 01 00 00       	call   0x408b10
4089ed:	6a 00                	push   $0x0
4089ef:	e8 30 0e 00 00       	call   0x409824
4089f4:	59                   	pop    %ecx
4089f5:	59                   	pop    %ecx
4089f6:	33 db                	xor    %ebx,%ebx
4089f8:	6a 00                	push   $0x0
4089fa:	e8 25 0e 00 00       	call   0x409824
4089ff:	59                   	pop    %ecx
408a00:	5f                   	pop    %edi
408a01:	5e                   	pop    %esi
408a02:	8b c3                	mov    %ebx,%eax
408a04:	5b                   	pop    %ebx
408a05:	8b e5                	mov    %ebp,%esp
408a07:	5d                   	pop    %ebp
408a08:	c3                   	ret
408a09:	33 c0                	xor    %eax,%eax
408a0b:	50                   	push   %eax
408a0c:	50                   	push   %eax
408a0d:	50                   	push   %eax
408a0e:	50                   	push   %eax
408a0f:	50                   	push   %eax
408a10:	e8 46 f2 ff ff       	call   0x407c5b
408a15:	cc                   	int3
408a16:	8b ff                	mov    %edi,%edi
408a18:	55                   	push   %ebp
408a19:	8b ec                	mov    %esp,%ebp
408a1b:	51                   	push   %ecx
408a1c:	51                   	push   %ecx
408a1d:	53                   	push   %ebx
408a1e:	8b 5d 08             	mov    0x8(%ebp),%ebx
408a21:	33 c0                	xor    %eax,%eax
408a23:	89 45 f8             	mov    %eax,-0x8(%ebp)
408a26:	8b d0                	mov    %eax,%edx
408a28:	56                   	push   %esi
408a29:	57                   	push   %edi
408a2a:	0f b7 03             	movzwl (%ebx),%eax
408a2d:	8b f3                	mov    %ebx,%esi
408a2f:	66 85 c0             	test   %ax,%ax
408a32:	74 2f                	je     0x408a63
408a34:	6a 3d                	push   $0x3d
408a36:	5b                   	pop    %ebx
408a37:	66 3b c3             	cmp    %bx,%ax
408a3a:	74 01                	je     0x408a3d
408a3c:	42                   	inc    %edx
408a3d:	8b ce                	mov    %esi,%ecx
408a3f:	8d 79 02             	lea    0x2(%ecx),%edi
408a42:	66 8b 01             	mov    (%ecx),%ax
408a45:	83 c1 02             	add    $0x2,%ecx
408a48:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
408a4c:	75 f4                	jne    0x408a42
408a4e:	2b cf                	sub    %edi,%ecx
408a50:	d1 f9                	sar    $1,%ecx
408a52:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
408a55:	83 c6 02             	add    $0x2,%esi
408a58:	0f b7 06             	movzwl (%esi),%eax
408a5b:	66 85 c0             	test   %ax,%ax
408a5e:	75 d7                	jne    0x408a37
408a60:	8b 5d 08             	mov    0x8(%ebp),%ebx
408a63:	8d 42 01             	lea    0x1(%edx),%eax
408a66:	6a 04                	push   $0x4
408a68:	50                   	push   %eax
408a69:	e8 3e 0e 00 00       	call   0x4098ac
408a6e:	8b f8                	mov    %eax,%edi
408a70:	33 f6                	xor    %esi,%esi
408a72:	59                   	pop    %ecx
408a73:	59                   	pop    %ecx
408a74:	85 ff                	test   %edi,%edi
408a76:	74 79                	je     0x408af1
408a78:	89 7d fc             	mov    %edi,-0x4(%ebp)
408a7b:	eb 5d                	jmp    0x408ada
408a7d:	8b cb                	mov    %ebx,%ecx
408a7f:	8d 51 02             	lea    0x2(%ecx),%edx
408a82:	66 8b 01             	mov    (%ecx),%ax
408a85:	83 c1 02             	add    $0x2,%ecx
408a88:	66 3b c6             	cmp    %si,%ax
408a8b:	75 f5                	jne    0x408a82
408a8d:	2b ca                	sub    %edx,%ecx
408a8f:	d1 f9                	sar    $1,%ecx
408a91:	6a 3d                	push   $0x3d
408a93:	8d 41 01             	lea    0x1(%ecx),%eax
408a96:	59                   	pop    %ecx
408a97:	89 45 f8             	mov    %eax,-0x8(%ebp)
408a9a:	66 39 0b             	cmp    %cx,(%ebx)
408a9d:	74 38                	je     0x408ad7
408a9f:	6a 02                	push   $0x2
408aa1:	50                   	push   %eax
408aa2:	e8 05 0e 00 00       	call   0x4098ac
408aa7:	8b f0                	mov    %eax,%esi
408aa9:	59                   	pop    %ecx
408aaa:	59                   	pop    %ecx
408aab:	85 f6                	test   %esi,%esi
408aad:	74 32                	je     0x408ae1
408aaf:	53                   	push   %ebx
408ab0:	ff 75 f8             	push   -0x8(%ebp)
408ab3:	56                   	push   %esi
408ab4:	e8 c8 f4 ff ff       	call   0x407f81
408ab9:	83 c4 0c             	add    $0xc,%esp
408abc:	85 c0                	test   %eax,%eax
408abe:	75 43                	jne    0x408b03
408ac0:	8b 45 fc             	mov    -0x4(%ebp),%eax
408ac3:	89 30                	mov    %esi,(%eax)
408ac5:	33 f6                	xor    %esi,%esi
408ac7:	83 c0 04             	add    $0x4,%eax
408aca:	56                   	push   %esi
408acb:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ace:	e8 51 0d 00 00       	call   0x409824
408ad3:	8b 45 f8             	mov    -0x8(%ebp),%eax
408ad6:	59                   	pop    %ecx
408ad7:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
408ada:	66 39 33             	cmp    %si,(%ebx)
408add:	75 9e                	jne    0x408a7d
408adf:	eb 12                	jmp    0x408af3
408ae1:	57                   	push   %edi
408ae2:	e8 29 00 00 00       	call   0x408b10
408ae7:	33 f6                	xor    %esi,%esi
408ae9:	56                   	push   %esi
408aea:	e8 35 0d 00 00       	call   0x409824
408aef:	59                   	pop    %ecx
408af0:	59                   	pop    %ecx
408af1:	8b fe                	mov    %esi,%edi
408af3:	56                   	push   %esi
408af4:	e8 2b 0d 00 00       	call   0x409824
408af9:	59                   	pop    %ecx
408afa:	8b c7                	mov    %edi,%eax
408afc:	5f                   	pop    %edi
408afd:	5e                   	pop    %esi
408afe:	5b                   	pop    %ebx
408aff:	8b e5                	mov    %ebp,%esp
408b01:	5d                   	pop    %ebp
408b02:	c3                   	ret
408b03:	33 c0                	xor    %eax,%eax
408b05:	50                   	push   %eax
408b06:	50                   	push   %eax
408b07:	50                   	push   %eax
408b08:	50                   	push   %eax
408b09:	50                   	push   %eax
408b0a:	e8 4c f1 ff ff       	call   0x407c5b
408b0f:	cc                   	int3
408b10:	8b ff                	mov    %edi,%edi
408b12:	55                   	push   %ebp
408b13:	8b ec                	mov    %esp,%ebp
408b15:	56                   	push   %esi
408b16:	8b 75 08             	mov    0x8(%ebp),%esi
408b19:	85 f6                	test   %esi,%esi
408b1b:	74 1f                	je     0x408b3c
408b1d:	8b 06                	mov    (%esi),%eax
408b1f:	57                   	push   %edi
408b20:	8b fe                	mov    %esi,%edi
408b22:	eb 0c                	jmp    0x408b30
408b24:	50                   	push   %eax
408b25:	e8 fa 0c 00 00       	call   0x409824
408b2a:	8d 7f 04             	lea    0x4(%edi),%edi
408b2d:	8b 07                	mov    (%edi),%eax