41194d:	0f 84 cc 00 00 00    	je     0x411a1f
411953:	3b f0                	cmp    %eax,%esi
411955:	0f 8f c2 00 00 00    	jg     0x411a1d
41195b:	33 c9                	xor    %ecx,%ecx
41195d:	51                   	push   %ecx
41195e:	51                   	push   %ecx
41195f:	51                   	push   %ecx
411960:	50                   	push   %eax
411961:	ff 75 1c             	push   0x1c(%ebp)
411964:	57                   	push   %edi
411965:	53                   	push   %ebx
411966:	ff 75 10             	push   0x10(%ebp)
411969:	ff 75 0c             	push   0xc(%ebp)
41196c:	e8 39 a7 ff ff       	call   0x40c0aa
411971:	8b f0                	mov    %eax,%esi
411973:	85 f6                	test   %esi,%esi
411975:	0f 85 a4 00 00 00    	jne    0x411a1f
41197b:	e9 9d 00 00 00       	jmp    0x411a1d
411980:	8d 14 36             	lea    (%esi,%esi,1),%edx
411983:	8d 4a 08             	lea    0x8(%edx),%ecx
411986:	3b d1                	cmp    %ecx,%edx
411988:	1b c0                	sbb    %eax,%eax
41198a:	85 c1                	test   %eax,%ecx
41198c:	74 4a                	je     0x4119d8
41198e:	8d 4a 08             	lea    0x8(%edx),%ecx
411991:	3b d1                	cmp    %ecx,%edx
411993:	1b c0                	sbb    %eax,%eax
411995:	23 c1                	and    %ecx,%eax
411997:	8d 4a 08             	lea    0x8(%edx),%ecx
41199a:	3d 00 04 00 00       	cmp    $0x400,%eax
41199f:	77 19                	ja     0x4119ba
4119a1:	3b d1                	cmp    %ecx,%edx
4119a3:	1b c0                	sbb    %eax,%eax
4119a5:	23 c1                	and    %ecx,%eax
4119a7:	e8 24 6a 00 00       	call   0x4183d0
4119ac:	8b fc                	mov    %esp,%edi
4119ae:	85 ff                	test   %edi,%edi
4119b0:	74 64                	je     0x411a16
4119b2:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
4119b8:	eb 19                	jmp    0x4119d3
4119ba:	3b d1                	cmp    %ecx,%edx
4119bc:	1b c0                	sbb    %eax,%eax
4119be:	23 c1                	and    %ecx,%eax
4119c0:	50                   	push   %eax
4119c1:	e8 98 7e ff ff       	call   0x40985e
4119c6:	8b f8                	mov    %eax,%edi
4119c8:	59                   	pop    %ecx
4119c9:	85 ff                	test   %edi,%edi
4119cb:	74 49                	je     0x411a16
4119cd:	c7 07 dd dd 00 00    	movl   $0xdddd,(%edi)
4119d3:	83 c7 08             	add    $0x8,%edi
4119d6:	eb 02                	jmp    0x4119da
4119d8:	33 ff                	xor    %edi,%edi
4119da:	85 ff                	test   %edi,%edi
4119dc:	74 38                	je     0x411a16
4119de:	6a 00                	push   $0x0
4119e0:	6a 00                	push   $0x0
4119e2:	6a 00                	push   $0x0
4119e4:	56                   	push   %esi
4119e5:	57                   	push   %edi
4119e6:	ff 75 f8             	push   -0x8(%ebp)
4119e9:	53                   	push   %ebx
4119ea:	ff 75 10             	push   0x10(%ebp)
4119ed:	ff 75 0c             	push   0xc(%ebp)
4119f0:	e8 b5 a6 ff ff       	call   0x40c0aa
4119f5:	85 c0                	test   %eax,%eax
4119f7:	74 1d                	je     0x411a16
4119f9:	33 c0                	xor    %eax,%eax
4119fb:	50                   	push   %eax
4119fc:	50                   	push   %eax
4119fd:	39 45 20             	cmp    %eax,0x20(%ebp)
411a00:	75 3a                	jne    0x411a3c
411a02:	50                   	push   %eax
411a03:	50                   	push   %eax
411a04:	56                   	push   %esi
411a05:	57                   	push   %edi
411a06:	50                   	push   %eax
411a07:	ff 75 24             	push   0x24(%ebp)
411a0a:	ff 15 30 b1 41 00    	call   *0x41b130
411a10:	8b f0                	mov    %eax,%esi
411a12:	85 f6                	test   %esi,%esi
411a14:	75 2e                	jne    0x411a44
411a16:	57                   	push   %edi
411a17:	e8 39 f3 ff ff       	call   0x410d55
411a1c:	59                   	pop    %ecx
411a1d:	33 f6                	xor    %esi,%esi
411a1f:	53                   	push   %ebx
411a20:	e8 30 f3 ff ff       	call   0x410d55
411a25:	59                   	pop    %ecx
411a26:	8b c6                	mov    %esi,%eax
411a28:	8d 65 ec             	lea    -0x14(%ebp),%esp
411a2b:	5f                   	pop    %edi
411a2c:	5e                   	pop    %esi
411a2d:	5b                   	pop    %ebx
411a2e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411a31:	33 cd                	xor    %ebp,%ecx
411a33:	e8 1e 15 ff ff       	call   0x402f56
411a38:	8b e5                	mov    %ebp,%esp
411a3a:	5d                   	pop    %ebp
411a3b:	c3                   	ret
411a3c:	ff 75 20             	push   0x20(%ebp)
411a3f:	ff 75 1c             	push   0x1c(%ebp)
411a42:	eb c0                	jmp    0x411a04
411a44:	57                   	push   %edi
411a45:	e8 0b f3 ff ff       	call   0x410d55
411a4a:	59                   	pop    %ecx
411a4b:	eb d2                	jmp    0x411a1f
411a4d:	8b ff                	mov    %edi,%edi
411a4f:	55                   	push   %ebp
411a50:	8b ec                	mov    %esp,%ebp
411a52:	83 ec 10             	sub    $0x10,%esp
411a55:	ff 75 08             	push   0x8(%ebp)
411a58:	8d 4d f0             	lea    -0x10(%ebp),%ecx
411a5b:	e8 51 3c ff ff       	call   0x4056b1
411a60:	ff 75 28             	push   0x28(%ebp)
411a63:	8d 45 f4             	lea    -0xc(%ebp),%eax
411a66:	ff 75 24             	push   0x24(%ebp)
411a69:	ff 75 20             	push   0x20(%ebp)
411a6c:	ff 75 1c             	push   0x1c(%ebp)
411a6f:	ff 75 18             	push   0x18(%ebp)
411a72:	ff 75 14             	push   0x14(%ebp)
411a75:	ff 75 10             	push   0x10(%ebp)
411a78:	ff 75 0c             	push   0xc(%ebp)
411a7b:	50                   	push   %eax
411a7c:	e8 af fd ff ff       	call   0x411830
411a81:	83 c4 24             	add    $0x24,%esp
411a84:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
411a88:	74 0a                	je     0x411a94
411a8a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
411a8d:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
411a94:	8b e5                	mov    %ebp,%esp
411a96:	5d                   	pop    %ebp
411a97:	c3                   	ret
411a98:	8b ff                	mov    %edi,%edi
411a9a:	55                   	push   %ebp
411a9b:	8b ec                	mov    %esp,%ebp
411a9d:	8b 55 08             	mov    0x8(%ebp),%edx
411aa0:	56                   	push   %esi
411aa1:	85 d2                	test   %edx,%edx
411aa3:	75 16                	jne    0x411abb
411aa5:	e8 5d 62 ff ff       	call   0x407d07
411aaa:	6a 16                	push   $0x16
411aac:	5e                   	pop    %esi
411aad:	89 30                	mov    %esi,(%eax)
411aaf:	e8 7a 61 ff ff       	call   0x407c2e
411ab4:	8b c6                	mov    %esi,%eax
411ab6:	e9 96 00 00 00       	jmp    0x411b51
411abb:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
411abf:	76 e4                	jbe    0x411aa5
411ac1:	8b 4d 10             	mov    0x10(%ebp),%ecx
411ac4:	c6 02 00             	movb   $0x0,(%edx)
411ac7:	85 c9                	test   %ecx,%ecx
411ac9:	7e 04                	jle    0x411acf
411acb:	8b c1                	mov    %ecx,%eax
411acd:	eb 02                	jmp    0x411ad1
411acf:	33 c0                	xor    %eax,%eax
411ad1:	40                   	inc    %eax
411ad2:	39 45 0c             	cmp    %eax,0xc(%ebp)
411ad5:	77 09                	ja     0x411ae0
411ad7:	e8 2b 62 ff ff       	call   0x407d07
411adc:	6a 22                	push   $0x22
411ade:	eb cc                	jmp    0x411aac
411ae0:	8b 75 14             	mov    0x14(%ebp),%esi
411ae3:	85 f6                	test   %esi,%esi
411ae5:	74 be                	je     0x411aa5
411ae7:	53                   	push   %ebx
411ae8:	8d 5a 01             	lea    0x1(%edx),%ebx
411aeb:	8b c3                	mov    %ebx,%eax
411aed:	57                   	push   %edi
411aee:	8b 7e 08             	mov    0x8(%esi),%edi
411af1:	c6 02 30             	movb   $0x30,(%edx)
411af4:	85 c9                	test   %ecx,%ecx
411af6:	7e 16                	jle    0x411b0e
411af8:	8a 1f                	mov    (%edi),%bl
411afa:	84 db                	test   %bl,%bl
411afc:	74 03                	je     0x411b01
411afe:	47                   	inc    %edi
411aff:	eb 02                	jmp    0x411b03
411b01:	b3 30                	mov    $0x30,%bl
411b03:	88 18                	mov    %bl,(%eax)
411b05:	40                   	inc    %eax
411b06:	49                   	dec    %ecx
411b07:	85 c9                	test   %ecx,%ecx
411b09:	7f ed                	jg     0x411af8
411b0b:	8d 5a 01             	lea    0x1(%edx),%ebx
411b0e:	c6 00 00             	movb   $0x0,(%eax)
411b11:	85 c9                	test   %ecx,%ecx
411b13:	78 12                	js     0x411b27
411b15:	80 3f 35             	cmpb   $0x35,(%edi)
411b18:	7c 0d                	jl     0x411b27
411b1a:	eb 03                	jmp    0x411b1f
411b1c:	c6 00 30             	movb   $0x30,(%eax)
411b1f:	48                   	dec    %eax
411b20:	80 38 39             	cmpb   $0x39,(%eax)
411b23:	74 f7                	je     0x411b1c
411b25:	fe 00                	incb   (%eax)
411b27:	80 3a 31             	cmpb   $0x31,(%edx)
411b2a:	75 05                	jne    0x411b31
411b2c:	ff 46 04             	incl   0x4(%esi)
411b2f:	eb 1c                	jmp    0x411b4d
411b31:	8b cb                	mov    %ebx,%ecx
411b33:	8d 71 01             	lea    0x1(%ecx),%esi
411b36:	8a 01                	mov    (%ecx),%al
411b38:	41                   	inc    %ecx
411b39:	84 c0                	test   %al,%al
411b3b:	75 f9                	jne    0x411b36
411b3d:	2b ce                	sub    %esi,%ecx
411b3f:	8d 41 01             	lea    0x1(%ecx),%eax
411b42:	50                   	push   %eax
411b43:	53                   	push   %ebx
411b44:	52                   	push   %edx
411b45:	e8 56 23 ff ff       	call   0x403ea0
411b4a:	83 c4 0c             	add    $0xc,%esp
411b4d:	5f                   	pop    %edi
411b4e:	33 c0                	xor    %eax,%eax
411b50:	5b                   	pop    %ebx
411b51:	5e                   	pop    %esi
411b52:	5d                   	pop    %ebp
411b53:	c3                   	ret
411b54:	8b ff                	mov    %edi,%edi
411b56:	56                   	push   %esi
411b57:	8b f1                	mov    %ecx,%esi
411b59:	56                   	push   %esi
411b5a:	e8 1e 3f 00 00       	call   0x415a7d
411b5f:	8b 06                	mov    (%esi),%eax
411b61:	83 e0 1f             	and    $0x1f,%eax
411b64:	59                   	pop    %ecx
411b65:	3c 1f                	cmp    $0x1f,%al
411b67:	75 06                	jne    0x411b6f
411b69:	c6 46 08 00          	movb   $0x0,0x8(%esi)
411b6d:	eb 0b                	jmp    0x411b7a
411b6f:	56                   	push   %esi
411b70:	e8 6e 3f 00 00       	call   0x415ae3
411b75:	59                   	pop    %ecx
411b76:	c6 46 08 01          	movb   $0x1,0x8(%esi)
411b7a:	8b c6                	mov    %esi,%eax
411b7c:	5e                   	pop    %esi
411b7d:	c3                   	ret
411b7e:	cc                   	int3
411b7f:	cc                   	int3
411b80:	8b ff                	mov    %edi,%edi
411b82:	55                   	push   %ebp
411b83:	8b ec                	mov    %esp,%ebp
411b85:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
411b8b:	53                   	push   %ebx
411b8c:	8b 5d 08             	mov    0x8(%ebp),%ebx
411b8f:	8b 03                	mov    (%ebx),%eax
411b91:	85 c0                	test   %eax,%eax
411b93:	75 07                	jne    0x411b9c
411b95:	33 d2                	xor    %edx,%edx
411b97:	5b                   	pop    %ebx
411b98:	8b e5                	mov    %ebp,%esp
411b9a:	5d                   	pop    %ebp
411b9b:	c3                   	ret
411b9c:	57                   	push   %edi
411b9d:	8b 7d 0c             	mov    0xc(%ebp),%edi
411ba0:	8b 0f                	mov    (%edi),%ecx
411ba2:	85 c9                	test   %ecx,%ecx
411ba4:	75 0a                	jne    0x411bb0
411ba6:	5f                   	pop    %edi
411ba7:	33 c0                	xor    %eax,%eax
411ba9:	33 d2                	xor    %edx,%edx
411bab:	5b                   	pop    %ebx
411bac:	8b e5                	mov    %ebp,%esp
411bae:	5d                   	pop    %ebp
411baf:	c3                   	ret
411bb0:	56                   	push   %esi
411bb1:	8d 70 ff             	lea    -0x1(%eax),%esi
411bb4:	8d 41 ff             	lea    -0x1(%ecx),%eax
411bb7:	89 75 f4             	mov    %esi,-0xc(%ebp)
411bba:	85 c0                	test   %eax,%eax
411bbc:	0f 85 2d 01 00 00    	jne    0x411cef
411bc2:	8b 4f 04             	mov    0x4(%edi),%ecx
411bc5:	89 4d d8             	mov    %ecx,-0x28(%ebp)
411bc8:	83 f9 01             	cmp    $0x1,%ecx
411bcb:	75 2f                	jne    0x411bfc
411bcd:	8b 73 04             	mov    0x4(%ebx),%esi
411bd0:	8d 4b 04             	lea    0x4(%ebx),%ecx
411bd3:	50                   	push   %eax
411bd4:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
411bda:	89 03                	mov    %eax,(%ebx)
411bdc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
411be2:	50                   	push   %eax
411be3:	68 cc 01 00 00       	push   $0x1cc
411be8:	51                   	push   %ecx
411be9:	e8 c6 df ff ff       	call   0x40fbb4
411bee:	83 c4 10             	add    $0x10,%esp
411bf1:	8b c6                	mov    %esi,%eax
411bf3:	33 d2                	xor    %edx,%edx
411bf5:	5e                   	pop    %esi
411bf6:	5f                   	pop    %edi
411bf7:	5b                   	pop    %ebx
411bf8:	8b e5                	mov    %ebp,%esp
411bfa:	5d                   	pop    %ebp
411bfb:	c3                   	ret
411bfc:	85 f6                	test   %esi,%esi
411bfe:	75 49                	jne    0x411c49
411c00:	8b 73 04             	mov    0x4(%ebx),%esi
411c03:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
411c09:	6a 00                	push   $0x0
411c0b:	50                   	push   %eax
411c0c:	8d 7b 04             	lea    0x4(%ebx),%edi
411c0f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
411c16:	00 00 00
411c19:	68 cc 01 00 00       	push   $0x1cc
411c1e:	57                   	push   %edi
411c1f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
411c25:	e8 8a df ff ff       	call   0x40fbb4
411c2a:	33 d2                	xor    %edx,%edx
411c2c:	8b c6                	mov    %esi,%eax
411c2e:	f7 75 d8             	divl   -0x28(%ebp)
411c31:	83 c4 10             	add    $0x10,%esp
411c34:	33 c9                	xor    %ecx,%ecx
411c36:	3b ca                	cmp    %edx,%ecx
411c38:	89 17                	mov    %edx,(%edi)
411c3a:	1b c9                	sbb    %ecx,%ecx
411c3c:	5e                   	pop    %esi
411c3d:	f7 d9                	neg    %ecx
411c3f:	33 d2                	xor    %edx,%edx
411c41:	5f                   	pop    %edi
411c42:	89 0b                	mov    %ecx,(%ebx)
411c44:	5b                   	pop    %ebx
411c45:	8b e5                	mov    %ebp,%esp
411c47:	5d                   	pop    %ebp
411c48:	c3                   	ret
411c49:	33 ff                	xor    %edi,%edi
411c4b:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
411c52:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
411c59:	89 7d f0             	mov    %edi,-0x10(%ebp)
411c5c:	83 fe ff             	cmp    $0xffffffff,%esi
411c5f:	74 44                	je     0x411ca5
411c61:	8b 45 f4             	mov    -0xc(%ebp),%eax
411c64:	46                   	inc    %esi
411c65:	40                   	inc    %eax
411c66:	89 45 e4             	mov    %eax,-0x1c(%ebp)
411c69:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
411c6c:	8d 64 24 00          	lea    0x0(%esp),%esp
411c70:	6a 00                	push   $0x0
411c72:	51                   	push   %ecx
411c73:	33 c0                	xor    %eax,%eax
411c75:	0b 06                	or     (%esi),%eax
411c77:	57                   	push   %edi
411c78:	50                   	push   %eax
411c79:	e8 72 63 00 00       	call   0x417ff0
411c7e:	89 55 c0             	mov    %edx,-0x40(%ebp)
411c81:	8d 76 fc             	lea    -0x4(%esi),%esi
411c84:	33 d2                	xor    %edx,%edx
411c86:	89 5d f0             	mov    %ebx,-0x10(%ebp)
411c89:	8b f9                	mov    %ecx,%edi
411c8b:	03 d0                	add    %eax,%edx