407129:	6a 10                	push   $0x10
40712b:	33 c0                	xor    %eax,%eax
40712d:	59                   	pop    %ecx
40712e:	8d 7d 90             	lea    -0x70(%ebp),%edi
407131:	f3 ab                	rep stos %eax,%es:(%edi)
407133:	8b 4d 08             	mov    0x8(%ebp),%ecx
407136:	8b d6                	mov    %esi,%edx
407138:	8b 01                	mov    (%ecx),%eax
40713a:	83 c1 04             	add    $0x4,%ecx
40713d:	8d 44 85 90          	lea    -0x70(%ebp,%eax,4),%eax
407141:	ff 00                	incl   (%eax)
407143:	4a                   	dec    %edx
407144:	75 f2                	jne    0x407138
407146:	39 75 90             	cmp    %esi,-0x70(%ebp)
407149:	75 13                	jne    0x40715e
40714b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40714e:	83 20 00             	andl   $0x0,(%eax)
407151:	8b 45 20             	mov    0x20(%ebp),%eax
407154:	83 20 00             	andl   $0x0,(%eax)
407157:	33 c0                	xor    %eax,%eax
407159:	e9 f0 02 00 00       	jmp    0x40744e
40715e:	8b 75 20             	mov    0x20(%ebp),%esi
407161:	33 db                	xor    %ebx,%ebx
407163:	43                   	inc    %ebx
407164:	6a 0f                	push   $0xf
407166:	8b 3e                	mov    (%esi),%edi
407168:	8b cb                	mov    %ebx,%ecx
40716a:	89 7d 20             	mov    %edi,0x20(%ebp)
40716d:	5a                   	pop    %edx
40716e:	33 c0                	xor    %eax,%eax
407170:	39 44 8d 90          	cmp    %eax,-0x70(%ebp,%ecx,4)
407174:	75 05                	jne    0x40717b
407176:	41                   	inc    %ecx
407177:	3b ca                	cmp    %edx,%ecx
407179:	76 f3                	jbe    0x40716e
40717b:	3b f9                	cmp    %ecx,%edi
40717d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407180:	73 03                	jae    0x407185
407182:	89 4d 20             	mov    %ecx,0x20(%ebp)
407185:	39 44 95 90          	cmp    %eax,-0x70(%ebp,%edx,4)
407189:	75 03                	jne    0x40718e
40718b:	4a                   	dec    %edx
40718c:	75 f7                	jne    0x407185
40718e:	39 55 20             	cmp    %edx,0x20(%ebp)
407191:	89 55 e8             	mov    %edx,-0x18(%ebp)
407194:	76 03                	jbe    0x407199
407196:	89 55 20             	mov    %edx,0x20(%ebp)
407199:	8b 7d 20             	mov    0x20(%ebp),%edi
40719c:	89 3e                	mov    %edi,(%esi)
40719e:	d3 e3                	shl    %cl,%ebx
4071a0:	eb 0d                	jmp    0x4071af
4071a2:	2b 5c 8d 90          	sub    -0x70(%ebp,%ecx,4),%ebx
4071a6:	0f 88 9f 02 00 00    	js     0x40744b
4071ac:	41                   	inc    %ecx
4071ad:	03 db                	add    %ebx,%ebx
4071af:	3b ca                	cmp    %edx,%ecx
4071b1:	72 ef                	jb     0x4071a2
4071b3:	8b f2                	mov    %edx,%esi
4071b5:	c1 e6 02             	shl    $0x2,%esi
4071b8:	8d 4c 35 90          	lea    -0x70(%ebp,%esi,1),%ecx
4071bc:	8b 39                	mov    (%ecx),%edi
4071be:	2b df                	sub    %edi,%ebx
4071c0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4071c3:	0f 88 82 02 00 00    	js     0x40744b
4071c9:	03 fb                	add    %ebx,%edi
4071cb:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
4071d1:	89 39                	mov    %edi,(%ecx)
4071d3:	33 c9                	xor    %ecx,%ecx
4071d5:	4a                   	dec    %edx
4071d6:	74 13                	je     0x4071eb
4071d8:	33 ff                	xor    %edi,%edi
4071da:	03 4c 3d 94          	add    -0x6c(%ebp,%edi,1),%ecx
4071de:	83 c7 04             	add    $0x4,%edi
4071e1:	4a                   	dec    %edx
4071e2:	89 8c 3d 54 ff ff ff 	mov    %ecx,-0xac(%ebp,%edi,1)
4071e9:	75 ef                	jne    0x4071da
4071eb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4071ee:	33 ff                	xor    %edi,%edi
4071f0:	8b 0b                	mov    (%ebx),%ecx
4071f2:	83 c3 04             	add    $0x4,%ebx
4071f5:	3b c8                	cmp    %eax,%ecx
4071f7:	74 13                	je     0x40720c
4071f9:	8d 8c 8d 50 ff ff ff 	lea    -0xb0(%ebp,%ecx,4),%ecx
407200:	8b 11                	mov    (%ecx),%edx
407202:	89 3c 95 b0 d6 42 00 	mov    %edi,0x42d6b0(,%edx,4)
407209:	42                   	inc    %edx
40720a:	89 11                	mov    %edx,(%ecx)
40720c:	47                   	inc    %edi
40720d:	3b 7d 0c             	cmp    0xc(%ebp),%edi
407210:	72 de                	jb     0x4071f0
407212:	8b 8c 35 50 ff ff ff 	mov    -0xb0(%ebp,%esi,1),%ecx
407219:	8b 5d 20             	mov    0x20(%ebp),%ebx
40721c:	83 4d f4 ff          	orl    $0xffffffff,-0xc(%ebp)
407220:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
407224:	89 4d 0c             	mov    %ecx,0xc(%ebp)
407227:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40722a:	f7 db                	neg    %ebx
40722c:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
40722f:	89 45 f8             	mov    %eax,-0x8(%ebp)
407232:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
407238:	c7 45 e0 b0 d6 42 00 	movl   $0x42d6b0,-0x20(%ebp)
40723f:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
407245:	0f 8f f3 01 00 00    	jg     0x40743e
40724b:	8d 51 ff             	lea    -0x1(%ecx),%edx
40724e:	8d 4c 8d 90          	lea    -0x70(%ebp,%ecx,4),%ecx
407252:	89 55 d8             	mov    %edx,-0x28(%ebp)
407255:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407258:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40725b:	8b 31                	mov    (%ecx),%esi
40725d:	85 f6                	test   %esi,%esi
40725f:	0f 84 c3 01 00 00    	je     0x407428
407265:	eb 03                	jmp    0x40726a
407267:	8b 75 d4             	mov    -0x2c(%ebp),%esi
40726a:	8b 4d 20             	mov    0x20(%ebp),%ecx
40726d:	4e                   	dec    %esi
40726e:	03 cb                	add    %ebx,%ecx
407270:	89 75 d4             	mov    %esi,-0x2c(%ebp)
407273:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
407276:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407279:	0f 8e cc 00 00 00    	jle    0x40734b
40727f:	46                   	inc    %esi
407280:	89 75 f0             	mov    %esi,-0x10(%ebp)
407283:	8b 75 e8             	mov    -0x18(%ebp),%esi
407286:	ff 45 f4             	incl   -0xc(%ebp)
407289:	2b 75 ec             	sub    -0x14(%ebp),%esi
40728c:	3b 75 20             	cmp    0x20(%ebp),%esi
40728f:	76 03                	jbe    0x407294
407291:	8b 75 20             	mov    0x20(%ebp),%esi
407294:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407297:	33 d2                	xor    %edx,%edx
407299:	2b 4d ec             	sub    -0x14(%ebp),%ecx
40729c:	42                   	inc    %edx
40729d:	d3 e2                	shl    %cl,%edx
40729f:	3b 55 f0             	cmp    -0x10(%ebp),%edx
4072a2:	76 23                	jbe    0x4072c7
4072a4:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4072a7:	83 c8 ff             	or     $0xffffffff,%eax
4072aa:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4072ad:	03 d0                	add    %eax,%edx
4072af:	3b ce                	cmp    %esi,%ecx
4072b1:	73 14                	jae    0x4072c7
4072b3:	eb 0d                	jmp    0x4072c2
4072b5:	83 c7 04             	add    $0x4,%edi
4072b8:	03 d2                	add    %edx,%edx
4072ba:	8b 07                	mov    (%edi),%eax
4072bc:	3b d0                	cmp    %eax,%edx
4072be:	76 07                	jbe    0x4072c7
4072c0:	2b d0                	sub    %eax,%edx
4072c2:	41                   	inc    %ecx
4072c3:	3b ce                	cmp    %esi,%ecx
4072c5:	72 ee                	jb     0x4072b5
4072c7:	8b 55 28             	mov    0x28(%ebp),%edx
4072ca:	33 c0                	xor    %eax,%eax
4072cc:	40                   	inc    %eax
4072cd:	8b 12                	mov    (%edx),%edx
4072cf:	d3 e0                	shl    %cl,%eax
4072d1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4072d4:	8d 3c 02             	lea    (%edx,%eax,1),%edi
4072d7:	81 ff a0 05 00 00    	cmp    $0x5a0,%edi
4072dd:	0f 87 68 01 00 00    	ja     0x40744b
4072e3:	8b 45 24             	mov    0x24(%ebp),%eax
4072e6:	8d 04 90             	lea    (%eax,%edx,4),%eax
4072e9:	8b 55 f4             	mov    -0xc(%ebp),%edx
4072ec:	8d b4 95 14 ff ff ff 	lea    -0xec(%ebp,%edx,4),%esi
4072f3:	8b 55 28             	mov    0x28(%ebp),%edx
4072f6:	89 3a                	mov    %edi,(%edx)
4072f8:	8b 55 f4             	mov    -0xc(%ebp),%edx
4072fb:	85 d2                	test   %edx,%edx
4072fd:	89 06                	mov    %eax,(%esi)
4072ff:	74 31                	je     0x407332
407301:	8b 7d f8             	mov    -0x8(%ebp),%edi
407304:	8b 76 fc             	mov    -0x4(%esi),%esi
407307:	89 bc 95 50 ff ff ff 	mov    %edi,-0xb0(%ebp,%edx,4)
40730e:	8a 55 20             	mov    0x20(%ebp),%dl
407311:	88 55 09             	mov    %dl,0x9(%ebp)
407314:	88 4d 08             	mov    %cl,0x8(%ebp)
407317:	8b d7                	mov    %edi,%edx
407319:	8b cb                	mov    %ebx,%ecx
40731b:	d3 ea                	shr    %cl,%edx
40731d:	8b c8                	mov    %eax,%ecx
40731f:	2b ce                	sub    %esi,%ecx
407321:	c1 f9 02             	sar    $0x2,%ecx
407324:	2b ca                	sub    %edx,%ecx
407326:	66 89 4d 0a          	mov    %cx,0xa(%ebp)
40732a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40732d:	89 0c 96             	mov    %ecx,(%esi,%edx,4)
407330:	eb 05                	jmp    0x407337
407332:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
407335:	89 01                	mov    %eax,(%ecx)
407337:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40733a:	8b d9                	mov    %ecx,%ebx
40733c:	03 4d 20             	add    0x20(%ebp),%ecx
40733f:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
407342:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407345:	0f 8f 38 ff ff ff    	jg     0x407283
40734b:	8a 4d fc             	mov    -0x4(%ebp),%cl
40734e:	8b 75 e0             	mov    -0x20(%ebp),%esi
407351:	2a cb                	sub    %bl,%cl
407353:	88 4d 09             	mov    %cl,0x9(%ebp)
407356:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407359:	8d 0c 8d b0 d6 42 00 	lea    0x42d6b0(,%ecx,4),%ecx
407360:	3b f1                	cmp    %ecx,%esi
407362:	72 06                	jb     0x40736a
407364:	c6 45 08 c0          	movb   $0xc0,0x8(%ebp)
407368:	eb 43                	jmp    0x4073ad
40736a:	8b 0e                	mov    (%esi),%ecx
40736c:	3b 4d 10             	cmp    0x10(%ebp),%ecx
40736f:	73 1c                	jae    0x40738d
407371:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
407377:	0f 92 c1             	setb   %cl
40737a:	fe c9                	dec    %cl
40737c:	83 e1 60             	and    $0x60,%ecx
40737f:	88 4d 08             	mov    %cl,0x8(%ebp)
407382:	66 8b 0e             	mov    (%esi),%cx
407385:	83 c6 04             	add    $0x4,%esi
407388:	89 75 e0             	mov    %esi,-0x20(%ebp)
40738b:	eb 1c                	jmp    0x4073a9
40738d:	2b 4d 10             	sub    0x10(%ebp),%ecx
407390:	8b 55 18             	mov    0x18(%ebp),%edx
407393:	03 c9                	add    %ecx,%ecx
407395:	8a 14 11             	mov    (%ecx,%edx,1),%dl
407398:	80 c2 50             	add    $0x50,%dl
40739b:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
40739f:	88 55 08             	mov    %dl,0x8(%ebp)
4073a2:	8b 55 14             	mov    0x14(%ebp),%edx
4073a5:	66 8b 0c 11          	mov    (%ecx,%edx,1),%cx
4073a9:	66 89 4d 0a          	mov    %cx,0xa(%ebp)
4073ad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4073b0:	8b 55 f8             	mov    -0x8(%ebp),%edx
4073b3:	33 ff                	xor    %edi,%edi
4073b5:	2b cb                	sub    %ebx,%ecx
4073b7:	47                   	inc    %edi
4073b8:	8b f7                	mov    %edi,%esi
4073ba:	d3 e6                	shl    %cl,%esi
4073bc:	8b cb                	mov    %ebx,%ecx
4073be:	d3 ea                	shr    %cl,%edx
4073c0:	eb 08                	jmp    0x4073ca
4073c2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4073c5:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
4073c8:	03 d6                	add    %esi,%edx
4073ca:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4073cd:	72 f3                	jb     0x4073c2
4073cf:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4073d2:	8b 75 f8             	mov    -0x8(%ebp),%esi
4073d5:	8b d7                	mov    %edi,%edx
4073d7:	d3 e2                	shl    %cl,%edx
4073d9:	eb 04                	jmp    0x4073df
4073db:	33 f2                	xor    %edx,%esi
4073dd:	d1 ea                	shr    $1,%edx
4073df:	85 d6                	test   %edx,%esi
4073e1:	75 f8                	jne    0x4073db
4073e3:	8b cf                	mov    %edi,%ecx
4073e5:	33 f2                	xor    %edx,%esi
4073e7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4073ea:	8b cb                	mov    %ebx,%ecx
4073ec:	8b d7                	mov    %edi,%edx
4073ee:	89 75 f8             	mov    %esi,-0x8(%ebp)
4073f1:	d3 e2                	shl    %cl,%edx
4073f3:	4a                   	dec    %edx
4073f4:	23 d6                	and    %esi,%edx
4073f6:	8b ca                	mov    %edx,%ecx
4073f8:	8b 55 f4             	mov    -0xc(%ebp),%edx
4073fb:	3b 8c 95 50 ff ff ff 	cmp    -0xb0(%ebp,%edx,4),%ecx
407402:	74 1a                	je     0x40741e
407404:	2b 5d 20             	sub    0x20(%ebp),%ebx
407407:	8b f7                	mov    %edi,%esi
407409:	4a                   	dec    %edx
40740a:	8b cb                	mov    %ebx,%ecx
40740c:	d3 e6                	shl    %cl,%esi
40740e:	4e                   	dec    %esi
40740f:	23 75 f8             	and    -0x8(%ebp),%esi
407412:	3b b4 95 50 ff ff ff 	cmp    -0xb0(%ebp,%edx,4),%esi
407419:	75 e9                	jne    0x407404
40741b:	89 55 f4             	mov    %edx,-0xc(%ebp)
40741e:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
407422:	0f 85 3f fe ff ff    	jne    0x407267
407428:	ff 45 fc             	incl   -0x4(%ebp)
40742b:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
40742f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407432:	ff 45 d8             	incl   -0x28(%ebp)
407435:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
407438:	0f 8e 1a fe ff ff    	jle    0x407258
40743e:	33 c0                	xor    %eax,%eax
407440:	39 45 d0             	cmp    %eax,-0x30(%ebp)
407443:	74 09                	je     0x40744e
407445:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
407449:	74 03                	je     0x40744e
40744b:	83 c8 ff             	or     $0xffffffff,%eax
40744e:	5f                   	pop    %edi
40744f:	5e                   	pop    %esi
407450:	5b                   	pop    %ebx
407451:	c9                   	leave
407452:	c2 24 00             	ret    $0x24