415376:	6a 02                	push   $0x2
415378:	5b                   	pop    %ebx
415379:	e9 a6 04 00 00       	jmp    0x415824
41537e:	a1 14 14 42 00       	mov    0x421414,%eax
415383:	8d 75 f0             	lea    -0x10(%ebp),%esi
415386:	8d 7d e4             	lea    -0x1c(%ebp),%edi
415389:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41538a:	48                   	dec    %eax
41538b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41538c:	8d 48 01             	lea    0x1(%eax),%ecx
41538f:	89 55 dc             	mov    %edx,-0x24(%ebp)
415392:	89 45 cc             	mov    %eax,-0x34(%ebp)
415395:	8b c1                	mov    %ecx,%eax
415397:	99                   	cltd
415398:	6a 1f                	push   $0x1f
41539a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41539b:	5e                   	pop    %esi
41539c:	23 d6                	and    %esi,%edx
41539e:	03 d0                	add    %eax,%edx
4153a0:	c1 fa 05             	sar    $0x5,%edx
4153a3:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4153a6:	89 55 c4             	mov    %edx,-0x3c(%ebp)
4153a9:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
4153af:	79 05                	jns    0x4153b6
4153b1:	49                   	dec    %ecx
4153b2:	83 c9 e0             	or     $0xffffffe0,%ecx
4153b5:	41                   	inc    %ecx
4153b6:	2b f1                	sub    %ecx,%esi
4153b8:	33 c0                	xor    %eax,%eax
4153ba:	40                   	inc    %eax
4153bb:	8b ce                	mov    %esi,%ecx
4153bd:	d3 e0                	shl    %cl,%eax
4153bf:	6a 03                	push   $0x3
4153c1:	83 cf ff             	or     $0xffffffff,%edi
4153c4:	89 75 d0             	mov    %esi,-0x30(%ebp)
4153c7:	5e                   	pop    %esi
4153c8:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
4153cc:	0f 84 a4 00 00 00    	je     0x415476
4153d2:	8b c7                	mov    %edi,%eax
4153d4:	d3 e0                	shl    %cl,%eax
4153d6:	f7 d0                	not    %eax
4153d8:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
4153dc:	eb 04                	jmp    0x4153e2
4153de:	39 5c 95 f0          	cmp    %ebx,-0x10(%ebp,%edx,4)
4153e2:	75 0a                	jne    0x4153ee
4153e4:	42                   	inc    %edx
4153e5:	3b d6                	cmp    %esi,%edx
4153e7:	7c f5                	jl     0x4153de
4153e9:	e9 85 00 00 00       	jmp    0x415473
4153ee:	8b 45 cc             	mov    -0x34(%ebp),%eax
4153f1:	99                   	cltd
4153f2:	6a 1f                	push   $0x1f
4153f4:	59                   	pop    %ecx
4153f5:	23 d1                	and    %ecx,%edx
4153f7:	03 d0                	add    %eax,%edx
4153f9:	8b 45 cc             	mov    -0x34(%ebp),%eax
4153fc:	c1 fa 05             	sar    $0x5,%edx
4153ff:	25 1f 00 00 80       	and    $0x8000001f,%eax
415404:	79 05                	jns    0x41540b
415406:	48                   	dec    %eax
415407:	83 c8 e0             	or     $0xffffffe0,%eax
41540a:	40                   	inc    %eax
41540b:	2b c8                	sub    %eax,%ecx
41540d:	33 c0                	xor    %eax,%eax
41540f:	40                   	inc    %eax
415410:	d3 e0                	shl    %cl,%eax
415412:	6a ff                	push   $0xffffffff
415414:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
415417:	5f                   	pop    %edi
415418:	89 45 c8             	mov    %eax,-0x38(%ebp)
41541b:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
41541f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
415422:	03 c8                	add    %eax,%ecx
415424:	89 4d d8             	mov    %ecx,-0x28(%ebp)
415427:	3b c8                	cmp    %eax,%ecx
415429:	8b 45 d8             	mov    -0x28(%ebp),%eax
41542c:	8b cb                	mov    %ebx,%ecx
41542e:	72 05                	jb     0x415435
415430:	3b 45 c8             	cmp    -0x38(%ebp),%eax
415433:	73 06                	jae    0x41543b
415435:	33 c9                	xor    %ecx,%ecx
415437:	41                   	inc    %ecx
415438:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
41543b:	4a                   	dec    %edx
41543c:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
415440:	78 2e                	js     0x415470
415442:	85 c9                	test   %ecx,%ecx
415444:	74 27                	je     0x41546d
415446:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
41544a:	8b cb                	mov    %ebx,%ecx
41544c:	8d 78 01             	lea    0x1(%eax),%edi
41544f:	3b f8                	cmp    %eax,%edi
415451:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
415454:	89 7d d8             	mov    %edi,-0x28(%ebp)
415457:	8b c7                	mov    %edi,%eax
415459:	72 05                	jb     0x415460
41545b:	83 f8 01             	cmp    $0x1,%eax
41545e:	73 06                	jae    0x415466
415460:	33 c9                	xor    %ecx,%ecx
415462:	41                   	inc    %ecx
415463:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
415466:	4a                   	dec    %edx
415467:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
41546b:	79 d5                	jns    0x415442
41546d:	83 cf ff             	or     $0xffffffff,%edi
415470:	8b 4d d0             	mov    -0x30(%ebp),%ecx
415473:	8b 55 c4             	mov    -0x3c(%ebp),%edx
415476:	8b c7                	mov    %edi,%eax
415478:	d3 e0                	shl    %cl,%eax
41547a:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
41547e:	8d 42 01             	lea    0x1(%edx),%eax
415481:	3b c6                	cmp    %esi,%eax
415483:	7d 11                	jge    0x415496
415485:	8d 7d f0             	lea    -0x10(%ebp),%edi
415488:	8b ce                	mov    %esi,%ecx
41548a:	8d 3c 87             	lea    (%edi,%eax,4),%edi
41548d:	2b c8                	sub    %eax,%ecx
41548f:	33 c0                	xor    %eax,%eax
415491:	f3 ab                	rep stos %eax,%es:(%edi)
415493:	83 cf ff             	or     $0xffffffff,%edi
415496:	8b 4d e0             	mov    -0x20(%ebp),%ecx
415499:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
41549c:	74 01                	je     0x41549f
41549e:	41                   	inc    %ecx
41549f:	8b 15 10 14 42 00    	mov    0x421410,%edx
4154a5:	8b c2                	mov    %edx,%eax
4154a7:	2b 05 14 14 42 00    	sub    0x421414,%eax
4154ad:	3b c8                	cmp    %eax,%ecx
4154af:	7d 0f                	jge    0x4154c0
4154b1:	33 c0                	xor    %eax,%eax
4154b3:	8d 7d f0             	lea    -0x10(%ebp),%edi
4154b6:	ab                   	stos   %eax,%es:(%edi)
4154b7:	ab                   	stos   %eax,%es:(%edi)
4154b8:	ab                   	stos   %eax,%es:(%edi)
4154b9:	8b f3                	mov    %ebx,%esi
4154bb:	e9 b6 fe ff ff       	jmp    0x415376
4154c0:	3b ca                	cmp    %edx,%ecx
4154c2:	0f 8f 19 02 00 00    	jg     0x4156e1
4154c8:	2b 55 dc             	sub    -0x24(%ebp),%edx
4154cb:	8d 75 e4             	lea    -0x1c(%ebp),%esi
4154ce:	89 55 d0             	mov    %edx,-0x30(%ebp)
4154d1:	8b c2                	mov    %edx,%eax
4154d3:	99                   	cltd
4154d4:	8d 7d f0             	lea    -0x10(%ebp),%edi
4154d7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4154d8:	83 e2 1f             	and    $0x1f,%edx
4154db:	03 c2                	add    %edx,%eax
4154dd:	c1 f8 05             	sar    $0x5,%eax
4154e0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4154e1:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4154e4:	8b 45 d0             	mov    -0x30(%ebp),%eax
4154e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4154e8:	25 1f 00 00 80       	and    $0x8000001f,%eax
4154ed:	79 05                	jns    0x4154f4
4154ef:	48                   	dec    %eax
4154f0:	83 c8 e0             	or     $0xffffffe0,%eax
4154f3:	40                   	inc    %eax
4154f4:	89 45 d0             	mov    %eax,-0x30(%ebp)
4154f7:	83 cf ff             	or     $0xffffffff,%edi
4154fa:	8b c7                	mov    %edi,%eax
4154fc:	8b 7d d0             	mov    -0x30(%ebp),%edi
4154ff:	8b cf                	mov    %edi,%ecx
415501:	d3 e0                	shl    %cl,%eax
415503:	6a 20                	push   $0x20
415505:	89 5d e0             	mov    %ebx,-0x20(%ebp)
415508:	f7 d0                	not    %eax
41550a:	89 45 d8             	mov    %eax,-0x28(%ebp)
41550d:	58                   	pop    %eax
41550e:	2b c7                	sub    %edi,%eax
415510:	6a 03                	push   $0x3
415512:	89 45 c8             	mov    %eax,-0x38(%ebp)
415515:	5e                   	pop    %esi
415516:	8b 54 9d f0          	mov    -0x10(%ebp,%ebx,4),%edx
41551a:	8b c2                	mov    %edx,%eax
41551c:	23 45 d8             	and    -0x28(%ebp),%eax
41551f:	8b cf                	mov    %edi,%ecx
415521:	d3 ea                	shr    %cl,%edx
415523:	8b 4d c8             	mov    -0x38(%ebp),%ecx
415526:	d3 e0                	shl    %cl,%eax
415528:	0b 55 e0             	or     -0x20(%ebp),%edx
41552b:	43                   	inc    %ebx
41552c:	89 54 9d ec          	mov    %edx,-0x14(%ebp,%ebx,4)
415530:	89 45 e0             	mov    %eax,-0x20(%ebp)
415533:	3b de                	cmp    %esi,%ebx
415535:	7c df                	jl     0x415516
415537:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41553a:	c1 e0 02             	shl    $0x2,%eax
41553d:	8d 55 f8             	lea    -0x8(%ebp),%edx
415540:	6a 02                	push   $0x2
415542:	2b d0                	sub    %eax,%edx
415544:	8b 45 c4             	mov    -0x3c(%ebp),%eax
415547:	33 db                	xor    %ebx,%ebx
415549:	59                   	pop    %ecx
41554a:	83 cf ff             	or     $0xffffffff,%edi
41554d:	3b c8                	cmp    %eax,%ecx
41554f:	7c 0b                	jl     0x41555c
415551:	8b 02                	mov    (%edx),%eax
415553:	89 44 8d f0          	mov    %eax,-0x10(%ebp,%ecx,4)
415557:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41555a:	eb 04                	jmp    0x415560
41555c:	89 5c 8d f0          	mov    %ebx,-0x10(%ebp,%ecx,4)
415560:	83 ea 04             	sub    $0x4,%edx
415563:	49                   	dec    %ecx
415564:	79 e7                	jns    0x41554d
415566:	8b 4d cc             	mov    -0x34(%ebp),%ecx
415569:	41                   	inc    %ecx
41556a:	8b c1                	mov    %ecx,%eax
41556c:	99                   	cltd
41556d:	83 e2 1f             	and    $0x1f,%edx
415570:	03 d0                	add    %eax,%edx
415572:	c1 fa 05             	sar    $0x5,%edx
415575:	89 55 d4             	mov    %edx,-0x2c(%ebp)
415578:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
41557e:	79 05                	jns    0x415585
415580:	49                   	dec    %ecx
415581:	83 c9 e0             	or     $0xffffffe0,%ecx
415584:	41                   	inc    %ecx
415585:	6a 1f                	push   $0x1f
415587:	58                   	pop    %eax
415588:	2b c1                	sub    %ecx,%eax
41558a:	89 45 d0             	mov    %eax,-0x30(%ebp)
41558d:	8b 4d d0             	mov    -0x30(%ebp),%ecx
415590:	33 c0                	xor    %eax,%eax
415592:	40                   	inc    %eax
415593:	d3 e0                	shl    %cl,%eax
415595:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
415599:	0f 84 92 00 00 00    	je     0x415631
41559f:	8b c7                	mov    %edi,%eax
4155a1:	d3 e0                	shl    %cl,%eax
4155a3:	f7 d0                	not    %eax
4155a5:	85 44 95 f0          	test   %eax,-0x10(%ebp,%edx,4)
4155a9:	eb 04                	jmp    0x4155af
4155ab:	39 5c 95 f0          	cmp    %ebx,-0x10(%ebp,%edx,4)
4155af:	75 07                	jne    0x4155b8
4155b1:	42                   	inc    %edx
4155b2:	3b d6                	cmp    %esi,%edx
4155b4:	7c f5                	jl     0x4155ab
4155b6:	eb 76                	jmp    0x41562e
4155b8:	8b 7d cc             	mov    -0x34(%ebp),%edi
4155bb:	8b c7                	mov    %edi,%eax
4155bd:	99                   	cltd
4155be:	6a 1f                	push   $0x1f
4155c0:	59                   	pop    %ecx
4155c1:	23 d1                	and    %ecx,%edx
4155c3:	03 d0                	add    %eax,%edx
4155c5:	c1 fa 05             	sar    $0x5,%edx
4155c8:	81 e7 1f 00 00 80    	and    $0x8000001f,%edi
4155ce:	79 05                	jns    0x4155d5
4155d0:	4f                   	dec    %edi
4155d1:	83 cf e0             	or     $0xffffffe0,%edi
4155d4:	47                   	inc    %edi
4155d5:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
4155d9:	2b cf                	sub    %edi,%ecx
4155db:	33 ff                	xor    %edi,%edi
4155dd:	47                   	inc    %edi
4155de:	d3 e7                	shl    %cl,%edi
4155e0:	6a ff                	push   $0xffffffff
4155e2:	8b cb                	mov    %ebx,%ecx
4155e4:	89 7d dc             	mov    %edi,-0x24(%ebp)
4155e7:	03 f8                	add    %eax,%edi
4155e9:	89 7d e0             	mov    %edi,-0x20(%ebp)
4155ec:	3b f8                	cmp    %eax,%edi
4155ee:	8b 45 e0             	mov    -0x20(%ebp),%eax
4155f1:	5f                   	pop    %edi
4155f2:	72 05                	jb     0x4155f9
4155f4:	3b 45 dc             	cmp    -0x24(%ebp),%eax
4155f7:	73 03                	jae    0x4155fc
4155f9:	33 c9                	xor    %ecx,%ecx
4155fb:	41                   	inc    %ecx
4155fc:	4a                   	dec    %edx
4155fd:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
415601:	78 28                	js     0x41562b
415603:	85 c9                	test   %ecx,%ecx
415605:	74 21                	je     0x415628
415607:	8b 44 95 f0          	mov    -0x10(%ebp,%edx,4),%eax
41560b:	8b cb                	mov    %ebx,%ecx
41560d:	8d 78 01             	lea    0x1(%eax),%edi
415610:	3b f8                	cmp    %eax,%edi
415612:	89 7d e0             	mov    %edi,-0x20(%ebp)
415615:	8b c7                	mov    %edi,%eax
415617:	72 05                	jb     0x41561e
415619:	83 f8 01             	cmp    $0x1,%eax
41561c:	73 03                	jae    0x415621
41561e:	33 c9                	xor    %ecx,%ecx
415620:	41                   	inc    %ecx
415621:	4a                   	dec    %edx
415622:	89 44 95 f4          	mov    %eax,-0xc(%ebp,%edx,4)
415626:	79 db                	jns    0x415603
415628:	83 cf ff             	or     $0xffffffff,%edi
41562b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41562e:	8b 55 d4             	mov    -0x2c(%ebp),%edx
415631:	8b c7                	mov    %edi,%eax
415633:	d3 e0                	shl    %cl,%eax
415635:	21 44 95 f0          	and    %eax,-0x10(%ebp,%edx,4)
415639:	42                   	inc    %edx
41563a:	3b d6                	cmp    %esi,%edx
41563c:	7d 11                	jge    0x41564f
41563e:	8d 7d f0             	lea    -0x10(%ebp),%edi
415641:	8b ce                	mov    %esi,%ecx
415643:	8d 3c 97             	lea    (%edi,%edx,4),%edi
415646:	2b ca                	sub    %edx,%ecx
415648:	33 c0                	xor    %eax,%eax
41564a:	f3 ab                	rep stos %eax,%es:(%edi)
41564c:	83 cf ff             	or     $0xffffffff,%edi
41564f:	8b 0d 18 14 42 00    	mov    0x421418,%ecx
415655:	41                   	inc    %ecx
415656:	8b c1                	mov    %ecx,%eax
415658:	99                   	cltd
415659:	83 e2 1f             	and    $0x1f,%edx
41565c:	03 c2                	add    %edx,%eax
41565e:	c1 f8 05             	sar    $0x5,%eax
415661:	89 45 d8             	mov    %eax,-0x28(%ebp)
415664:	81 e1 1f 00 00 80    	and    $0x8000001f,%ecx
41566a:	79 05                	jns    0x415671
41566c:	49                   	dec    %ecx
41566d:	83 c9 e0             	or     $0xffffffe0,%ecx
415670:	41                   	inc    %ecx
415671:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415674:	d3 e7                	shl    %cl,%edi
415676:	8b c3                	mov    %ebx,%eax
415678:	6a 20                	push   $0x20
41567a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41567d:	8b 5d dc             	mov    -0x24(%ebp),%ebx
415680:	59                   	pop    %ecx
415681:	2b cb                	sub    %ebx,%ecx
415683:	f7 d7                	not    %edi
415685:	89 45 cc             	mov    %eax,-0x34(%ebp)
415688:	89 4d dc             	mov    %ecx,-0x24(%ebp)
41568b:	8b 54 85 f0          	mov    -0x10(%ebp,%eax,4),%edx
41568f:	8b c2                	mov    %edx,%eax
415691:	8b cb                	mov    %ebx,%ecx
415693:	d3 ea                	shr    %cl,%edx
415695:	8b 4d cc             	mov    -0x34(%ebp),%ecx
415698:	23 c7                	and    %edi,%eax
41569a:	0b 55 e0             	or     -0x20(%ebp),%edx
41569d:	89 54 8d f0          	mov    %edx,-0x10(%ebp,%ecx,4)
4156a1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4156a4:	d3 e0                	shl    %cl,%eax
4156a6:	89 45 e0             	mov    %eax,-0x20(%ebp)
4156a9:	8b 45 cc             	mov    -0x34(%ebp),%eax
4156ac:	40                   	inc    %eax
4156ad:	89 45 cc             	mov    %eax,-0x34(%ebp)
4156b0:	3b c6                	cmp    %esi,%eax
4156b2:	7c d7                	jl     0x41568b
4156b4:	8b 75 d8             	mov    -0x28(%ebp),%esi
4156b7:	8b c6                	mov    %esi,%eax
4156b9:	c1 e0 02             	shl    $0x2,%eax
4156bc:	8d 55 f8             	lea    -0x8(%ebp),%edx
4156bf:	6a 02                	push   $0x2
4156c1:	2b d0                	sub    %eax,%edx