402d3c:	39 45 10             	cmp    %eax,0x10(%ebp)
402d3f:	8b f1                	mov    %ecx,%esi
402d41:	89 75 ec             	mov    %esi,-0x14(%ebp)
402d44:	89 45 f0             	mov    %eax,-0x10(%ebp)
402d47:	74 1a                	je     0x402d63
402d49:	c7 06 f0 d1 40 00    	movl   $0x40d1f0,(%esi)
402d4f:	89 46 2c             	mov    %eax,0x2c(%esi)
402d52:	c7 46 08 e4 d1 40 00 	movl   $0x40d1e4,0x8(%esi)
402d59:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402d60:	89 45 fc             	mov    %eax,-0x4(%ebp)
402d63:	89 46 04             	mov    %eax,0x4(%esi)
402d66:	8b 06                	mov    (%esi),%eax
402d68:	ff 75 0c             	push   0xc(%ebp)
402d6b:	8b 40 04             	mov    0x4(%eax),%eax
402d6e:	ff 75 08             	push   0x8(%ebp)
402d71:	c7 04 30 d4 d1 40 00 	movl   $0x40d1d4,(%eax,%esi,1)
402d78:	8b 06                	mov    (%esi),%eax
402d7a:	8b 48 04             	mov    0x4(%eax),%ecx
402d7d:	03 ce                	add    %esi,%ecx
402d7f:	e8 96 08 00 00       	call   0x40361a
402d84:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402d87:	8b c6                	mov    %esi,%eax
402d89:	5e                   	pop    %esi
402d8a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402d91:	c9                   	leave
402d92:	c2 0c 00             	ret    $0xc
402d95:	b8 26 c5 40 00       	mov    $0x40c526,%eax
402d9a:	e8 a1 2f 00 00       	call   0x405d40
402d9f:	51                   	push   %ecx
402da0:	51                   	push   %ecx
402da1:	56                   	push   %esi
402da2:	33 c0                	xor    %eax,%eax
402da4:	39 45 0c             	cmp    %eax,0xc(%ebp)
402da7:	8b f1                	mov    %ecx,%esi
402da9:	89 75 ec             	mov    %esi,-0x14(%ebp)
402dac:	89 45 f0             	mov    %eax,-0x10(%ebp)
402daf:	74 1a                	je     0x402dcb
402db1:	c7 06 f0 d1 40 00    	movl   $0x40d1f0,(%esi)
402db7:	89 46 2c             	mov    %eax,0x2c(%esi)
402dba:	c7 46 08 e4 d1 40 00 	movl   $0x40d1e4,0x8(%esi)
402dc1:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402dc8:	89 45 fc             	mov    %eax,-0x4(%ebp)
402dcb:	8b 06                	mov    (%esi),%eax
402dcd:	8b 40 04             	mov    0x4(%eax),%eax
402dd0:	c7 04 30 d4 d1 40 00 	movl   $0x40d1d4,(%eax,%esi,1)
402dd7:	8b 06                	mov    (%esi),%eax
402dd9:	8b 48 04             	mov    0x4(%eax),%ecx
402ddc:	03 ce                	add    %esi,%ecx
402dde:	e8 4f 1d 00 00       	call   0x404b32
402de3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402de6:	8b c6                	mov    %esi,%eax
402de8:	5e                   	pop    %esi
402de9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402df0:	c9                   	leave
402df1:	c2 08 00             	ret    $0x8
402df4:	b8 4e c5 40 00       	mov    $0x40c54e,%eax
402df9:	e8 42 2f 00 00       	call   0x405d40
402dfe:	51                   	push   %ecx
402dff:	56                   	push   %esi
402e00:	8b f1                	mov    %ecx,%esi
402e02:	89 75 f0             	mov    %esi,-0x10(%ebp)
402e05:	8d 4e 34             	lea    0x34(%esi),%ecx
402e08:	e8 47 00 00 00       	call   0x402e54
402e0d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402e11:	8b ce                	mov    %esi,%ecx
402e13:	c7 06 34 d2 40 00    	movl   $0x40d234,(%esi)
402e19:	e8 5b 0a 00 00       	call   0x403879
402e1e:	8d 4e 4c             	lea    0x4c(%esi),%ecx
402e21:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402e28:	e8 27 00 00 00       	call   0x402e54
402e2d:	6a 00                	push   $0x0
402e2f:	8b ce                	mov    %esi,%ecx
402e31:	ff 75 08             	push   0x8(%ebp)
402e34:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
402e38:	c7 06 fc d1 40 00    	movl   $0x40d1fc,(%esi)
402e3e:	e8 a8 08 00 00       	call   0x4036eb
402e43:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402e46:	8b c6                	mov    %esi,%eax
402e48:	5e                   	pop    %esi
402e49:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402e50:	c9                   	leave
402e51:	c2 04 00             	ret    $0x4
402e54:	55                   	push   %ebp
402e55:	8b ec                	mov    %esp,%ebp
402e57:	51                   	push   %ecx
402e58:	56                   	push   %esi
402e59:	8b f1                	mov    %ecx,%esi
402e5b:	e8 91 1e 00 00       	call   0x404cf1
402e60:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e63:	89 06                	mov    %eax,(%esi)
402e65:	e8 1b 19 00 00       	call   0x404785
402e6a:	8b 0d b8 17 41 00    	mov    0x4117b8,%ecx
402e70:	e8 0d 00 00 00       	call   0x402e82
402e75:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e78:	e8 a4 19 00 00       	call   0x404821
402e7d:	8b c6                	mov    %esi,%eax
402e7f:	5e                   	pop    %esi
402e80:	c9                   	leave
402e81:	c3                   	ret
402e82:	55                   	push   %ebp
402e83:	8b ec                	mov    %esp,%ebp
402e85:	51                   	push   %ecx
402e86:	56                   	push   %esi
402e87:	8b f1                	mov    %ecx,%esi
402e89:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e8c:	e8 f4 18 00 00       	call   0x404785
402e91:	8b 46 04             	mov    0x4(%esi),%eax
402e94:	83 f8 ff             	cmp    $0xffffffff,%eax
402e97:	73 04                	jae    0x402e9d
402e99:	40                   	inc    %eax
402e9a:	89 46 04             	mov    %eax,0x4(%esi)
402e9d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ea0:	e8 7c 19 00 00       	call   0x404821
402ea5:	5e                   	pop    %esi
402ea6:	c9                   	leave
402ea7:	c3                   	ret
402ea8:	8b 09                	mov    (%ecx),%ecx
402eaa:	85 c9                	test   %ecx,%ecx
402eac:	74 11                	je     0x402ebf
402eae:	e8 0d 00 00 00       	call   0x402ec0
402eb3:	85 c0                	test   %eax,%eax
402eb5:	74 08                	je     0x402ebf
402eb7:	8b 10                	mov    (%eax),%edx
402eb9:	6a 01                	push   $0x1
402ebb:	8b c8                	mov    %eax,%ecx
402ebd:	ff 12                	call   *(%edx)
402ebf:	c3                   	ret
402ec0:	55                   	push   %ebp
402ec1:	8b ec                	mov    %esp,%ebp
402ec3:	51                   	push   %ecx
402ec4:	56                   	push   %esi
402ec5:	57                   	push   %edi
402ec6:	8b f9                	mov    %ecx,%edi
402ec8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ecb:	e8 b5 18 00 00       	call   0x404785
402ed0:	8b 47 04             	mov    0x4(%edi),%eax
402ed3:	85 c0                	test   %eax,%eax
402ed5:	76 09                	jbe    0x402ee0
402ed7:	83 f8 ff             	cmp    $0xffffffff,%eax
402eda:	73 04                	jae    0x402ee0
402edc:	48                   	dec    %eax
402edd:	89 47 04             	mov    %eax,0x4(%edi)
402ee0:	8b 77 04             	mov    0x4(%edi),%esi
402ee3:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ee6:	f7 de                	neg    %esi
402ee8:	1b f6                	sbb    %esi,%esi
402eea:	f7 d6                	not    %esi
402eec:	23 f7                	and    %edi,%esi
402eee:	e8 2e 19 00 00       	call   0x404821
402ef3:	8b c6                	mov    %esi,%eax
402ef5:	5f                   	pop    %edi
402ef6:	5e                   	pop    %esi
402ef7:	c9                   	leave
402ef8:	c3                   	ret
402ef9:	c7 01 34 d2 40 00    	movl   $0x40d234,(%ecx)
402eff:	83 c1 34             	add    $0x34,%ecx
402f02:	e9 a1 ff ff ff       	jmp    0x402ea8
402f07:	83 c8 ff             	or     $0xffffffff,%eax
402f0a:	c2 04 00             	ret    $0x4
402f0d:	83 c8 ff             	or     $0xffffffff,%eax
402f10:	c3                   	ret
402f11:	56                   	push   %esi
402f12:	8b f1                	mov    %ecx,%esi
402f14:	8b 06                	mov    (%esi),%eax
402f16:	ff 50 10             	call   *0x10(%eax)
402f19:	83 f8 ff             	cmp    $0xffffffff,%eax
402f1c:	75 04                	jne    0x402f22
402f1e:	0b c0                	or     %eax,%eax
402f20:	5e                   	pop    %esi
402f21:	c3                   	ret
402f22:	8b ce                	mov    %esi,%ecx
402f24:	e8 7b 07 00 00       	call   0x4036a4
402f29:	0f b6 00             	movzbl (%eax),%eax
402f2c:	5e                   	pop    %esi
402f2d:	c3                   	ret
402f2e:	55                   	push   %ebp
402f2f:	8b ec                	mov    %esp,%ebp
402f31:	51                   	push   %ecx
402f32:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402f36:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402f3a:	57                   	push   %edi
402f3b:	8b f9                	mov    %ecx,%edi
402f3d:	7e 5b                	jle    0x402f9a
402f3f:	53                   	push   %ebx
402f40:	8b 5d 08             	mov    0x8(%ebp),%ebx
402f43:	56                   	push   %esi
402f44:	8b 47 1c             	mov    0x1c(%edi),%eax
402f47:	8b 00                	mov    (%eax),%eax
402f49:	85 c0                	test   %eax,%eax
402f4b:	74 30                	je     0x402f7d
402f4d:	8b 4f 2c             	mov    0x2c(%edi),%ecx
402f50:	8b 31                	mov    (%ecx),%esi
402f52:	85 f6                	test   %esi,%esi
402f54:	7e 27                	jle    0x402f7d
402f56:	39 75 0c             	cmp    %esi,0xc(%ebp)
402f59:	7d 03                	jge    0x402f5e
402f5b:	8b 75 0c             	mov    0xc(%ebp),%esi
402f5e:	56                   	push   %esi
402f5f:	50                   	push   %eax
402f60:	53                   	push   %ebx
402f61:	e8 fa 2d 00 00       	call   0x405d60
402f66:	8b 47 2c             	mov    0x2c(%edi),%eax
402f69:	01 75 fc             	add    %esi,-0x4(%ebp)
402f6c:	29 75 0c             	sub    %esi,0xc(%ebp)
402f6f:	83 c4 0c             	add    $0xc,%esp
402f72:	29 30                	sub    %esi,(%eax)
402f74:	8b 47 1c             	mov    0x1c(%edi),%eax
402f77:	03 de                	add    %esi,%ebx
402f79:	01 30                	add    %esi,(%eax)
402f7b:	eb 15                	jmp    0x402f92
402f7d:	8b 07                	mov    (%edi),%eax
402f7f:	8b cf                	mov    %edi,%ecx
402f81:	ff 50 14             	call   *0x14(%eax)
402f84:	83 f8 ff             	cmp    $0xffffffff,%eax
402f87:	74 0f                	je     0x402f98
402f89:	88 03                	mov    %al,(%ebx)
402f8b:	43                   	inc    %ebx
402f8c:	ff 45 fc             	incl   -0x4(%ebp)
402f8f:	ff 4d 0c             	decl   0xc(%ebp)
402f92:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402f96:	7f ac                	jg     0x402f44
402f98:	5e                   	pop    %esi
402f99:	5b                   	pop    %ebx
402f9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
402f9d:	5f                   	pop    %edi
402f9e:	c9                   	leave
402f9f:	c2 08 00             	ret    $0x8
402fa2:	55                   	push   %ebp
402fa3:	8b ec                	mov    %esp,%ebp
402fa5:	51                   	push   %ecx
402fa6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402faa:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402fae:	57                   	push   %edi
402faf:	8b f9                	mov    %ecx,%edi
402fb1:	7e 5d                	jle    0x403010
402fb3:	53                   	push   %ebx
402fb4:	8b 5d 08             	mov    0x8(%ebp),%ebx
402fb7:	56                   	push   %esi
402fb8:	8b 47 20             	mov    0x20(%edi),%eax
402fbb:	8b 00                	mov    (%eax),%eax
402fbd:	85 c0                	test   %eax,%eax
402fbf:	74 30                	je     0x402ff1
402fc1:	8b 4f 30             	mov    0x30(%edi),%ecx
402fc4:	8b 31                	mov    (%ecx),%esi
402fc6:	85 f6                	test   %esi,%esi
402fc8:	7e 27                	jle    0x402ff1
402fca:	39 75 0c             	cmp    %esi,0xc(%ebp)
402fcd:	7d 03                	jge    0x402fd2
402fcf:	8b 75 0c             	mov    0xc(%ebp),%esi
402fd2:	56                   	push   %esi
402fd3:	53                   	push   %ebx
402fd4:	50                   	push   %eax
402fd5:	e8 86 2d 00 00       	call   0x405d60
402fda:	8b 47 30             	mov    0x30(%edi),%eax
402fdd:	01 75 fc             	add    %esi,-0x4(%ebp)
402fe0:	29 75 0c             	sub    %esi,0xc(%ebp)
402fe3:	83 c4 0c             	add    $0xc,%esp
402fe6:	29 30                	sub    %esi,(%eax)
402fe8:	8b 47 20             	mov    0x20(%edi),%eax
402feb:	03 de                	add    %esi,%ebx
402fed:	01 30                	add    %esi,(%eax)
402fef:	eb 17                	jmp    0x403008
402ff1:	0f b6 0b             	movzbl (%ebx),%ecx
402ff4:	8b 07                	mov    (%edi),%eax
402ff6:	51                   	push   %ecx
402ff7:	8b cf                	mov    %edi,%ecx
402ff9:	ff 50 04             	call   *0x4(%eax)
402ffc:	83 f8 ff             	cmp    $0xffffffff,%eax
402fff:	74 0d                	je     0x40300e
403001:	43                   	inc    %ebx
403002:	ff 45 fc             	incl   -0x4(%ebp)
403005:	ff 4d 0c             	decl   0xc(%ebp)
403008:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40300c:	7f aa                	jg     0x402fb8
40300e:	5e                   	pop    %esi
40300f:	5b                   	pop    %ebx
403010:	8b 45 fc             	mov    -0x4(%ebp),%eax
403013:	5f                   	pop    %edi
403014:	c9                   	leave
403015:	c2 08 00             	ret    $0x8
403018:	55                   	push   %ebp
403019:	8b ec                	mov    %esp,%ebp
40301b:	83 ec 18             	sub    $0x18,%esp
40301e:	56                   	push   %esi
40301f:	57                   	push   %edi
403020:	6a ff                	push   $0xffffffff
403022:	8d 4d e8             	lea    -0x18(%ebp),%ecx
403025:	e8 30 06 00 00       	call   0x40365a
40302a:	8b f0                	mov    %eax,%esi
40302c:	8b 45 08             	mov    0x8(%ebp),%eax
40302f:	6a 06                	push   $0x6
403031:	8b f8                	mov    %eax,%edi
403033:	59                   	pop    %ecx
403034:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403036:	5f                   	pop    %edi
403037:	5e                   	pop    %esi
403038:	c9                   	leave
403039:	c2 10 00             	ret    $0x10
40303c:	8b c1                	mov    %ecx,%eax
40303e:	c2 08 00             	ret    $0x8
403041:	c2 04 00             	ret    $0x4
403044:	8b c1                	mov    %ecx,%eax
403046:	c7 00 fc d1 40 00    	movl   $0x40d1fc,(%eax)
40304c:	c2 04 00             	ret    $0x4
40304f:	b8 6b c5 40 00       	mov    $0x40c56b,%eax
403054:	e8 e7 2c 00 00       	call   0x405d40
403059:	51                   	push   %ecx
40305a:	56                   	push   %esi
40305b:	8b f1                	mov    %ecx,%esi
40305d:	57                   	push   %edi
40305e:	89 75 f0             	mov    %esi,-0x10(%ebp)
403061:	c7 06 fc d1 40 00    	movl   $0x40d1fc,(%esi)
403067:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
40306b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403072:	74 05                	je     0x403079
403074:	e8 4b 06 00 00       	call   0x4036c4
403079:	8b 7e 44             	mov    0x44(%esi),%edi
40307c:	85 ff                	test   %edi,%edi
40307e:	74 10                	je     0x403090
403080:	6a 01                	push   $0x1
403082:	8b cf                	mov    %edi,%ecx
403084:	e8 55 05 00 00       	call   0x4035de
403089:	57                   	push   %edi
40308a:	e8 f2 1e 00 00       	call   0x404f81
40308f:	59                   	pop    %ecx
403090:	8d 4e 4c             	lea    0x4c(%esi),%ecx
403093:	e8 10 fe ff ff       	call   0x402ea8
403098:	8d 4e 34             	lea    0x34(%esi),%ecx
40309b:	c7 06 34 d2 40 00    	movl   $0x40d234,(%esi)
4030a1:	e8 02 fe ff ff       	call   0x402ea8
4030a6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4030a9:	5f                   	pop    %edi
4030aa:	5e                   	pop    %esi
4030ab:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4030b2:	c9                   	leave
4030b3:	c3                   	ret
4030b4:	55                   	push   %ebp
4030b5:	8b ec                	mov    %esp,%ebp
4030b7:	83 ec 10             	sub    $0x10,%esp
4030ba:	53                   	push   %ebx
4030bb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4030be:	56                   	push   %esi
4030bf:	83 fb ff             	cmp    $0xffffffff,%ebx
4030c2:	57                   	push   %edi
4030c3:	8b f1                	mov    %ecx,%esi
4030c5:	75 07                	jne    0x4030ce
4030c7:	33 c0                	xor    %eax,%eax
4030c9:	e9 15 01 00 00       	jmp    0x4031e3
4030ce:	8b 46 20             	mov    0x20(%esi),%eax
4030d1:	33 ff                	xor    %edi,%edi