404cc1:	8b 15 64 c0 40 00    	mov    0x40c064,%edx
404cc7:	e8 fd 10 00 00       	call   0x405dc9
404ccc:	8b 0d 68 c0 40 00    	mov    0x40c068,%ecx
404cd2:	85 c0                	test   %eax,%eax
404cd4:	a1 6a c0 40 00       	mov    0x40c06a,%eax
404cd9:	74 62                	je     0x404d3d
404cdb:	be ff ff 00 00       	mov    $0xffff,%esi
404ce0:	66 3b ce             	cmp    %si,%cx
404ce3:	75 58                	jne    0x404d3d
404ce5:	66 3b c6             	cmp    %si,%ax
404ce8:	75 53                	jne    0x404d3d
404cea:	be 04 01 00 00       	mov    $0x104,%esi
404cef:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404cf5:	56                   	push   %esi
404cf6:	50                   	push   %eax
404cf7:	ff 35 b4 c0 40 00    	push   0x40c0b4
404cfd:	ff 15 ac f0 40 00    	call   *0x40f0ac
404d03:	85 c0                	test   %eax,%eax
404d05:	0f 84 dd 01 00 00    	je     0x404ee8
404d0b:	3b c6                	cmp    %esi,%eax
404d0d:	0f 84 d5 01 00 00    	je     0x404ee8
404d13:	83 a5 e0 fd ff ff 00 	andl   $0x0,-0x220(%ebp)
404d1a:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
404d20:	50                   	push   %eax
404d21:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404d27:	50                   	push   %eax
404d28:	ff 15 dc f0 40 00    	call   *0x40f0dc
404d2e:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
404d34:	8b f8                	mov    %eax,%edi
404d36:	e8 51 19 00 00       	call   0x40668c
404d3b:	eb 1b                	jmp    0x404d58
404d3d:	8d b5 d8 fd ff ff    	lea    -0x228(%ebp),%esi
404d43:	0f b7 c0             	movzwl %ax,%eax
404d46:	56                   	push   %esi
404d47:	ff 75 08             	push   0x8(%ebp)
404d4a:	50                   	push   %eax
404d4b:	0f b7 c1             	movzwl %cx,%eax
404d4e:	50                   	push   %eax
404d4f:	52                   	push   %edx
404d50:	ff 15 e8 f0 40 00    	call   *0x40f0e8
404d56:	8b f8                	mov    %eax,%edi
404d58:	85 ff                	test   %edi,%edi
404d5a:	0f 88 88 01 00 00    	js     0x404ee8
404d60:	83 a5 e0 fd ff ff 00 	andl   $0x0,-0x220(%ebp)
404d67:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404d6b:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
404d71:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
404d77:	51                   	push   %ecx
404d78:	ff 35 60 c0 40 00    	push   0x40c060
404d7e:	8b 30                	mov    (%eax),%esi
404d80:	50                   	push   %eax
404d81:	8b 76 18             	mov    0x18(%esi),%esi
404d84:	8b ce                	mov    %esi,%ecx
404d86:	ff 15 20 f2 40 00    	call   *0x40f220
404d8c:	ff d6                	call   *%esi
404d8e:	8b f8                	mov    %eax,%edi
404d90:	85 ff                	test   %edi,%edi
404d92:	0f 88 18 01 00 00    	js     0x404eb0
404d98:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404d9e:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
404da4:	85 c0                	test   %eax,%eax
404da6:	74 16                	je     0x404dbe
404da8:	8b 08                	mov    (%eax),%ecx
404daa:	50                   	push   %eax
404dab:	8b 71 04             	mov    0x4(%ecx),%esi
404dae:	8b ce                	mov    %esi,%ecx
404db0:	ff 15 20 f2 40 00    	call   *0x40f220
404db6:	ff d6                	call   *%esi
404db8:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404dbe:	83 a5 dc fd ff ff 00 	andl   $0x0,-0x224(%ebp)
404dc5:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
404dc9:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
404dcf:	8b 30                	mov    (%eax),%esi
404dd1:	51                   	push   %ecx
404dd2:	68 3c 24 40 00       	push   $0x40243c
404dd7:	50                   	push   %eax
404dd8:	8b 36                	mov    (%esi),%esi
404dda:	8b ce                	mov    %esi,%ecx
404ddc:	ff 15 20 f2 40 00    	call   *0x40f220
404de2:	ff d6                	call   *%esi
404de4:	85 c0                	test   %eax,%eax
404de6:	78 65                	js     0x404e4d
404de8:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
404dee:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
404df4:	e8 ee fa ff ff       	call   0x4048e7
404df9:	84 c0                	test   %al,%al
404dfb:	75 50                	jne    0x404e4d
404dfd:	8b 8d e4 fd ff ff    	mov    -0x21c(%ebp),%ecx
404e03:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
404e0a:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
404e10:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
404e16:	85 c0                	test   %eax,%eax
404e18:	74 1f                	je     0x404e39
404e1a:	8b 30                	mov    (%eax),%esi
404e1c:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
404e22:	51                   	push   %ecx
404e23:	68 4c 24 40 00       	push   $0x40244c
404e28:	50                   	push   %eax
404e29:	8b 0e                	mov    (%esi),%ecx
404e2b:	ff 15 20 f2 40 00    	call   *0x40f220
404e31:	ff 16                	call   *(%esi)
404e33:	8b 8d d4 fd ff ff    	mov    -0x22c(%ebp),%ecx
404e39:	85 c9                	test   %ecx,%ecx
404e3b:	74 10                	je     0x404e4d
404e3d:	8b 01                	mov    (%ecx),%eax
404e3f:	51                   	push   %ecx
404e40:	8b 70 08             	mov    0x8(%eax),%esi
404e43:	8b ce                	mov    %esi,%ecx
404e45:	ff 15 20 f2 40 00    	call   *0x40f220
404e4b:	ff d6                	call   *%esi
404e4d:	8b 0d a4 c5 40 00    	mov    0x40c5a4,%ecx
404e53:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
404e59:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
404e60:	51                   	push   %ecx
404e61:	a3 6c c0 40 00       	mov    %eax,0x40c06c
404e66:	8d 41 04             	lea    0x4(%ecx),%eax
404e69:	f7 d9                	neg    %ecx
404e6b:	1b c9                	sbb    %ecx,%ecx
404e6d:	23 c8                	and    %eax,%ecx
404e6f:	e8 20 fb ff ff       	call   0x404994
404e74:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
404e78:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
404e7e:	85 c0                	test   %eax,%eax
404e80:	74 10                	je     0x404e92
404e82:	8b 08                	mov    (%eax),%ecx
404e84:	50                   	push   %eax
404e85:	8b 71 08             	mov    0x8(%ecx),%esi
404e88:	8b ce                	mov    %esi,%ecx
404e8a:	ff 15 20 f2 40 00    	call   *0x40f220
404e90:	ff d6                	call   *%esi
404e92:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404e96:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
404e9c:	85 c0                	test   %eax,%eax
404e9e:	74 10                	je     0x404eb0
404ea0:	8b 08                	mov    (%eax),%ecx
404ea2:	50                   	push   %eax
404ea3:	8b 71 08             	mov    0x8(%ecx),%esi
404ea6:	8b ce                	mov    %esi,%ecx
404ea8:	ff 15 20 f2 40 00    	call   *0x40f220
404eae:	ff d6                	call   *%esi
404eb0:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
404eb6:	50                   	push   %eax
404eb7:	8b 08                	mov    (%eax),%ecx
404eb9:	8b 71 08             	mov    0x8(%ecx),%esi
404ebc:	8b ce                	mov    %esi,%ecx
404ebe:	ff 15 20 f2 40 00    	call   *0x40f220
404ec4:	ff d6                	call   *%esi
404ec6:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404eca:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404ed0:	85 c0                	test   %eax,%eax
404ed2:	74 14                	je     0x404ee8
404ed4:	8b 08                	mov    (%eax),%ecx
404ed6:	50                   	push   %eax
404ed7:	8b 71 08             	mov    0x8(%ecx),%esi
404eda:	8b ce                	mov    %esi,%ecx
404edc:	ff 15 20 f2 40 00    	call   *0x40f220
404ee2:	ff d6                	call   *%esi
404ee4:	eb 02                	jmp    0x404ee8
404ee6:	33 ff                	xor    %edi,%edi
404ee8:	a1 6c c0 40 00       	mov    0x40c06c,%eax
404eed:	85 c0                	test   %eax,%eax
404eef:	74 11                	je     0x404f02
404ef1:	83 3d 74 c0 40 00 00 	cmpl   $0x0,0x40c074
404ef8:	75 08                	jne    0x404f02
404efa:	50                   	push   %eax
404efb:	e8 7e fb ff ff       	call   0x404a7e
404f00:	8b f8                	mov    %eax,%edi
404f02:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
404f08:	ff 15 64 f0 40 00    	call   *0x40f064
404f0e:	8b c7                	mov    %edi,%eax
404f10:	e8 9b 4e 00 00       	call   0x409db0
404f15:	c2 04 00             	ret    $0x4
404f18:	8b ff                	mov    %edi,%edi
404f1a:	55                   	push   %ebp
404f1b:	8b ec                	mov    %esp,%ebp
404f1d:	51                   	push   %ecx
404f1e:	8b c1                	mov    %ecx,%eax
404f20:	56                   	push   %esi
404f21:	57                   	push   %edi
404f22:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f25:	8b 78 2c             	mov    0x2c(%eax),%edi
404f28:	85 ff                	test   %edi,%edi
404f2a:	74 34                	je     0x404f60
404f2c:	eb 2d                	jmp    0x404f5b
404f2e:	8b 4f 10             	mov    0x10(%edi),%ecx
404f31:	85 c9                	test   %ecx,%ecx
404f33:	74 10                	je     0x404f45
404f35:	8b 01                	mov    (%ecx),%eax
404f37:	51                   	push   %ecx
404f38:	8b 70 08             	mov    0x8(%eax),%esi
404f3b:	8b ce                	mov    %esi,%ecx
404f3d:	ff 15 20 f2 40 00    	call   *0x40f220
404f43:	ff d6                	call   *%esi
404f45:	8b 77 20             	mov    0x20(%edi),%esi
404f48:	8b ce                	mov    %esi,%ecx
404f4a:	83 67 10 00          	andl   $0x0,0x10(%edi)
404f4e:	6a 00                	push   $0x0
404f50:	ff 15 20 f2 40 00    	call   *0x40f220
404f56:	ff d6                	call   *%esi
404f58:	83 c7 24             	add    $0x24,%edi
404f5b:	83 3f 00             	cmpl   $0x0,(%edi)
404f5e:	75 ce                	jne    0x404f2e
404f60:	8b 3d f8 c0 40 00    	mov    0x40c0f8,%edi
404f66:	a1 fc c0 40 00       	mov    0x40c0fc,%eax
404f6b:	eb 1d                	jmp    0x404f8a
404f6d:	8b 37                	mov    (%edi),%esi
404f6f:	85 f6                	test   %esi,%esi
404f71:	74 14                	je     0x404f87
404f73:	8b 76 20             	mov    0x20(%esi),%esi
404f76:	8b ce                	mov    %esi,%ecx
404f78:	6a 00                	push   $0x0
404f7a:	ff 15 20 f2 40 00    	call   *0x40f220
404f80:	ff d6                	call   *%esi
404f82:	a1 fc c0 40 00       	mov    0x40c0fc,%eax
404f87:	83 c7 04             	add    $0x4,%edi
404f8a:	3b f8                	cmp    %eax,%edi
404f8c:	72 df                	jb     0x404f6d
404f8e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404f91:	e8 b3 0a 00 00       	call   0x405a49
404f96:	5f                   	pop    %edi
404f97:	5e                   	pop    %esi
404f98:	c9                   	leave
404f99:	c3                   	ret
404f9a:	8b ff                	mov    %edi,%edi
404f9c:	56                   	push   %esi
404f9d:	8b 71 2c             	mov    0x2c(%ecx),%esi
404fa0:	33 c0                	xor    %eax,%eax
404fa2:	85 f6                	test   %esi,%esi
404fa4:	74 22                	je     0x404fc8
404fa6:	39 06                	cmp    %eax,(%esi)
404fa8:	74 1e                	je     0x404fc8
404faa:	85 c0                	test   %eax,%eax
404fac:	75 4f                	jne    0x404ffd
404fae:	39 46 14             	cmp    %eax,0x14(%esi)
404fb1:	74 09                	je     0x404fbc
404fb3:	ff 76 14             	push   0x14(%esi)
404fb6:	ff 15 14 f1 40 00    	call   *0x40f114
404fbc:	83 c6 24             	add    $0x24,%esi
404fbf:	83 3e 00             	cmpl   $0x0,(%esi)
404fc2:	75 e6                	jne    0x404faa
404fc4:	85 c0                	test   %eax,%eax
404fc6:	75 35                	jne    0x404ffd
404fc8:	8b 35 f8 c0 40 00    	mov    0x40c0f8,%esi
404fce:	33 c0                	xor    %eax,%eax
404fd0:	8b 0d fc c0 40 00    	mov    0x40c0fc,%ecx
404fd6:	eb 21                	jmp    0x404ff9
404fd8:	85 c0                	test   %eax,%eax
404fda:	75 21                	jne    0x404ffd
404fdc:	8b 16                	mov    (%esi),%edx
404fde:	85 d2                	test   %edx,%edx
404fe0:	74 14                	je     0x404ff6
404fe2:	39 42 14             	cmp    %eax,0x14(%edx)
404fe5:	74 0f                	je     0x404ff6
404fe7:	ff 72 14             	push   0x14(%edx)
404fea:	ff 15 14 f1 40 00    	call   *0x40f114
404ff0:	8b 0d fc c0 40 00    	mov    0x40c0fc,%ecx
404ff6:	83 c6 04             	add    $0x4,%esi
404ff9:	3b f1                	cmp    %ecx,%esi
404ffb:	72 db                	jb     0x404fd8
404ffd:	5e                   	pop    %esi
404ffe:	c3                   	ret
404fff:	8b ff                	mov    %edi,%edi
405001:	55                   	push   %ebp
405002:	8b ec                	mov    %esp,%ebp
405004:	51                   	push   %ecx
405005:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405009:	56                   	push   %esi
40500a:	8b f1                	mov    %ecx,%esi
40500c:	57                   	push   %edi
40500d:	8b 7e 08             	mov    0x8(%esi),%edi
405010:	85 ff                	test   %edi,%edi
405012:	75 04                	jne    0x405018
405014:	33 c0                	xor    %eax,%eax
405016:	eb 4a                	jmp    0x405062
405018:	8d 45 fc             	lea    -0x4(%ebp),%eax
40501b:	8b cf                	mov    %edi,%ecx
40501d:	50                   	push   %eax
40501e:	68 24 25 40 00       	push   $0x402524
405023:	ff 76 0c             	push   0xc(%esi)
405026:	ff 15 20 f2 40 00    	call   *0x40f220
40502c:	ff d7                	call   *%edi
40502e:	8b f8                	mov    %eax,%edi
405030:	85 ff                	test   %edi,%edi
405032:	78 15                	js     0x405049
405034:	8d 46 14             	lea    0x14(%esi),%eax
405037:	50                   	push   %eax
405038:	6a 01                	push   $0x1
40503a:	6a 04                	push   $0x4
40503c:	ff 75 fc             	push   -0x4(%ebp)
40503f:	ff 36                	push   (%esi)
405041:	ff 15 18 f1 40 00    	call   *0x40f118
405047:	8b f8                	mov    %eax,%edi
405049:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40504c:	85 c9                	test   %ecx,%ecx
40504e:	74 10                	je     0x405060
405050:	8b 01                	mov    (%ecx),%eax
405052:	51                   	push   %ecx
405053:	8b 70 08             	mov    0x8(%eax),%esi
405056:	8b ce                	mov    %esi,%ecx
405058:	ff 15 20 f2 40 00    	call   *0x40f220
40505e:	ff d6                	call   *%esi
405060:	8b c7                	mov    %edi,%eax
405062:	5f                   	pop    %edi
405063:	5e                   	pop    %esi
405064:	c9                   	leave
405065:	c2 04 00             	ret    $0x4
405068:	8b ff                	mov    %edi,%edi
40506a:	56                   	push   %esi
40506b:	8b 71 2c             	mov    0x2c(%ecx),%esi
40506e:	33 c0                	xor    %eax,%eax
405070:	85 f6                	test   %esi,%esi
405072:	74 1c                	je     0x405090
405074:	39 06                	cmp    %eax,(%esi)
405076:	74 18                	je     0x405090
405078:	85 c0                	test   %eax,%eax
40507a:	75 42                	jne    0x4050be
40507c:	51                   	push   %ecx
40507d:	8b ce                	mov    %esi,%ecx
40507f:	e8 7b ff ff ff       	call   0x404fff
405084:	83 c6 24             	add    $0x24,%esi
405087:	83 3e 00             	cmpl   $0x0,(%esi)
40508a:	75 ec                	jne    0x405078
40508c:	85 c0                	test   %eax,%eax
40508e:	75 2e                	jne    0x4050be
405090:	8b 35 f8 c0 40 00    	mov    0x40c0f8,%esi
405096:	33 c0                	xor    %eax,%eax
405098:	8b 15 fc c0 40 00    	mov    0x40c0fc,%edx
40509e:	40                   	inc    %eax
40509f:	eb 19                	jmp    0x4050ba
4050a1:	85 c0                	test   %eax,%eax
4050a3:	78 19                	js     0x4050be
4050a5:	8b 0e                	mov    (%esi),%ecx
4050a7:	85 c9                	test   %ecx,%ecx
4050a9:	74 0c                	je     0x4050b7
4050ab:	51                   	push   %ecx
4050ac:	e8 4e ff ff ff       	call   0x404fff
4050b1:	8b 15 fc c0 40 00    	mov    0x40c0fc,%edx
4050b7:	83 c6 04             	add    $0x4,%esi
4050ba:	3b f2                	cmp    %edx,%esi
4050bc:	72 e3                	jb     0x4050a1
4050be:	5e                   	pop    %esi
4050bf:	c2 08 00             	ret    $0x8
4050c2:	8b ff                	mov    %edi,%edi
4050c4:	55                   	push   %ebp
4050c5:	8b ec                	mov    %esp,%ebp
4050c7:	81 ec 18 02 00 00    	sub    $0x218,%esp
4050cd:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
4050d2:	33 c5                	xor    %ebp,%eax
4050d4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4050d7:	53                   	push   %ebx