4313c3:	57                   	push   %edi
4313c4:	ff 36                	push   (%esi)
4313c6:	ff 75 fc             	push   -0x4(%ebp)
4313c9:	ff 75 f8             	push   -0x8(%ebp)
4313cc:	e8 83 90 00 00       	call   0x43a454
4313d1:	29 7e 04             	sub    %edi,0x4(%esi)
4313d4:	01 3e                	add    %edi,(%esi)
4313d6:	01 7d f8             	add    %edi,-0x8(%ebp)
4313d9:	2b df                	sub    %edi,%ebx
4313db:	83 c4 10             	add    $0x10,%esp
4313de:	29 7d fc             	sub    %edi,-0x4(%ebp)
4313e1:	8b 7d f0             	mov    -0x10(%ebp),%edi
4313e4:	e9 85 00 00 00       	jmp    0x43146e
4313e9:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
4313ec:	72 5c                	jb     0x43144a
4313ee:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4313f2:	74 1f                	je     0x431413
4313f4:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4313f9:	33 d2                	xor    %edx,%edx
4313fb:	3b d9                	cmp    %ecx,%ebx
4313fd:	76 09                	jbe    0x431408
4313ff:	8b c1                	mov    %ecx,%eax
431401:	f7 75 f4             	divl   -0xc(%ebp)
431404:	8b c1                	mov    %ecx,%eax
431406:	eb 07                	jmp    0x43140f
431408:	8b c3                	mov    %ebx,%eax
43140a:	f7 75 f4             	divl   -0xc(%ebp)
43140d:	8b c3                	mov    %ebx,%eax
43140f:	2b c2                	sub    %edx,%eax
431411:	eb 0b                	jmp    0x43141e
431413:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
431418:	3b d8                	cmp    %eax,%ebx
43141a:	77 02                	ja     0x43141e
43141c:	8b c3                	mov    %ebx,%eax
43141e:	3b 45 fc             	cmp    -0x4(%ebp),%eax
431421:	77 5b                	ja     0x43147e
431423:	50                   	push   %eax
431424:	ff 75 f8             	push   -0x8(%ebp)
431427:	56                   	push   %esi
431428:	e8 e5 4d 00 00       	call   0x436212
43142d:	59                   	pop    %ecx
43142e:	50                   	push   %eax
43142f:	e8 67 08 00 00       	call   0x431c9b
431434:	83 c4 0c             	add    $0xc,%esp
431437:	85 c0                	test   %eax,%eax
431439:	74 7b                	je     0x4314b6
43143b:	83 f8 ff             	cmp    $0xffffffff,%eax
43143e:	74 64                	je     0x4314a4
431440:	01 45 f8             	add    %eax,-0x8(%ebp)
431443:	2b d8                	sub    %eax,%ebx
431445:	29 45 fc             	sub    %eax,-0x4(%ebp)
431448:	eb 24                	jmp    0x43146e
43144a:	56                   	push   %esi
43144b:	e8 e2 8e 00 00       	call   0x43a332
431450:	59                   	pop    %ecx
431451:	83 f8 ff             	cmp    $0xffffffff,%eax
431454:	74 52                	je     0x4314a8
431456:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
43145a:	74 22                	je     0x43147e
43145c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43145f:	ff 45 f8             	incl   -0x8(%ebp)
431462:	88 01                	mov    %al,(%ecx)
431464:	8b 46 18             	mov    0x18(%esi),%eax
431467:	4b                   	dec    %ebx
431468:	ff 4d fc             	decl   -0x4(%ebp)
43146b:	89 45 f4             	mov    %eax,-0xc(%ebp)
43146e:	85 db                	test   %ebx,%ebx
431470:	0f 85 26 ff ff ff    	jne    0x43139c
431476:	8b 45 14             	mov    0x14(%ebp),%eax
431479:	e9 bc fe ff ff       	jmp    0x43133a
43147e:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
431482:	74 10                	je     0x431494
431484:	ff 75 0c             	push   0xc(%ebp)
431487:	6a 00                	push   $0x0
431489:	ff 75 08             	push   0x8(%ebp)
43148c:	e8 df f6 ff ff       	call   0x430b70
431491:	83 c4 0c             	add    $0xc,%esp
431494:	e8 0f 35 00 00       	call   0x4349a8
431499:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
43149f:	e9 8f fe ff ff       	jmp    0x431333
4314a4:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
4314a8:	8b c7                	mov    %edi,%eax
4314aa:	2b c3                	sub    %ebx,%eax
4314ac:	33 d2                	xor    %edx,%edx
4314ae:	f7 75 10             	divl   0x10(%ebp)
4314b1:	e9 84 fe ff ff       	jmp    0x43133a
4314b6:	83 4e 0c 10          	orl    $0x10,0xc(%esi)
4314ba:	eb ec                	jmp    0x4314a8
4314bc:	8b ff                	mov    %edi,%edi
4314be:	55                   	push   %ebp
4314bf:	8b ec                	mov    %esp,%ebp
4314c1:	ff 75 14             	push   0x14(%ebp)
4314c4:	ff 75 10             	push   0x10(%ebp)
4314c7:	ff 75 0c             	push   0xc(%ebp)
4314ca:	6a ff                	push   $0xffffffff
4314cc:	ff 75 08             	push   0x8(%ebp)
4314cf:	e8 2c fe ff ff       	call   0x431300
4314d4:	83 c4 14             	add    $0x14,%esp
4314d7:	5d                   	pop    %ebp
4314d8:	c3                   	ret
4314d9:	6a 0c                	push   $0xc
4314db:	68 30 dc 46 00       	push   $0x46dc30
4314e0:	e8 9b 38 00 00       	call   0x434d80
4314e5:	33 f6                	xor    %esi,%esi
4314e7:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4314ea:	39 75 10             	cmp    %esi,0x10(%ebp)
4314ed:	74 2f                	je     0x43151e
4314ef:	39 75 14             	cmp    %esi,0x14(%ebp)
4314f2:	74 2a                	je     0x43151e
4314f4:	39 75 18             	cmp    %esi,0x18(%ebp)
4314f7:	75 2d                	jne    0x431526
4314f9:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
4314fd:	74 0f                	je     0x43150e
4314ff:	ff 75 0c             	push   0xc(%ebp)
431502:	56                   	push   %esi
431503:	ff 75 08             	push   0x8(%ebp)
431506:	e8 65 f6 ff ff       	call   0x430b70
43150b:	83 c4 0c             	add    $0xc,%esp
43150e:	e8 95 34 00 00       	call   0x4349a8
431513:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
431519:	e8 50 2e 00 00       	call   0x43436e
43151e:	33 c0                	xor    %eax,%eax
431520:	e8 a0 38 00 00       	call   0x434dc5
431525:	c3                   	ret
431526:	ff 75 18             	push   0x18(%ebp)
431529:	e8 f1 ee ff ff       	call   0x43041f
43152e:	59                   	pop    %ecx
43152f:	89 75 fc             	mov    %esi,-0x4(%ebp)
431532:	ff 75 18             	push   0x18(%ebp)
431535:	ff 75 14             	push   0x14(%ebp)
431538:	ff 75 10             	push   0x10(%ebp)
43153b:	ff 75 0c             	push   0xc(%ebp)
43153e:	ff 75 08             	push   0x8(%ebp)
431541:	e8 ba fd ff ff       	call   0x431300
431546:	83 c4 14             	add    $0x14,%esp
431549:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43154c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
431553:	e8 05 00 00 00       	call   0x43155d
431558:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43155b:	eb c3                	jmp    0x431520
43155d:	ff 75 18             	push   0x18(%ebp)
431560:	e8 2d ef ff ff       	call   0x430492
431565:	59                   	pop    %ecx
431566:	c3                   	ret
431567:	8b ff                	mov    %edi,%edi
431569:	55                   	push   %ebp
43156a:	8b ec                	mov    %esp,%ebp
43156c:	ff 75 14             	push   0x14(%ebp)
43156f:	ff 75 10             	push   0x10(%ebp)
431572:	ff 75 0c             	push   0xc(%ebp)
431575:	6a ff                	push   $0xffffffff
431577:	ff 75 08             	push   0x8(%ebp)
43157a:	e8 5a ff ff ff       	call   0x4314d9
43157f:	83 c4 14             	add    $0x14,%esp
431582:	5d                   	pop    %ebp
431583:	c3                   	ret
431584:	8b ff                	mov    %edi,%edi
431586:	55                   	push   %ebp
431587:	8b ec                	mov    %esp,%ebp
431589:	56                   	push   %esi
43158a:	8b 75 08             	mov    0x8(%ebp),%esi
43158d:	57                   	push   %edi
43158e:	56                   	push   %esi
43158f:	e8 3c 90 00 00       	call   0x43a5d0
431594:	59                   	pop    %ecx
431595:	83 f8 ff             	cmp    $0xffffffff,%eax
431598:	74 50                	je     0x4315ea
43159a:	a1 80 17 47 00       	mov    0x471780,%eax
43159f:	83 fe 01             	cmp    $0x1,%esi
4315a2:	75 09                	jne    0x4315ad
4315a4:	f6 80 84 00 00 00 01 	testb  $0x1,0x84(%eax)
4315ab:	75 0b                	jne    0x4315b8
4315ad:	83 fe 02             	cmp    $0x2,%esi
4315b0:	75 1c                	jne    0x4315ce
4315b2:	f6 40 44 01          	testb  $0x1,0x44(%eax)
4315b6:	74 16                	je     0x4315ce
4315b8:	6a 02                	push   $0x2
4315ba:	e8 11 90 00 00       	call   0x43a5d0
4315bf:	6a 01                	push   $0x1
4315c1:	8b f8                	mov    %eax,%edi
4315c3:	e8 08 90 00 00       	call   0x43a5d0
4315c8:	59                   	pop    %ecx
4315c9:	59                   	pop    %ecx
4315ca:	3b c7                	cmp    %edi,%eax
4315cc:	74 1c                	je     0x4315ea
4315ce:	56                   	push   %esi
4315cf:	e8 fc 8f 00 00       	call   0x43a5d0
4315d4:	59                   	pop    %ecx
4315d5:	50                   	push   %eax
4315d6:	ff 15 2c 34 47 00    	call   *0x47342c
4315dc:	85 c0                	test   %eax,%eax
4315de:	75 0a                	jne    0x4315ea
4315e0:	ff 15 24 34 47 00    	call   *0x473424
4315e6:	8b f8                	mov    %eax,%edi
4315e8:	eb 02                	jmp    0x4315ec
4315ea:	33 ff                	xor    %edi,%edi
4315ec:	56                   	push   %esi
4315ed:	e8 58 8f 00 00       	call   0x43a54a
4315f2:	8b c6                	mov    %esi,%eax
4315f4:	c1 f8 05             	sar    $0x5,%eax
4315f7:	8b 04 85 80 17 47 00 	mov    0x471780(,%eax,4),%eax
4315fe:	83 e6 1f             	and    $0x1f,%esi
431601:	c1 e6 06             	shl    $0x6,%esi
431604:	59                   	pop    %ecx
431605:	c6 44 30 04 00       	movb   $0x0,0x4(%eax,%esi,1)
43160a:	85 ff                	test   %edi,%edi
43160c:	74 0c                	je     0x43161a
43160e:	57                   	push   %edi
43160f:	e8 ba 33 00 00       	call   0x4349ce
431614:	59                   	pop    %ecx
431615:	83 c8 ff             	or     $0xffffffff,%eax
431618:	eb 02                	jmp    0x43161c
43161a:	33 c0                	xor    %eax,%eax
43161c:	5f                   	pop    %edi
43161d:	5e                   	pop    %esi
43161e:	5d                   	pop    %ebp
43161f:	c3                   	ret
431620:	6a 10                	push   $0x10
431622:	68 50 dc 46 00       	push   $0x46dc50
431627:	e8 54 37 00 00       	call   0x434d80
43162c:	8b 5d 08             	mov    0x8(%ebp),%ebx
43162f:	83 fb fe             	cmp    $0xfffffffe,%ebx
431632:	75 1b                	jne    0x43164f
431634:	e8 82 33 00 00       	call   0x4349bb
431639:	83 20 00             	andl   $0x0,(%eax)
43163c:	e8 67 33 00 00       	call   0x4349a8
431641:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
431647:	83 c8 ff             	or     $0xffffffff,%eax
43164a:	e9 84 00 00 00       	jmp    0x4316d3
43164f:	85 db                	test   %ebx,%ebx
431651:	78 08                	js     0x43165b
431653:	3b 1d 2c 17 47 00    	cmp    0x47172c,%ebx
431659:	72 1a                	jb     0x431675
43165b:	e8 5b 33 00 00       	call   0x4349bb
431660:	83 20 00             	andl   $0x0,(%eax)
431663:	e8 40 33 00 00       	call   0x4349a8
431668:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43166e:	e8 fb 2c 00 00       	call   0x43436e
431673:	eb d2                	jmp    0x431647
431675:	8b c3                	mov    %ebx,%eax
431677:	c1 f8 05             	sar    $0x5,%eax
43167a:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
431681:	8b f3                	mov    %ebx,%esi
431683:	83 e6 1f             	and    $0x1f,%esi
431686:	c1 e6 06             	shl    $0x6,%esi
431689:	8b 07                	mov    (%edi),%eax
43168b:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
431690:	83 e0 01             	and    $0x1,%eax
431693:	74 c6                	je     0x43165b
431695:	53                   	push   %ebx
431696:	e8 9e 8f 00 00       	call   0x43a639
43169b:	59                   	pop    %ecx
43169c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4316a0:	8b 07                	mov    (%edi),%eax
4316a2:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
4316a7:	74 0c                	je     0x4316b5
4316a9:	53                   	push   %ebx
4316aa:	e8 d5 fe ff ff       	call   0x431584
4316af:	59                   	pop    %ecx
4316b0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4316b3:	eb 0f                	jmp    0x4316c4
4316b5:	e8 ee 32 00 00       	call   0x4349a8
4316ba:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4316c0:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
4316c4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4316cb:	e8 0c 00 00 00       	call   0x4316dc
4316d0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4316d3:	e8 ed 36 00 00       	call   0x434dc5
4316d8:	c3                   	ret
4316d9:	8b 5d 08             	mov    0x8(%ebp),%ebx
4316dc:	53                   	push   %ebx
4316dd:	e8 f6 8f 00 00       	call   0x43a6d8
4316e2:	59                   	pop    %ecx
4316e3:	c3                   	ret
4316e4:	8b ff                	mov    %edi,%edi
4316e6:	55                   	push   %ebp
4316e7:	8b ec                	mov    %esp,%ebp
4316e9:	83 ec 1c             	sub    $0x1c,%esp
4316ec:	8b 55 10             	mov    0x10(%ebp),%edx
4316ef:	56                   	push   %esi
4316f0:	8b 75 08             	mov    0x8(%ebp),%esi
4316f3:	6a fe                	push   $0xfffffffe
4316f5:	58                   	pop    %eax
4316f6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4316f9:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4316fc:	3b f0                	cmp    %eax,%esi
4316fe:	75 1b                	jne    0x43171b
431700:	e8 b6 32 00 00       	call   0x4349bb
431705:	83 20 00             	andl   $0x0,(%eax)
431708:	e8 9b 32 00 00       	call   0x4349a8
43170d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
431713:	83 c8 ff             	or     $0xffffffff,%eax
431716:	e9 7d 05 00 00       	jmp    0x431c98
43171b:	53                   	push   %ebx
43171c:	33 db                	xor    %ebx,%ebx
43171e:	3b f3                	cmp    %ebx,%esi
431720:	7c 08                	jl     0x43172a
431722:	3b 35 2c 17 47 00    	cmp    0x47172c,%esi
431728:	72 1f                	jb     0x431749
43172a:	e8 8c 32 00 00       	call   0x4349bb
43172f:	89 18                	mov    %ebx,(%eax)
431731:	e8 72 32 00 00       	call   0x4349a8
431736:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43173c:	e8 2d 2c 00 00       	call   0x43436e
431741:	83 c8 ff             	or     $0xffffffff,%eax
431744:	e9 4e 05 00 00       	jmp    0x431c97
431749:	8b c6                	mov    %esi,%eax
43174b:	c1 f8 05             	sar    $0x5,%eax
43174e:	57                   	push   %edi
43174f:	83 e6 1f             	and    $0x1f,%esi
431752:	8d 3c 85 80 17 47 00 	lea    0x471780(,%eax,4),%edi
431759:	8b 07                	mov    (%edi),%eax
43175b:	c1 e6 06             	shl    $0x6,%esi
43175e:	8a 4c 30 04          	mov    0x4(%eax,%esi,1),%cl
431762:	f6 c1 01             	test   $0x1,%cl
431765:	75 14                	jne    0x43177b
431767:	e8 4f 32 00 00       	call   0x4349bb
43176c:	89 18                	mov    %ebx,(%eax)
43176e:	e8 35 32 00 00       	call   0x4349a8
431773:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
431779:	eb 68                	jmp    0x4317e3
43177b:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
431781:	77 4e                	ja     0x4317d1
431783:	89 5d f4             	mov    %ebx,-0xc(%ebp)
431786:	3b d3                	cmp    %ebx,%edx
431788:	0f 84 06 05 00 00    	je     0x431c94
43178e:	f6 c1 02             	test   $0x2,%cl
431791:	0f 85 fd 04 00 00    	jne    0x431c94
431797:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
43179a:	74 35                	je     0x4317d1
43179c:	8a 44 30 24          	mov    0x24(%eax,%esi,1),%al
4317a0:	02 c0                	add    %al,%al
4317a2:	d0 f8                	sar    $1,%al
4317a4:	88 45 fe             	mov    %al,-0x2(%ebp)
4317a7:	0f be c0             	movsbl %al,%eax
4317aa:	48                   	dec    %eax
4317ab:	6a 04                	push   $0x4
4317ad:	59                   	pop    %ecx
4317ae:	74 19                	je     0x4317c9
4317b0:	48                   	dec    %eax
4317b1:	75 0e                	jne    0x4317c1
4317b3:	8b c2                	mov    %edx,%eax
4317b5:	f7 d0                	not    %eax
4317b7:	a8 01                	test   $0x1,%al
4317b9:	74 16                	je     0x4317d1
4317bb:	83 e2 fe             	and    $0xfffffffe,%edx
4317be:	89 55 10             	mov    %edx,0x10(%ebp)
4317c1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4317c4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4317c7:	eb 7a                	jmp    0x431843