406f1c:	ff 75 e8             	push   -0x18(%ebp)
406f1f:	e8 37 e4 ff ff       	call   0x40535b
406f24:	84 c0                	test   %al,%al
406f26:	74 50                	je     0x406f78
406f28:	8b 7d 0c             	mov    0xc(%ebp),%edi
406f2b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406f2e:	8b 33                	mov    (%ebx),%esi
406f30:	89 7d ec             	mov    %edi,-0x14(%ebp)
406f33:	e8 5b f0 ff ff       	call   0x405f93
406f38:	39 30                	cmp    %esi,(%eax)
406f3a:	74 16                	je     0x406f52
406f3c:	8b 45 ec             	mov    -0x14(%ebp),%eax
406f3f:	83 c0 10             	add    $0x10,%eax
406f42:	50                   	push   %eax
406f43:	ff 75 10             	push   0x10(%ebp)
406f46:	e8 10 e4 ff ff       	call   0x40535b
406f4b:	84 c0                	test   %al,%al
406f4d:	74 29                	je     0x406f78
406f4f:	8b 7d 0c             	mov    0xc(%ebp),%edi
406f52:	8b 47 08             	mov    0x8(%edi),%eax
406f55:	ff 75 14             	push   0x14(%ebp)
406f58:	51                   	push   %ecx
406f59:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
406f5d:	74 05                	je     0x406f64
406f5f:	57                   	push   %edi
406f60:	6a 00                	push   $0x0
406f62:	eb 05                	jmp    0x406f69
406f64:	ff 75 ec             	push   -0x14(%ebp)
406f67:	6a 01                	push   $0x1
406f69:	8b cb                	mov    %ebx,%ecx
406f6b:	8b 75 08             	mov    0x8(%ebp),%esi
406f6e:	56                   	push   %esi
406f6f:	e8 fd 00 00 00       	call   0x407071
406f74:	8b c6                	mov    %esi,%eax
406f76:	eb 1d                	jmp    0x406f95
406f78:	ff 75 14             	push   0x14(%ebp)
406f7b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406f7f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f82:	ff 75 10             	push   0x10(%ebp)
406f85:	51                   	push   %ecx
406f86:	50                   	push   %eax
406f87:	8b cb                	mov    %ebx,%ecx
406f89:	e8 05 02 00 00       	call   0x407193
406f8e:	8b 08                	mov    (%eax),%ecx
406f90:	8b 45 08             	mov    0x8(%ebp),%eax
406f93:	89 08                	mov    %ecx,(%eax)
406f95:	e8 82 76 00 00       	call   0x40e61c
406f9a:	c2 10 00             	ret    $0x10
406f9d:	ff 75 14             	push   0x14(%ebp)
406fa0:	e8 9c 00 00 00       	call   0x407041
406fa5:	6a 00                	push   $0x0
406fa7:	6a 00                	push   $0x0
406fa9:	e8 68 76 00 00       	call   0x40e616
406fae:	cc                   	int3
406faf:	8b ff                	mov    %edi,%edi
406fb1:	55                   	push   %ebp
406fb2:	8b ec                	mov    %esp,%ebp
406fb4:	51                   	push   %ecx
406fb5:	8b d1                	mov    %ecx,%edx
406fb7:	8b 02                	mov    (%edx),%eax
406fb9:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
406fbd:	74 07                	je     0x406fc6
406fbf:	8b 40 08             	mov    0x8(%eax),%eax
406fc2:	89 02                	mov    %eax,(%edx)
406fc4:	eb 3f                	jmp    0x407005
406fc6:	8b 08                	mov    (%eax),%ecx
406fc8:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
406fcc:	74 3d                	je     0x40700b
406fce:	8b 48 04             	mov    0x4(%eax),%ecx
406fd1:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
406fd5:	75 26                	jne    0x406ffd
406fd7:	56                   	push   %esi
406fd8:	57                   	push   %edi
406fd9:	8b f0                	mov    %eax,%esi
406fdb:	8b f8                	mov    %eax,%edi
406fdd:	53                   	push   %ebx
406fde:	8b d9                	mov    %ecx,%ebx
406fe0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406fe3:	8b c7                	mov    %edi,%eax
406fe5:	3b 31                	cmp    (%ecx),%esi
406fe7:	75 11                	jne    0x406ffa
406fe9:	89 0a                	mov    %ecx,(%edx)
406feb:	8b f1                	mov    %ecx,%esi
406fed:	8b 49 04             	mov    0x4(%ecx),%ecx
406ff0:	8b fe                	mov    %esi,%edi
406ff2:	8b c3                	mov    %ebx,%eax
406ff4:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
406ff8:	74 e4                	je     0x406fde
406ffa:	5b                   	pop    %ebx
406ffb:	5f                   	pop    %edi
406ffc:	5e                   	pop    %esi
406ffd:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
407001:	75 02                	jne    0x407005
407003:	89 0a                	mov    %ecx,(%edx)
407005:	8b c2                	mov    %edx,%eax
407007:	c9                   	leave
407008:	c3                   	ret
407009:	8b c8                	mov    %eax,%ecx
40700b:	8b 41 08             	mov    0x8(%ecx),%eax
40700e:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
407012:	74 f5                	je     0x407009
407014:	eb ed                	jmp    0x407003
407016:	8b ff                	mov    %edi,%edi
407018:	56                   	push   %esi
407019:	6a 44                	push   $0x44
40701b:	8b f1                	mov    %ecx,%esi
40701d:	e8 a6 6e 00 00       	call   0x40dec8
407022:	8b d0                	mov    %eax,%edx
407024:	59                   	pop    %ecx
407025:	85 d2                	test   %edx,%edx
407027:	74 12                	je     0x40703b
407029:	8b 06                	mov    (%esi),%eax
40702b:	89 02                	mov    %eax,(%edx)
40702d:	8b 06                	mov    (%esi),%eax
40702f:	89 42 04             	mov    %eax,0x4(%edx)
407032:	8b 06                	mov    (%esi),%eax
407034:	89 42 08             	mov    %eax,0x8(%edx)
407037:	8b c2                	mov    %edx,%eax
407039:	5e                   	pop    %esi
40703a:	c3                   	ret
40703b:	e8 d1 6f 00 00       	call   0x40e011
407040:	cc                   	int3
407041:	8b ff                	mov    %edi,%edi
407043:	55                   	push   %ebp
407044:	8b ec                	mov    %esp,%ebp
407046:	56                   	push   %esi
407047:	57                   	push   %edi
407048:	8b 7d 08             	mov    0x8(%ebp),%edi
40704b:	6a 00                	push   $0x0
40704d:	6a 01                	push   $0x1
40704f:	8d 4f 2c             	lea    0x2c(%edi),%ecx
407052:	e8 99 f4 ff ff       	call   0x4064f0
407057:	6a 00                	push   $0x0
407059:	6a 01                	push   $0x1
40705b:	8d 4f 10             	lea    0x10(%edi),%ecx
40705e:	e8 8d f4 ff ff       	call   0x4064f0
407063:	57                   	push   %edi
407064:	ff 15 e4 21 41 00    	call   *0x4121e4
40706a:	59                   	pop    %ecx
40706b:	5f                   	pop    %edi
40706c:	5e                   	pop    %esi
40706d:	5d                   	pop    %ebp
40706e:	c2 04 00             	ret    $0x4
407071:	8b ff                	mov    %edi,%edi
407073:	55                   	push   %ebp
407074:	8b ec                	mov    %esp,%ebp
407076:	8b 41 04             	mov    0x4(%ecx),%eax
407079:	3d c2 c3 c3 03       	cmp    $0x3c3c3c2,%eax
40707e:	0f 83 fc 00 00 00    	jae    0x407180
407084:	56                   	push   %esi
407085:	57                   	push   %edi
407086:	8b 7d 18             	mov    0x18(%ebp),%edi
407089:	40                   	inc    %eax
40708a:	89 41 04             	mov    %eax,0x4(%ecx)
40708d:	8b 45 10             	mov    0x10(%ebp),%eax
407090:	89 47 04             	mov    %eax,0x4(%edi)
407093:	8b 11                	mov    (%ecx),%edx
407095:	3b c2                	cmp    %edx,%eax
407097:	75 0e                	jne    0x4070a7
407099:	89 7a 04             	mov    %edi,0x4(%edx)
40709c:	8b 01                	mov    (%ecx),%eax
40709e:	89 38                	mov    %edi,(%eax)
4070a0:	8b 01                	mov    (%ecx),%eax
4070a2:	89 78 08             	mov    %edi,0x8(%eax)
4070a5:	eb 1f                	jmp    0x4070c6
4070a7:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4070ab:	74 0c                	je     0x4070b9
4070ad:	89 38                	mov    %edi,(%eax)
4070af:	8b 11                	mov    (%ecx),%edx
4070b1:	3b 02                	cmp    (%edx),%eax
4070b3:	75 11                	jne    0x4070c6
4070b5:	89 3a                	mov    %edi,(%edx)
4070b7:	eb 0d                	jmp    0x4070c6
4070b9:	89 78 08             	mov    %edi,0x8(%eax)
4070bc:	8b 11                	mov    (%ecx),%edx
4070be:	3b 42 08             	cmp    0x8(%edx),%eax
4070c1:	75 03                	jne    0x4070c6
4070c3:	89 7a 08             	mov    %edi,0x8(%edx)
4070c6:	8b 47 04             	mov    0x4(%edi),%eax
4070c9:	8b f7                	mov    %edi,%esi
4070cb:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
4070cf:	0f 85 97 00 00 00    	jne    0x40716c
4070d5:	53                   	push   %ebx
4070d6:	8b 46 04             	mov    0x4(%esi),%eax
4070d9:	8b 58 04             	mov    0x4(%eax),%ebx
4070dc:	8b 13                	mov    (%ebx),%edx
4070de:	3b c2                	cmp    %edx,%eax
4070e0:	75 34                	jne    0x407116
4070e2:	8b 53 08             	mov    0x8(%ebx),%edx
4070e5:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
4070e9:	74 31                	je     0x40711c
4070eb:	3b 70 08             	cmp    0x8(%eax),%esi
4070ee:	75 08                	jne    0x4070f8
4070f0:	8b f0                	mov    %eax,%esi
4070f2:	56                   	push   %esi
4070f3:	e8 2a ef ff ff       	call   0x406022
4070f8:	8b 46 04             	mov    0x4(%esi),%eax
4070fb:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
4070ff:	8b 46 04             	mov    0x4(%esi),%eax
407102:	8b 40 04             	mov    0x4(%eax),%eax
407105:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
407109:	8b 46 04             	mov    0x4(%esi),%eax
40710c:	ff 70 04             	push   0x4(%eax)
40710f:	e8 c6 ee ff ff       	call   0x405fda
407114:	eb 48                	jmp    0x40715e
407116:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
40711a:	75 1a                	jne    0x407136
40711c:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
407120:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
407124:	8b 46 04             	mov    0x4(%esi),%eax
407127:	8b 40 04             	mov    0x4(%eax),%eax
40712a:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
40712e:	8b 46 04             	mov    0x4(%esi),%eax
407131:	8b 70 04             	mov    0x4(%eax),%esi
407134:	eb 28                	jmp    0x40715e
407136:	3b 30                	cmp    (%eax),%esi
407138:	75 08                	jne    0x407142
40713a:	8b f0                	mov    %eax,%esi
40713c:	56                   	push   %esi
40713d:	e8 98 ee ff ff       	call   0x405fda
407142:	8b 46 04             	mov    0x4(%esi),%eax
407145:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
407149:	8b 46 04             	mov    0x4(%esi),%eax
40714c:	8b 40 04             	mov    0x4(%eax),%eax
40714f:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
407153:	8b 46 04             	mov    0x4(%esi),%eax
407156:	ff 70 04             	push   0x4(%eax)
407159:	e8 c4 ee ff ff       	call   0x406022
40715e:	8b 46 04             	mov    0x4(%esi),%eax
407161:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
407165:	0f 84 6b ff ff ff    	je     0x4070d6
40716b:	5b                   	pop    %ebx
40716c:	8b 01                	mov    (%ecx),%eax
40716e:	8b 40 04             	mov    0x4(%eax),%eax
407171:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
407175:	8b 45 08             	mov    0x8(%ebp),%eax
407178:	89 38                	mov    %edi,(%eax)
40717a:	5f                   	pop    %edi
40717b:	5e                   	pop    %esi
40717c:	5d                   	pop    %ebp
40717d:	c2 14 00             	ret    $0x14
407180:	ff 75 18             	push   0x18(%ebp)
407183:	e8 b9 fe ff ff       	call   0x407041
407188:	68 ac 24 40 00       	push   $0x4024ac
40718d:	e8 9e 6e 00 00       	call   0x40e030
407192:	cc                   	int3
407193:	6a 0c                	push   $0xc
407195:	b8 30 ee 40 00       	mov    $0x40ee30,%eax
40719a:	e8 18 75 00 00       	call   0x40e6b7
40719f:	8b d9                	mov    %ecx,%ebx
4071a1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4071a5:	b0 01                	mov    $0x1,%al
4071a7:	8b 3b                	mov    (%ebx),%edi
4071a9:	88 45 e8             	mov    %al,-0x18(%ebp)
4071ac:	8b 77 04             	mov    0x4(%edi),%esi
4071af:	eb 1c                	jmp    0x4071cd
4071b1:	8d 46 10             	lea    0x10(%esi),%eax
4071b4:	8b fe                	mov    %esi,%edi
4071b6:	50                   	push   %eax
4071b7:	ff 75 10             	push   0x10(%ebp)
4071ba:	e8 9c e1 ff ff       	call   0x40535b
4071bf:	88 45 e8             	mov    %al,-0x18(%ebp)
4071c2:	84 c0                	test   %al,%al
4071c4:	74 04                	je     0x4071ca
4071c6:	8b 36                	mov    (%esi),%esi
4071c8:	eb 03                	jmp    0x4071cd
4071ca:	8b 76 08             	mov    0x8(%esi),%esi
4071cd:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4071d1:	74 de                	je     0x4071b1
4071d3:	8b f7                	mov    %edi,%esi
4071d5:	89 75 ec             	mov    %esi,-0x14(%ebp)
4071d8:	84 c0                	test   %al,%al
4071da:	74 30                	je     0x40720c
4071dc:	8b 03                	mov    (%ebx),%eax
4071de:	3b 38                	cmp    (%eax),%edi
4071e0:	75 1f                	jne    0x407201
4071e2:	ff 75 14             	push   0x14(%ebp)
4071e5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4071e8:	51                   	push   %ecx
4071e9:	57                   	push   %edi
4071ea:	6a 01                	push   $0x1
4071ec:	50                   	push   %eax
4071ed:	8b cb                	mov    %ebx,%ecx
4071ef:	e8 7d fe ff ff       	call   0x407071
4071f4:	8b 08                	mov    (%eax),%ecx
4071f6:	8b 45 08             	mov    0x8(%ebp),%eax
4071f9:	89 08                	mov    %ecx,(%eax)
4071fb:	c6 40 04 01          	movb   $0x1,0x4(%eax)
4071ff:	eb 36                	jmp    0x407237
407201:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407204:	e8 a6 fd ff ff       	call   0x406faf
407209:	8b 75 ec             	mov    -0x14(%ebp),%esi
40720c:	ff 75 10             	push   0x10(%ebp)
40720f:	8d 46 10             	lea    0x10(%esi),%eax
407212:	50                   	push   %eax
407213:	e8 43 e1 ff ff       	call   0x40535b
407218:	ff 75 14             	push   0x14(%ebp)
40721b:	84 c0                	test   %al,%al
40721d:	74 0a                	je     0x407229
40721f:	51                   	push   %ecx
407220:	57                   	push   %edi
407221:	ff 75 e8             	push   -0x18(%ebp)
407224:	8d 45 ec             	lea    -0x14(%ebp),%eax
407227:	eb c3                	jmp    0x4071ec
407229:	e8 13 fe ff ff       	call   0x407041
40722e:	8b 45 08             	mov    0x8(%ebp),%eax
407231:	89 30                	mov    %esi,(%eax)
407233:	c6 40 04 00          	movb   $0x0,0x4(%eax)
407237:	e8 e0 73 00 00       	call   0x40e61c
40723c:	c2 10 00             	ret    $0x10
40723f:	ff 75 14             	push   0x14(%ebp)
407242:	e8 fa fd ff ff       	call   0x407041
407247:	6a 00                	push   $0x0
407249:	6a 00                	push   $0x0
40724b:	e8 c6 73 00 00       	call   0x40e616
407250:	cc                   	int3
407251:	8b ff                	mov    %edi,%edi
407253:	55                   	push   %ebp
407254:	8b ec                	mov    %esp,%ebp
407256:	53                   	push   %ebx
407257:	56                   	push   %esi
407258:	8b 75 08             	mov    0x8(%ebp),%esi
40725b:	8b da                	mov    %edx,%ebx
40725d:	57                   	push   %edi
40725e:	8b f9                	mov    %ecx,%edi
407260:	3b fb                	cmp    %ebx,%edi
407262:	74 10                	je     0x407274
407264:	57                   	push   %edi
407265:	8b ce                	mov    %esi,%ecx
407267:	e8 11 00 00 00       	call   0x40727d
40726c:	83 c6 18             	add    $0x18,%esi
40726f:	83 c7 18             	add    $0x18,%edi
407272:	eb ec                	jmp    0x407260
407274:	5f                   	pop    %edi
407275:	8b c6                	mov    %esi,%eax
407277:	5e                   	pop    %esi
407278:	5b                   	pop    %ebx
407279:	5d                   	pop    %ebp
40727a:	c2 10 00             	ret    $0x10
40727d:	8b ff                	mov    %edi,%edi
40727f:	55                   	push   %ebp
407280:	8b ec                	mov    %esp,%ebp
407282:	56                   	push   %esi
407283:	8b 75 08             	mov    0x8(%ebp),%esi
407286:	33 c0                	xor    %eax,%eax
407288:	57                   	push   %edi
407289:	8b f9                	mov    %ecx,%edi
40728b:	83 67 10 00          	andl   $0x0,0x10(%edi)
40728f:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
407296:	66 89 07             	mov    %ax,(%edi)