421229:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
42122f:	3b f1                	cmp    %ecx,%esi
421231:	77 2f                	ja     0x421262
421233:	50                   	push   %eax
421234:	56                   	push   %esi
421235:	8b cb                	mov    %ebx,%ecx
421237:	ff 15 54 41 42 00    	call   *0x424154
42123d:	ff d3                	call   *%ebx
42123f:	83 c4 08             	add    $0x8,%esp
421242:	85 c0                	test   %eax,%eax
421244:	7e 0a                	jle    0x421250
421246:	8b c6                	mov    %esi,%eax
421248:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
42124e:	eb 06                	jmp    0x421256
421250:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
421256:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
42125c:	03 f7                	add    %edi,%esi
42125e:	3b f1                	cmp    %ecx,%esi
421260:	76 d1                	jbe    0x421233
421262:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
421268:	8b d1                	mov    %ecx,%edx
42126a:	3b c1                	cmp    %ecx,%eax
42126c:	74 3b                	je     0x4212a9
42126e:	2b c1                	sub    %ecx,%eax
421270:	8b df                	mov    %edi,%ebx
421272:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
421278:	eb 06                	jmp    0x421280
42127a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
421280:	8a 0c 10             	mov    (%eax,%edx,1),%cl
421283:	8d 52 01             	lea    0x1(%edx),%edx
421286:	8b b5 04 ff ff ff    	mov    -0xfc(%ebp),%esi
42128c:	8a 42 ff             	mov    -0x1(%edx),%al
42128f:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
421293:	8b c6                	mov    %esi,%eax
421295:	88 4a ff             	mov    %cl,-0x1(%edx)
421298:	83 eb 01             	sub    $0x1,%ebx
42129b:	75 e3                	jne    0x421280
42129d:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4212a3:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
4212a9:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
4212af:	2b cf                	sub    %edi,%ecx
4212b1:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
4212b7:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
4212bd:	3b ce                	cmp    %esi,%ecx
4212bf:	0f 87 60 ff ff ff    	ja     0x421225
4212c5:	e9 79 03 00 00       	jmp    0x421643
4212ca:	d1 e8                	shr    $1,%eax
4212cc:	8b cb                	mov    %ebx,%ecx
4212ce:	0f af c7             	imul   %edi,%eax
4212d1:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4212d7:	8d 3c 30             	lea    (%eax,%esi,1),%edi
4212da:	57                   	push   %edi
4212db:	56                   	push   %esi
4212dc:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
4212e2:	ff 15 54 41 42 00    	call   *0x424154
4212e8:	ff d3                	call   *%ebx
4212ea:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4212f0:	83 c4 08             	add    $0x8,%esp
4212f3:	85 c0                	test   %eax,%eax
4212f5:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4212fb:	7e 4d                	jle    0x42134a
4212fd:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
421303:	89 bd f0 fe ff ff    	mov    %edi,-0x110(%ebp)
421309:	3b c7                	cmp    %edi,%eax
42130b:	74 3d                	je     0x42134a
42130d:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
421313:	8b f7                	mov    %edi,%esi
421315:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
42131b:	eb 03                	jmp    0x421320
42131d:	8d 49 00             	lea    0x0(%ecx),%ecx
421320:	8a 06                	mov    (%esi),%al
421322:	8b d6                	mov    %esi,%edx
421324:	2b d7                	sub    %edi,%edx
421326:	8a 0a                	mov    (%edx),%cl
421328:	88 02                	mov    %al,(%edx)
42132a:	88 0e                	mov    %cl,(%esi)
42132c:	46                   	inc    %esi
42132d:	83 eb 01             	sub    $0x1,%ebx
421330:	75 ee                	jne    0x421320
421332:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
421338:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
42133e:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
421344:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
42134a:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
421350:	8b cb                	mov    %ebx,%ecx
421352:	50                   	push   %eax
421353:	ff 15 54 41 42 00    	call   *0x424154
421359:	ff d3                	call   *%ebx
42135b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
421361:	83 c4 08             	add    $0x8,%esp
421364:	85 c0                	test   %eax,%eax
421366:	7e 49                	jle    0x4213b1
421368:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
42136e:	89 b5 ec fe ff ff    	mov    %esi,-0x114(%ebp)
421374:	8b f2                	mov    %edx,%esi
421376:	3b c2                	cmp    %edx,%eax
421378:	74 37                	je     0x4213b1
42137a:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
421380:	2b c2                	sub    %edx,%eax
421382:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
421388:	8b d0                	mov    %eax,%edx
42138a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
421390:	8a 06                	mov    (%esi),%al
421392:	8d 76 01             	lea    0x1(%esi),%esi
421395:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
421399:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
42139d:	88 4e ff             	mov    %cl,-0x1(%esi)
4213a0:	83 eb 01             	sub    $0x1,%ebx
4213a3:	75 eb                	jne    0x421390
4213a5:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4213ab:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4213b1:	52                   	push   %edx
4213b2:	57                   	push   %edi
4213b3:	8b cb                	mov    %ebx,%ecx
4213b5:	ff 15 54 41 42 00    	call   *0x424154
4213bb:	ff d3                	call   *%ebx
4213bd:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4213c3:	83 c4 08             	add    $0x8,%esp
4213c6:	85 c0                	test   %eax,%eax
4213c8:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4213ce:	7e 35                	jle    0x421405
4213d0:	8b d8                	mov    %eax,%ebx
4213d2:	8b f2                	mov    %edx,%esi
4213d4:	3b fa                	cmp    %edx,%edi
4213d6:	74 2d                	je     0x421405
4213d8:	8b c7                	mov    %edi,%eax
4213da:	2b c2                	sub    %edx,%eax
4213dc:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
4213e2:	8b d0                	mov    %eax,%edx
4213e4:	8a 06                	mov    (%esi),%al
4213e6:	8d 76 01             	lea    0x1(%esi),%esi
4213e9:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
4213ed:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
4213f1:	88 4e ff             	mov    %cl,-0x1(%esi)
4213f4:	83 eb 01             	sub    $0x1,%ebx
4213f7:	75 eb                	jne    0x4213e4
4213f9:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4213ff:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
421405:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
42140b:	8b da                	mov    %edx,%ebx
42140d:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
421413:	3b fe                	cmp    %esi,%edi
421415:	76 3e                	jbe    0x421455
421417:	eb 07                	jmp    0x421420
421419:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
421420:	03 f0                	add    %eax,%esi
421422:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
421428:	3b f7                	cmp    %edi,%esi
42142a:	73 23                	jae    0x42144f
42142c:	8b 8d f8 fe ff ff    	mov    -0x108(%ebp),%ecx
421432:	57                   	push   %edi
421433:	56                   	push   %esi
421434:	ff 15 54 41 42 00    	call   *0x424154
42143a:	ff 95 f8 fe ff ff    	call   *-0x108(%ebp)
421440:	83 c4 08             	add    $0x8,%esp
421443:	85 c0                	test   %eax,%eax
421445:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
42144b:	7e d3                	jle    0x421420
42144d:	eb 42                	jmp    0x421491
42144f:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
421455:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
42145b:	eb 03                	jmp    0x421460
42145d:	8d 49 00             	lea    0x0(%ecx),%ecx
421460:	03 f0                	add    %eax,%esi
421462:	3b f2                	cmp    %edx,%esi
421464:	77 1f                	ja     0x421485
421466:	57                   	push   %edi
421467:	56                   	push   %esi
421468:	8b cb                	mov    %ebx,%ecx
42146a:	ff 15 54 41 42 00    	call   *0x424154
421470:	ff d3                	call   *%ebx
421472:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
421478:	83 c4 08             	add    $0x8,%esp
42147b:	85 c0                	test   %eax,%eax
42147d:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
421483:	7e db                	jle    0x421460
421485:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
42148b:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
421491:	8b b5 f8 fe ff ff    	mov    -0x108(%ebp),%esi
421497:	eb 07                	jmp    0x4214a0
421499:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4214a0:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4214a6:	8b cb                	mov    %ebx,%ecx
4214a8:	2b d8                	sub    %eax,%ebx
4214aa:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
4214b0:	3b df                	cmp    %edi,%ebx
4214b2:	76 1f                	jbe    0x4214d3
4214b4:	57                   	push   %edi
4214b5:	53                   	push   %ebx
4214b6:	8b ce                	mov    %esi,%ecx
4214b8:	ff 15 54 41 42 00    	call   *0x424154
4214be:	ff d6                	call   *%esi
4214c0:	83 c4 08             	add    $0x8,%esp
4214c3:	85 c0                	test   %eax,%eax
4214c5:	7f d9                	jg     0x4214a0
4214c7:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4214cd:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
4214d3:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4214d9:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
4214df:	3b de                	cmp    %esi,%ebx
4214e1:	72 4a                	jb     0x42152d
4214e3:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
4214e9:	8b d3                	mov    %ebx,%edx
4214eb:	74 2b                	je     0x421518
4214ed:	2b f3                	sub    %ebx,%esi
4214ef:	8b d8                	mov    %eax,%ebx
4214f1:	8a 02                	mov    (%edx),%al
4214f3:	8d 52 01             	lea    0x1(%edx),%edx
4214f6:	8a 4c 16 ff          	mov    -0x1(%esi,%edx,1),%cl
4214fa:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
4214fe:	88 4a ff             	mov    %cl,-0x1(%edx)
421501:	83 eb 01             	sub    $0x1,%ebx
421504:	75 eb                	jne    0x4214f1
421506:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
42150c:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
421512:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
421518:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
42151e:	3b fb                	cmp    %ebx,%edi
421520:	0f 85 ed fe ff ff    	jne    0x421413
421526:	8b fe                	mov    %esi,%edi
421528:	e9 e6 fe ff ff       	jmp    0x421413
42152d:	3b f9                	cmp    %ecx,%edi
42152f:	73 3c                	jae    0x42156d
421531:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
421537:	eb 07                	jmp    0x421540
421539:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
421540:	2b c8                	sub    %eax,%ecx
421542:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
421548:	3b cf                	cmp    %edi,%ecx
42154a:	76 21                	jbe    0x42156d
42154c:	57                   	push   %edi
42154d:	51                   	push   %ecx
42154e:	8b cb                	mov    %ebx,%ecx
421550:	ff 15 54 41 42 00    	call   *0x424154
421556:	ff d3                	call   *%ebx
421558:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
42155e:	83 c4 08             	add    $0x8,%esp
421561:	85 c0                	test   %eax,%eax
421563:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
421569:	74 d5                	je     0x421540
42156b:	eb 44                	jmp    0x4215b1
42156d:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
421573:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
421579:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
421580:	2b c8                	sub    %eax,%ecx
421582:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
421588:	3b ce                	cmp    %esi,%ecx
42158a:	76 1f                	jbe    0x4215ab
42158c:	57                   	push   %edi
42158d:	51                   	push   %ecx
42158e:	8b cb                	mov    %ebx,%ecx
421590:	ff 15 54 41 42 00    	call   *0x424154
421596:	ff d3                	call   *%ebx
421598:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
42159e:	83 c4 08             	add    $0x8,%esp
4215a1:	85 c0                	test   %eax,%eax
4215a3:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
4215a9:	74 d5                	je     0x421580
4215ab:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4215b1:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
4215b7:	8b ca                	mov    %edx,%ecx
4215b9:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
4215bf:	2b ce                	sub    %esi,%ecx
4215c1:	8b c7                	mov    %edi,%eax
4215c3:	2b 85 fc fe ff ff    	sub    -0x104(%ebp),%eax
4215c9:	3b c1                	cmp    %ecx,%eax
4215cb:	7c 3d                	jl     0x42160a
4215cd:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4215d3:	3b c7                	cmp    %edi,%eax
4215d5:	73 18                	jae    0x4215ef
4215d7:	8b 8d e8 fe ff ff    	mov    -0x118(%ebp),%ecx
4215dd:	89 44 8d 84          	mov    %eax,-0x7c(%ebp,%ecx,4)
4215e1:	89 bc 8d 0c ff ff ff 	mov    %edi,-0xf4(%ebp,%ecx,4)
4215e8:	41                   	inc    %ecx
4215e9:	89 8d e8 fe ff ff    	mov    %ecx,-0x118(%ebp)
4215ef:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
4215f5:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
4215fb:	3b f1                	cmp    %ecx,%esi
4215fd:	73 44                	jae    0x421643
4215ff:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
421605:	e9 f8 fb ff ff       	jmp    0x421202
42160a:	3b f2                	cmp    %edx,%esi
42160c:	73 18                	jae    0x421626
42160e:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
421614:	89 74 85 84          	mov    %esi,-0x7c(%ebp,%eax,4)
421618:	89 94 85 0c ff ff ff 	mov    %edx,-0xf4(%ebp,%eax,4)
42161f:	40                   	inc    %eax
421620:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
421626:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
42162c:	3b f7                	cmp    %edi,%esi
42162e:	73 0d                	jae    0x42163d
421630:	8b cf                	mov    %edi,%ecx
421632:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
421638:	e9 bf fb ff ff       	jmp    0x4211fc
42163d:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
421643:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
421649:	83 e8 01             	sub    $0x1,%eax
42164c:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
421652:	0f 88 76 fb ff ff    	js     0x4211ce
421658:	8b 74 85 84          	mov    -0x7c(%ebp,%eax,4),%esi
42165c:	8b 8c 85 0c ff ff ff 	mov    -0xf4(%ebp,%eax,4),%ecx
421663:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
421669:	e9 8e fb ff ff       	jmp    0x4211fc
42166e:	cc                   	int3
42166f:	cc                   	int3
421670:	55                   	push   %ebp
421671:	8b ec                	mov    %esp,%ebp
421673:	56                   	push   %esi
421674:	33 c0                	xor    %eax,%eax
421676:	50                   	push   %eax
421677:	50                   	push   %eax
421678:	50                   	push   %eax
421679:	50                   	push   %eax
42167a:	50                   	push   %eax
42167b:	50                   	push   %eax
42167c:	50                   	push   %eax
42167d:	50                   	push   %eax
42167e:	8b 55 0c             	mov    0xc(%ebp),%edx
421681:	8d 49 00             	lea    0x0(%ecx),%ecx
421684:	8a 02                	mov    (%edx),%al
421686:	0a c0                	or     %al,%al
421688:	74 09                	je     0x421693
42168a:	83 c2 01             	add    $0x1,%edx
42168d:	0f ab 04 24          	bts    %eax,(%esp)
421691:	eb f1                	jmp    0x421684
421693:	8b 75 08             	mov    0x8(%ebp),%esi
421696:	8b ff                	mov    %edi,%edi
421698:	8a 06                	mov    (%esi),%al
42169a:	0a c0                	or     %al,%al
42169c:	74 0c                	je     0x4216aa
42169e:	83 c6 01             	add    $0x1,%esi
4216a1:	0f a3 04 24          	bt     %eax,(%esp)
4216a5:	73 f1                	jae    0x421698
4216a7:	8d 46 ff             	lea    -0x1(%esi),%eax
4216aa:	83 c4 20             	add    $0x20,%esp
4216ad:	5e                   	pop    %esi
4216ae:	c9                   	leave
4216af:	c3                   	ret
4216b0:	e8 58 9a ff ff       	call   0x41b10d
4216b5:	33 c9                	xor    %ecx,%ecx
4216b7:	84 c0                	test   %al,%al
4216b9:	0f 94 c1             	sete   %cl
4216bc:	8b c1                	mov    %ecx,%eax
4216be:	c3                   	ret
4216bf:	8b ff                	mov    %edi,%edi
4216c1:	55                   	push   %ebp
4216c2:	8b ec                	mov    %esp,%ebp
4216c4:	51                   	push   %ecx
4216c5:	51                   	push   %ecx
4216c6:	8b 4d 08             	mov    0x8(%ebp),%ecx