406fac:	e8 8f fb ff ff       	call   0x406b40
406fb1:	83 c4 04             	add    $0x4,%esp
406fb4:	0f be f0             	movsbl %al,%esi
406fb7:	ba 01 00 00 00       	mov    $0x1,%edx
406fbc:	6b c2 00             	imul   $0x0,%edx,%eax
406fbf:	8b 4d 08             	mov    0x8(%ebp),%ecx
406fc2:	0f b6 14 01          	movzbl (%ecx,%eax,1),%edx
406fc6:	52                   	push   %edx
406fc7:	e8 74 fb ff ff       	call   0x406b40
406fcc:	83 c4 04             	add    $0x4,%esp
406fcf:	0f be c0             	movsbl %al,%eax
406fd2:	3b f0                	cmp    %eax,%esi
406fd4:	74 04                	je     0x406fda
406fd6:	33 c0                	xor    %eax,%eax
406fd8:	eb 52                	jmp    0x40702c
406fda:	8b 4d 08             	mov    0x8(%ebp),%ecx
406fdd:	83 c1 01             	add    $0x1,%ecx
406fe0:	89 4d 08             	mov    %ecx,0x8(%ebp)
406fe3:	8b 55 0c             	mov    0xc(%ebp),%edx
406fe6:	83 c2 01             	add    $0x1,%edx
406fe9:	89 55 0c             	mov    %edx,0xc(%ebp)
406fec:	e9 29 fe ff ff       	jmp    0x406e1a
406ff1:	8b 45 08             	mov    0x8(%ebp),%eax
406ff4:	0f b6 08             	movzbl (%eax),%ecx
406ff7:	51                   	push   %ecx
406ff8:	e8 43 fb ff ff       	call   0x406b40
406ffd:	83 c4 04             	add    $0x4,%esp
407000:	0f be f0             	movsbl %al,%esi
407003:	8b 55 0c             	mov    0xc(%ebp),%edx
407006:	0f b6 02             	movzbl (%edx),%eax
407009:	50                   	push   %eax
40700a:	e8 31 fb ff ff       	call   0x406b40
40700f:	83 c4 04             	add    $0x4,%esp
407012:	0f be c8             	movsbl %al,%ecx
407015:	3b f1                	cmp    %ecx,%esi
407017:	75 09                	jne    0x407022
407019:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
407020:	eb 07                	jmp    0x407029
407022:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
407029:	8b 45 f4             	mov    -0xc(%ebp),%eax
40702c:	5e                   	pop    %esi
40702d:	8b e5                	mov    %ebp,%esp
40702f:	5d                   	pop    %ebp
407030:	c3                   	ret
407031:	cc                   	int3
407032:	cc                   	int3
407033:	cc                   	int3
407034:	cc                   	int3
407035:	cc                   	int3
407036:	cc                   	int3
407037:	cc                   	int3
407038:	cc                   	int3
407039:	cc                   	int3
40703a:	cc                   	int3
40703b:	cc                   	int3
40703c:	cc                   	int3
40703d:	cc                   	int3
40703e:	cc                   	int3
40703f:	cc                   	int3
407040:	55                   	push   %ebp
407041:	8b ec                	mov    %esp,%ebp
407043:	83 ec 10             	sub    $0x10,%esp
407046:	56                   	push   %esi
407047:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40704b:	74 06                	je     0x407053
40704d:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407051:	75 07                	jne    0x40705a
407053:	33 c0                	xor    %eax,%eax
407055:	e9 12 02 00 00       	jmp    0x40726c
40705a:	b8 02 00 00 00       	mov    $0x2,%eax
40705f:	6b c8 00             	imul   $0x0,%eax,%ecx
407062:	8b 55 08             	mov    0x8(%ebp),%edx
407065:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
407069:	85 c0                	test   %eax,%eax
40706b:	0f 84 c0 01 00 00    	je     0x407231
407071:	b9 02 00 00 00       	mov    $0x2,%ecx
407076:	6b d1 00             	imul   $0x0,%ecx,%edx
407079:	8b 45 0c             	mov    0xc(%ebp),%eax
40707c:	0f b7 0c 10          	movzwl (%eax,%edx,1),%ecx
407080:	85 c9                	test   %ecx,%ecx
407082:	0f 84 a9 01 00 00    	je     0x407231
407088:	ba 02 00 00 00       	mov    $0x2,%edx
40708d:	6b c2 00             	imul   $0x0,%edx,%eax
407090:	8b 4d 08             	mov    0x8(%ebp),%ecx
407093:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
407097:	83 fa 3f             	cmp    $0x3f,%edx
40709a:	75 6b                	jne    0x407107
40709c:	b8 02 00 00 00       	mov    $0x2,%eax
4070a1:	6b c8 00             	imul   $0x0,%eax,%ecx
4070a4:	8b 55 0c             	mov    0xc(%ebp),%edx
4070a7:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
4070ab:	85 c0                	test   %eax,%eax
4070ad:	75 07                	jne    0x4070b6
4070af:	33 c0                	xor    %eax,%eax
4070b1:	e9 b6 01 00 00       	jmp    0x40726c
4070b6:	b9 02 00 00 00       	mov    $0x2,%ecx
4070bb:	c1 e1 00             	shl    $0x0,%ecx
4070be:	8b 55 08             	mov    0x8(%ebp),%edx
4070c1:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
4070c5:	83 f8 3f             	cmp    $0x3f,%eax
4070c8:	75 0b                	jne    0x4070d5
4070ca:	8b 4d 08             	mov    0x8(%ebp),%ecx
4070cd:	83 c1 04             	add    $0x4,%ecx
4070d0:	89 4d 08             	mov    %ecx,0x8(%ebp)
4070d3:	eb 24                	jmp    0x4070f9
4070d5:	ba 02 00 00 00       	mov    $0x2,%edx
4070da:	6b c2 00             	imul   $0x0,%edx,%eax
4070dd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4070e0:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
4070e4:	83 fa 2f             	cmp    $0x2f,%edx
4070e7:	75 07                	jne    0x4070f0
4070e9:	33 c0                	xor    %eax,%eax
4070eb:	e9 7c 01 00 00       	jmp    0x40726c
4070f0:	8b 45 08             	mov    0x8(%ebp),%eax
4070f3:	83 c0 02             	add    $0x2,%eax
4070f6:	89 45 08             	mov    %eax,0x8(%ebp)
4070f9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4070fc:	83 c1 02             	add    $0x2,%ecx
4070ff:	89 4d 0c             	mov    %ecx,0xc(%ebp)
407102:	e9 25 01 00 00       	jmp    0x40722c
407107:	ba 02 00 00 00       	mov    $0x2,%edx
40710c:	6b c2 00             	imul   $0x0,%edx,%eax
40710f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407112:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
407116:	83 fa 2a             	cmp    $0x2a,%edx
407119:	0f 85 bd 00 00 00    	jne    0x4071dc
40711f:	b8 02 00 00 00       	mov    $0x2,%eax
407124:	c1 e0 00             	shl    $0x0,%eax
407127:	8b 4d 08             	mov    0x8(%ebp),%ecx
40712a:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
40712e:	83 fa 2a             	cmp    $0x2a,%edx
407131:	75 09                	jne    0x40713c
407133:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40713a:	eb 07                	jmp    0x407143
40713c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
407143:	8b 45 fc             	mov    -0x4(%ebp),%eax
407146:	89 45 f8             	mov    %eax,-0x8(%ebp)
407149:	b9 02 00 00 00       	mov    $0x2,%ecx
40714e:	6b d1 00             	imul   $0x0,%ecx,%edx
407151:	8b 45 08             	mov    0x8(%ebp),%eax
407154:	0f b7 0c 10          	movzwl (%eax,%edx,1),%ecx
407158:	83 f9 2a             	cmp    $0x2a,%ecx
40715b:	75 0b                	jne    0x407168
40715d:	8b 55 08             	mov    0x8(%ebp),%edx
407160:	83 c2 02             	add    $0x2,%edx
407163:	89 55 08             	mov    %edx,0x8(%ebp)
407166:	eb e1                	jmp    0x407149
407168:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40716c:	74 1d                	je     0x40718b
40716e:	b8 02 00 00 00       	mov    $0x2,%eax
407173:	6b c8 00             	imul   $0x0,%eax,%ecx
407176:	8b 55 08             	mov    0x8(%ebp),%edx
407179:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
40717d:	85 c0                	test   %eax,%eax
40717f:	75 0a                	jne    0x40718b
407181:	b8 01 00 00 00       	mov    $0x1,%eax
407186:	e9 e1 00 00 00       	jmp    0x40726c
40718b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40718e:	51                   	push   %ecx
40718f:	8b 55 08             	mov    0x8(%ebp),%edx
407192:	52                   	push   %edx
407193:	e8 a8 fe ff ff       	call   0x407040
407198:	83 c4 08             	add    $0x8,%esp
40719b:	85 c0                	test   %eax,%eax
40719d:	74 0a                	je     0x4071a9
40719f:	b8 01 00 00 00       	mov    $0x1,%eax
4071a4:	e9 c3 00 00 00       	jmp    0x40726c
4071a9:	b8 02 00 00 00       	mov    $0x2,%eax
4071ae:	6b c8 00             	imul   $0x0,%eax,%ecx
4071b1:	8b 55 0c             	mov    0xc(%ebp),%edx
4071b4:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
4071b8:	85 c0                	test   %eax,%eax
4071ba:	74 1e                	je     0x4071da
4071bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4071bf:	0f b7 11             	movzwl (%ecx),%edx
4071c2:	89 55 f0             	mov    %edx,-0x10(%ebp)
4071c5:	8b 45 0c             	mov    0xc(%ebp),%eax
4071c8:	83 c0 02             	add    $0x2,%eax
4071cb:	89 45 0c             	mov    %eax,0xc(%ebp)
4071ce:	83 7d f0 2f          	cmpl   $0x2f,-0x10(%ebp)
4071d2:	75 b7                	jne    0x40718b
4071d4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4071d8:	75 b1                	jne    0x40718b
4071da:	eb 50                	jmp    0x40722c
4071dc:	b9 02 00 00 00       	mov    $0x2,%ecx
4071e1:	6b d1 00             	imul   $0x0,%ecx,%edx
4071e4:	8b 45 0c             	mov    0xc(%ebp),%eax
4071e7:	0f b7 0c 10          	movzwl (%eax,%edx,1),%ecx
4071eb:	51                   	push   %ecx
4071ec:	e8 7f f9 ff ff       	call   0x406b70
4071f1:	83 c4 04             	add    $0x4,%esp
4071f4:	0f b7 f0             	movzwl %ax,%esi
4071f7:	ba 02 00 00 00       	mov    $0x2,%edx
4071fc:	6b c2 00             	imul   $0x0,%edx,%eax
4071ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
407202:	0f b7 14 01          	movzwl (%ecx,%eax,1),%edx
407206:	52                   	push   %edx
407207:	e8 64 f9 ff ff       	call   0x406b70
40720c:	83 c4 04             	add    $0x4,%esp
40720f:	0f b7 c0             	movzwl %ax,%eax
407212:	3b f0                	cmp    %eax,%esi
407214:	74 04                	je     0x40721a
407216:	33 c0                	xor    %eax,%eax
407218:	eb 52                	jmp    0x40726c
40721a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40721d:	83 c1 02             	add    $0x2,%ecx
407220:	89 4d 08             	mov    %ecx,0x8(%ebp)
407223:	8b 55 0c             	mov    0xc(%ebp),%edx
407226:	83 c2 02             	add    $0x2,%edx
407229:	89 55 0c             	mov    %edx,0xc(%ebp)
40722c:	e9 29 fe ff ff       	jmp    0x40705a
407231:	8b 45 08             	mov    0x8(%ebp),%eax
407234:	0f b7 08             	movzwl (%eax),%ecx
407237:	51                   	push   %ecx
407238:	e8 33 f9 ff ff       	call   0x406b70
40723d:	83 c4 04             	add    $0x4,%esp
407240:	0f b7 f0             	movzwl %ax,%esi
407243:	8b 55 0c             	mov    0xc(%ebp),%edx
407246:	0f b7 02             	movzwl (%edx),%eax
407249:	50                   	push   %eax
40724a:	e8 21 f9 ff ff       	call   0x406b70
40724f:	83 c4 04             	add    $0x4,%esp
407252:	0f b7 c8             	movzwl %ax,%ecx
407255:	3b f1                	cmp    %ecx,%esi
407257:	75 09                	jne    0x407262
407259:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
407260:	eb 07                	jmp    0x407269
407262:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
407269:	8b 45 f4             	mov    -0xc(%ebp),%eax
40726c:	5e                   	pop    %esi
40726d:	8b e5                	mov    %ebp,%esp
40726f:	5d                   	pop    %ebp
407270:	c3                   	ret
407271:	cc                   	int3
407272:	cc                   	int3
407273:	cc                   	int3
407274:	cc                   	int3
407275:	cc                   	int3
407276:	cc                   	int3
407277:	cc                   	int3
407278:	cc                   	int3
407279:	cc                   	int3
40727a:	cc                   	int3
40727b:	cc                   	int3
40727c:	cc                   	int3
40727d:	cc                   	int3
40727e:	cc                   	int3
40727f:	cc                   	int3
407280:	55                   	push   %ebp
407281:	8b ec                	mov    %esp,%ebp
407283:	83 ec 28             	sub    $0x28,%esp
407286:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40728d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407291:	74 06                	je     0x407299
407293:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407297:	75 08                	jne    0x4072a1
407299:	8b 45 e8             	mov    -0x18(%ebp),%eax
40729c:	e9 27 01 00 00       	jmp    0x4073c8
4072a1:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4072a8:	8b 45 08             	mov    0x8(%ebp),%eax
4072ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4072ae:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4072b5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4072b8:	51                   	push   %ecx
4072b9:	e8 62 f7 ff ff       	call   0x406a20
4072be:	83 c4 04             	add    $0x4,%esp
4072c1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4072c4:	8b 55 10             	mov    0x10(%ebp),%edx
4072c7:	52                   	push   %edx
4072c8:	e8 53 f7 ff ff       	call   0x406a20
4072cd:	83 c4 04             	add    $0x4,%esp
4072d0:	89 45 ec             	mov    %eax,-0x14(%ebp)
4072d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4072d6:	50                   	push   %eax
4072d7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4072da:	51                   	push   %ecx
4072db:	e8 e0 b2 ff ff       	call   0x4025c0
4072e0:	8b 50 34             	mov    0x34(%eax),%edx
4072e3:	ff d2                	call   *%edx
4072e5:	83 c4 08             	add    $0x8,%esp
4072e8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4072eb:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4072ef:	0f 84 bb 00 00 00    	je     0x4073b0
4072f5:	8b 45 f0             	mov    -0x10(%ebp),%eax
4072f8:	2b 45 f8             	sub    -0x8(%ebp),%eax
4072fb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4072fe:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407301:	03 4d dc             	add    -0x24(%ebp),%ecx
407304:	89 4d e0             	mov    %ecx,-0x20(%ebp)
407307:	8b 55 f8             	mov    -0x8(%ebp),%edx
40730a:	03 55 e0             	add    -0x20(%ebp),%edx
40730d:	52                   	push   %edx
40730e:	e8 0d f7 ff ff       	call   0x406a20
407313:	83 c4 04             	add    $0x4,%esp
407316:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407319:	8b 45 fc             	mov    -0x4(%ebp),%eax
40731c:	89 45 d8             	mov    %eax,-0x28(%ebp)
40731f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407322:	03 4d e4             	add    -0x1c(%ebp),%ecx
407325:	03 4d ec             	add    -0x14(%ebp),%ecx
407328:	51                   	push   %ecx
407329:	e8 b2 f6 ff ff       	call   0x4069e0
40732e:	83 c4 04             	add    $0x4,%esp
407331:	89 45 fc             	mov    %eax,-0x4(%ebp)
407334:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407338:	74 5c                	je     0x407396
40733a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40733d:	52                   	push   %edx
40733e:	8b 45 f8             	mov    -0x8(%ebp),%eax
407341:	50                   	push   %eax
407342:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407345:	51                   	push   %ecx
407346:	e8 55 f6 ff ff       	call   0x4069a0
40734b:	83 c4 0c             	add    $0xc,%esp
40734e:	8b 55 ec             	mov    -0x14(%ebp),%edx
407351:	52                   	push   %edx
407352:	8b 45 10             	mov    0x10(%ebp),%eax
407355:	50                   	push   %eax
407356:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407359:	03 4d f4             	add    -0xc(%ebp),%ecx
40735c:	51                   	push   %ecx
40735d:	e8 3e f6 ff ff       	call   0x4069a0
407362:	83 c4 0c             	add    $0xc,%esp
407365:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407368:	52                   	push   %edx
407369:	8b 45 f8             	mov    -0x8(%ebp),%eax
40736c:	03 45 e0             	add    -0x20(%ebp),%eax
40736f:	50                   	push   %eax
407370:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407373:	03 4d f4             	add    -0xc(%ebp),%ecx
407376:	03 4d ec             	add    -0x14(%ebp),%ecx
407379:	51                   	push   %ecx
40737a:	e8 21 f6 ff ff       	call   0x4069a0
40737f:	83 c4 0c             	add    $0xc,%esp
407382:	8b 55 fc             	mov    -0x4(%ebp),%edx
407385:	89 55 f8             	mov    %edx,-0x8(%ebp)
407388:	8b 45 d8             	mov    -0x28(%ebp),%eax
40738b:	50                   	push   %eax
40738c:	e8 1f f5 ff ff       	call   0x4068b0
407391:	83 c4 04             	add    $0x4,%esp
407394:	eb 15                	jmp    0x4073ab
407396:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407399:	51                   	push   %ecx
40739a:	e8 11 f5 ff ff       	call   0x4068b0
40739f:	83 c4 04             	add    $0x4,%esp
4073a2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4073a9:	eb 05                	jmp    0x4073b0
4073ab:	e9 23 ff ff ff       	jmp    0x4072d3
4073b0:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4073b4:	74 0f                	je     0x4073c5