406f82:	46                   	inc    %esi
406f83:	8a 45 dd             	mov    -0x23(%ebp),%al
406f86:	fe c0                	inc    %al
406f88:	88 45 dd             	mov    %al,-0x23(%ebp)
406f8b:	3c fe                	cmp    $0xfe,%al
406f8d:	76 8e                	jbe    0x406f1d
406f8f:	8a 45 dc             	mov    -0x24(%ebp),%al
406f92:	fe c0                	inc    %al
406f94:	88 45 dc             	mov    %al,-0x24(%ebp)
406f97:	3c ff                	cmp    $0xff,%al
406f99:	0f 82 6b ff ff ff    	jb     0x406f0a
406f9f:	e9 79 fe ff ff       	jmp    0x406e1d
406fa4:	33 c0                	xor    %eax,%eax
406fa6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406fa9:	5f                   	pop    %edi
406faa:	5e                   	pop    %esi
406fab:	33 cd                	xor    %ebp,%ecx
406fad:	5b                   	pop    %ebx
406fae:	e8 7d 94 00 00       	call   0x410430
406fb3:	c9                   	leave
406fb4:	c2 04 00             	ret    $0x4
406fb7:	8b ff                	mov    %edi,%edi
406fb9:	55                   	push   %ebp
406fba:	8b ec                	mov    %esp,%ebp
406fbc:	83 ec 44             	sub    $0x44,%esp
406fbf:	53                   	push   %ebx
406fc0:	56                   	push   %esi
406fc1:	33 f6                	xor    %esi,%esi
406fc3:	8b c2                	mov    %edx,%eax
406fc5:	57                   	push   %edi
406fc6:	56                   	push   %esi
406fc7:	89 45 e0             	mov    %eax,-0x20(%ebp)
406fca:	8b fe                	mov    %esi,%edi
406fcc:	89 30                	mov    %esi,(%eax)
406fce:	33 c0                	xor    %eax,%eax
406fd0:	40                   	inc    %eax
406fd1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406fd4:	50                   	push   %eax
406fd5:	6a 03                	push   $0x3
406fd7:	5a                   	pop    %edx
406fd8:	52                   	push   %edx
406fd9:	56                   	push   %esi
406fda:	50                   	push   %eax
406fdb:	68 00 00 00 80       	push   $0x80000000
406fe0:	51                   	push   %ecx
406fe1:	89 75 fc             	mov    %esi,-0x4(%ebp)
406fe4:	89 75 e8             	mov    %esi,-0x18(%ebp)
406fe7:	89 75 dc             	mov    %esi,-0x24(%ebp)
406fea:	89 75 f8             	mov    %esi,-0x8(%ebp)
406fed:	89 7d c0             	mov    %edi,-0x40(%ebp)
406ff0:	ff 15 68 31 43 00    	call   *0x433168
406ff6:	8b d8                	mov    %eax,%ebx
406ff8:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406ffb:	83 fb ff             	cmp    $0xffffffff,%ebx
406ffe:	75 07                	jne    0x407007
407000:	33 c0                	xor    %eax,%eax
407002:	e9 31 05 00 00       	jmp    0x407538
407007:	56                   	push   %esi
407008:	53                   	push   %ebx
407009:	ff 15 64 31 43 00    	call   *0x433164
40700f:	56                   	push   %esi
407010:	50                   	push   %eax
407011:	56                   	push   %esi
407012:	6a 02                	push   $0x2
407014:	56                   	push   %esi
407015:	53                   	push   %ebx
407016:	ff 15 60 31 43 00    	call   *0x433160
40701c:	89 45 cc             	mov    %eax,-0x34(%ebp)
40701f:	85 c0                	test   %eax,%eax
407021:	75 09                	jne    0x40702c
407023:	53                   	push   %ebx
407024:	ff 15 74 31 43 00    	call   *0x433174
40702a:	eb d4                	jmp    0x407000
40702c:	56                   	push   %esi
40702d:	56                   	push   %esi
40702e:	56                   	push   %esi
40702f:	6a 04                	push   $0x4
407031:	59                   	pop    %ecx
407032:	51                   	push   %ecx
407033:	50                   	push   %eax
407034:	ff 15 5c 31 43 00    	call   *0x43315c
40703a:	8b d8                	mov    %eax,%ebx
40703c:	85 db                	test   %ebx,%ebx
40703e:	75 0e                	jne    0x40704e
407040:	ff 75 cc             	push   -0x34(%ebp)
407043:	ff 15 74 31 43 00    	call   *0x433174
407049:	ff 75 c8             	push   -0x38(%ebp)
40704c:	eb d6                	jmp    0x407024
40704e:	80 3b 74             	cmpb   $0x74,(%ebx)
407051:	8b d6                	mov    %esi,%edx
407053:	be 00 ff 00 00       	mov    $0xff00,%esi
407058:	75 31                	jne    0x40708b
40705a:	80 7b 01 74          	cmpb   $0x74,0x1(%ebx)
40705e:	75 2b                	jne    0x40708b
407060:	80 7b 02 63          	cmpb   $0x63,0x2(%ebx)
407064:	75 25                	jne    0x40708b
407066:	80 7b 03 66          	cmpb   $0x66,0x3(%ebx)
40706a:	75 1f                	jne    0x40708b
40706c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40706f:	8b d1                	mov    %ecx,%edx
407071:	c1 e2 10             	shl    $0x10,%edx
407074:	8b c1                	mov    %ecx,%eax
407076:	23 c6                	and    %esi,%eax
407078:	03 d0                	add    %eax,%edx
40707a:	8b c1                	mov    %ecx,%eax
40707c:	c1 e8 08             	shr    $0x8,%eax
40707f:	c1 e2 08             	shl    $0x8,%edx
407082:	23 c6                	and    %esi,%eax
407084:	03 d0                	add    %eax,%edx
407086:	c1 e9 18             	shr    $0x18,%ecx
407089:	03 d1                	add    %ecx,%edx
40708b:	03 da                	add    %edx,%ebx
40708d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
407090:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
407094:	8b c8                	mov    %eax,%ecx
407096:	66 c1 e8 08          	shr    $0x8,%ax
40709a:	c1 e1 08             	shl    $0x8,%ecx
40709d:	66 03 c8             	add    %ax,%cx
4070a0:	0f b7 c1             	movzwl %cx,%eax
4070a3:	89 45 bc             	mov    %eax,-0x44(%ebp)
4070a6:	66 85 c0             	test   %ax,%ax
4070a9:	0f 84 5f 04 00 00    	je     0x40750e
4070af:	21 7d f4             	and    %edi,-0xc(%ebp)
4070b2:	8d 73 0c             	lea    0xc(%ebx),%esi
4070b5:	33 c9                	xor    %ecx,%ecx
4070b7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4070ba:	66 3b c8             	cmp    %ax,%cx
4070bd:	0f 83 4b 04 00 00    	jae    0x40750e
4070c3:	8a 06                	mov    (%esi),%al
4070c5:	3c 6d                	cmp    $0x6d,%al
4070c7:	0f 85 9a 00 00 00    	jne    0x407167
4070cd:	80 7e 01 61          	cmpb   $0x61,0x1(%esi)
4070d1:	75 48                	jne    0x40711b
4070d3:	80 7e 02 78          	cmpb   $0x78,0x2(%esi)
4070d7:	75 42                	jne    0x40711b
4070d9:	80 7e 03 70          	cmpb   $0x70,0x3(%esi)
4070dd:	75 3c                	jne    0x40711b
4070df:	8b 56 08             	mov    0x8(%esi),%edx
4070e2:	8b ca                	mov    %edx,%ecx
4070e4:	c1 e1 10             	shl    $0x10,%ecx
4070e7:	8b c2                	mov    %edx,%eax
4070e9:	25 00 ff 00 00       	and    $0xff00,%eax
4070ee:	03 c8                	add    %eax,%ecx
4070f0:	8b c2                	mov    %edx,%eax
4070f2:	c1 e8 08             	shr    $0x8,%eax
4070f5:	25 00 ff 00 00       	and    $0xff00,%eax
4070fa:	c1 e1 08             	shl    $0x8,%ecx
4070fd:	03 c3                	add    %ebx,%eax
4070ff:	c1 ea 18             	shr    $0x18,%edx
407102:	03 c1                	add    %ecx,%eax
407104:	0f b7 44 02 04       	movzwl 0x4(%edx,%eax,1),%eax
407109:	8b c8                	mov    %eax,%ecx
40710b:	66 c1 e8 08          	shr    $0x8,%ax
40710f:	c1 e1 08             	shl    $0x8,%ecx
407112:	66 03 c8             	add    %ax,%cx
407115:	0f b7 c1             	movzwl %cx,%eax
407118:	89 45 e8             	mov    %eax,-0x18(%ebp)
40711b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40711e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407121:	8b 45 f4             	mov    -0xc(%ebp),%eax
407124:	83 c6 10             	add    $0x10,%esi
407127:	40                   	inc    %eax
407128:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40712b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40712e:	66 3b 45 bc          	cmp    -0x44(%ebp),%ax
407132:	72 8f                	jb     0x4070c3
407134:	66 83 7d e8 00       	cmpw   $0x0,-0x18(%ebp)
407139:	0f 84 cf 03 00 00    	je     0x40750e
40713f:	85 d2                	test   %edx,%edx
407141:	0f 84 c7 03 00 00    	je     0x40750e
407147:	8b 55 dc             	mov    -0x24(%ebp),%edx
40714a:	66 85 d2             	test   %dx,%dx
40714d:	0f 84 bb 03 00 00    	je     0x40750e
407153:	85 c9                	test   %ecx,%ecx
407155:	0f 84 b3 03 00 00    	je     0x40750e
40715b:	33 f6                	xor    %esi,%esi
40715d:	33 c0                	xor    %eax,%eax
40715f:	66 3b f2             	cmp    %dx,%si
407162:	e9 8e 03 00 00       	jmp    0x4074f5
407167:	3c 68                	cmp    $0x68,%al
407169:	75 53                	jne    0x4071be
40716b:	80 7e 01 65          	cmpb   $0x65,0x1(%esi)
40716f:	75 aa                	jne    0x40711b
407171:	80 7e 02 61          	cmpb   $0x61,0x2(%esi)
407175:	75 a4                	jne    0x40711b
407177:	80 7e 03 64          	cmpb   $0x64,0x3(%esi)
40717b:	75 9e                	jne    0x40711b
40717d:	8b 56 08             	mov    0x8(%esi),%edx
407180:	8b ca                	mov    %edx,%ecx
407182:	c1 e1 10             	shl    $0x10,%ecx
407185:	8b c2                	mov    %edx,%eax
407187:	25 00 ff 00 00       	and    $0xff00,%eax
40718c:	03 c8                	add    %eax,%ecx
40718e:	8b c2                	mov    %edx,%eax
407190:	c1 e8 08             	shr    $0x8,%eax
407193:	25 00 ff 00 00       	and    $0xff00,%eax
407198:	c1 e1 08             	shl    $0x8,%ecx
40719b:	03 c3                	add    %ebx,%eax
40719d:	c1 ea 18             	shr    $0x18,%edx
4071a0:	03 c1                	add    %ecx,%eax
4071a2:	0f b7 44 02 32       	movzwl 0x32(%edx,%eax,1),%eax
4071a7:	8b c8                	mov    %eax,%ecx
4071a9:	66 c1 e8 08          	shr    $0x8,%ax
4071ad:	c1 e1 08             	shl    $0x8,%ecx
4071b0:	66 03 c8             	add    %ax,%cx
4071b3:	0f b7 c1             	movzwl %cx,%eax
4071b6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4071b9:	e9 5d ff ff ff       	jmp    0x40711b
4071be:	3c 6c                	cmp    $0x6c,%al
4071c0:	75 4d                	jne    0x40720f
4071c2:	80 7e 01 6f          	cmpb   $0x6f,0x1(%esi)
4071c6:	0f 85 4f ff ff ff    	jne    0x40711b
4071cc:	80 7e 02 63          	cmpb   $0x63,0x2(%esi)
4071d0:	0f 85 45 ff ff ff    	jne    0x40711b
4071d6:	80 7e 03 61          	cmpb   $0x61,0x3(%esi)
4071da:	0f 85 3b ff ff ff    	jne    0x40711b
4071e0:	8b 56 08             	mov    0x8(%esi),%edx
4071e3:	8b ca                	mov    %edx,%ecx
4071e5:	8b c2                	mov    %edx,%eax
4071e7:	c1 e1 10             	shl    $0x10,%ecx
4071ea:	25 00 ff 00 00       	and    $0xff00,%eax
4071ef:	03 c8                	add    %eax,%ecx
4071f1:	8b c2                	mov    %edx,%eax
4071f3:	c1 e8 08             	shr    $0x8,%eax
4071f6:	25 00 ff 00 00       	and    $0xff00,%eax
4071fb:	c1 e1 08             	shl    $0x8,%ecx
4071fe:	03 c3                	add    %ebx,%eax
407200:	c1 ea 18             	shr    $0x18,%edx
407203:	03 c1                	add    %ecx,%eax
407205:	03 d0                	add    %eax,%edx
407207:	89 55 fc             	mov    %edx,-0x4(%ebp)
40720a:	e9 0f ff ff ff       	jmp    0x40711e
40720f:	3c 63                	cmp    $0x63,%al
407211:	0f 85 04 ff ff ff    	jne    0x40711b
407217:	80 7e 01 6d          	cmpb   $0x6d,0x1(%esi)
40721b:	0f 85 fa fe ff ff    	jne    0x40711b
407221:	80 7e 02 61          	cmpb   $0x61,0x2(%esi)
407225:	0f 85 f0 fe ff ff    	jne    0x40711b
40722b:	80 7e 03 70          	cmpb   $0x70,0x3(%esi)
40722f:	0f 85 e6 fe ff ff    	jne    0x40711b
407235:	8b 56 08             	mov    0x8(%esi),%edx
407238:	8b ca                	mov    %edx,%ecx
40723a:	c1 e1 10             	shl    $0x10,%ecx
40723d:	8b c2                	mov    %edx,%eax
40723f:	25 00 ff 00 00       	and    $0xff00,%eax
407244:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
407248:	03 c8                	add    %eax,%ecx
40724a:	8b c2                	mov    %edx,%eax
40724c:	c1 e8 08             	shr    $0x8,%eax
40724f:	25 00 ff 00 00       	and    $0xff00,%eax
407254:	c1 e1 08             	shl    $0x8,%ecx
407257:	03 c3                	add    %ebx,%eax
407259:	c1 ea 18             	shr    $0x18,%edx
40725c:	03 c1                	add    %ecx,%eax
40725e:	03 d0                	add    %eax,%edx
407260:	89 55 f0             	mov    %edx,-0x10(%ebp)
407263:	0f b7 42 02          	movzwl 0x2(%edx),%eax
407267:	83 c2 04             	add    $0x4,%edx
40726a:	8b c8                	mov    %eax,%ecx
40726c:	66 c1 e8 08          	shr    $0x8,%ax
407270:	c1 e1 08             	shl    $0x8,%ecx
407273:	66 03 c8             	add    %ax,%cx
407276:	0f b7 c1             	movzwl %cx,%eax
407279:	33 c9                	xor    %ecx,%ecx
40727b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40727e:	66 3b c8             	cmp    %ax,%cx
407281:	0f 83 94 fe ff ff    	jae    0x40711b
407287:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40728b:	8b c8                	mov    %eax,%ecx
40728d:	66 c1 e8 08          	shr    $0x8,%ax
407291:	c1 e1 08             	shl    $0x8,%ecx
407294:	66 03 c8             	add    %ax,%cx
407297:	0f b7 c1             	movzwl %cx,%eax
40729a:	89 45 d8             	mov    %eax,-0x28(%ebp)
40729d:	0f b7 02             	movzwl (%edx),%eax
4072a0:	8b c8                	mov    %eax,%ecx
4072a2:	66 c1 e8 08          	shr    $0x8,%ax
4072a6:	c1 e1 08             	shl    $0x8,%ecx
4072a9:	66 03 c8             	add    %ax,%cx
4072ac:	6a 03                	push   $0x3
4072ae:	58                   	pop    %eax
4072af:	66 3b c8             	cmp    %ax,%cx
4072b2:	75 10                	jne    0x4072c4
4072b4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4072b7:	33 c9                	xor    %ecx,%ecx
4072b9:	41                   	inc    %ecx
4072ba:	66 3b c1             	cmp    %cx,%ax
4072bd:	74 1a                	je     0x4072d9
4072bf:	66 85 c0             	test   %ax,%ax
4072c2:	74 15                	je     0x4072d9
4072c4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4072c7:	83 c2 08             	add    $0x8,%edx
4072ca:	41                   	inc    %ecx
4072cb:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4072ce:	66 3b 4d ec          	cmp    -0x14(%ebp),%cx
4072d2:	72 b3                	jb     0x407287
4072d4:	e9 42 fe ff ff       	jmp    0x40711b
4072d9:	8b 52 04             	mov    0x4(%edx),%edx
4072dc:	8b ca                	mov    %edx,%ecx
4072de:	c1 e1 10             	shl    $0x10,%ecx
4072e1:	8b c2                	mov    %edx,%eax
4072e3:	25 00 ff 00 00       	and    $0xff00,%eax
4072e8:	03 c8                	add    %eax,%ecx
4072ea:	8b c2                	mov    %edx,%eax
4072ec:	c1 e8 08             	shr    $0x8,%eax
4072ef:	25 00 ff 00 00       	and    $0xff00,%eax
4072f4:	c1 e1 08             	shl    $0x8,%ecx
4072f7:	03 45 f0             	add    -0x10(%ebp),%eax
4072fa:	03 c1                	add    %ecx,%eax
4072fc:	c1 ea 18             	shr    $0x18,%edx
4072ff:	03 d0                	add    %eax,%edx
407301:	6a 04                	push   $0x4
407303:	89 55 ec             	mov    %edx,-0x14(%ebp)
407306:	0f b7 02             	movzwl (%edx),%eax
407309:	8b c8                	mov    %eax,%ecx
40730b:	66 c1 e8 08          	shr    $0x8,%ax
40730f:	c1 e1 08             	shl    $0x8,%ecx
407312:	66 03 c8             	add    %ax,%cx
407315:	58                   	pop    %eax
407316:	66 3b c8             	cmp    %ax,%cx
407319:	0f 85 bc 00 00 00    	jne    0x4073db
40731f:	0f b7 42 06          	movzwl 0x6(%edx),%eax
407323:	8b c8                	mov    %eax,%ecx
407325:	c1 e0 08             	shl    $0x8,%eax
407328:	c1 e9 08             	shr    $0x8,%ecx
40732b:	03 c8                	add    %eax,%ecx
40732d:	d1 e9                	shr    $1,%ecx
40732f:	49                   	dec    %ecx
407330:	0f b7 c1             	movzwl %cx,%eax
407333:	89 45 dc             	mov    %eax,-0x24(%ebp)
407336:	0f b7 c0             	movzwl %ax,%eax
407339:	89 45 d8             	mov    %eax,-0x28(%ebp)
40733c:	6b c0 06             	imul   $0x6,%eax,%eax
40733f:	50                   	push   %eax
407340:	ff 15 f8 33 43 00    	call   *0x4333f8
407346:	59                   	pop    %ecx
407347:	8b c8                	mov    %eax,%ecx
407349:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40734c:	85 c9                	test   %ecx,%ecx
40734e:	0f 84 ba 01 00 00    	je     0x40750e
407354:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
407358:	8b 45 d8             	mov    -0x28(%ebp),%eax
40735b:	85 c0                	test   %eax,%eax
40735d:	74 7f                	je     0x4073de
40735f:	8b 55 ec             	mov    -0x14(%ebp),%edx
407362:	8d 59 04             	lea    0x4(%ecx),%ebx
407365:	8b 7d d8             	mov    -0x28(%ebp),%edi
407368:	8d 48 05             	lea    0x5(%eax),%ecx
40736b:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40736e:	83 c0 09             	add    $0x9,%eax