43036f:	50                   	push   %eax
430370:	e8 0b 61 00 00       	call   0x436480
430375:	59                   	pop    %ecx
430376:	59                   	pop    %ecx
430377:	a3 a0 18 47 00       	mov    %eax,0x4718a0
43037c:	85 c0                	test   %eax,%eax
43037e:	75 1e                	jne    0x43039e
430380:	6a 04                	push   $0x4
430382:	56                   	push   %esi
430383:	89 35 e0 2b 47 00    	mov    %esi,0x472be0
430389:	e8 f2 60 00 00       	call   0x436480
43038e:	59                   	pop    %ecx
43038f:	59                   	pop    %ecx
430390:	a3 a0 18 47 00       	mov    %eax,0x4718a0
430395:	85 c0                	test   %eax,%eax
430397:	75 05                	jne    0x43039e
430399:	6a 1a                	push   $0x1a
43039b:	58                   	pop    %eax
43039c:	5e                   	pop    %esi
43039d:	c3                   	ret
43039e:	33 d2                	xor    %edx,%edx
4303a0:	b9 18 f0 46 00       	mov    $0x46f018,%ecx
4303a5:	eb 05                	jmp    0x4303ac
4303a7:	a1 a0 18 47 00       	mov    0x4718a0,%eax
4303ac:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
4303af:	83 c1 20             	add    $0x20,%ecx
4303b2:	83 c2 04             	add    $0x4,%edx
4303b5:	81 f9 98 f2 46 00    	cmp    $0x46f298,%ecx
4303bb:	7c ea                	jl     0x4303a7
4303bd:	6a fe                	push   $0xfffffffe
4303bf:	5e                   	pop    %esi
4303c0:	33 d2                	xor    %edx,%edx
4303c2:	b9 28 f0 46 00       	mov    $0x46f028,%ecx
4303c7:	57                   	push   %edi
4303c8:	8b c2                	mov    %edx,%eax
4303ca:	c1 f8 05             	sar    $0x5,%eax
4303cd:	8b 04 85 80 17 47 00 	mov    0x471780(,%eax,4),%eax
4303d4:	8b fa                	mov    %edx,%edi
4303d6:	83 e7 1f             	and    $0x1f,%edi
4303d9:	c1 e7 06             	shl    $0x6,%edi
4303dc:	8b 04 07             	mov    (%edi,%eax,1),%eax
4303df:	83 f8 ff             	cmp    $0xffffffff,%eax
4303e2:	74 08                	je     0x4303ec
4303e4:	3b c6                	cmp    %esi,%eax
4303e6:	74 04                	je     0x4303ec
4303e8:	85 c0                	test   %eax,%eax
4303ea:	75 02                	jne    0x4303ee
4303ec:	89 31                	mov    %esi,(%ecx)
4303ee:	83 c1 20             	add    $0x20,%ecx
4303f1:	42                   	inc    %edx
4303f2:	81 f9 88 f0 46 00    	cmp    $0x46f088,%ecx
4303f8:	7c ce                	jl     0x4303c8
4303fa:	5f                   	pop    %edi
4303fb:	33 c0                	xor    %eax,%eax
4303fd:	5e                   	pop    %esi
4303fe:	c3                   	ret
4303ff:	e8 e1 63 00 00       	call   0x4367e5
430404:	80 3d b8 07 47 00 00 	cmpb   $0x0,0x4707b8
43040b:	74 05                	je     0x430412
43040d:	e8 5a 61 00 00       	call   0x43656c
430412:	ff 35 a0 18 47 00    	push   0x4718a0
430418:	e8 80 05 00 00       	call   0x43099d
43041d:	59                   	pop    %ecx
43041e:	c3                   	ret
43041f:	8b ff                	mov    %edi,%edi
430421:	55                   	push   %ebp
430422:	8b ec                	mov    %esp,%ebp
430424:	56                   	push   %esi
430425:	8b 75 08             	mov    0x8(%ebp),%esi
430428:	b8 18 f0 46 00       	mov    $0x46f018,%eax
43042d:	3b f0                	cmp    %eax,%esi
43042f:	72 22                	jb     0x430453
430431:	81 fe 78 f2 46 00    	cmp    $0x46f278,%esi
430437:	77 1a                	ja     0x430453
430439:	8b ce                	mov    %esi,%ecx
43043b:	2b c8                	sub    %eax,%ecx
43043d:	c1 f9 05             	sar    $0x5,%ecx
430440:	83 c1 10             	add    $0x10,%ecx
430443:	51                   	push   %ecx
430444:	e8 d8 34 00 00       	call   0x433921
430449:	81 4e 0c 00 80 00 00 	orl    $0x8000,0xc(%esi)
430450:	59                   	pop    %ecx
430451:	eb 0a                	jmp    0x43045d
430453:	83 c6 20             	add    $0x20,%esi
430456:	56                   	push   %esi
430457:	ff 15 d8 34 47 00    	call   *0x4734d8
43045d:	5e                   	pop    %esi
43045e:	5d                   	pop    %ebp
43045f:	c3                   	ret
430460:	8b ff                	mov    %edi,%edi
430462:	55                   	push   %ebp
430463:	8b ec                	mov    %esp,%ebp
430465:	8b 45 08             	mov    0x8(%ebp),%eax
430468:	83 f8 14             	cmp    $0x14,%eax
43046b:	7d 16                	jge    0x430483
43046d:	83 c0 10             	add    $0x10,%eax
430470:	50                   	push   %eax
430471:	e8 ab 34 00 00       	call   0x433921
430476:	8b 45 0c             	mov    0xc(%ebp),%eax
430479:	81 48 0c 00 80 00 00 	orl    $0x8000,0xc(%eax)
430480:	59                   	pop    %ecx
430481:	5d                   	pop    %ebp
430482:	c3                   	ret
430483:	8b 45 0c             	mov    0xc(%ebp),%eax
430486:	83 c0 20             	add    $0x20,%eax
430489:	50                   	push   %eax
43048a:	ff 15 d8 34 47 00    	call   *0x4734d8
430490:	5d                   	pop    %ebp
430491:	c3                   	ret
430492:	8b ff                	mov    %edi,%edi
430494:	55                   	push   %ebp
430495:	8b ec                	mov    %esp,%ebp
430497:	8b 45 08             	mov    0x8(%ebp),%eax
43049a:	b9 18 f0 46 00       	mov    $0x46f018,%ecx
43049f:	3b c1                	cmp    %ecx,%eax
4304a1:	72 1f                	jb     0x4304c2
4304a3:	3d 78 f2 46 00       	cmp    $0x46f278,%eax
4304a8:	77 18                	ja     0x4304c2
4304aa:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
4304b1:	2b c1                	sub    %ecx,%eax
4304b3:	c1 f8 05             	sar    $0x5,%eax
4304b6:	83 c0 10             	add    $0x10,%eax
4304b9:	50                   	push   %eax
4304ba:	e8 71 33 00 00       	call   0x433830
4304bf:	59                   	pop    %ecx
4304c0:	5d                   	pop    %ebp
4304c1:	c3                   	ret
4304c2:	83 c0 20             	add    $0x20,%eax
4304c5:	50                   	push   %eax
4304c6:	ff 15 dc 34 47 00    	call   *0x4734dc
4304cc:	5d                   	pop    %ebp
4304cd:	c3                   	ret
4304ce:	8b ff                	mov    %edi,%edi
4304d0:	55                   	push   %ebp
4304d1:	8b ec                	mov    %esp,%ebp
4304d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4304d6:	8b 45 0c             	mov    0xc(%ebp),%eax
4304d9:	83 f9 14             	cmp    $0x14,%ecx
4304dc:	7d 13                	jge    0x4304f1
4304de:	81 60 0c ff 7f ff ff 	andl   $0xffff7fff,0xc(%eax)
4304e5:	83 c1 10             	add    $0x10,%ecx
4304e8:	51                   	push   %ecx
4304e9:	e8 42 33 00 00       	call   0x433830
4304ee:	59                   	pop    %ecx
4304ef:	5d                   	pop    %ebp
4304f0:	c3                   	ret
4304f1:	83 c0 20             	add    $0x20,%eax
4304f4:	50                   	push   %eax
4304f5:	ff 15 dc 34 47 00    	call   *0x4734dc
4304fb:	5d                   	pop    %ebp
4304fc:	c3                   	ret
4304fd:	6a 0c                	push   $0xc
4304ff:	68 90 db 46 00       	push   $0x46db90
430504:	e8 77 48 00 00       	call   0x434d80
430509:	33 c0                	xor    %eax,%eax
43050b:	33 f6                	xor    %esi,%esi
43050d:	39 75 08             	cmp    %esi,0x8(%ebp)
430510:	0f 95 c0             	setne  %al
430513:	3b c6                	cmp    %esi,%eax
430515:	75 15                	jne    0x43052c
430517:	e8 8c 44 00 00       	call   0x4349a8
43051c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
430522:	e8 47 3e 00 00       	call   0x43436e
430527:	83 c8 ff             	or     $0xffffffff,%eax
43052a:	eb 5f                	jmp    0x43058b
43052c:	e8 17 fe ff ff       	call   0x430348
430531:	6a 20                	push   $0x20
430533:	5b                   	pop    %ebx
430534:	03 c3                	add    %ebx,%eax
430536:	50                   	push   %eax
430537:	6a 01                	push   $0x1
430539:	e8 22 ff ff ff       	call   0x430460
43053e:	59                   	pop    %ecx
43053f:	59                   	pop    %ecx
430540:	89 75 fc             	mov    %esi,-0x4(%ebp)
430543:	e8 00 fe ff ff       	call   0x430348
430548:	03 c3                	add    %ebx,%eax
43054a:	50                   	push   %eax
43054b:	e8 5d 4c 00 00       	call   0x4351ad
430550:	59                   	pop    %ecx
430551:	8b f8                	mov    %eax,%edi
430553:	8d 45 0c             	lea    0xc(%ebp),%eax
430556:	50                   	push   %eax
430557:	56                   	push   %esi
430558:	ff 75 08             	push   0x8(%ebp)
43055b:	e8 e8 fd ff ff       	call   0x430348
430560:	03 c3                	add    %ebx,%eax
430562:	50                   	push   %eax
430563:	e8 0a 4e 00 00       	call   0x435372
430568:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43056b:	e8 d8 fd ff ff       	call   0x430348
430570:	03 c3                	add    %ebx,%eax
430572:	50                   	push   %eax
430573:	57                   	push   %edi
430574:	e8 d0 4c 00 00       	call   0x435249
430579:	83 c4 18             	add    $0x18,%esp
43057c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
430583:	e8 09 00 00 00       	call   0x430591
430588:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43058b:	e8 35 48 00 00       	call   0x434dc5
430590:	c3                   	ret
430591:	e8 b2 fd ff ff       	call   0x430348
430596:	83 c0 20             	add    $0x20,%eax
430599:	50                   	push   %eax
43059a:	6a 01                	push   $0x1
43059c:	e8 2d ff ff ff       	call   0x4304ce
4305a1:	59                   	pop    %ecx
4305a2:	59                   	pop    %ecx
4305a3:	c3                   	ret
4305a4:	8b ff                	mov    %edi,%edi
4305a6:	55                   	push   %ebp
4305a7:	8b ec                	mov    %esp,%ebp
4305a9:	8d 45 10             	lea    0x10(%ebp),%eax
4305ac:	50                   	push   %eax
4305ad:	ff 75 0c             	push   0xc(%ebp)
4305b0:	ff 75 08             	push   0x8(%ebp)
4305b3:	e8 bb 62 00 00       	call   0x436873
4305b8:	83 c4 0c             	add    $0xc,%esp
4305bb:	5d                   	pop    %ebp
4305bc:	c3                   	ret
4305bd:	8b ff                	mov    %edi,%edi
4305bf:	55                   	push   %ebp
4305c0:	8b ec                	mov    %esp,%ebp
4305c2:	8d 45 10             	lea    0x10(%ebp),%eax
4305c5:	50                   	push   %eax
4305c6:	ff 75 0c             	push   0xc(%ebp)
4305c9:	ff 75 08             	push   0x8(%ebp)
4305cc:	e8 bf 62 00 00       	call   0x436890
4305d1:	83 c4 0c             	add    $0xc,%esp
4305d4:	5d                   	pop    %ebp
4305d5:	c3                   	ret
4305d6:	8b ff                	mov    %edi,%edi
4305d8:	55                   	push   %ebp
4305d9:	8b ec                	mov    %esp,%ebp
4305db:	8d 45 0c             	lea    0xc(%ebp),%eax
4305de:	50                   	push   %eax
4305df:	6a 00                	push   $0x0
4305e1:	ff 75 08             	push   0x8(%ebp)
4305e4:	e8 a7 62 00 00       	call   0x436890
4305e9:	83 c4 0c             	add    $0xc,%esp
4305ec:	5d                   	pop    %ebp
4305ed:	c3                   	ret
4305ee:	8b ff                	mov    %edi,%edi
4305f0:	55                   	push   %ebp
4305f1:	8b ec                	mov    %esp,%ebp
4305f3:	8d 45 10             	lea    0x10(%ebp),%eax
4305f6:	50                   	push   %eax
4305f7:	ff 75 0c             	push   0xc(%ebp)
4305fa:	ff 75 08             	push   0x8(%ebp)
4305fd:	e8 ab 62 00 00       	call   0x4368ad
430602:	83 c4 0c             	add    $0xc,%esp
430605:	5d                   	pop    %ebp
430606:	c3                   	ret
430607:	8b ff                	mov    %edi,%edi
430609:	55                   	push   %ebp
43060a:	8b ec                	mov    %esp,%ebp
43060c:	8d 45 0c             	lea    0xc(%ebp),%eax
43060f:	50                   	push   %eax
430610:	6a 00                	push   $0x0
430612:	ff 75 08             	push   0x8(%ebp)
430615:	e8 93 62 00 00       	call   0x4368ad
43061a:	83 c4 0c             	add    $0xc,%esp
43061d:	5d                   	pop    %ebp
43061e:	c3                   	ret
43061f:	8b ff                	mov    %edi,%edi
430621:	55                   	push   %ebp
430622:	8b ec                	mov    %esp,%ebp
430624:	8b 0d a8 f6 46 00    	mov    0x46f6a8,%ecx
43062a:	8b 55 08             	mov    0x8(%ebp),%edx
43062d:	83 c9 01             	or     $0x1,%ecx
430630:	33 c0                	xor    %eax,%eax
430632:	39 0d c8 07 47 00    	cmp    %ecx,0x4707c8
430638:	0f 94 c0             	sete   %al
43063b:	f7 da                	neg    %edx
43063d:	1b d2                	sbb    %edx,%edx
43063f:	23 d1                	and    %ecx,%edx
430641:	89 15 c8 07 47 00    	mov    %edx,0x4707c8
430647:	5d                   	pop    %ebp
430648:	c3                   	ret
430649:	a1 a8 f6 46 00       	mov    0x46f6a8,%eax
43064e:	83 c8 01             	or     $0x1,%eax
430651:	33 c9                	xor    %ecx,%ecx
430653:	39 05 c8 07 47 00    	cmp    %eax,0x4707c8
430659:	0f 94 c1             	sete   %cl
43065c:	8b c1                	mov    %ecx,%eax
43065e:	c3                   	ret
43065f:	8b ff                	mov    %edi,%edi
430661:	55                   	push   %ebp
430662:	8b ec                	mov    %esp,%ebp
430664:	83 ec 20             	sub    $0x20,%esp
430667:	53                   	push   %ebx
430668:	57                   	push   %edi
430669:	33 db                	xor    %ebx,%ebx
43066b:	6a 07                	push   $0x7
43066d:	33 c0                	xor    %eax,%eax
43066f:	59                   	pop    %ecx
430670:	8d 7d e4             	lea    -0x1c(%ebp),%edi
430673:	89 5d e0             	mov    %ebx,-0x20(%ebp)
430676:	f3 ab                	rep stos %eax,%es:(%edi)
430678:	39 5d 10             	cmp    %ebx,0x10(%ebp)
43067b:	75 18                	jne    0x430695
43067d:	e8 26 43 00 00       	call   0x4349a8
430682:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
430688:	e8 e1 3c 00 00       	call   0x43436e
43068d:	83 c8 ff             	or     $0xffffffff,%eax
430690:	e9 96 00 00 00       	jmp    0x43072b
430695:	8b 45 0c             	mov    0xc(%ebp),%eax
430698:	56                   	push   %esi
430699:	8b 75 08             	mov    0x8(%ebp),%esi
43069c:	3b c3                	cmp    %ebx,%eax
43069e:	74 19                	je     0x4306b9
4306a0:	3b f3                	cmp    %ebx,%esi
4306a2:	75 15                	jne    0x4306b9
4306a4:	e8 ff 42 00 00       	call   0x4349a8
4306a9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4306af:	e8 ba 3c 00 00       	call   0x43436e
4306b4:	83 c8 ff             	or     $0xffffffff,%eax
4306b7:	eb 71                	jmp    0x43072a
4306b9:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
4306c0:	89 75 e8             	mov    %esi,-0x18(%ebp)
4306c3:	89 75 e0             	mov    %esi,-0x20(%ebp)
4306c6:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
4306cb:	76 09                	jbe    0x4306d6
4306cd:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
4306d4:	eb 05                	jmp    0x4306db
4306d6:	03 c0                	add    %eax,%eax
4306d8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4306db:	8d 45 14             	lea    0x14(%ebp),%eax
4306de:	50                   	push   %eax
4306df:	53                   	push   %ebx
4306e0:	ff 75 10             	push   0x10(%ebp)
4306e3:	8d 45 e0             	lea    -0x20(%ebp),%eax
4306e6:	50                   	push   %eax
4306e7:	e8 53 64 00 00       	call   0x436b3f
4306ec:	83 c4 10             	add    $0x10,%esp
4306ef:	8b f8                	mov    %eax,%edi
4306f1:	3b f3                	cmp    %ebx,%esi
4306f3:	74 35                	je     0x43072a
4306f5:	ff 4d e4             	decl   -0x1c(%ebp)
4306f8:	78 0a                	js     0x430704
4306fa:	8b 45 e0             	mov    -0x20(%ebp),%eax
4306fd:	88 18                	mov    %bl,(%eax)
4306ff:	ff 45 e0             	incl   -0x20(%ebp)
430702:	eb 0c                	jmp    0x430710
430704:	8d 45 e0             	lea    -0x20(%ebp),%eax
430707:	50                   	push   %eax
430708:	53                   	push   %ebx
430709:	e8 10 62 00 00       	call   0x43691e
43070e:	59                   	pop    %ecx
43070f:	59                   	pop    %ecx