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
408b2f:	59                   	pop    %ecx
408b30:	85 c0                	test   %eax,%eax
408b32:	75 f0                	jne    0x408b24
408b34:	56                   	push   %esi
408b35:	e8 ea 0c 00 00       	call   0x409824
408b3a:	59                   	pop    %ecx
408b3b:	5f                   	pop    %edi
408b3c:	5e                   	pop    %esi
408b3d:	5d                   	pop    %ebp
408b3e:	c3                   	ret
408b3f:	8b ff                	mov    %edi,%edi
408b41:	57                   	push   %edi
408b42:	8b 3d 50 41 42 00    	mov    0x424150,%edi
408b48:	85 ff                	test   %edi,%edi
408b4a:	75 05                	jne    0x408b51
408b4c:	83 c8 ff             	or     $0xffffffff,%eax
408b4f:	5f                   	pop    %edi
408b50:	c3                   	ret
408b51:	53                   	push   %ebx
408b52:	56                   	push   %esi
408b53:	33 db                	xor    %ebx,%ebx
408b55:	eb 51                	jmp    0x408ba8
408b57:	53                   	push   %ebx
408b58:	53                   	push   %ebx
408b59:	53                   	push   %ebx
408b5a:	53                   	push   %ebx
408b5b:	6a ff                	push   $0xffffffff
408b5d:	ff 37                	push   (%edi)
408b5f:	53                   	push   %ebx
408b60:	53                   	push   %ebx
408b61:	ff 15 30 b1 41 00    	call   *0x41b130
408b67:	8b d8                	mov    %eax,%ebx
408b69:	85 db                	test   %ebx,%ebx
408b6b:	74 4c                	je     0x408bb9
408b6d:	6a 01                	push   $0x1
408b6f:	53                   	push   %ebx
408b70:	e8 37 0d 00 00       	call   0x4098ac
408b75:	8b f0                	mov    %eax,%esi
408b77:	59                   	pop    %ecx
408b78:	59                   	pop    %ecx
408b79:	85 f6                	test   %esi,%esi
408b7b:	74 35                	je     0x408bb2
408b7d:	6a 00                	push   $0x0
408b7f:	6a 00                	push   $0x0
408b81:	53                   	push   %ebx
408b82:	56                   	push   %esi
408b83:	6a ff                	push   $0xffffffff
408b85:	ff 37                	push   (%edi)
408b87:	33 db                	xor    %ebx,%ebx
408b89:	53                   	push   %ebx
408b8a:	53                   	push   %ebx
408b8b:	ff 15 30 b1 41 00    	call   *0x41b130
408b91:	85 c0                	test   %eax,%eax
408b93:	74 1d                	je     0x408bb2
408b95:	53                   	push   %ebx
408b96:	56                   	push   %esi
408b97:	e8 35 78 00 00       	call   0x4103d1
408b9c:	53                   	push   %ebx
408b9d:	e8 82 0c 00 00       	call   0x409824
408ba2:	83 c4 0c             	add    $0xc,%esp
408ba5:	83 c7 04             	add    $0x4,%edi
408ba8:	39 1f                	cmp    %ebx,(%edi)
408baa:	75 ab                	jne    0x408b57
408bac:	33 c0                	xor    %eax,%eax
408bae:	5e                   	pop    %esi
408baf:	5b                   	pop    %ebx
408bb0:	5f                   	pop    %edi
408bb1:	c3                   	ret
408bb2:	56                   	push   %esi
408bb3:	e8 6c 0c 00 00       	call   0x409824
408bb8:	59                   	pop    %ecx
408bb9:	83 c8 ff             	or     $0xffffffff,%eax
408bbc:	eb f0                	jmp    0x408bae
408bbe:	8b ff                	mov    %edi,%edi
408bc0:	57                   	push   %edi
408bc1:	8b 3d 4c 41 42 00    	mov    0x42414c,%edi
408bc7:	85 ff                	test   %edi,%edi
408bc9:	75 05                	jne    0x408bd0
408bcb:	83 c8 ff             	or     $0xffffffff,%eax
408bce:	5f                   	pop    %edi
408bcf:	c3                   	ret
408bd0:	53                   	push   %ebx
408bd1:	56                   	push   %esi
408bd2:	33 db                	xor    %ebx,%ebx
408bd4:	eb 4b                	jmp    0x408c21
408bd6:	53                   	push   %ebx
408bd7:	53                   	push   %ebx
408bd8:	6a ff                	push   $0xffffffff
408bda:	ff 37                	push   (%edi)
408bdc:	53                   	push   %ebx
408bdd:	53                   	push   %ebx
408bde:	ff 15 2c b1 41 00    	call   *0x41b12c
408be4:	8b d8                	mov    %eax,%ebx
408be6:	85 db                	test   %ebx,%ebx
408be8:	74 48                	je     0x408c32
408bea:	6a 02                	push   $0x2
408bec:	53                   	push   %ebx
408bed:	e8 ba 0c 00 00       	call   0x4098ac
408bf2:	8b f0                	mov    %eax,%esi
408bf4:	59                   	pop    %ecx
408bf5:	59                   	pop    %ecx
408bf6:	85 f6                	test   %esi,%esi
408bf8:	74 31                	je     0x408c2b
408bfa:	53                   	push   %ebx
408bfb:	56                   	push   %esi
408bfc:	6a ff                	push   $0xffffffff
408bfe:	ff 37                	push   (%edi)
408c00:	33 db                	xor    %ebx,%ebx
408c02:	53                   	push   %ebx
408c03:	53                   	push   %ebx
408c04:	ff 15 2c b1 41 00    	call   *0x41b12c
408c0a:	85 c0                	test   %eax,%eax
408c0c:	74 1d                	je     0x408c2b
408c0e:	53                   	push   %ebx
408c0f:	56                   	push   %esi
408c10:	e8 c7 77 00 00       	call   0x4103dc
408c15:	53                   	push   %ebx
408c16:	e8 09 0c 00 00       	call   0x409824
408c1b:	83 c4 0c             	add    $0xc,%esp
408c1e:	83 c7 04             	add    $0x4,%edi
408c21:	39 1f                	cmp    %ebx,(%edi)
408c23:	75 b1                	jne    0x408bd6
408c25:	33 c0                	xor    %eax,%eax
408c27:	5e                   	pop    %esi
408c28:	5b                   	pop    %ebx
408c29:	5f                   	pop    %edi
408c2a:	c3                   	ret
408c2b:	56                   	push   %esi
408c2c:	e8 f3 0b 00 00       	call   0x409824
408c31:	59                   	pop    %ecx
408c32:	83 c8 ff             	or     $0xffffffff,%eax
408c35:	eb f0                	jmp    0x408c27
408c37:	8b ff                	mov    %edi,%edi
408c39:	55                   	push   %ebp
408c3a:	8b ec                	mov    %esp,%ebp
408c3c:	51                   	push   %ecx
408c3d:	a1 0c 30 42 00       	mov    0x42300c,%eax
408c42:	33 c5                	xor    %ebp,%eax
408c44:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c47:	56                   	push   %esi
408c48:	8b f1                	mov    %ecx,%esi
408c4a:	57                   	push   %edi
408c4b:	8d 7e 04             	lea    0x4(%esi),%edi
408c4e:	eb 11                	jmp    0x408c61
408c50:	8b 4d 08             	mov    0x8(%ebp),%ecx
408c53:	56                   	push   %esi
408c54:	ff 15 a8 b1 41 00    	call   *0x41b1a8
408c5a:	ff 55 08             	call   *0x8(%ebp)
408c5d:	59                   	pop    %ecx
408c5e:	83 c6 04             	add    $0x4,%esi
408c61:	3b f7                	cmp    %edi,%esi
408c63:	75 eb                	jne    0x408c50
408c65:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408c68:	5f                   	pop    %edi
408c69:	33 cd                	xor    %ebp,%ecx
408c6b:	5e                   	pop    %esi
408c6c:	e8 e5 a2 ff ff       	call   0x402f56
408c71:	8b e5                	mov    %ebp,%esp
408c73:	5d                   	pop    %ebp
408c74:	c2 04 00             	ret    $0x4
408c77:	8b ff                	mov    %edi,%edi
408c79:	55                   	push   %ebp
408c7a:	8b ec                	mov    %esp,%ebp
408c7c:	8b 45 08             	mov    0x8(%ebp),%eax
408c7f:	8b 00                	mov    (%eax),%eax
408c81:	3b 05 58 41 42 00    	cmp    0x424158,%eax
408c87:	74 07                	je     0x408c90
408c89:	50                   	push   %eax
408c8a:	e8 81 fe ff ff       	call   0x408b10
408c8f:	59                   	pop    %ecx
408c90:	5d                   	pop    %ebp
408c91:	c3                   	ret
408c92:	8b ff                	mov    %edi,%edi
408c94:	55                   	push   %ebp
408c95:	8b ec                	mov    %esp,%ebp