8f44fc:	56                   	push   %esi
8f44fd:	e8 d8 b2 b2 ff       	call   0x41f7da
8f4502:	59                   	pop    %ecx
8f4503:	59                   	pop    %ecx
8f4504:	8b c6                	mov    %esi,%eax
8f4506:	8b 4d f4             	mov    -0xc(%ebp),%ecx
8f4509:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
8f4510:	59                   	pop    %ecx
8f4511:	5e                   	pop    %esi
8f4512:	8b e5                	mov    %ebp,%esp
8f4514:	5d                   	pop    %ebp
8f4515:	c2 04 00             	ret    $0x4
8f4518:	cc                   	int3
8f4519:	cc                   	int3
8f451a:	cc                   	int3
8f451b:	cc                   	int3
8f451c:	cc                   	int3
8f451d:	cc                   	int3
8f451e:	cc                   	int3
8f451f:	cc                   	int3
8f4520:	cc                   	int3
8f4521:	cc                   	int3
8f4522:	cc                   	int3
8f4523:	cc                   	int3
8f4524:	cc                   	int3
8f4525:	cc                   	int3
8f4526:	cc                   	int3
8f4527:	cc                   	int3
8f4528:	cc                   	int3
8f4529:	cc                   	int3
8f452a:	cc                   	int3
8f452b:	cc                   	int3
8f452c:	cc                   	int3
8f452d:	cc                   	int3
8f452e:	cc                   	int3
8f452f:	cc                   	int3
8f4530:	cc                   	int3
8f4531:	55                   	push   %ebp
8f4532:	8b ec                	mov    %esp,%ebp
8f4534:	56                   	push   %esi
8f4535:	8b f1                	mov    %ecx,%esi
8f4537:	e8 a3 db b1 ff       	call   0x4120df
8f453c:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
8f4540:	74 0a                	je     0x8f454c
8f4542:	6a 24                	push   $0x24
8f4544:	56                   	push   %esi
8f4545:	e8 52 d9 b0 ff       	call   0x401e9c
8f454a:	59                   	pop    %ecx
8f454b:	59                   	pop    %ecx
8f454c:	8b c6                	mov    %esi,%eax
8f454e:	5e                   	pop    %esi
8f454f:	5d                   	pop    %ebp
8f4550:	c2 04 00             	ret    $0x4
8f4553:	cc                   	int3
8f4554:	cc                   	int3
8f4555:	cc                   	int3
8f4556:	cc                   	int3
8f4557:	cc                   	int3
8f4558:	cc                   	int3
8f4559:	cc                   	int3
8f455a:	cc                   	int3
8f455b:	55                   	push   %ebp
8f455c:	8b ec                	mov    %esp,%ebp
8f455e:	83 ec 0c             	sub    $0xc,%esp
8f4561:	56                   	push   %esi
8f4562:	8b f1                	mov    %ecx,%esi
8f4564:	8b 46 10             	mov    0x10(%esi),%eax
8f4567:	f7 d8                	neg    %eax
8f4569:	1b c0                	sbb    %eax,%eax
8f456b:	89 45 fc             	mov    %eax,-0x4(%ebp)
8f456e:	74 25                	je     0x8f4595
8f4570:	57                   	push   %edi
8f4571:	8d 45 f8             	lea    -0x8(%ebp),%eax
8f4574:	50                   	push   %eax
8f4575:	8d 45 f4             	lea    -0xc(%ebp),%eax
8f4578:	50                   	push   %eax
8f4579:	8d 45 fc             	lea    -0x4(%ebp),%eax
8f457c:	50                   	push   %eax
8f457d:	8d 4e 04             	lea    0x4(%esi),%ecx
8f4580:	e8 b6 3e b1 ff       	call   0x40843b
8f4585:	ff 75 f8             	push   -0x8(%ebp)
8f4588:	ff 15 84 36 d8 00    	call   *0xd83684
8f458e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
8f4592:	75 dd                	jne    0x8f4571
8f4594:	5f                   	pop    %edi
8f4595:	8d 4e 04             	lea    0x4(%esi),%ecx
8f4598:	e8 b1 96 b4 ff       	call   0x43dc4e
8f459d:	5e                   	pop    %esi
8f459e:	8b e5                	mov    %ebp,%esp
8f45a0:	5d                   	pop    %ebp
8f45a1:	c3                   	ret
8f45a2:	cc                   	int3
8f45a3:	cc                   	int3
8f45a4:	cc                   	int3
8f45a5:	cc                   	int3
8f45a6:	cc                   	int3
8f45a7:	cc                   	int3
8f45a8:	cc                   	int3
8f45a9:	cc                   	int3
8f45aa:	cc                   	int3
8f45ab:	cc                   	int3
8f45ac:	cc                   	int3
8f45ad:	cc                   	int3
8f45ae:	cc                   	int3
8f45af:	cc                   	int3
8f45b0:	cc                   	int3
8f45b1:	cc                   	int3
8f45b2:	cc                   	int3
8f45b3:	55                   	push   %ebp
8f45b4:	8b ec                	mov    %esp,%ebp
8f45b6:	8b 55 08             	mov    0x8(%ebp),%edx
8f45b9:	8b 41 10             	mov    0x10(%ecx),%eax
8f45bc:	89 42 08             	mov    %eax,0x8(%edx)
8f45bf:	83 69 0c 01          	subl   $0x1,0xc(%ecx)
8f45c3:	89 51 10             	mov    %edx,0x10(%ecx)
8f45c6:	75 05                	jne    0x8f45cd
8f45c8:	e8 81 96 b4 ff       	call   0x43dc4e
8f45cd:	5d                   	pop    %ebp
8f45ce:	c2 04 00             	ret    $0x4
8f45d1:	cc                   	int3
8f45d2:	cc                   	int3
8f45d3:	cc                   	int3
8f45d4:	cc                   	int3
8f45d5:	cc                   	int3
8f45d6:	cc                   	int3
8f45d7:	cc                   	int3
8f45d8:	55                   	push   %ebp
8f45d9:	8b ec                	mov    %esp,%ebp
8f45db:	56                   	push   %esi
8f45dc:	57                   	push   %edi
8f45dd:	ff 75 08             	push   0x8(%ebp)
8f45e0:	8b f1                	mov    %ecx,%esi
8f45e2:	e8 29 68 b2 ff       	call   0x41ae10
8f45e7:	8b 7d 10             	mov    0x10(%ebp),%edi
8f45ea:	33 d2                	xor    %edx,%edx
8f45ec:	89 07                	mov    %eax,(%edi)
8f45ee:	f7 76 08             	divl   0x8(%esi)
8f45f1:	8b 45 0c             	mov    0xc(%ebp),%eax
8f45f4:	89 10                	mov    %edx,(%eax)
8f45f6:	8b 76 04             	mov    0x4(%esi),%esi
8f45f9:	85 f6                	test   %esi,%esi
8f45fb:	74 20                	je     0x8f461d
8f45fd:	8b 34 96             	mov    (%esi,%edx,4),%esi
8f4600:	eb 17                	jmp    0x8f4619
8f4602:	8b 46 0c             	mov    0xc(%esi),%eax
8f4605:	3b 07                	cmp    (%edi),%eax
8f4607:	75 0d                	jne    0x8f4616
8f4609:	ff 75 08             	push   0x8(%ebp)
8f460c:	56                   	push   %esi
8f460d:	e8 50 0d b1 ff       	call   0x405362
8f4612:	85 c0                	test   %eax,%eax
8f4614:	75 0f                	jne    0x8f4625
8f4616:	8b 76 08             	mov    0x8(%esi),%esi
8f4619:	85 f6                	test   %esi,%esi
8f461b:	75 e5                	jne    0x8f4602
8f461d:	33 c0                	xor    %eax,%eax
8f461f:	5f                   	pop    %edi
8f4620:	5e                   	pop    %esi
8f4621:	5d                   	pop    %ebp
8f4622:	c2 0c 00             	ret    $0xc
8f4625:	8b c6                	mov    %esi,%eax
8f4627:	eb f6                	jmp    0x8f461f
8f4629:	cc                   	int3
8f462a:	cc                   	int3
8f462b:	cc                   	int3
8f462c:	cc                   	int3
8f462d:	cc                   	int3
8f462e:	cc                   	int3
8f462f:	cc                   	int3
8f4630:	cc                   	int3
8f4631:	cc                   	int3
8f4632:	cc                   	int3
8f4633:	cc                   	int3
8f4634:	cc                   	int3
8f4635:	cc                   	int3
8f4636:	cc                   	int3
8f4637:	cc                   	int3
8f4638:	cc                   	int3
8f4639:	cc                   	int3
8f463a:	cc                   	int3
8f463b:	cc                   	int3
8f463c:	cc                   	int3
8f463d:	55                   	push   %ebp
8f463e:	8b ec                	mov    %esp,%ebp
8f4640:	51                   	push   %ecx
8f4641:	53                   	push   %ebx
8f4642:	8b d1                	mov    %ecx,%edx
8f4644:	56                   	push   %esi
8f4645:	57                   	push   %edi
8f4646:	8b 7a 04             	mov    0x4(%edx),%edi
8f4649:	85 ff                	test   %edi,%edi
8f464b:	74 71                	je     0x8f46be
8f464d:	8b 5d 08             	mov    0x8(%ebp),%ebx
8f4650:	8b 33                	mov    (%ebx),%esi
8f4652:	85 f6                	test   %esi,%esi
8f4654:	74 68                	je     0x8f46be
8f4656:	83 fe ff             	cmp    $0xffffffff,%esi
8f4659:	75 1a                	jne    0x8f4675
8f465b:	33 c9                	xor    %ecx,%ecx
8f465d:	39 4a 08             	cmp    %ecx,0x8(%edx)
8f4660:	76 13                	jbe    0x8f4675
8f4662:	8b c7                	mov    %edi,%eax
8f4664:	8b 30                	mov    (%eax),%esi
8f4666:	85 f6                	test   %esi,%esi
8f4668:	75 0b                	jne    0x8f4675
8f466a:	41                   	inc    %ecx
8f466b:	83 c0 04             	add    $0x4,%eax
8f466e:	3b 4a 08             	cmp    0x8(%edx),%ecx
8f4671:	72 f1                	jb     0x8f4664
8f4673:	eb 49                	jmp    0x8f46be
8f4675:	8b 4e 08             	mov    0x8(%esi),%ecx
8f4678:	85 c9                	test   %ecx,%ecx
8f467a:	75 28                	jne    0x8f46a4
8f467c:	8b 42 08             	mov    0x8(%edx),%eax
8f467f:	33 d2                	xor    %edx,%edx
8f4681:	89 45 fc             	mov    %eax,-0x4(%ebp)
8f4684:	8b 46 0c             	mov    0xc(%esi),%eax
8f4687:	f7 75 fc             	divl   -0x4(%ebp)
8f468a:	42                   	inc    %edx
8f468b:	3b 55 fc             	cmp    -0x4(%ebp),%edx
8f468e:	73 14                	jae    0x8f46a4
8f4690:	8d 04 97             	lea    (%edi,%edx,4),%eax
8f4693:	8b 7d fc             	mov    -0x4(%ebp),%edi
8f4696:	8b 08                	mov    (%eax),%ecx
8f4698:	85 c9                	test   %ecx,%ecx
8f469a:	75 08                	jne    0x8f46a4
8f469c:	42                   	inc    %edx
8f469d:	83 c0 04             	add    $0x4,%eax
8f46a0:	3b d7                	cmp    %edi,%edx
8f46a2:	72 f2                	jb     0x8f4696
8f46a4:	8b 45 0c             	mov    0xc(%ebp),%eax
8f46a7:	89 0b                	mov    %ecx,(%ebx)
8f46a9:	8b 0e                	mov    (%esi),%ecx
8f46ab:	5f                   	pop    %edi
8f46ac:	89 08                	mov    %ecx,(%eax)
8f46ae:	8b 45 10             	mov    0x10(%ebp),%eax
8f46b1:	8b 4e 04             	mov    0x4(%esi),%ecx
8f46b4:	5e                   	pop    %esi
8f46b5:	5b                   	pop    %ebx
8f46b6:	89 08                	mov    %ecx,(%eax)
8f46b8:	8b e5                	mov    %ebp,%esp
8f46ba:	5d                   	pop    %ebp
8f46bb:	c2 0c 00             	ret    $0xc
8f46be:	e8 a3 d8 b3 ff       	call   0x431f66
8f46c3:	cc                   	int3
8f46c4:	cc                   	int3
8f46c5:	cc                   	int3
8f46c6:	cc                   	int3
8f46c7:	cc                   	int3
8f46c8:	cc                   	int3
8f46c9:	cc                   	int3
8f46ca:	cc                   	int3
8f46cb:	cc                   	int3
8f46cc:	cc                   	int3
8f46cd:	cc                   	int3
8f46ce:	cc                   	int3
8f46cf:	cc                   	int3
8f46d0:	cc                   	int3
8f46d1:	cc                   	int3
8f46d2:	cc                   	int3
8f46d3:	cc                   	int3
8f46d4:	cc                   	int3
8f46d5:	cc                   	int3
8f46d6:	cc                   	int3
8f46d7:	cc                   	int3
8f46d8:	cc                   	int3
8f46d9:	cc                   	int3
8f46da:	cc                   	int3
8f46db:	cc                   	int3
8f46dc:	cc                   	int3
8f46dd:	cc                   	int3
8f46de:	cc                   	int3
8f46df:	cc                   	int3
8f46e0:	cc                   	int3
8f46e1:	cc                   	int3
8f46e2:	cc                   	int3
8f46e3:	cc                   	int3
8f46e4:	cc                   	int3
8f46e5:	8b 41 0c             	mov    0xc(%ecx),%eax
8f46e8:	f7 d8                	neg    %eax
8f46ea:	1b c0                	sbb    %eax,%eax
8f46ec:	c3                   	ret
8f46ed:	cc                   	int3
8f46ee:	cc                   	int3
8f46ef:	55                   	push   %ebp
8f46f0:	8b ec                	mov    %esp,%ebp
8f46f2:	56                   	push   %esi
8f46f3:	8b f1                	mov    %ecx,%esi
8f46f5:	57                   	push   %edi
8f46f6:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
8f46fa:	74 0d                	je     0x8f4709
8f46fc:	ff 76 04             	push   0x4(%esi)
8f46ff:	e8 0e 9f b4 ff       	call   0x43e612
8f4704:	83 66 04 00          	andl   $0x0,0x4(%esi)
8f4708:	59                   	pop    %ecx
8f4709:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
8f470d:	8b 7d 08             	mov    0x8(%ebp),%edi
8f4710:	74 31                	je     0x8f4743
8f4712:	33 c9                	xor    %ecx,%ecx
8f4714:	8b c7                	mov    %edi,%eax
8f4716:	6a 04                	push   $0x4
8f4718:	5a                   	pop    %edx
8f4719:	f7 e2                	mul    %edx
8f471b:	0f 90 c1             	seto   %cl
8f471e:	f7 d9                	neg    %ecx
8f4720:	0b c8                	or     %eax,%ecx
8f4722:	51                   	push   %ecx
8f4723:	e8 6f 10 b4 ff       	call   0x435797
8f4728:	59                   	pop    %ecx
8f4729:	8b c8                	mov    %eax,%ecx
8f472b:	89 4e 04             	mov    %ecx,0x4(%esi)
8f472e:	85 c9                	test   %ecx,%ecx
8f4730:	74 1a                	je     0x8f474c
8f4732:	8b c7                	mov    %edi,%eax
8f4734:	c1 e0 02             	shl    $0x2,%eax
8f4737:	50                   	push   %eax
8f4738:	6a 00                	push   $0x0
8f473a:	51                   	push   %ecx
8f473b:	e8 78 00 b2 ff       	call   0x4147b8
8f4740:	83 c4 0c             	add    $0xc,%esp
8f4743:	89 7e 08             	mov    %edi,0x8(%esi)
8f4746:	5f                   	pop    %edi
8f4747:	5e                   	pop    %esi
8f4748:	5d                   	pop    %ebp
8f4749:	c2 08 00             	ret    $0x8
8f474c:	e8 15 d8 b3 ff       	call   0x431f66
8f4751:	cc                   	int3
8f4752:	cc                   	int3
8f4753:	cc                   	int3
8f4754:	cc                   	int3
8f4755:	cc                   	int3
8f4756:	cc                   	int3
8f4757:	cc                   	int3
8f4758:	cc                   	int3
8f4759:	cc                   	int3
8f475a:	cc                   	int3
8f475b:	cc                   	int3
8f475c:	cc                   	int3
8f475d:	cc                   	int3
8f475e:	cc                   	int3
8f475f:	cc                   	int3
8f4760:	cc                   	int3
8f4761:	cc                   	int3
8f4762:	cc                   	int3
8f4763:	cc                   	int3
8f4764:	cc                   	int3
8f4765:	cc                   	int3
8f4766:	cc                   	int3
8f4767:	cc                   	int3
8f4768:	cc                   	int3