45140f:	83 c4 04             	add    $0x4,%esp
451412:	8b 0f                	mov    (%edi),%ecx
451414:	6a 20                	push   $0x20
451416:	8b 71 20             	mov    0x20(%ecx),%esi
451419:	8b ce                	mov    %esi,%ecx
45141b:	ff 15 e0 24 68 00    	call   *0x6824e0
451421:	8b cf                	mov    %edi,%ecx
451423:	ff d6                	call   *%esi
451425:	8b 7d ec             	mov    -0x14(%ebp),%edi
451428:	88 45 f3             	mov    %al,-0xd(%ebp)
45142b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
451432:	85 ff                	test   %edi,%edi
451434:	74 2c                	je     0x451462
451436:	8b 17                	mov    (%edi),%edx
451438:	8b 72 08             	mov    0x8(%edx),%esi
45143b:	8b ce                	mov    %esi,%ecx
45143d:	ff 15 e0 24 68 00    	call   *0x6824e0
451443:	8b cf                	mov    %edi,%ecx
451445:	ff d6                	call   *%esi
451447:	8b f8                	mov    %eax,%edi
451449:	85 ff                	test   %edi,%edi
45144b:	74 12                	je     0x45145f
45144d:	8b 0f                	mov    (%edi),%ecx
45144f:	6a 01                	push   $0x1
451451:	8b 31                	mov    (%ecx),%esi
451453:	8b ce                	mov    %esi,%ecx
451455:	ff 15 e0 24 68 00    	call   *0x6824e0
45145b:	8b cf                	mov    %edi,%ecx
45145d:	ff d6                	call   *%esi
45145f:	8a 45 f3             	mov    -0xd(%ebp),%al
451462:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
451466:	88 43 40             	mov    %al,0x40(%ebx)
451469:	75 13                	jne    0x45147e
45146b:	8b 43 0c             	mov    0xc(%ebx),%eax
45146e:	8b 4b 10             	mov    0x10(%ebx),%ecx
451471:	83 e0 13             	and    $0x13,%eax
451474:	83 c8 04             	or     $0x4,%eax
451477:	89 43 0c             	mov    %eax,0xc(%ebx)
45147a:	23 c8                	and    %eax,%ecx
45147c:	75 23                	jne    0x4514a1
45147e:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
451482:	74 09                	je     0x45148d
451484:	53                   	push   %ebx
451485:	e8 66 d8 17 00       	call   0x5cecf0
45148a:	83 c4 04             	add    $0x4,%esp
45148d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
451490:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
451497:	59                   	pop    %ecx
451498:	5f                   	pop    %edi
451499:	5e                   	pop    %esi
45149a:	5b                   	pop    %ebx
45149b:	8b e5                	mov    %ebp,%esp
45149d:	5d                   	pop    %ebp
45149e:	c2 08 00             	ret    $0x8
4514a1:	f6 c1 04             	test   $0x4,%cl
4514a4:	74 07                	je     0x4514ad
4514a6:	be 34 c4 68 00       	mov    $0x68c434,%esi
4514ab:	eb 10                	jmp    0x4514bd
4514ad:	f6 c1 02             	test   $0x2,%cl
4514b0:	be 4c c4 68 00       	mov    $0x68c44c,%esi
4514b5:	b8 64 c4 68 00       	mov    $0x68c464,%eax
4514ba:	0f 44 f0             	cmove  %eax,%esi
4514bd:	8d 45 e8             	lea    -0x18(%ebp),%eax
4514c0:	6a 01                	push   $0x1
4514c2:	50                   	push   %eax
4514c3:	e8 08 8b fe ff       	call   0x439fd0
4514c8:	83 c4 08             	add    $0x8,%esp
4514cb:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4514ce:	50                   	push   %eax
4514cf:	56                   	push   %esi
4514d0:	e8 1b 90 fe ff       	call   0x43a4f0
4514d5:	68 0c 60 70 00       	push   $0x70600c
4514da:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4514dd:	50                   	push   %eax
4514de:	e8 4f 15 19 00       	call   0x5e2a32
4514e3:	cc                   	int3
4514e4:	cc                   	int3
4514e5:	cc                   	int3
4514e6:	cc                   	int3
4514e7:	cc                   	int3
4514e8:	cc                   	int3
4514e9:	cc                   	int3
4514ea:	cc                   	int3
4514eb:	cc                   	int3
4514ec:	cc                   	int3
4514ed:	cc                   	int3
4514ee:	cc                   	int3
4514ef:	cc                   	int3
4514f0:	83 c8 ff             	or     $0xffffffff,%eax
4514f3:	c2 04 00             	ret    $0x4
4514f6:	cc                   	int3
4514f7:	cc                   	int3
4514f8:	cc                   	int3
4514f9:	cc                   	int3
4514fa:	cc                   	int3
4514fb:	cc                   	int3
4514fc:	cc                   	int3
4514fd:	cc                   	int3
4514fe:	cc                   	int3
4514ff:	cc                   	int3
451500:	55                   	push   %ebp
451501:	8b ec                	mov    %esp,%ebp
451503:	83 ec 08             	sub    $0x8,%esp
451506:	53                   	push   %ebx
451507:	56                   	push   %esi
451508:	57                   	push   %edi
451509:	8b f9                	mov    %ecx,%edi
45150b:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
45150f:	0f 85 35 01 00 00    	jne    0x45164a
451515:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
451519:	75 0b                	jne    0x451526
45151b:	5f                   	pop    %edi
45151c:	5e                   	pop    %esi
45151d:	33 c0                	xor    %eax,%eax
45151f:	5b                   	pop    %ebx
451520:	8b e5                	mov    %ebp,%esp
451522:	5d                   	pop    %ebp
451523:	c2 04 00             	ret    $0x4
451526:	8b 47 20             	mov    0x20(%edi),%eax
451529:	8b 18                	mov    (%eax),%ebx
45152b:	8b 47 30             	mov    0x30(%edi),%eax
45152e:	8b 10                	mov    (%eax),%edx
451530:	8d 0c 1a             	lea    (%edx,%ebx,1),%ecx
451533:	85 db                	test   %ebx,%ebx
451535:	74 27                	je     0x45155e
451537:	3b d9                	cmp    %ecx,%ebx
451539:	73 23                	jae    0x45155e
45153b:	8d 4a ff             	lea    -0x1(%edx),%ecx
45153e:	89 08                	mov    %ecx,(%eax)
451540:	8b 57 20             	mov    0x20(%edi),%edx
451543:	8b 45 08             	mov    0x8(%ebp),%eax
451546:	8b 32                	mov    (%edx),%esi
451548:	8d 4e 01             	lea    0x1(%esi),%ecx
45154b:	89 0a                	mov    %ecx,(%edx)
45154d:	8d 4b 01             	lea    0x1(%ebx),%ecx
451550:	88 06                	mov    %al,(%esi)
451552:	89 4f 38             	mov    %ecx,0x38(%edi)
451555:	5f                   	pop    %edi
451556:	5e                   	pop    %esi
451557:	5b                   	pop    %ebx
451558:	8b e5                	mov    %ebp,%esp
45155a:	5d                   	pop    %ebp
45155b:	c2 04 00             	ret    $0x4
45155e:	8b 47 0c             	mov    0xc(%edi),%eax
451561:	8b 00                	mov    (%eax),%eax
451563:	2b c8                	sub    %eax,%ecx
451565:	f7 db                	neg    %ebx
451567:	89 45 f8             	mov    %eax,-0x8(%ebp)
45156a:	1b db                	sbb    %ebx,%ebx
45156c:	23 d9                	and    %ecx,%ebx
45156e:	83 fb 20             	cmp    $0x20,%ebx
451571:	73 07                	jae    0x45157a
451573:	be 20 00 00 00       	mov    $0x20,%esi
451578:	eb 1e                	jmp    0x451598
45157a:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
451580:	73 05                	jae    0x451587
451582:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
451585:	eb 11                	jmp    0x451598
451587:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
45158d:	0f 83 b7 00 00 00    	jae    0x45164a
451593:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
451598:	8d 4f 40             	lea    0x40(%edi),%ecx
45159b:	56                   	push   %esi
45159c:	e8 af 7e fe ff       	call   0x439450
4515a1:	53                   	push   %ebx
4515a2:	ff 75 f8             	push   -0x8(%ebp)
4515a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4515a8:	50                   	push   %eax
4515a9:	e8 52 19 19 00       	call   0x5e2f00
4515ae:	8b 55 fc             	mov    -0x4(%ebp),%edx
4515b1:	83 c4 0c             	add    $0xc,%esp
4515b4:	8b 47 10             	mov    0x10(%edi),%eax
4515b7:	03 d3                	add    %ebx,%edx
4515b9:	8d 4a 01             	lea    0x1(%edx),%ecx
4515bc:	89 4f 38             	mov    %ecx,0x38(%edi)
4515bf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4515c2:	89 08                	mov    %ecx,(%eax)
4515c4:	2b ca                	sub    %edx,%ecx
4515c6:	8b 47 20             	mov    0x20(%edi),%eax
4515c9:	03 ce                	add    %esi,%ecx
4515cb:	89 10                	mov    %edx,(%eax)
4515cd:	8b 47 30             	mov    0x30(%edi),%eax
4515d0:	89 08                	mov    %ecx,(%eax)
4515d2:	f6 47 3c 04          	testb  $0x4,0x3c(%edi)
4515d6:	74 18                	je     0x4515f0
4515d8:	8b 47 0c             	mov    0xc(%edi),%eax
4515db:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4515de:	89 08                	mov    %ecx,(%eax)
4515e0:	8b 47 1c             	mov    0x1c(%edi),%eax
4515e3:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4515e9:	8b 47 2c             	mov    0x2c(%edi),%eax
4515ec:	89 08                	mov    %ecx,(%eax)
4515ee:	eb 21                	jmp    0x451611
4515f0:	8b 47 1c             	mov    0x1c(%edi),%eax
4515f3:	8b 57 38             	mov    0x38(%edi),%edx
4515f6:	8b 75 fc             	mov    -0x4(%ebp),%esi
4515f9:	8b 08                	mov    (%eax),%ecx
4515fb:	8b 47 0c             	mov    0xc(%edi),%eax
4515fe:	2b 4d f8             	sub    -0x8(%ebp),%ecx
451601:	03 ce                	add    %esi,%ecx
451603:	2b d1                	sub    %ecx,%edx
451605:	89 30                	mov    %esi,(%eax)
451607:	8b 47 1c             	mov    0x1c(%edi),%eax
45160a:	89 08                	mov    %ecx,(%eax)
45160c:	8b 47 2c             	mov    0x2c(%edi),%eax
45160f:	89 10                	mov    %edx,(%eax)
451611:	8b 47 3c             	mov    0x3c(%edi),%eax
451614:	a8 01                	test   $0x1,%al
451616:	74 0f                	je     0x451627
451618:	53                   	push   %ebx
451619:	ff 75 f8             	push   -0x8(%ebp)
45161c:	8d 4f 40             	lea    0x40(%edi),%ecx
45161f:	e8 5c f1 ff ff       	call   0x450780
451624:	8b 47 3c             	mov    0x3c(%edi),%eax
451627:	83 c8 01             	or     $0x1,%eax
45162a:	89 47 3c             	mov    %eax,0x3c(%edi)
45162d:	8b 47 30             	mov    0x30(%edi),%eax
451630:	ff 08                	decl   (%eax)
451632:	8b 4f 20             	mov    0x20(%edi),%ecx
451635:	5f                   	pop    %edi
451636:	5e                   	pop    %esi
451637:	5b                   	pop    %ebx
451638:	8b 11                	mov    (%ecx),%edx
45163a:	8d 42 01             	lea    0x1(%edx),%eax
45163d:	89 01                	mov    %eax,(%ecx)
45163f:	8b 45 08             	mov    0x8(%ebp),%eax
451642:	88 02                	mov    %al,(%edx)
451644:	8b e5                	mov    %ebp,%esp
451646:	5d                   	pop    %ebp
451647:	c2 04 00             	ret    $0x4
45164a:	5f                   	pop    %edi
45164b:	5e                   	pop    %esi
45164c:	83 c8 ff             	or     $0xffffffff,%eax
45164f:	5b                   	pop    %ebx
451650:	8b e5                	mov    %ebp,%esp
451652:	5d                   	pop    %ebp
451653:	c2 04 00             	ret    $0x4
451656:	cc                   	int3
451657:	cc                   	int3
451658:	cc                   	int3
451659:	cc                   	int3
45165a:	cc                   	int3
45165b:	cc                   	int3
45165c:	cc                   	int3
45165d:	cc                   	int3
45165e:	cc                   	int3
45165f:	cc                   	int3
451660:	55                   	push   %ebp
451661:	8b ec                	mov    %esp,%ebp
451663:	8b 41 1c             	mov    0x1c(%ecx),%eax
451666:	56                   	push   %esi
451667:	8b 30                	mov    (%eax),%esi
451669:	85 f6                	test   %esi,%esi
45166b:	74 3f                	je     0x4516ac
45166d:	8b 41 0c             	mov    0xc(%ecx),%eax
451670:	3b 30                	cmp    (%eax),%esi
451672:	76 38                	jbe    0x4516ac
451674:	8b 55 08             	mov    0x8(%ebp),%edx
451677:	83 fa ff             	cmp    $0xffffffff,%edx
45167a:	74 0b                	je     0x451687
45167c:	3a 56 ff             	cmp    -0x1(%esi),%dl
45167f:	74 06                	je     0x451687
451681:	f6 41 3c 02          	testb  $0x2,0x3c(%ecx)
451685:	75 25                	jne    0x4516ac
451687:	8b 41 2c             	mov    0x2c(%ecx),%eax
45168a:	ff 00                	incl   (%eax)
45168c:	8b 41 1c             	mov    0x1c(%ecx),%eax
45168f:	ff 08                	decl   (%eax)
451691:	83 fa ff             	cmp    $0xffffffff,%edx
451694:	74 07                	je     0x45169d
451696:	8b 49 1c             	mov    0x1c(%ecx),%ecx
451699:	8b 09                	mov    (%ecx),%ecx
45169b:	88 11                	mov    %dl,(%ecx)
45169d:	33 c0                	xor    %eax,%eax
45169f:	83 fa ff             	cmp    $0xffffffff,%edx
4516a2:	5e                   	pop    %esi
4516a3:	0f 44 d0             	cmove  %eax,%edx
4516a6:	8b c2                	mov    %edx,%eax
4516a8:	5d                   	pop    %ebp
4516a9:	c2 04 00             	ret    $0x4
4516ac:	83 c8 ff             	or     $0xffffffff,%eax
4516af:	5e                   	pop    %esi
4516b0:	5d                   	pop    %ebp
4516b1:	c2 04 00             	ret    $0x4
4516b4:	cc                   	int3
4516b5:	cc                   	int3
4516b6:	cc                   	int3
4516b7:	cc                   	int3
4516b8:	cc                   	int3
4516b9:	cc                   	int3
4516ba:	cc                   	int3
4516bb:	cc                   	int3
4516bc:	cc                   	int3
4516bd:	cc                   	int3
4516be:	cc                   	int3
4516bf:	cc                   	int3
4516c0:	55                   	push   %ebp
4516c1:	8b ec                	mov    %esp,%ebp
4516c3:	8b 45 08             	mov    0x8(%ebp),%eax
4516c6:	0f 57 c0             	xorps  %xmm0,%xmm0
4516c9:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
4516cf:	c7 40 04 ff ff ff ff 	movl   $0xffffffff,0x4(%eax)
4516d6:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
4516dd:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
4516e4:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
4516e9:	5d                   	pop    %ebp
4516ea:	c2 14 00             	ret    $0x14
4516ed:	cc                   	int3
4516ee:	cc                   	int3
4516ef:	cc                   	int3
4516f0:	55                   	push   %ebp
4516f1:	8b ec                	mov    %esp,%ebp
4516f3:	83 ec 1c             	sub    $0x1c,%esp
4516f6:	53                   	push   %ebx
4516f7:	56                   	push   %esi
4516f8:	8b f1                	mov    %ecx,%esi
4516fa:	57                   	push   %edi
4516fb:	8b 46 1c             	mov    0x1c(%esi),%eax
4516fe:	8b 38                	mov    (%eax),%edi
451700:	8b 46 20             	mov    0x20(%esi),%eax
451703:	89 7d fc             	mov    %edi,-0x4(%ebp)
451706:	8b 08                	mov    (%eax),%ecx
451708:	85 c9                	test   %ecx,%ecx
45170a:	74 08                	je     0x451714
45170c:	39 4e 38             	cmp    %ecx,0x38(%esi)
45170f:	73 03                	jae    0x451714
451711:	89 4e 38             	mov    %ecx,0x38(%esi)
451714:	8b 46 0c             	mov    0xc(%esi),%eax
451717:	8b 5d 18             	mov    0x18(%ebp),%ebx
45171a:	8b 10                	mov    (%eax),%edx
45171c:	8b 46 38             	mov    0x38(%esi),%eax
45171f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
451722:	2b c2                	sub    %edx,%eax
451724:	89 45 f0             	mov    %eax,-0x10(%ebp)
451727:	8b 45 14             	mov    0x14(%ebp),%eax
45172a:	89 55 ec             	mov    %edx,-0x14(%ebp)
45172d:	83 e8 00             	sub    $0x0,%eax
451730:	74 61                	je     0x451793
451732:	83 e8 01             	sub    $0x1,%eax
451735:	74 13                	je     0x45174a
451737:	83 e8 01             	sub    $0x1,%eax
45173a:	0f 85 ec 00 00 00    	jne    0x45182c
451740:	8b 45 f0             	mov    -0x10(%ebp),%eax
451743:	99                   	cltd
451744:	8b f8                	mov    %eax,%edi
451746:	8b c2                	mov    %edx,%eax
451748:	eb 57                	jmp    0x4517a1
45174a:	8b c3                	mov    %ebx,%eax
45174c:	83 e0 03             	and    $0x3,%eax
45174f:	3c 03                	cmp    $0x3,%al