40337f:	57                   	push   %edi
403380:	83 cf ff             	or     $0xffffffff,%edi
403383:	8d 4e 14             	lea    0x14(%esi),%ecx
403386:	89 1e                	mov    %ebx,(%esi)
403388:	89 7e 04             	mov    %edi,0x4(%esi)
40338b:	89 5e 08             	mov    %ebx,0x8(%esi)
40338e:	89 5e 0c             	mov    %ebx,0xc(%esi)
403391:	89 5e 10             	mov    %ebx,0x10(%esi)
403394:	e8 2e 44 00 00       	call   0x4077c7
403399:	8d 4e 24             	lea    0x24(%esi),%ecx
40339c:	e8 26 44 00 00       	call   0x4077c7
4033a1:	8d 4e 54             	lea    0x54(%esi),%ecx
4033a4:	89 5e 34             	mov    %ebx,0x34(%esi)
4033a7:	89 5e 38             	mov    %ebx,0x38(%esi)
4033aa:	89 5e 3c             	mov    %ebx,0x3c(%esi)
4033ad:	89 5e 40             	mov    %ebx,0x40(%esi)
4033b0:	89 5e 44             	mov    %ebx,0x44(%esi)
4033b3:	89 7e 48             	mov    %edi,0x48(%esi)
4033b6:	89 7e 4c             	mov    %edi,0x4c(%esi)
4033b9:	89 5e 50             	mov    %ebx,0x50(%esi)
4033bc:	e8 06 44 00 00       	call   0x4077c7
4033c1:	89 5e 64             	mov    %ebx,0x64(%esi)
4033c4:	8b c6                	mov    %esi,%eax
4033c6:	89 5e 68             	mov    %ebx,0x68(%esi)
4033c9:	89 5e 70             	mov    %ebx,0x70(%esi)
4033cc:	89 5e 78             	mov    %ebx,0x78(%esi)
4033cf:	c7 46 7c 01 00 00 00 	movl   $0x1,0x7c(%esi)
4033d6:	66 89 be 84 00 00 00 	mov    %di,0x84(%esi)
4033dd:	66 89 be 88 00 00 00 	mov    %di,0x88(%esi)
4033e4:	66 89 be 8a 00 00 00 	mov    %di,0x8a(%esi)
4033eb:	66 89 be 8c 00 00 00 	mov    %di,0x8c(%esi)
4033f2:	66 89 be 8e 00 00 00 	mov    %di,0x8e(%esi)
4033f9:	89 be 9c 00 00 00    	mov    %edi,0x9c(%esi)
4033ff:	5f                   	pop    %edi
403400:	89 9e 80 00 00 00    	mov    %ebx,0x80(%esi)
403406:	88 9e 98 00 00 00    	mov    %bl,0x98(%esi)
40340c:	c6 86 93 00 00 00 ff 	movb   $0xff,0x93(%esi)
403413:	5e                   	pop    %esi
403414:	5b                   	pop    %ebx
403415:	c3                   	ret
403416:	55                   	push   %ebp
403417:	8b ec                	mov    %esp,%ebp
403419:	53                   	push   %ebx
40341a:	56                   	push   %esi
40341b:	8b f1                	mov    %ecx,%esi
40341d:	6a 04                	push   $0x4
40341f:	5b                   	pop    %ebx
403420:	8b 46 0c             	mov    0xc(%esi),%eax
403423:	39 46 08             	cmp    %eax,0x8(%esi)
403426:	74 26                	je     0x40344e
403428:	53                   	push   %ebx
403429:	e8 c8 db 01 00       	call   0x420ff6
40342e:	8b d0                	mov    %eax,%edx
403430:	59                   	pop    %ecx
403431:	85 d2                	test   %edx,%edx
403433:	74 4f                	je     0x403484
403435:	8b 4d 08             	mov    0x8(%ebp),%ecx
403438:	8b 09                	mov    (%ecx),%ecx
40343a:	89 0a                	mov    %ecx,(%edx)
40343c:	8b 4e 08             	mov    0x8(%esi),%ecx
40343f:	8b 46 04             	mov    0x4(%esi),%eax
403442:	89 14 88             	mov    %edx,(%eax,%ecx,4)
403445:	ff 46 08             	incl   0x8(%esi)
403448:	5e                   	pop    %esi
403449:	5b                   	pop    %ebx
40344a:	5d                   	pop    %ebp
40344b:	c2 04 00             	ret    $0x4
40344e:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
403451:	6a 08                	push   $0x8
403453:	58                   	pop    %eax
403454:	3b c8                	cmp    %eax,%ecx
403456:	73 28                	jae    0x403480
403458:	33 c9                	xor    %ecx,%ecx
40345a:	89 46 0c             	mov    %eax,0xc(%esi)
40345d:	f7 e3                	mul    %ebx
40345f:	57                   	push   %edi
403460:	0f 90 c1             	seto   %cl
403463:	f7 d9                	neg    %ecx
403465:	0b c8                	or     %eax,%ecx
403467:	51                   	push   %ecx
403468:	e8 89 db 01 00       	call   0x420ff6
40346d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
403471:	8b f8                	mov    %eax,%edi
403473:	59                   	pop    %ecx
403474:	0f 85 d7 9d 03 00    	jne    0x43d251
40347a:	89 7e 04             	mov    %edi,0x4(%esi)
40347d:	5f                   	pop    %edi
40347e:	eb a8                	jmp    0x403428
403480:	8b c1                	mov    %ecx,%eax
403482:	eb d4                	jmp    0x403458
403484:	33 d2                	xor    %edx,%edx
403486:	eb b4                	jmp    0x40343c
403488:	56                   	push   %esi
403489:	8b f1                	mov    %ecx,%esi
40348b:	57                   	push   %edi
40348c:	33 ff                	xor    %edi,%edi
40348e:	c7 06 14 f9 48 00    	movl   $0x48f914,(%esi)
403494:	39 7e 08             	cmp    %edi,0x8(%esi)
403497:	76 19                	jbe    0x4034b2
403499:	8b 46 04             	mov    0x4(%esi),%eax
40349c:	ff 34 b8             	push   (%eax,%edi,4)
40349f:	e8 c8 db 01 00       	call   0x42106c
4034a4:	8b 46 04             	mov    0x4(%esi),%eax
4034a7:	59                   	pop    %ecx
4034a8:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
4034ac:	47                   	inc    %edi
4034ad:	3b 7e 08             	cmp    0x8(%esi),%edi
4034b0:	72 e7                	jb     0x403499
4034b2:	ff 76 04             	push   0x4(%esi)
4034b5:	83 66 08 00          	andl   $0x0,0x8(%esi)
4034b9:	e8 ae db 01 00       	call   0x42106c
4034be:	59                   	pop    %ecx
4034bf:	5f                   	pop    %edi
4034c0:	5e                   	pop    %esi
4034c1:	c3                   	ret
4034c2:	55                   	push   %ebp
4034c3:	8b ec                	mov    %esp,%ebp
4034c5:	53                   	push   %ebx
4034c6:	56                   	push   %esi
4034c7:	8b f1                	mov    %ecx,%esi
4034c9:	6a 04                	push   $0x4
4034cb:	5b                   	pop    %ebx
4034cc:	8b 46 0c             	mov    0xc(%esi),%eax
4034cf:	39 46 08             	cmp    %eax,0x8(%esi)
4034d2:	75 30                	jne    0x403504
4034d4:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
4034d7:	6a 08                	push   $0x8
4034d9:	58                   	pop    %eax
4034da:	3b c8                	cmp    %eax,%ecx
4034dc:	73 4c                	jae    0x40352a
4034de:	33 c9                	xor    %ecx,%ecx
4034e0:	89 46 0c             	mov    %eax,0xc(%esi)
4034e3:	f7 e3                	mul    %ebx
4034e5:	57                   	push   %edi
4034e6:	0f 90 c1             	seto   %cl
4034e9:	f7 d9                	neg    %ecx
4034eb:	0b c8                	or     %eax,%ecx
4034ed:	51                   	push   %ecx
4034ee:	e8 03 db 01 00       	call   0x420ff6
4034f3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4034f7:	8b f8                	mov    %eax,%edi
4034f9:	59                   	pop    %ecx
4034fa:	0f 85 79 9d 03 00    	jne    0x43d279
403500:	89 7e 04             	mov    %edi,0x4(%esi)
403503:	5f                   	pop    %edi
403504:	53                   	push   %ebx
403505:	e8 ec da 01 00       	call   0x420ff6
40350a:	8b d0                	mov    %eax,%edx
40350c:	59                   	pop    %ecx
40350d:	85 d2                	test   %edx,%edx
40350f:	74 1d                	je     0x40352e
403511:	8b 4d 08             	mov    0x8(%ebp),%ecx
403514:	8b 09                	mov    (%ecx),%ecx
403516:	89 0a                	mov    %ecx,(%edx)
403518:	8b 4e 08             	mov    0x8(%esi),%ecx
40351b:	8b 46 04             	mov    0x4(%esi),%eax
40351e:	89 14 88             	mov    %edx,(%eax,%ecx,4)
403521:	ff 46 08             	incl   0x8(%esi)
403524:	5e                   	pop    %esi
403525:	5b                   	pop    %ebx
403526:	5d                   	pop    %ebp
403527:	c2 04 00             	ret    $0x4
40352a:	8b c1                	mov    %ecx,%eax
40352c:	eb b0                	jmp    0x4034de
40352e:	33 d2                	xor    %edx,%edx
403530:	eb e6                	jmp    0x403518
403532:	56                   	push   %esi
403533:	8b f1                	mov    %ecx,%esi
403535:	ff 4e 08             	decl   0x8(%esi)
403538:	8b 56 08             	mov    0x8(%esi),%edx
40353b:	8b 46 04             	mov    0x4(%esi),%eax
40353e:	ff 34 90             	push   (%eax,%edx,4)
403541:	e8 26 db 01 00       	call   0x42106c
403546:	8b 46 04             	mov    0x4(%esi),%eax
403549:	59                   	pop    %ecx
40354a:	8b 4e 08             	mov    0x8(%esi),%ecx
40354d:	5e                   	pop    %esi
40354e:	83 24 88 00          	andl   $0x0,(%eax,%ecx,4)
403552:	c3                   	ret
403553:	56                   	push   %esi
403554:	8b f1                	mov    %ecx,%esi
403556:	57                   	push   %edi
403557:	33 ff                	xor    %edi,%edi
403559:	39 7e 08             	cmp    %edi,0x8(%esi)
40355c:	0f 87 3f 9d 03 00    	ja     0x43d2a1
403562:	83 66 08 00          	andl   $0x0,0x8(%esi)
403566:	5f                   	pop    %edi
403567:	5e                   	pop    %esi
403568:	c3                   	ret
403569:	56                   	push   %esi
40356a:	8b f1                	mov    %ecx,%esi
40356c:	c7 06 18 f9 48 00    	movl   $0x48f918,(%esi)
403572:	e8 dc ff ff ff       	call   0x403553
403577:	ff 76 04             	push   0x4(%esi)
40357a:	e8 ed da 01 00       	call   0x42106c
40357f:	59                   	pop    %ecx
403580:	5e                   	pop    %esi
403581:	c3                   	ret
403582:	55                   	push   %ebp
403583:	8b ec                	mov    %esp,%ebp
403585:	51                   	push   %ecx
403586:	51                   	push   %ecx
403587:	8d 45 f8             	lea    -0x8(%ebp),%eax
40358a:	ba 1c f9 48 00       	mov    $0x48f91c,%edx
40358f:	50                   	push   %eax
403590:	6a 04                	push   $0x4
403592:	68 44 f9 48 00       	push   $0x48f944
403597:	b9 01 00 00 80       	mov    $0x80000001,%ecx
40359c:	e8 0f 00 00 00       	call   0x4035b0
4035a1:	83 c4 0c             	add    $0xc,%esp
4035a4:	66 83 7d f8 31       	cmpw   $0x31,-0x8(%ebp)
4035a9:	0f 94 c0             	sete   %al
4035ac:	8b e5                	mov    %ebp,%esp
4035ae:	5d                   	pop    %ebp
4035af:	c3                   	ret
4035b0:	55                   	push   %ebp
4035b1:	8b ec                	mov    %esp,%ebp
4035b3:	51                   	push   %ecx
4035b4:	51                   	push   %ecx
4035b5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4035b9:	53                   	push   %ebx
4035ba:	56                   	push   %esi
4035bb:	74 72                	je     0x40362f
4035bd:	8b 75 10             	mov    0x10(%ebp),%esi
4035c0:	85 f6                	test   %esi,%esi
4035c2:	74 6b                	je     0x40362f
4035c4:	33 c0                	xor    %eax,%eax
4035c6:	33 db                	xor    %ebx,%ebx
4035c8:	66 89 06             	mov    %ax,(%esi)
4035cb:	8d 45 f8             	lea    -0x8(%ebp),%eax
4035ce:	50                   	push   %eax
4035cf:	6a 01                	push   $0x1
4035d1:	53                   	push   %ebx
4035d2:	52                   	push   %edx
4035d3:	51                   	push   %ecx
4035d4:	ff 15 18 f0 48 00    	call   *0x48f018
4035da:	85 c0                	test   %eax,%eax
4035dc:	75 51                	jne    0x40362f
4035de:	8b 45 0c             	mov    0xc(%ebp),%eax
4035e1:	57                   	push   %edi
4035e2:	8d 3c 00             	lea    (%eax,%eax,1),%edi
4035e5:	8d 45 fc             	lea    -0x4(%ebp),%eax
4035e8:	89 7d fc             	mov    %edi,-0x4(%ebp)
4035eb:	50                   	push   %eax
4035ec:	56                   	push   %esi
4035ed:	53                   	push   %ebx
4035ee:	53                   	push   %ebx
4035ef:	ff 75 08             	push   0x8(%ebp)
4035f2:	ff 75 f8             	push   -0x8(%ebp)
4035f5:	ff 15 20 f0 48 00    	call   *0x48f020
4035fb:	85 c0                	test   %eax,%eax
4035fd:	75 15                	jne    0x403614
4035ff:	8b 45 fc             	mov    -0x4(%ebp),%eax
403602:	d1 e8                	shr    $1,%eax
403604:	89 45 fc             	mov    %eax,-0x4(%ebp)
403607:	3b 45 0c             	cmp    0xc(%ebp),%eax
40360a:	73 1a                	jae    0x403626
40360c:	33 c9                	xor    %ecx,%ecx
40360e:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
403612:	b3 01                	mov    $0x1,%bl
403614:	ff 75 f8             	push   -0x8(%ebp)
403617:	ff 15 1c f0 48 00    	call   *0x48f01c
40361d:	8a c3                	mov    %bl,%al
40361f:	5f                   	pop    %edi
403620:	5e                   	pop    %esi
403621:	5b                   	pop    %ebx
403622:	8b e5                	mov    %ebp,%esp
403624:	5d                   	pop    %ebp
403625:	c3                   	ret
403626:	33 c0                	xor    %eax,%eax
403628:	66 89 44 37 fe       	mov    %ax,-0x2(%edi,%esi,1)
40362d:	eb e3                	jmp    0x403612
40362f:	32 c0                	xor    %al,%al
403631:	eb ed                	jmp    0x403620
403633:	55                   	push   %ebp
403634:	8b ec                	mov    %esp,%ebp
403636:	5d                   	pop    %ebp
403637:	e9 2e 00 00 00       	jmp    0x40366a
40363c:	a1 c4 62 4c 00       	mov    0x4c62c4,%eax
403641:	85 c0                	test   %eax,%eax
403643:	74 07                	je     0x40364c
403645:	50                   	push   %eax
403646:	ff 15 3c f7 48 00    	call   *0x48f73c
40364c:	b9 f8 62 4c 00       	mov    $0x4c62f8,%ecx
403651:	e8 0e 24 00 00       	call   0x405a64
403656:	b9 e8 62 4c 00       	mov    $0x4c62e8,%ecx
40365b:	e8 04 24 00 00       	call   0x405a64
403660:	b9 d0 62 4c 00       	mov    $0x4c62d0,%ecx
403665:	e9 fa 23 00 00       	jmp    0x405a64
40366a:	55                   	push   %ebp
40366b:	8b ec                	mov    %esp,%ebp
40366d:	83 e4 f8             	and    $0xfffffff8,%esp
403670:	51                   	push   %ecx
403671:	a1 ac 62 4c 00       	mov    0x4c62ac,%eax
403676:	53                   	push   %ebx
403677:	56                   	push   %esi
403678:	8b 75 08             	mov    0x8(%ebp),%esi
40367b:	57                   	push   %edi
40367c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40367f:	3b f0                	cmp    %eax,%esi
403681:	75 5e                	jne    0x4036e1
403683:	83 ff 11             	cmp    $0x11,%edi
403686:	76 5f                	jbe    0x4036e7
403688:	8b c7                	mov    %edi,%eax
40368a:	2d 82 00 00 00       	sub    $0x82,%eax
40368f:	0f 84 c8 00 00 00    	je     0x40375d
403695:	2d 8f 00 00 00       	sub    $0x8f,%eax
40369a:	0f 84 ef 9c 03 00    	je     0x43d38f
4036a0:	48                   	dec    %eax
4036a1:	48                   	dec    %eax
4036a2:	0f 84 bf 00 00 00    	je     0x403767
4036a8:	2d ff 01 00 00       	sub    $0x1ff,%eax
4036ad:	0f 84 c1 9c 03 00    	je     0x43d374
4036b3:	2d ef 00 00 00       	sub    $0xef,%eax
4036b8:	0f 84 8d 00 00 00    	je     0x40374b
4036be:	3b 3d 24 74 4c 00    	cmp    0x4c7424,%edi
4036c4:	0f 84 85 9c 03 00    	je     0x43d34f
4036ca:	ff 75 14             	push   0x14(%ebp)
4036cd:	ff 75 10             	push   0x10(%ebp)
4036d0:	57                   	push   %edi
4036d1:	56                   	push   %esi
4036d2:	ff 15 bc f6 48 00    	call   *0x48f6bc
4036d8:	5f                   	pop    %edi
4036d9:	5e                   	pop    %esi
4036da:	5b                   	pop    %ebx
4036db:	8b e5                	mov    %ebp,%esp
4036dd:	5d                   	pop    %ebp
4036de:	c2 10 00             	ret    $0x10
4036e1:	85 c0                	test   %eax,%eax
4036e3:	74 9e                	je     0x403683
4036e5:	eb e3                	jmp    0x4036ca
4036e7:	0f 84 2f 9c 03 00    	je     0x43d31c
4036ed:	8b c7                	mov    %edi,%eax
4036ef:	48                   	dec    %eax
4036f0:	74 23                	je     0x403715
4036f2:	48                   	dec    %eax
4036f3:	0f 85 c6 9b 03 00    	jne    0x43d2bf
4036f9:	6a 01                	push   $0x1
4036fb:	56                   	push   %esi
4036fc:	ff 15 0c f7 48 00    	call   *0x48f70c
403702:	b9 90 68 4c 00       	mov    $0x4c6890,%ecx
403707:	e8 bf 0d 00 00       	call   0x4044cb
40370c:	e8 03 fa ff ff       	call   0x403114
403711:	33 c0                	xor    %eax,%eax
403713:	eb c3                	jmp    0x4036d8
403715:	6a 00                	push   $0x0
403717:	68 ee 02 00 00       	push   $0x2ee
40371c:	6a 01                	push   $0x1
40371e:	56                   	push   %esi
40371f:	ff 15 18 f7 48 00    	call   *0x48f718