404c5c:	83 c4 1c             	add    $0x1c,%esp
404c5f:	f7 d8                	neg    %eax
404c61:	1b c0                	sbb    %eax,%eax
404c63:	23 c1                	and    %ecx,%eax
404c65:	5d                   	pop    %ebp
404c66:	c3                   	ret
404c67:	8b ff                	mov    %edi,%edi
404c69:	55                   	push   %ebp
404c6a:	8b ec                	mov    %esp,%ebp
404c6c:	8b 45 14             	mov    0x14(%ebp),%eax
404c6f:	ff 30                	push   (%eax)
404c71:	ff 70 04             	push   0x4(%eax)
404c74:	8b 45 0c             	mov    0xc(%ebp),%eax
404c77:	ff 75 10             	push   0x10(%ebp)
404c7a:	2b 45 08             	sub    0x8(%ebp),%eax
404c7d:	d1 f8                	sar    $1,%eax
404c7f:	50                   	push   %eax
404c80:	ff 75 08             	push   0x8(%ebp)
404c83:	6a 01                	push   $0x1
404c85:	6a 00                	push   $0x0
404c87:	e8 d9 37 00 00       	call   0x408465
404c8c:	8b 45 0c             	mov    0xc(%ebp),%eax
404c8f:	83 c4 1c             	add    $0x1c,%esp
404c92:	5d                   	pop    %ebp
404c93:	c3                   	ret
404c94:	8b ff                	mov    %edi,%edi
404c96:	55                   	push   %ebp
404c97:	8b ec                	mov    %esp,%ebp
404c99:	a1 5c b0 42 00       	mov    0x42b05c,%eax
404c9e:	85 c0                	test   %eax,%eax
404ca0:	75 06                	jne    0x404ca8
404ca2:	5d                   	pop    %ebp
404ca3:	e9 43 13 00 00       	jmp    0x405feb
404ca8:	8b 4d 08             	mov    0x8(%ebp),%ecx
404cab:	48                   	dec    %eax
404cac:	a3 5c b0 42 00       	mov    %eax,0x42b05c
404cb1:	89 0c 85 b0 07 43 00 	mov    %ecx,0x4307b0(,%eax,4)
404cb8:	5d                   	pop    %ebp
404cb9:	c3                   	ret
404cba:	eb 18                	jmp    0x404cd4
404cbc:	8b 0c 85 b0 07 43 00 	mov    0x4307b0(,%eax,4),%ecx
404cc3:	40                   	inc    %eax
404cc4:	a3 5c b0 42 00       	mov    %eax,0x42b05c
404cc9:	85 c9                	test   %ecx,%ecx
404ccb:	74 0c                	je     0x404cd9
404ccd:	ff 14 85 ac 07 43 00 	call   *0x4307ac(,%eax,4)
404cd4:	a1 5c b0 42 00       	mov    0x42b05c,%eax
404cd9:	83 f8 0a             	cmp    $0xa,%eax
404cdc:	72 de                	jb     0x404cbc
404cde:	c3                   	ret
404cdf:	8b ff                	mov    %edi,%edi
404ce1:	55                   	push   %ebp
404ce2:	8b ec                	mov    %esp,%ebp
404ce4:	ff 75 08             	push   0x8(%ebp)
404ce7:	ff 15 88 a0 41 00    	call   *0x41a088
404ced:	5d                   	pop    %ebp
404cee:	c3                   	ret
404cef:	8b ff                	mov    %edi,%edi
404cf1:	55                   	push   %ebp
404cf2:	8b ec                	mov    %esp,%ebp
404cf4:	ff 75 08             	push   0x8(%ebp)
404cf7:	ff 15 8c a0 41 00    	call   *0x41a08c
404cfd:	5d                   	pop    %ebp
404cfe:	c3                   	ret
404cff:	8b ff                	mov    %edi,%edi
404d01:	55                   	push   %ebp
404d02:	8b ec                	mov    %esp,%ebp
404d04:	ff 75 08             	push   0x8(%ebp)
404d07:	ff 15 90 a0 41 00    	call   *0x41a090
404d0d:	5d                   	pop    %ebp
404d0e:	c3                   	ret
404d0f:	8b ff                	mov    %edi,%edi
404d11:	55                   	push   %ebp
404d12:	8b ec                	mov    %esp,%ebp
404d14:	ff 75 08             	push   0x8(%ebp)
404d17:	ff 15 94 a0 41 00    	call   *0x41a094
404d1d:	5d                   	pop    %ebp
404d1e:	c3                   	ret
404d1f:	8b ff                	mov    %edi,%edi
404d21:	55                   	push   %ebp
404d22:	8b ec                	mov    %esp,%ebp
404d24:	8b 45 14             	mov    0x14(%ebp),%eax
404d27:	56                   	push   %esi
404d28:	57                   	push   %edi
404d29:	33 ff                	xor    %edi,%edi
404d2b:	3b c7                	cmp    %edi,%eax
404d2d:	74 47                	je     0x404d76
404d2f:	39 7d 08             	cmp    %edi,0x8(%ebp)
404d32:	75 1b                	jne    0x404d4f
404d34:	e8 9c 0d 00 00       	call   0x405ad5
404d39:	6a 16                	push   $0x16
404d3b:	5e                   	pop    %esi
404d3c:	89 30                	mov    %esi,(%eax)
404d3e:	57                   	push   %edi
404d3f:	57                   	push   %edi
404d40:	57                   	push   %edi
404d41:	57                   	push   %edi
404d42:	57                   	push   %edi
404d43:	e8 dd 04 00 00       	call   0x405225
404d48:	83 c4 14             	add    $0x14,%esp
404d4b:	8b c6                	mov    %esi,%eax
404d4d:	eb 29                	jmp    0x404d78
404d4f:	39 7d 10             	cmp    %edi,0x10(%ebp)
404d52:	74 e0                	je     0x404d34
404d54:	39 45 0c             	cmp    %eax,0xc(%ebp)
404d57:	73 0e                	jae    0x404d67
404d59:	e8 77 0d 00 00       	call   0x405ad5
404d5e:	6a 22                	push   $0x22
404d60:	59                   	pop    %ecx
404d61:	89 08                	mov    %ecx,(%eax)
404d63:	8b f1                	mov    %ecx,%esi
404d65:	eb d7                	jmp    0x404d3e
404d67:	50                   	push   %eax
404d68:	ff 75 10             	push   0x10(%ebp)
404d6b:	ff 75 08             	push   0x8(%ebp)
404d6e:	e8 3d 37 00 00       	call   0x4084b0
404d73:	83 c4 0c             	add    $0xc,%esp
404d76:	33 c0                	xor    %eax,%eax
404d78:	5f                   	pop    %edi
404d79:	5e                   	pop    %esi
404d7a:	5d                   	pop    %ebp
404d7b:	c3                   	ret
404d7c:	8b ff                	mov    %edi,%edi
404d7e:	55                   	push   %ebp
404d7f:	8b ec                	mov    %esp,%ebp
404d81:	83 ec 20             	sub    $0x20,%esp
404d84:	53                   	push   %ebx
404d85:	33 db                	xor    %ebx,%ebx
404d87:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
404d8a:	75 1d                	jne    0x404da9
404d8c:	e8 44 0d 00 00       	call   0x405ad5
404d91:	53                   	push   %ebx
404d92:	53                   	push   %ebx
404d93:	53                   	push   %ebx
404d94:	53                   	push   %ebx
404d95:	53                   	push   %ebx
404d96:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404d9c:	e8 84 04 00 00       	call   0x405225
404da1:	83 c4 14             	add    $0x14,%esp
404da4:	83 c8 ff             	or     $0xffffffff,%eax
404da7:	eb 4d                	jmp    0x404df6
404da9:	8b 45 08             	mov    0x8(%ebp),%eax
404dac:	3b c3                	cmp    %ebx,%eax
404dae:	74 dc                	je     0x404d8c
404db0:	56                   	push   %esi
404db1:	89 45 e8             	mov    %eax,-0x18(%ebp)
404db4:	89 45 e0             	mov    %eax,-0x20(%ebp)
404db7:	8d 45 10             	lea    0x10(%ebp),%eax
404dba:	50                   	push   %eax
404dbb:	53                   	push   %ebx
404dbc:	ff 75 0c             	push   0xc(%ebp)
404dbf:	8d 45 e0             	lea    -0x20(%ebp),%eax
404dc2:	50                   	push   %eax
404dc3:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
404dca:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
404dd1:	e8 49 3c 00 00       	call   0x408a1f
404dd6:	83 c4 10             	add    $0x10,%esp
404dd9:	ff 4d e4             	decl   -0x1c(%ebp)
404ddc:	8b f0                	mov    %eax,%esi
404dde:	78 07                	js     0x404de7
404de0:	8b 45 e0             	mov    -0x20(%ebp),%eax
404de3:	88 18                	mov    %bl,(%eax)
404de5:	eb 0c                	jmp    0x404df3
404de7:	8d 45 e0             	lea    -0x20(%ebp),%eax
404dea:	50                   	push   %eax
404deb:	53                   	push   %ebx
404dec:	e8 24 3a 00 00       	call   0x408815
404df1:	59                   	pop    %ecx
404df2:	59                   	pop    %ecx
404df3:	8b c6                	mov    %esi,%eax
404df5:	5e                   	pop    %esi
404df6:	5b                   	pop    %ebx
404df7:	c9                   	leave
404df8:	c3                   	ret
404df9:	8b ff                	mov    %edi,%edi
404dfb:	55                   	push   %ebp
404dfc:	8b ec                	mov    %esp,%ebp
404dfe:	83 ec 20             	sub    $0x20,%esp
404e01:	53                   	push   %ebx
404e02:	33 db                	xor    %ebx,%ebx
404e04:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
404e07:	75 1d                	jne    0x404e26
404e09:	e8 c7 0c 00 00       	call   0x405ad5
404e0e:	53                   	push   %ebx
404e0f:	53                   	push   %ebx
404e10:	53                   	push   %ebx
404e11:	53                   	push   %ebx
404e12:	53                   	push   %ebx
404e13:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404e19:	e8 07 04 00 00       	call   0x405225
404e1e:	83 c4 14             	add    $0x14,%esp
404e21:	83 c8 ff             	or     $0xffffffff,%eax
404e24:	eb 4e                	jmp    0x404e74
404e26:	8b 45 08             	mov    0x8(%ebp),%eax
404e29:	3b c3                	cmp    %ebx,%eax
404e2b:	74 dc                	je     0x404e09
404e2d:	56                   	push   %esi
404e2e:	ff 75 14             	push   0x14(%ebp)
404e31:	89 45 e8             	mov    %eax,-0x18(%ebp)
404e34:	ff 75 10             	push   0x10(%ebp)
404e37:	89 45 e0             	mov    %eax,-0x20(%ebp)
404e3a:	ff 75 0c             	push   0xc(%ebp)
404e3d:	8d 45 e0             	lea    -0x20(%ebp),%eax
404e40:	50                   	push   %eax
404e41:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
404e48:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
404e4f:	e8 cb 3b 00 00       	call   0x408a1f
404e54:	83 c4 10             	add    $0x10,%esp
404e57:	ff 4d e4             	decl   -0x1c(%ebp)
404e5a:	8b f0                	mov    %eax,%esi
404e5c:	78 07                	js     0x404e65
404e5e:	8b 45 e0             	mov    -0x20(%ebp),%eax
404e61:	88 18                	mov    %bl,(%eax)
404e63:	eb 0c                	jmp    0x404e71
404e65:	8d 45 e0             	lea    -0x20(%ebp),%eax
404e68:	50                   	push   %eax
404e69:	53                   	push   %ebx
404e6a:	e8 a6 39 00 00       	call   0x408815
404e6f:	59                   	pop    %ecx
404e70:	59                   	pop    %ecx
404e71:	8b c6                	mov    %esi,%eax
404e73:	5e                   	pop    %esi
404e74:	5b                   	pop    %ebx
404e75:	c9                   	leave
404e76:	c3                   	ret
404e77:	8b ff                	mov    %edi,%edi
404e79:	55                   	push   %ebp
404e7a:	8b ec                	mov    %esp,%ebp
404e7c:	ff 75 10             	push   0x10(%ebp)
404e7f:	6a 00                	push   $0x0
404e81:	ff 75 0c             	push   0xc(%ebp)
404e84:	ff 75 08             	push   0x8(%ebp)
404e87:	e8 6d ff ff ff       	call   0x404df9
404e8c:	83 c4 10             	add    $0x10,%esp
404e8f:	5d                   	pop    %ebp
404e90:	c3                   	ret
404e91:	8b c1                	mov    %ecx,%eax
404e93:	83 60 04 00          	andl   $0x0,0x4(%eax)
404e97:	83 60 08 00          	andl   $0x0,0x8(%eax)
404e9b:	c7 00 78 a2 41 00    	movl   $0x41a278,(%eax)
404ea1:	c3                   	ret
404ea2:	8b ff                	mov    %edi,%edi
404ea4:	55                   	push   %ebp
404ea5:	8b ec                	mov    %esp,%ebp
404ea7:	53                   	push   %ebx
404ea8:	8b 5d 08             	mov    0x8(%ebp),%ebx
404eab:	56                   	push   %esi
404eac:	57                   	push   %edi
404ead:	8b f9                	mov    %ecx,%edi
404eaf:	c7 07 78 a2 41 00    	movl   $0x41a278,(%edi)
404eb5:	8b 03                	mov    (%ebx),%eax
404eb7:	85 c0                	test   %eax,%eax
404eb9:	74 26                	je     0x404ee1
404ebb:	50                   	push   %eax
404ebc:	e8 9f 10 00 00       	call   0x405f60
404ec1:	8b f0                	mov    %eax,%esi
404ec3:	46                   	inc    %esi
404ec4:	56                   	push   %esi
404ec5:	e8 a4 47 00 00       	call   0x40966e
404eca:	59                   	pop    %ecx
404ecb:	59                   	pop    %ecx
404ecc:	89 47 04             	mov    %eax,0x4(%edi)
404ecf:	85 c0                	test   %eax,%eax
404ed1:	74 12                	je     0x404ee5
404ed3:	ff 33                	push   (%ebx)
404ed5:	56                   	push   %esi
404ed6:	50                   	push   %eax
404ed7:	e8 db 46 00 00       	call   0x4095b7
404edc:	83 c4 0c             	add    $0xc,%esp
404edf:	eb 04                	jmp    0x404ee5
404ee1:	83 67 04 00          	andl   $0x0,0x4(%edi)
404ee5:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
404eec:	8b c7                	mov    %edi,%eax
404eee:	5f                   	pop    %edi
404eef:	5e                   	pop    %esi
404ef0:	5b                   	pop    %ebx
404ef1:	5d                   	pop    %ebp
404ef2:	c2 04 00             	ret    $0x4
404ef5:	8b ff                	mov    %edi,%edi
404ef7:	55                   	push   %ebp
404ef8:	8b ec                	mov    %esp,%ebp
404efa:	8b c1                	mov    %ecx,%eax
404efc:	8b 4d 08             	mov    0x8(%ebp),%ecx
404eff:	c7 00 78 a2 41 00    	movl   $0x41a278,(%eax)
404f05:	8b 09                	mov    (%ecx),%ecx
404f07:	83 60 08 00          	andl   $0x0,0x8(%eax)
404f0b:	89 48 04             	mov    %ecx,0x4(%eax)
404f0e:	5d                   	pop    %ebp
404f0f:	c2 08 00             	ret    $0x8
404f12:	8b ff                	mov    %edi,%edi
404f14:	55                   	push   %ebp
404f15:	8b ec                	mov    %esp,%ebp
404f17:	53                   	push   %ebx
404f18:	8b 5d 08             	mov    0x8(%ebp),%ebx
404f1b:	56                   	push   %esi
404f1c:	8b f1                	mov    %ecx,%esi
404f1e:	c7 06 78 a2 41 00    	movl   $0x41a278,(%esi)
404f24:	8b 43 08             	mov    0x8(%ebx),%eax
404f27:	89 46 08             	mov    %eax,0x8(%esi)
404f2a:	85 c0                	test   %eax,%eax
404f2c:	8b 43 04             	mov    0x4(%ebx),%eax
404f2f:	57                   	push   %edi
404f30:	74 31                	je     0x404f63
404f32:	85 c0                	test   %eax,%eax
404f34:	74 27                	je     0x404f5d
404f36:	50                   	push   %eax
404f37:	e8 24 10 00 00       	call   0x405f60
404f3c:	8b f8                	mov    %eax,%edi
404f3e:	47                   	inc    %edi
404f3f:	57                   	push   %edi
404f40:	e8 29 47 00 00       	call   0x40966e
404f45:	59                   	pop    %ecx
404f46:	59                   	pop    %ecx
404f47:	89 46 04             	mov    %eax,0x4(%esi)
404f4a:	85 c0                	test   %eax,%eax
404f4c:	74 18                	je     0x404f66
404f4e:	ff 73 04             	push   0x4(%ebx)
404f51:	57                   	push   %edi
404f52:	50                   	push   %eax
404f53:	e8 5f 46 00 00       	call   0x4095b7
404f58:	83 c4 0c             	add    $0xc,%esp
404f5b:	eb 09                	jmp    0x404f66
404f5d:	83 66 04 00          	andl   $0x0,0x4(%esi)
404f61:	eb 03                	jmp    0x404f66
404f63:	89 46 04             	mov    %eax,0x4(%esi)
404f66:	5f                   	pop    %edi
404f67:	8b c6                	mov    %esi,%eax
404f69:	5e                   	pop    %esi
404f6a:	5b                   	pop    %ebx
404f6b:	5d                   	pop    %ebp
404f6c:	c2 04 00             	ret    $0x4
404f6f:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
404f73:	c7 01 78 a2 41 00    	movl   $0x41a278,(%ecx)
404f79:	74 09                	je     0x404f84
404f7b:	ff 71 04             	push   0x4(%ecx)
404f7e:	e8 9d 00 00 00       	call   0x405020
404f83:	59                   	pop    %ecx
404f84:	c3                   	ret
404f85:	8b 41 04             	mov    0x4(%ecx),%eax
404f88:	85 c0                	test   %eax,%eax
404f8a:	75 05                	jne    0x404f91
404f8c:	b8 80 a2 41 00       	mov    $0x41a280,%eax
404f91:	c3                   	ret
404f92:	8b ff                	mov    %edi,%edi
404f94:	55                   	push   %ebp
404f95:	8b ec                	mov    %esp,%ebp
404f97:	56                   	push   %esi
404f98:	8d 45 08             	lea    0x8(%ebp),%eax
404f9b:	50                   	push   %eax
404f9c:	8b f1                	mov    %ecx,%esi