444354:	50                   	push   %eax
444355:	8b 45 fc             	mov    -0x4(%ebp),%eax
444358:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
44435e:	50                   	push   %eax
44435f:	e8 10 24 fc ff       	call   0x406774
444364:	8b 55 ec             	mov    -0x14(%ebp),%edx
444367:	d1 fa                	sar    $1,%edx
444369:	79 03                	jns    0x44436e
44436b:	83 d2 00             	adc    $0x0,%edx
44436e:	2b c2                	sub    %edx,%eax
444370:	89 45 f4             	mov    %eax,-0xc(%ebp)
444373:	8b 45 fc             	mov    -0x4(%ebp),%eax
444376:	f6 40 61 08          	testb  $0x8,0x61(%eax)
44437a:	74 41                	je     0x4443bd
44437c:	8b 45 fc             	mov    -0x4(%ebp),%eax
44437f:	f6 40 61 02          	testb  $0x2,0x61(%eax)
444383:	74 1c                	je     0x4443a1
444385:	8b 45 fc             	mov    -0x4(%ebp),%eax
444388:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
44438e:	8b 55 fc             	mov    -0x4(%ebp),%edx
444391:	2b 82 8c 00 00 00    	sub    0x8c(%edx),%eax
444397:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44439a:	2b d0                	sub    %eax,%edx
44439c:	89 55 e8             	mov    %edx,-0x18(%ebp)
44439f:	eb 51                	jmp    0x4443f2
4443a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4443a4:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
4443aa:	8b 55 fc             	mov    -0x4(%ebp),%edx
4443ad:	2b 82 8c 00 00 00    	sub    0x8c(%edx),%eax
4443b3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4443b6:	2b d0                	sub    %eax,%edx
4443b8:	89 55 f0             	mov    %edx,-0x10(%ebp)
4443bb:	eb 35                	jmp    0x4443f2
4443bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4443c0:	f6 40 61 02          	testb  $0x2,0x61(%eax)
4443c4:	75 2c                	jne    0x4443f2
4443c6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4443c9:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
4443cf:	50                   	push   %eax
4443d0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4443d3:	50                   	push   %eax
4443d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4443d7:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
4443dd:	50                   	push   %eax
4443de:	e8 91 23 fc ff       	call   0x406774
4443e3:	8b 55 e8             	mov    -0x18(%ebp),%edx
4443e6:	d1 fa                	sar    $1,%edx
4443e8:	79 03                	jns    0x4443ed
4443ea:	83 d2 00             	adc    $0x0,%edx
4443ed:	2b c2                	sub    %edx,%eax
4443ef:	89 45 f0             	mov    %eax,-0x10(%ebp)
4443f2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4443f5:	c6 40 62 01          	movb   $0x1,0x62(%eax)
4443f9:	33 c0                	xor    %eax,%eax
4443fb:	55                   	push   %ebp
4443fc:	68 35 44 44 00       	push   $0x444435
444401:	64 ff 30             	push   %fs:(%eax)
444404:	64 89 20             	mov    %esp,%fs:(%eax)
444407:	8b 45 ec             	mov    -0x14(%ebp),%eax
44440a:	50                   	push   %eax
44440b:	8b 45 e8             	mov    -0x18(%ebp),%eax
44440e:	50                   	push   %eax
44440f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
444412:	8b 55 f4             	mov    -0xc(%ebp),%edx
444415:	8b 45 fc             	mov    -0x4(%ebp),%eax
444418:	8b 18                	mov    (%eax),%ebx
44441a:	ff 93 84 00 00 00    	call   *0x84(%ebx)
444420:	33 c0                	xor    %eax,%eax
444422:	5a                   	pop    %edx
444423:	59                   	pop    %ecx
444424:	59                   	pop    %ecx
444425:	64 89 10             	mov    %edx,%fs:(%eax)
444428:	68 3c 44 44 00       	push   $0x44443c
44442d:	8b 45 fc             	mov    -0x4(%ebp),%eax
444430:	c6 40 62 00          	movb   $0x0,0x62(%eax)
444434:	c3                   	ret
444435:	e9 12 fb fb ff       	jmp    0x403f4c
44443a:	eb f1                	jmp    0x44442d
44443c:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
444440:	0f 84 2c 02 00 00    	je     0x444672
444446:	8b 45 08             	mov    0x8(%ebp),%eax
444449:	8b 40 f8             	mov    -0x8(%eax),%eax
44444c:	8b 40 08             	mov    0x8(%eax),%eax
44444f:	8b 55 08             	mov    0x8(%ebp),%edx
444452:	8b 52 f8             	mov    -0x8(%edx),%edx
444455:	2b 02                	sub    (%edx),%eax
444457:	89 45 ec             	mov    %eax,-0x14(%ebp)
44445a:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
44445e:	7c 0d                	jl     0x44446d
444460:	8a 45 fb             	mov    -0x5(%ebp),%al
444463:	04 fd                	add    $0xfd,%al
444465:	2c 02                	sub    $0x2,%al
444467:	72 04                	jb     0x44446d
444469:	2c 01                	sub    $0x1,%al
44446b:	75 09                	jne    0x444476
44446d:	8b 45 fc             	mov    -0x4(%ebp),%eax
444470:	8b 40 48             	mov    0x48(%eax),%eax
444473:	89 45 ec             	mov    %eax,-0x14(%ebp)
444476:	8b 45 08             	mov    0x8(%ebp),%eax
444479:	8b 40 f8             	mov    -0x8(%eax),%eax
44447c:	8b 40 0c             	mov    0xc(%eax),%eax
44447f:	8b 55 08             	mov    0x8(%ebp),%edx
444482:	8b 52 f8             	mov    -0x8(%edx),%edx
444485:	2b 42 04             	sub    0x4(%edx),%eax
444488:	89 45 e8             	mov    %eax,-0x18(%ebp)
44448b:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
44448f:	7c 0c                	jl     0x44449d
444491:	8a 45 fb             	mov    -0x5(%ebp),%al
444494:	48                   	dec    %eax
444495:	2c 02                	sub    $0x2,%al
444497:	72 04                	jb     0x44449d
444499:	2c 03                	sub    $0x3,%al
44449b:	75 09                	jne    0x4444a6
44449d:	8b 45 fc             	mov    -0x4(%ebp),%eax
4444a0:	8b 40 4c             	mov    0x4c(%eax),%eax
4444a3:	89 45 e8             	mov    %eax,-0x18(%ebp)
4444a6:	8b 45 08             	mov    0x8(%ebp),%eax
4444a9:	8b 40 f8             	mov    -0x8(%eax),%eax
4444ac:	8b 00                	mov    (%eax),%eax
4444ae:	89 45 f4             	mov    %eax,-0xc(%ebp)
4444b1:	8b 45 08             	mov    0x8(%ebp),%eax
4444b4:	8b 40 f8             	mov    -0x8(%eax),%eax
4444b7:	8b 40 04             	mov    0x4(%eax),%eax
4444ba:	89 45 f0             	mov    %eax,-0x10(%ebp)
4444bd:	33 c0                	xor    %eax,%eax
4444bf:	8a 45 fb             	mov    -0x5(%ebp),%al
4444c2:	83 f8 06             	cmp    $0x6,%eax
4444c5:	0f 87 af 00 00 00    	ja     0x44457a
4444cb:	ff 24 85 d2 44 44 00 	jmp    *0x4444d2(,%eax,4)
4444d2:	7a 45                	jp     0x444519
4444d4:	44                   	inc    %esp
4444d5:	00 ee                	add    %ch,%dh
4444d7:	44                   	inc    %esp
4444d8:	44                   	inc    %esp
4444d9:	00 fc                	add    %bh,%ah
4444db:	44                   	inc    %esp
4444dc:	44                   	inc    %esp
4444dd:	00 16                	add    %dl,(%esi)
4444df:	45                   	inc    %ebp
4444e0:	44                   	inc    %esp
4444e1:	00 23                	add    %ah,(%ebx)
4444e3:	45                   	inc    %ebp
4444e4:	44                   	inc    %esp
4444e5:	00 7a 45             	add    %bh,0x45(%edx)
4444e8:	44                   	inc    %esp
4444e9:	00 3d 45 44 00 8b    	add    %bh,0x8b004445
4444ef:	45                   	inc    %ebp
4444f0:	08 8b 40 f8 8b 55    	or     %cl,0x558bf840(%ebx)
4444f6:	e8 01 50 04 eb       	call   0xeb4894fc
4444fb:	7e 8b                	jle    0x444488
4444fd:	45                   	inc    %ebp
4444fe:	08 8b 40 f8 8b 55    	or     %cl,0x558bf840(%ebx)
444504:	e8 29 50 0c 8b       	call   0x8b509532
444509:	45                   	inc    %ebp
44450a:	08 8b 40 f8 8b 40    	or     %cl,0x408bf840(%ebx)
444510:	0c 89                	or     $0x89,%al
444512:	45                   	inc    %ebp
444513:	f0 eb 64             	lock jmp 0x44457a
444516:	8b 45 08             	mov    0x8(%ebp),%eax
444519:	8b 40 f8             	mov    -0x8(%eax),%eax
44451c:	8b 55 ec             	mov    -0x14(%ebp),%edx
44451f:	01 10                	add    %edx,(%eax)
444521:	eb 57                	jmp    0x44457a
444523:	8b 45 08             	mov    0x8(%ebp),%eax
444526:	8b 40 f8             	mov    -0x8(%eax),%eax
444529:	8b 55 ec             	mov    -0x14(%ebp),%edx
44452c:	29 50 08             	sub    %edx,0x8(%eax)
44452f:	8b 45 08             	mov    0x8(%ebp),%eax
444532:	8b 40 f8             	mov    -0x8(%eax),%eax
444535:	8b 40 08             	mov    0x8(%eax),%eax
444538:	89 45 f4             	mov    %eax,-0xc(%ebp)
44453b:	eb 3d                	jmp    0x44457a
44453d:	8b 45 fc             	mov    -0x4(%ebp),%eax
444540:	8b 40 40             	mov    0x40(%eax),%eax
444543:	89 45 f4             	mov    %eax,-0xc(%ebp)
444546:	8b 45 fc             	mov    -0x4(%ebp),%eax
444549:	8b 40 44             	mov    0x44(%eax),%eax
44454c:	89 45 f0             	mov    %eax,-0x10(%ebp)
44454f:	8d 45 f0             	lea    -0x10(%ebp),%eax
444552:	50                   	push   %eax
444553:	8d 45 ec             	lea    -0x14(%ebp),%eax
444556:	50                   	push   %eax
444557:	8d 45 e8             	lea    -0x18(%ebp),%eax
44455a:	50                   	push   %eax
44455b:	8b 45 08             	mov    0x8(%ebp),%eax
44455e:	8b 40 f8             	mov    -0x8(%eax),%eax
444561:	50                   	push   %eax
444562:	8d 45 d0             	lea    -0x30(%ebp),%eax
444565:	50                   	push   %eax
444566:	8d 4d f4             	lea    -0xc(%ebp),%ecx
444569:	8b 45 08             	mov    0x8(%ebp),%eax
44456c:	8b 40 fc             	mov    -0x4(%eax),%eax
44456f:	8b 55 fc             	mov    -0x4(%ebp),%edx
444572:	8b 18                	mov    (%eax),%ebx
444574:	ff 93 a8 00 00 00    	call   *0xa8(%ebx)
44457a:	8b 45 fc             	mov    -0x4(%ebp),%eax
44457d:	c6 40 62 01          	movb   $0x1,0x62(%eax)
444581:	33 c0                	xor    %eax,%eax
444583:	55                   	push   %ebp
444584:	68 bd 45 44 00       	push   $0x4445bd
444589:	64 ff 30             	push   %fs:(%eax)
44458c:	64 89 20             	mov    %esp,%fs:(%eax)
44458f:	8b 45 ec             	mov    -0x14(%ebp),%eax
444592:	50                   	push   %eax
444593:	8b 45 e8             	mov    -0x18(%ebp),%eax
444596:	50                   	push   %eax
444597:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44459a:	8b 55 f4             	mov    -0xc(%ebp),%edx
44459d:	8b 45 fc             	mov    -0x4(%ebp),%eax
4445a0:	8b 18                	mov    (%eax),%ebx
4445a2:	ff 93 84 00 00 00    	call   *0x84(%ebx)
4445a8:	33 c0                	xor    %eax,%eax
4445aa:	5a                   	pop    %edx
4445ab:	59                   	pop    %ecx
4445ac:	59                   	pop    %ecx
4445ad:	64 89 10             	mov    %edx,%fs:(%eax)
4445b0:	68 c4 45 44 00       	push   $0x4445c4
4445b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4445b8:	c6 40 62 00          	movb   $0x0,0x62(%eax)
4445bc:	c3                   	ret
4445bd:	e9 8a f9 fb ff       	jmp    0x403f4c
4445c2:	eb f1                	jmp    0x4445b5
4445c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4445c7:	8b 40 48             	mov    0x48(%eax),%eax
4445ca:	3b 45 ec             	cmp    -0x14(%ebp),%eax
4445cd:	75 0f                	jne    0x4445de
4445cf:	8b 55 fc             	mov    -0x4(%ebp),%edx
4445d2:	8b 52 4c             	mov    0x4c(%edx),%edx
4445d5:	3b 55 e8             	cmp    -0x18(%ebp),%edx
4445d8:	0f 84 94 00 00 00    	je     0x444672
4445de:	33 d2                	xor    %edx,%edx
4445e0:	8a 55 fb             	mov    -0x5(%ebp),%dl
4445e3:	83 fa 05             	cmp    $0x5,%edx
4445e6:	0f 87 86 00 00 00    	ja     0x444672
4445ec:	ff 24 95 f3 45 44 00 	jmp    *0x4445f3(,%edx,4)
4445f3:	72 46                	jb     0x44463b
4445f5:	44                   	inc    %esp
4445f6:	00 0b                	add    %cl,(%ebx)
4445f8:	46                   	inc    %esi
4445f9:	44                   	inc    %esp
4445fa:	00 1f                	add    %bl,(%edi)
4445fc:	46                   	inc    %esi
4445fd:	44                   	inc    %esp
4445fe:	00 33                	add    %dh,(%ebx)
444600:	46                   	inc    %esi
444601:	44                   	inc    %esp
444602:	00 42 46             	add    %al,0x46(%edx)
444605:	44                   	inc    %esp
444606:	00 52 46             	add    %dl,0x46(%edx)
444609:	44                   	inc    %esp
44460a:	00 8b 45 fc 8b 55    	add    %cl,0x558bfc45(%ebx)
444610:	e8 2b 50 4c 8b       	call   0x8b909640
444615:	45                   	inc    %ebp
444616:	08 8b 40 f8 29 50    	or     %cl,0x5029f840(%ebx)
44461c:	04 eb                	add    $0xeb,%al
44461e:	53                   	push   %ebx
44461f:	8b 45 fc             	mov    -0x4(%ebp),%eax
444622:	8b 55 e8             	mov    -0x18(%ebp),%edx
444625:	2b 50 4c             	sub    0x4c(%eax),%edx
444628:	8b 45 08             	mov    0x8(%ebp),%eax
44462b:	8b 40 f8             	mov    -0x8(%eax),%eax
44462e:	01 50 0c             	add    %edx,0xc(%eax)
444631:	eb 3f                	jmp    0x444672
444633:	8b 55 ec             	mov    -0x14(%ebp),%edx
444636:	2b d0                	sub    %eax,%edx
444638:	8b 45 08             	mov    0x8(%ebp),%eax
44463b:	8b 40 f8             	mov    -0x8(%eax),%eax
44463e:	29 10                	sub    %edx,(%eax)
444640:	eb 30                	jmp    0x444672
444642:	8b 55 ec             	mov    -0x14(%ebp),%edx
444645:	2b d0                	sub    %eax,%edx
444647:	8b 45 08             	mov    0x8(%ebp),%eax
44464a:	8b 40 f8             	mov    -0x8(%eax),%eax
44464d:	01 50 08             	add    %edx,0x8(%eax)
444650:	eb 20                	jmp    0x444672
444652:	8b 55 ec             	mov    -0x14(%ebp),%edx
444655:	2b d0                	sub    %eax,%edx
444657:	8b 45 08             	mov    0x8(%ebp),%eax
44465a:	8b 40 f8             	mov    -0x8(%eax),%eax
44465d:	01 50 08             	add    %edx,0x8(%eax)
444660:	8b 45 fc             	mov    -0x4(%ebp),%eax
444663:	8b 55 e8             	mov    -0x18(%ebp),%edx
444666:	2b 50 4c             	sub    0x4c(%eax),%edx
444669:	8b 45 08             	mov    0x8(%ebp),%eax
44466c:	8b 40 f8             	mov    -0x8(%eax),%eax
44466f:	01 50 0c             	add    %edx,0xc(%eax)
444672:	5f                   	pop    %edi
444673:	5e                   	pop    %esi
444674:	5b                   	pop    %ebx
444675:	8b e5                	mov    %ebp,%esp
444677:	5d                   	pop    %ebp
444678:	c3                   	ret
444679:	8d 40 00             	lea    0x0(%eax),%eax
44467c:	55                   	push   %ebp
44467d:	8b ec                	mov    %esp,%ebp
44467f:	83 c4 e8             	add    $0xffffffe8,%esp
444682:	53                   	push   %ebx
444683:	56                   	push   %esi
444684:	57                   	push   %edi
444685:	8b d8                	mov    %eax,%ebx
444687:	8b 45 08             	mov    0x8(%ebp),%eax
44468a:	8b 40 f4             	mov    -0xc(%eax),%eax
44468d:	8b 10                	mov    (%eax),%edx
44468f:	ff 52 08             	call   *0x8(%edx)
444692:	8b 45 08             	mov    0x8(%ebp),%eax
444695:	83 78 f0 00          	cmpl   $0x0,-0x10(%eax)
444699:	74 44                	je     0x4446df
44469b:	84 db                	test   %bl,%bl
44469d:	74 24                	je     0x4446c3
44469f:	8b 45 08             	mov    0x8(%ebp),%eax
4446a2:	8b 40 f0             	mov    -0x10(%eax),%eax
4446a5:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
4446a9:	75 18                	jne    0x4446c3
4446ab:	8b 45 08             	mov    0x8(%ebp),%eax
4446ae:	8b 40 f0             	mov    -0x10(%eax),%eax
4446b1:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
4446b5:	74 28                	je     0x4446df
4446b7:	8b 45 08             	mov    0x8(%ebp),%eax
4446ba:	8b 40 f0             	mov    -0x10(%eax),%eax
4446bd:	f6 40 51 04          	testb  $0x4,0x51(%eax)
4446c1:	75 1c                	jne    0x4446df
4446c3:	8b 45 08             	mov    0x8(%ebp),%eax
4446c6:	8b 40 f0             	mov    -0x10(%eax),%eax
4446c9:	3a 58 5b             	cmp    0x5b(%eax),%bl
4446cc:	75 11                	jne    0x4446df
4446ce:	8b 45 08             	mov    0x8(%ebp),%eax
4446d1:	8b 50 f0             	mov    -0x10(%eax),%edx
4446d4:	8b 45 08             	mov    0x8(%ebp),%eax
4446d7:	8b 40 f4             	mov    -0xc(%eax),%eax
4446da:	e8 99 f7 fc ff       	call   0x413e78
4446df:	8b 45 08             	mov    0x8(%ebp),%eax
4446e2:	8b 40 fc             	mov    -0x4(%eax),%eax
4446e5:	e8 8e 07 00 00       	call   0x444e78
4446ea:	48                   	dec    %eax
4446eb:	85 c0                	test   %eax,%eax
4446ed:	0f 8c 9c 00 00 00    	jl     0x44478f
4446f3:	40                   	inc    %eax
4446f4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4446f7:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4446fe:	8b 45 08             	mov    0x8(%ebp),%eax
444701:	8b 40 fc             	mov    -0x4(%eax),%eax
444704:	8b 55 fc             	mov    -0x4(%ebp),%edx
444707:	e8 30 07 00 00       	call   0x444e3c
44470c:	8b f8                	mov    %eax,%edi
44470e:	3a 5f 5b             	cmp    0x5b(%edi),%bl
444711:	75 70                	jne    0x444783
444713:	84 db                	test   %bl,%bl
444715:	74 24                	je     0x44473b
444717:	80 7f 57 00          	cmpb   $0x0,0x57(%edi)
44471b:	75 1e                	jne    0x44473b