444487:	56                   	push   %esi
444488:	68 94 56 44 00       	push   $0x445694
44448d:	8b 53 08             	mov    0x8(%ebx),%edx
444490:	8b c6                	mov    %esi,%eax
444492:	e8 89 fc ff ff       	call   0x444120
444497:	8b 46 64             	mov    0x64(%esi),%eax
44449a:	e8 c5 f8 ff ff       	call   0x443d64
44449f:	d1 f8                	sar    $1,%eax
4444a1:	79 03                	jns    0x4444a6
4444a3:	83 d0 00             	adc    $0x0,%eax
4444a6:	89 46 4c             	mov    %eax,0x4c(%esi)
4444a9:	56                   	push   %esi
4444aa:	68 e4 5a 44 00       	push   $0x445ae4
4444af:	8b 53 08             	mov    0x8(%ebx),%edx
4444b2:	8b c6                	mov    %esi,%eax
4444b4:	e8 67 fc ff ff       	call   0x444120
4444b9:	8b 46 64             	mov    0x64(%esi),%eax
4444bc:	e8 a3 f8 ff ff       	call   0x443d64
4444c1:	8b d0                	mov    %eax,%edx
4444c3:	d1 fa                	sar    $1,%edx
4444c5:	79 03                	jns    0x4444ca
4444c7:	83 d2 00             	adc    $0x0,%edx
4444ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
4444cd:	e8 ba f8 ff ff       	call   0x443d8c
4444d2:	56                   	push   %esi
4444d3:	68 1c 5c 44 00       	push   $0x445c1c
4444d8:	33 d2                	xor    %edx,%edx
4444da:	8b c6                	mov    %esi,%eax
4444dc:	e8 3f fc ff ff       	call   0x444120
4444e1:	eb 77                	jmp    0x44455a
4444e3:	8b c7                	mov    %edi,%eax
4444e5:	e8 7a f8 ff ff       	call   0x443d64
4444ea:	8b d0                	mov    %eax,%edx
4444ec:	8b c3                	mov    %ebx,%eax
4444ee:	e8 99 f8 ff ff       	call   0x443d8c
4444f3:	8b 47 14             	mov    0x14(%edi),%eax
4444f6:	89 43 14             	mov    %eax,0x14(%ebx)
4444f9:	8b 47 18             	mov    0x18(%edi),%eax
4444fc:	89 43 18             	mov    %eax,0x18(%ebx)
4444ff:	85 c0                	test   %eax,%eax
444501:	74 03                	je     0x444506
444503:	89 58 0c             	mov    %ebx,0xc(%eax)
444506:	8b 47 0c             	mov    0xc(%edi),%eax
444509:	89 43 0c             	mov    %eax,0xc(%ebx)
44450c:	85 c0                	test   %eax,%eax
44450e:	74 03                	je     0x444513
444510:	89 58 18             	mov    %ebx,0x18(%eax)
444513:	8b 43 14             	mov    0x14(%ebx),%eax
444516:	3b 78 08             	cmp    0x8(%eax),%edi
444519:	75 03                	jne    0x44451e
44451b:	89 58 08             	mov    %ebx,0x8(%eax)
44451e:	8b 45 fc             	mov    -0x4(%ebp),%eax
444521:	89 58 14             	mov    %ebx,0x14(%eax)
444524:	89 5f 14             	mov    %ebx,0x14(%edi)
444527:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
44452b:	74 16                	je     0x444543
44452d:	89 7b 08             	mov    %edi,0x8(%ebx)
444530:	33 c0                	xor    %eax,%eax
444532:	89 47 18             	mov    %eax,0x18(%edi)
444535:	8b 45 fc             	mov    -0x4(%ebp),%eax
444538:	89 47 0c             	mov    %eax,0xc(%edi)
44453b:	8b 45 fc             	mov    -0x4(%ebp),%eax
44453e:	89 78 18             	mov    %edi,0x18(%eax)
444541:	eb 17                	jmp    0x44455a
444543:	8b 45 fc             	mov    -0x4(%ebp),%eax
444546:	89 43 08             	mov    %eax,0x8(%ebx)
444549:	8b 45 fc             	mov    -0x4(%ebp),%eax
44454c:	89 47 18             	mov    %eax,0x18(%edi)
44454f:	33 c0                	xor    %eax,%eax
444551:	89 47 0c             	mov    %eax,0xc(%edi)
444554:	8b 45 fc             	mov    -0x4(%ebp),%eax
444557:	89 78 0c             	mov    %edi,0xc(%eax)
44455a:	8b c3                	mov    %ebx,%eax
44455c:	e8 e7 f4 ff ff       	call   0x443a48
444561:	8b c3                	mov    %ebx,%eax
444563:	e8 78 f8 ff ff       	call   0x443de0
444568:	56                   	push   %esi
444569:	68 1c 5c 44 00       	push   $0x445c1c
44456e:	33 d2                	xor    %edx,%edx
444570:	8b c6                	mov    %esi,%eax
444572:	e8 a9 fb ff ff       	call   0x444120
444577:	5f                   	pop    %edi
444578:	5e                   	pop    %esi
444579:	5b                   	pop    %ebx
44457a:	59                   	pop    %ecx
44457b:	5d                   	pop    %ebp
44457c:	c2 08 00             	ret    $0x8
44457f:	90                   	nop
444580:	55                   	push   %ebp
444581:	8b ec                	mov    %esp,%ebp
444583:	53                   	push   %ebx
444584:	8b d9                	mov    %ecx,%ebx
444586:	8b 4d 08             	mov    0x8(%ebp),%ecx
444589:	85 db                	test   %ebx,%ebx
44458b:	75 15                	jne    0x4445a2
44458d:	8b 40 64             	mov    0x64(%eax),%eax
444590:	8b 58 08             	mov    0x8(%eax),%ebx
444593:	84 c9                	test   %cl,%cl
444595:	74 0b                	je     0x4445a2
444597:	eb 02                	jmp    0x44459b
444599:	8b d8                	mov    %eax,%ebx
44459b:	8b 43 0c             	mov    0xc(%ebx),%eax
44459e:	85 c0                	test   %eax,%eax
4445a0:	75 f7                	jne    0x444599
4445a2:	84 c9                	test   %cl,%cl
4445a4:	74 1b                	je     0x4445c1
4445a6:	8b 43 14             	mov    0x14(%ebx),%eax
4445a9:	89 42 14             	mov    %eax,0x14(%edx)
4445ac:	89 5a 18             	mov    %ebx,0x18(%edx)
4445af:	8b 43 0c             	mov    0xc(%ebx),%eax
4445b2:	89 42 0c             	mov    %eax,0xc(%edx)
4445b5:	85 c0                	test   %eax,%eax
4445b7:	74 03                	je     0x4445bc
4445b9:	89 50 18             	mov    %edx,0x18(%eax)
4445bc:	89 53 0c             	mov    %edx,0xc(%ebx)
4445bf:	eb 21                	jmp    0x4445e2
4445c1:	89 5a 0c             	mov    %ebx,0xc(%edx)
4445c4:	8b 43 18             	mov    0x18(%ebx),%eax
4445c7:	89 42 18             	mov    %eax,0x18(%edx)
4445ca:	85 c0                	test   %eax,%eax
4445cc:	74 03                	je     0x4445d1
4445ce:	89 50 0c             	mov    %edx,0xc(%eax)
4445d1:	89 53 18             	mov    %edx,0x18(%ebx)
4445d4:	8b 43 14             	mov    0x14(%ebx),%eax
4445d7:	89 42 14             	mov    %eax,0x14(%edx)
4445da:	3b 58 08             	cmp    0x8(%eax),%ebx
4445dd:	75 03                	jne    0x4445e2
4445df:	89 50 08             	mov    %edx,0x8(%eax)
4445e2:	8b 43 14             	mov    0x14(%ebx),%eax
4445e5:	e8 5e f4 ff ff       	call   0x443a48
4445ea:	8b 43 14             	mov    0x14(%ebx),%eax
4445ed:	e8 ee f7 ff ff       	call   0x443de0
4445f2:	5b                   	pop    %ebx
4445f3:	5d                   	pop    %ebp
4445f4:	c2 04 00             	ret    $0x4
4445f7:	90                   	nop
4445f8:	55                   	push   %ebp
4445f9:	8b ec                	mov    %esp,%ebp
4445fb:	83 c4 f4             	add    $0xfffffff4,%esp
4445fe:	53                   	push   %ebx
4445ff:	56                   	push   %esi
444600:	57                   	push   %edi
444601:	8b d9                	mov    %ecx,%ebx
444603:	8b f2                	mov    %edx,%esi
444605:	89 45 fc             	mov    %eax,-0x4(%ebp)
444608:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
44460c:	ba 01 00 00 00       	mov    $0x1,%edx
444611:	8b c6                	mov    %esi,%eax
444613:	e8 f4 f2 ff ff       	call   0x44390c
444618:	8b f8                	mov    %eax,%edi
44461a:	ba 02 00 00 00       	mov    $0x2,%edx
44461f:	8b c6                	mov    %esi,%eax
444621:	e8 e6 f2 ff ff       	call   0x44390c
444626:	89 45 f4             	mov    %eax,-0xc(%ebp)
444629:	8b 45 fc             	mov    -0x4(%ebp),%eax
44462c:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
444630:	74 66                	je     0x444698
444632:	3b 7b 04             	cmp    0x4(%ebx),%edi
444635:	0f 8f b3 00 00 00    	jg     0x4446ee
44463b:	8b 43 04             	mov    0x4(%ebx),%eax
44463e:	8b 55 fc             	mov    -0x4(%ebp),%edx
444641:	03 7a 18             	add    0x18(%edx),%edi
444644:	3b c7                	cmp    %edi,%eax
444646:	0f 8f a2 00 00 00    	jg     0x4446ee
44464c:	8b 03                	mov    (%ebx),%eax
44464e:	3b 45 f4             	cmp    -0xc(%ebp),%eax
444651:	0f 8c 97 00 00 00    	jl     0x4446ee
444657:	ba 02 00 00 00       	mov    $0x2,%edx
44465c:	8b c6                	mov    %esi,%eax
44465e:	e8 2d f3 ff ff       	call   0x443990
444663:	03 45 f4             	add    -0xc(%ebp),%eax
444666:	3b 03                	cmp    (%ebx),%eax
444668:	0f 8c 80 00 00 00    	jl     0x4446ee
44466e:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
444672:	8b 46 04             	mov    0x4(%esi),%eax
444675:	8b 50 40             	mov    0x40(%eax),%edx
444678:	03 50 48             	add    0x48(%eax),%edx
44467b:	83 ea 0f             	sub    $0xf,%edx
44467e:	3b 13                	cmp    (%ebx),%edx
444680:	7d 0b                	jge    0x44468d
444682:	8b 45 08             	mov    0x8(%ebp),%eax
444685:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
44468b:	eb 61                	jmp    0x4446ee
44468d:	8b 45 08             	mov    0x8(%ebp),%eax
444690:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
444696:	eb 56                	jmp    0x4446ee
444698:	8b 03                	mov    (%ebx),%eax
44469a:	3b 45 f4             	cmp    -0xc(%ebp),%eax
44469d:	7c 4f                	jl     0x4446ee
44469f:	8b 03                	mov    (%ebx),%eax
4446a1:	8b 55 fc             	mov    -0x4(%ebp),%edx
4446a4:	8b 52 18             	mov    0x18(%edx),%edx
4446a7:	03 55 f4             	add    -0xc(%ebp),%edx
4446aa:	3b c2                	cmp    %edx,%eax
4446ac:	7f 40                	jg     0x4446ee
4446ae:	3b 7b 04             	cmp    0x4(%ebx),%edi
4446b1:	7f 3b                	jg     0x4446ee
4446b3:	ba 01 00 00 00       	mov    $0x1,%edx
4446b8:	8b c6                	mov    %esi,%eax
4446ba:	e8 d1 f2 ff ff       	call   0x443990
4446bf:	03 f8                	add    %eax,%edi
4446c1:	3b 7b 04             	cmp    0x4(%ebx),%edi
4446c4:	7c 28                	jl     0x4446ee
4446c6:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
4446ca:	8b 43 04             	mov    0x4(%ebx),%eax
4446cd:	8b 56 04             	mov    0x4(%esi),%edx
4446d0:	8b 52 44             	mov    0x44(%edx),%edx
4446d3:	83 c2 0f             	add    $0xf,%edx
4446d6:	3b c2                	cmp    %edx,%eax
4446d8:	7d 0b                	jge    0x4446e5
4446da:	8b 45 08             	mov    0x8(%ebp),%eax
4446dd:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
4446e3:	eb 09                	jmp    0x4446ee
4446e5:	8b 45 08             	mov    0x8(%ebp),%eax
4446e8:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
4446ee:	0f b6 45 fb          	movzbl -0x5(%ebp),%eax
4446f2:	5f                   	pop    %edi
4446f3:	5e                   	pop    %esi
4446f4:	5b                   	pop    %ebx
4446f5:	8b e5                	mov    %ebp,%esp
4446f7:	5d                   	pop    %ebp
4446f8:	c2 04 00             	ret    $0x4
4446fb:	90                   	nop
4446fc:	53                   	push   %ebx
4446fd:	56                   	push   %esi
4446fe:	57                   	push   %edi
4446ff:	55                   	push   %ebp
444700:	83 c4 e8             	add    $0xffffffe8,%esp
444703:	8b fa                	mov    %edx,%edi
444705:	8b e8                	mov    %eax,%ebp
444707:	8b 45 14             	mov    0x14(%ebp),%eax
44470a:	e8 65 95 ff ff       	call   0x43dc74
44470f:	8b f0                	mov    %eax,%esi
444711:	4e                   	dec    %esi
444712:	83 fe 00             	cmp    $0x0,%esi
444715:	7c 65                	jl     0x44477c
444717:	8b 45 14             	mov    0x14(%ebp),%eax
44471a:	8b d6                	mov    %esi,%edx
44471c:	e8 17 95 ff ff       	call   0x43dc38
444721:	8b d8                	mov    %eax,%ebx
444723:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
444727:	74 4d                	je     0x444776
444729:	8b c3                	mov    %ebx,%eax
44472b:	8b 15 68 5e 43 00    	mov    0x435e68,%edx
444731:	e8 4a f3 fb ff       	call   0x403a80
444736:	84 c0                	test   %al,%al
444738:	74 09                	je     0x444743
44473a:	80 bb da 01 00 00 00 	cmpb   $0x0,0x1da(%ebx)
444741:	74 33                	je     0x444776
444743:	8b 57 04             	mov    0x4(%edi),%edx
444746:	2b 53 44             	sub    0x44(%ebx),%edx
444749:	8b 07                	mov    (%edi),%eax
44474b:	2b 43 40             	sub    0x40(%ebx),%eax
44474e:	8b cc                	mov    %esp,%ecx
444750:	e8 9b 1f fd ff       	call   0x4166f0
444755:	ff 74 24 04          	push   0x4(%esp)
444759:	ff 74 24 04          	push   0x4(%esp)
44475d:	8d 54 24 10          	lea    0x10(%esp),%edx
444761:	8b c3                	mov    %ebx,%eax
444763:	8b 08                	mov    (%eax),%ecx
444765:	ff 51 44             	call   *0x44(%ecx)
444768:	8d 44 24 10          	lea    0x10(%esp),%eax
44476c:	50                   	push   %eax
44476d:	e8 86 29 fc ff       	call   0x4070f8
444772:	85 c0                	test   %eax,%eax
444774:	75 08                	jne    0x44477e
444776:	4e                   	dec    %esi
444777:	83 fe ff             	cmp    $0xffffffff,%esi
44477a:	75 9b                	jne    0x444717
44477c:	33 db                	xor    %ebx,%ebx
44477e:	8b c3                	mov    %ebx,%eax
444780:	83 c4 18             	add    $0x18,%esp
444783:	5d                   	pop    %ebp
444784:	5f                   	pop    %edi
444785:	5e                   	pop    %esi
444786:	5b                   	pop    %ebx
444787:	c3                   	ret
444788:	55                   	push   %ebp
444789:	8b ec                	mov    %esp,%ebp
44478b:	53                   	push   %ebx
44478c:	56                   	push   %esi
44478d:	8b d8                	mov    %eax,%ebx
44478f:	8b 43 14             	mov    0x14(%ebx),%eax
444792:	80 78 10 01          	cmpb   $0x1,0x10(%eax)
444796:	75 41                	jne    0x4447d9
444798:	8b c3                	mov    %ebx,%eax
44479a:	e8 c5 f5 ff ff       	call   0x443d64
44479f:	8b 55 08             	mov    0x8(%ebp),%edx
4447a2:	8b 52 fc             	mov    -0x4(%edx),%edx
4447a5:	3b 42 04             	cmp    0x4(%edx),%eax
4447a8:	7c 2f                	jl     0x4447d9
4447aa:	8b c3                	mov    %ebx,%eax
4447ac:	e8 b3 f5 ff ff       	call   0x443d64
4447b1:	8b 55 08             	mov    0x8(%ebp),%edx
4447b4:	8b 52 f8             	mov    -0x8(%edx),%edx
4447b7:	2b 42 0c             	sub    0xc(%edx),%eax
4447ba:	8b 55 08             	mov    0x8(%ebp),%edx
4447bd:	8b 52 fc             	mov    -0x4(%edx),%edx
4447c0:	3b 42 04             	cmp    0x4(%edx),%eax
4447c3:	7f 14                	jg     0x4447d9
4447c5:	8b 45 08             	mov    0x8(%ebp),%eax
4447c8:	8b 40 f4             	mov    -0xc(%eax),%eax
4447cb:	c7 00 12 00 00 00    	movl   $0x12,(%eax)
4447d1:	8b 45 08             	mov    0x8(%ebp),%eax
4447d4:	89 58 f0             	mov    %ebx,-0x10(%eax)
4447d7:	eb 72                	jmp    0x44484b
4447d9:	8b 43 14             	mov    0x14(%ebx),%eax
4447dc:	80 78 10 02          	cmpb   $0x2,0x10(%eax)
4447e0:	75 3f                	jne    0x444821
4447e2:	8b c3                	mov    %ebx,%eax
4447e4:	e8 7b f5 ff ff       	call   0x443d64
4447e9:	8b 55 08             	mov    0x8(%ebp),%edx
4447ec:	8b 52 fc             	mov    -0x4(%edx),%edx
4447ef:	3b 02                	cmp    (%edx),%eax
4447f1:	7c 2e                	jl     0x444821
4447f3:	8b c3                	mov    %ebx,%eax
4447f5:	e8 6a f5 ff ff       	call   0x443d64
4447fa:	8b 55 08             	mov    0x8(%ebp),%edx
4447fd:	8b 52 f8             	mov    -0x8(%edx),%edx
444800:	2b 42 0c             	sub    0xc(%edx),%eax
444803:	8b 55 08             	mov    0x8(%ebp),%edx
444806:	8b 52 fc             	mov    -0x4(%edx),%edx
444809:	3b 02                	cmp    (%edx),%eax
44480b:	7f 14                	jg     0x444821
44480d:	8b 45 08             	mov    0x8(%ebp),%eax
444810:	8b 40 f4             	mov    -0xc(%eax),%eax
444813:	c7 00 12 00 00 00    	movl   $0x12,(%eax)
444819:	8b 45 08             	mov    0x8(%ebp),%eax
44481c:	89 58 f0             	mov    %ebx,-0x10(%eax)
44481f:	eb 2a                	jmp    0x44484b
444821:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
444825:	74 24                	je     0x44484b
444827:	8b 45 08             	mov    0x8(%ebp),%eax
44482a:	8b 40 f4             	mov    -0xc(%eax),%eax
44482d:	50                   	push   %eax
44482e:	8b 45 08             	mov    0x8(%ebp),%eax
444831:	8b 48 fc             	mov    -0x4(%eax),%ecx
444834:	8b 45 08             	mov    0x8(%ebp),%eax
444837:	8b 40 f8             	mov    -0x8(%eax),%eax
44483a:	8b d3                	mov    %ebx,%edx
44483c:	8b 30                	mov    (%eax),%esi
44483e:	ff 56 40             	call   *0x40(%esi)
444841:	84 c0                	test   %al,%al
444843:	74 06                	je     0x44484b
444845:	8b 45 08             	mov    0x8(%ebp),%eax
444848:	89 58 f0             	mov    %ebx,-0x10(%eax)
44484b:	8b 45 08             	mov    0x8(%ebp),%eax
44484e:	83 78 f0 00          	cmpl   $0x0,-0x10(%eax)
444852:	75 1c                	jne    0x444870
444854:	8b c3                	mov    %ebx,%eax