403ec2:	50                   	push   %eax
403ec3:	8d 45 d7             	lea    -0x29(%ebp),%eax
403ec6:	6a 01                	push   $0x1
403ec8:	50                   	push   %eax
403ec9:	e8 ef 2f 00 00       	call   0x406ebd
403ece:	83 c4 10             	add    $0x10,%esp
403ed1:	0f b6 75 d7          	movzbl -0x29(%ebp),%esi
403ed5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403ed8:	e8 bf d2 ff ff       	call   0x40119c
403edd:	8b c6                	mov    %esi,%eax
403edf:	e8 06 1f 00 00       	call   0x405dea
403ee4:	c3                   	ret
403ee5:	8d 45 d7             	lea    -0x29(%ebp),%eax
403ee8:	39 45 c8             	cmp    %eax,-0x38(%ebp)
403eeb:	75 2f                	jne    0x403f1c
403eed:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403ef1:	8b 4d d8             	mov    -0x28(%ebp),%ecx
403ef4:	73 03                	jae    0x403ef9
403ef6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403ef9:	8b 45 d0             	mov    -0x30(%ebp),%eax
403efc:	2b c1                	sub    %ecx,%eax
403efe:	50                   	push   %eax
403eff:	6a 00                	push   $0x0
403f01:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403f04:	e8 d2 d4 ff ff       	call   0x4013db
403f09:	ff 77 50             	push   0x50(%edi)
403f0c:	e8 af 27 00 00       	call   0x4066c0
403f11:	59                   	pop    %ecx
403f12:	3b c6                	cmp    %esi,%eax
403f14:	0f 85 3a ff ff ff    	jne    0x403e54
403f1a:	eb b9                	jmp    0x403ed5
403f1c:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403f20:	8b 75 d8             	mov    -0x28(%ebp),%esi
403f23:	73 03                	jae    0x403f28
403f25:	8d 75 d8             	lea    -0x28(%ebp),%esi
403f28:	8b 45 d0             	mov    -0x30(%ebp),%eax
403f2b:	2b f0                	sub    %eax,%esi
403f2d:	03 75 e8             	add    -0x18(%ebp),%esi
403f30:	85 f6                	test   %esi,%esi
403f32:	7e 9d                	jle    0x403ed1
403f34:	ff 77 50             	push   0x50(%edi)
403f37:	4e                   	dec    %esi
403f38:	0f be 04 06          	movsbl (%esi,%eax,1),%eax
403f3c:	50                   	push   %eax
403f3d:	e8 06 2f 00 00       	call   0x406e48
403f42:	59                   	pop    %ecx
403f43:	59                   	pop    %ecx
403f44:	85 f6                	test   %esi,%esi
403f46:	7e 89                	jle    0x403ed1
403f48:	8b 45 d0             	mov    -0x30(%ebp),%eax
403f4b:	eb e7                	jmp    0x403f34
403f4d:	56                   	push   %esi
403f4e:	8b f1                	mov    %ecx,%esi
403f50:	8b 46 1c             	mov    0x1c(%esi),%eax
403f53:	8b 08                	mov    (%eax),%ecx
403f55:	85 c9                	test   %ecx,%ecx
403f57:	74 10                	je     0x403f69
403f59:	8b 46 2c             	mov    0x2c(%esi),%eax
403f5c:	8b 00                	mov    (%eax),%eax
403f5e:	03 c1                	add    %ecx,%eax
403f60:	3b c8                	cmp    %eax,%ecx
403f62:	73 05                	jae    0x403f69
403f64:	0f b6 01             	movzbl (%ecx),%eax
403f67:	5e                   	pop    %esi
403f68:	c3                   	ret
403f69:	8b 06                	mov    (%esi),%eax
403f6b:	57                   	push   %edi
403f6c:	8b ce                	mov    %esi,%ecx
403f6e:	ff 50 1c             	call   *0x1c(%eax)
403f71:	8b f8                	mov    %eax,%edi
403f73:	83 c8 ff             	or     $0xffffffff,%eax
403f76:	3b f8                	cmp    %eax,%edi
403f78:	74 0a                	je     0x403f84
403f7a:	8b 06                	mov    (%esi),%eax
403f7c:	57                   	push   %edi
403f7d:	8b ce                	mov    %esi,%ecx
403f7f:	ff 50 10             	call   *0x10(%eax)
403f82:	8b c7                	mov    %edi,%eax
403f84:	5f                   	pop    %edi
403f85:	5e                   	pop    %esi
403f86:	c3                   	ret
403f87:	e9 2b 39 00 00       	jmp    0x4078b7
403f8c:	55                   	push   %ebp
403f8d:	8b ec                	mov    %esp,%ebp
403f8f:	8a 45 08             	mov    0x8(%ebp),%al
403f92:	56                   	push   %esi
403f93:	8b f1                	mov    %ecx,%esi
403f95:	33 d2                	xor    %edx,%edx
403f97:	8d 4e 18             	lea    0x18(%esi),%ecx
403f9a:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
403fa1:	c7 06 40 a1 41 00    	movl   $0x41a140,(%esi)
403fa7:	89 56 08             	mov    %edx,0x8(%esi)
403faa:	89 56 0c             	mov    %edx,0xc(%esi)
403fad:	89 56 10             	mov    %edx,0x10(%esi)
403fb0:	88 46 14             	mov    %al,0x14(%esi)
403fb3:	68 4c a1 41 00       	push   $0x41a14c
403fb8:	89 11                	mov    %edx,(%ecx)
403fba:	88 51 04             	mov    %dl,0x4(%ecx)
403fbd:	e8 6b 00 00 00       	call   0x40402d
403fc2:	8b c6                	mov    %esi,%eax
403fc4:	5e                   	pop    %esi
403fc5:	5d                   	pop    %ebp
403fc6:	c2 04 00             	ret    $0x4
403fc9:	8b 49 04             	mov    0x4(%ecx),%ecx
403fcc:	8b 01                	mov    (%ecx),%eax
403fce:	ff 50 08             	call   *0x8(%eax)
403fd1:	85 c0                	test   %eax,%eax
403fd3:	74 08                	je     0x403fdd
403fd5:	8b 10                	mov    (%eax),%edx
403fd7:	6a 01                	push   $0x1
403fd9:	8b c8                	mov    %eax,%ecx
403fdb:	ff 12                	call   *(%edx)
403fdd:	c3                   	ret
403fde:	56                   	push   %esi
403fdf:	eb 15                	jmp    0x403ff6
403fe1:	8b 06                	mov    (%esi),%eax
403fe3:	8b ce                	mov    %esi,%ecx
403fe5:	a3 90 1a 42 00       	mov    %eax,0x421a90
403fea:	e8 da ff ff ff       	call   0x403fc9
403fef:	56                   	push   %esi
403ff0:	e8 03 0f 00 00       	call   0x404ef8
403ff5:	59                   	pop    %ecx
403ff6:	8b 35 90 1a 42 00    	mov    0x421a90,%esi
403ffc:	85 f6                	test   %esi,%esi
403ffe:	75 e1                	jne    0x403fe1
404000:	5e                   	pop    %esi
404001:	c3                   	ret
404002:	56                   	push   %esi
404003:	8b f1                	mov    %ecx,%esi
404005:	56                   	push   %esi
404006:	c7 06 40 a1 41 00    	movl   $0x41a140,(%esi)
40400c:	e8 39 01 00 00       	call   0x40414a
404011:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
404015:	59                   	pop    %ecx
404016:	74 09                	je     0x404021
404018:	ff 76 18             	push   0x18(%esi)
40401b:	e8 f8 10 00 00       	call   0x405118
404020:	59                   	pop    %ecx
404021:	83 66 18 00          	andl   $0x0,0x18(%esi)
404025:	c7 06 10 a0 41 00    	movl   $0x41a010,(%esi)
40402b:	5e                   	pop    %esi
40402c:	c3                   	ret
40402d:	55                   	push   %ebp
40402e:	8b ec                	mov    %esp,%ebp
404030:	53                   	push   %ebx
404031:	57                   	push   %edi
404032:	8b 7d 08             	mov    0x8(%ebp),%edi
404035:	8b d9                	mov    %ecx,%ebx
404037:	39 3b                	cmp    %edi,(%ebx)
404039:	74 3e                	je     0x404079
40403b:	83 3b 00             	cmpl   $0x0,(%ebx)
40403e:	74 08                	je     0x404048
404040:	ff 33                	push   (%ebx)
404042:	e8 d1 10 00 00       	call   0x405118
404047:	59                   	pop    %ecx
404048:	83 23 00             	andl   $0x0,(%ebx)
40404b:	85 ff                	test   %edi,%edi
40404d:	74 2a                	je     0x404079
40404f:	80 3f 00             	cmpb   $0x0,(%edi)
404052:	56                   	push   %esi
404053:	8b f7                	mov    %edi,%esi
404055:	74 06                	je     0x40405d
404057:	46                   	inc    %esi
404058:	80 3e 00             	cmpb   $0x0,(%esi)
40405b:	75 fa                	jne    0x404057
40405d:	2b f7                	sub    %edi,%esi
40405f:	46                   	inc    %esi
404060:	56                   	push   %esi
404061:	e8 d7 41 00 00       	call   0x40823d
404066:	59                   	pop    %ecx
404067:	89 03                	mov    %eax,(%ebx)
404069:	85 c0                	test   %eax,%eax
40406b:	74 0b                	je     0x404078
40406d:	56                   	push   %esi
40406e:	57                   	push   %edi
40406f:	50                   	push   %eax
404070:	e8 2b 16 00 00       	call   0x4056a0
404075:	83 c4 0c             	add    $0xc,%esp
404078:	5e                   	pop    %esi
404079:	5f                   	pop    %edi
40407a:	8b c3                	mov    %ebx,%eax
40407c:	5b                   	pop    %ebx
40407d:	5d                   	pop    %ebp
40407e:	c2 04 00             	ret    $0x4
404081:	55                   	push   %ebp
404082:	8b ec                	mov    %esp,%ebp
404084:	56                   	push   %esi
404085:	8b f1                	mov    %ecx,%esi
404087:	e8 76 ff ff ff       	call   0x404002
40408c:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404090:	74 07                	je     0x404099
404092:	56                   	push   %esi
404093:	e8 60 0e 00 00       	call   0x404ef8
404098:	59                   	pop    %ecx
404099:	8b c6                	mov    %esi,%eax
40409b:	5e                   	pop    %esi
40409c:	5d                   	pop    %ebp
40409d:	c2 04 00             	ret    $0x4
4040a0:	55                   	push   %ebp
4040a1:	8b ec                	mov    %esp,%ebp
4040a3:	6a 08                	push   $0x8
4040a5:	e8 9e 0e 00 00       	call   0x404f48
4040aa:	59                   	pop    %ecx
4040ab:	85 c0                	test   %eax,%eax
4040ad:	74 10                	je     0x4040bf
4040af:	8b 0d 90 1a 42 00    	mov    0x421a90,%ecx
4040b5:	89 08                	mov    %ecx,(%eax)
4040b7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4040ba:	89 48 04             	mov    %ecx,0x4(%eax)
4040bd:	eb 02                	jmp    0x4040c1
4040bf:	33 c0                	xor    %eax,%eax
4040c1:	a3 90 1a 42 00       	mov    %eax,0x421a90
4040c6:	5d                   	pop    %ebp
4040c7:	c3                   	ret
4040c8:	a1 8c 1a 42 00       	mov    0x421a8c,%eax
4040cd:	c3                   	ret
4040ce:	6a 04                	push   $0x4
4040d0:	b8 02 7c 41 00       	mov    $0x417c02,%eax
4040d5:	e8 1f 1d 00 00       	call   0x405df9
4040da:	6a 00                	push   $0x0
4040dc:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4040df:	e8 d9 02 00 00       	call   0x4043bd
4040e4:	8b 35 8c 1a 42 00    	mov    0x421a8c,%esi
4040ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4040ee:	85 f6                	test   %esi,%esi
4040f0:	75 3b                	jne    0x40412d
4040f2:	56                   	push   %esi
4040f3:	e8 10 01 00 00       	call   0x404208
4040f8:	8b f0                	mov    %eax,%esi
4040fa:	56                   	push   %esi
4040fb:	e8 27 01 00 00       	call   0x404227
404100:	59                   	pop    %ecx
404101:	59                   	pop    %ecx
404102:	68 50 a1 41 00       	push   $0x41a150
404107:	8d 4e 18             	lea    0x18(%esi),%ecx
40410a:	c7 46 10 3f 00 00 00 	movl   $0x3f,0x10(%esi)
404111:	e8 17 ff ff ff       	call   0x40402d
404116:	89 35 88 1a 42 00    	mov    %esi,0x421a88
40411c:	8b 06                	mov    (%esi),%eax
40411e:	8b ce                	mov    %esi,%ecx
404120:	ff 50 04             	call   *0x4(%eax)
404123:	a1 88 1a 42 00       	mov    0x421a88,%eax
404128:	a3 a8 1a 42 00       	mov    %eax,0x421aa8
40412d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
404131:	74 07                	je     0x40413a
404133:	8b 06                	mov    (%esi),%eax
404135:	8b ce                	mov    %esi,%ecx
404137:	ff 50 04             	call   *0x4(%eax)
40413a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40413d:	e8 d7 02 00 00       	call   0x404419
404142:	8b c6                	mov    %esi,%eax
404144:	e8 8d 1c 00 00       	call   0x405dd6
404149:	c3                   	ret
40414a:	6a 04                	push   $0x4
40414c:	b8 02 7c 41 00       	mov    $0x417c02,%eax
404151:	e8 a3 1c 00 00       	call   0x405df9
404156:	6a 00                	push   $0x0
404158:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40415b:	e8 5d 02 00 00       	call   0x4043bd
404160:	8b 7d 08             	mov    0x8(%ebp),%edi
404163:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404167:	8b 77 0c             	mov    0xc(%edi),%esi
40416a:	eb 1c                	jmp    0x404188
40416c:	8b 47 08             	mov    0x8(%edi),%eax
40416f:	4e                   	dec    %esi
404170:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
404173:	85 c9                	test   %ecx,%ecx
404175:	74 11                	je     0x404188
404177:	8b 01                	mov    (%ecx),%eax
404179:	ff 50 08             	call   *0x8(%eax)
40417c:	85 c0                	test   %eax,%eax
40417e:	74 08                	je     0x404188
404180:	8b 10                	mov    (%eax),%edx
404182:	6a 01                	push   $0x1
404184:	8b c8                	mov    %eax,%ecx
404186:	ff 12                	call   *(%edx)
404188:	85 f6                	test   %esi,%esi
40418a:	75 e0                	jne    0x40416c
40418c:	ff 77 08             	push   0x8(%edi)
40418f:	e8 84 0f 00 00       	call   0x405118
404194:	59                   	pop    %ecx
404195:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404198:	e8 7c 02 00 00       	call   0x404419
40419d:	e8 34 1c 00 00       	call   0x405dd6
4041a2:	c3                   	ret
4041a3:	55                   	push   %ebp
4041a4:	8b ec                	mov    %esp,%ebp
4041a6:	6a 00                	push   $0x0
4041a8:	6a 00                	push   $0x0
4041aa:	e8 20 41 00 00       	call   0x4082cf
4041af:	59                   	pop    %ecx
4041b0:	59                   	pop    %ecx
4041b1:	85 c0                	test   %eax,%eax
4041b3:	75 05                	jne    0x4041ba
4041b5:	b8 d6 d4 41 00       	mov    $0x41d4d6,%eax
4041ba:	56                   	push   %esi
4041bb:	8b 75 08             	mov    0x8(%ebp),%esi
4041be:	50                   	push   %eax
4041bf:	8d 4e 24             	lea    0x24(%esi),%ecx
4041c2:	e8 66 fe ff ff       	call   0x40402d
4041c7:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4041cb:	74 10                	je     0x4041dd
4041cd:	ff 75 0c             	push   0xc(%ebp)
4041d0:	6a 00                	push   $0x0
4041d2:	e8 f8 40 00 00       	call   0x4082cf
4041d7:	59                   	pop    %ecx
4041d8:	59                   	pop    %ecx
4041d9:	85 c0                	test   %eax,%eax
4041db:	75 05                	jne    0x4041e2
4041dd:	b8 4c a1 41 00       	mov    $0x41a14c,%eax
4041e2:	50                   	push   %eax
4041e3:	8d 4e 2c             	lea    0x2c(%esi),%ecx
4041e6:	e8 42 fe ff ff       	call   0x40402d
4041eb:	5e                   	pop    %esi
4041ec:	5d                   	pop    %ebp
4041ed:	c3                   	ret
4041ee:	55                   	push   %ebp
4041ef:	8b ec                	mov    %esp,%ebp
4041f1:	8b 45 08             	mov    0x8(%ebp),%eax
4041f4:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
4041f8:	74 0c                	je     0x404206
4041fa:	ff 70 24             	push   0x24(%eax)
4041fd:	6a 00                	push   $0x0
4041ff:	e8 cb 40 00 00       	call   0x4082cf
404204:	59                   	pop    %ecx
404205:	59                   	pop    %ecx
404206:	5d                   	pop    %ebp
404207:	c3                   	ret
404208:	55                   	push   %ebp
404209:	8b ec                	mov    %esp,%ebp
40420b:	6a 20                	push   $0x20
40420d:	e8 36 0d 00 00       	call   0x404f48
404212:	59                   	pop    %ecx
404213:	85 c0                	test   %eax,%eax
404215:	74 0c                	je     0x404223
404217:	ff 75 08             	push   0x8(%ebp)
40421a:	8b c8                	mov    %eax,%ecx
40421c:	e8 6b fd ff ff       	call   0x403f8c
404221:	5d                   	pop    %ebp
404222:	c3                   	ret
404223:	33 c0                	xor    %eax,%eax
404225:	5d                   	pop    %ebp
404226:	c3                   	ret
404227:	55                   	push   %ebp
404228:	8b ec                	mov    %esp,%ebp
40422a:	80 3d b0 1a 42 00 00 	cmpb   $0x0,0x421ab0
404231:	75 12                	jne    0x404245
404233:	68 6e 42 40 00       	push   $0x40426e
404238:	c6 05 b0 1a 42 00 01 	movb   $0x1,0x421ab0
40423f:	e8 88 04 00 00       	call   0x4046cc