447317:	8b ec                	mov    %esp,%ebp
447319:	83 ec 14             	sub    $0x14,%esp
44731c:	56                   	push   %esi
44731d:	89 55 ec             	mov    %edx,-0x14(%ebp)
447320:	8b f1                	mov    %ecx,%esi
447322:	57                   	push   %edi
447323:	ba 80 03 45 00       	mov    $0x450380,%edx
447328:	33 ff                	xor    %edi,%edi
44732a:	e8 29 71 fd ff       	call   0x41e458
44732f:	85 c0                	test   %eax,%eax
447331:	0f 84 81 01 00 00    	je     0x4474b8
447337:	6a 0e                	push   $0xe
447339:	ba 70 05 45 00       	mov    $0x450570,%edx
44733e:	8b ce                	mov    %esi,%ecx
447340:	e8 c5 bd fe ff       	call   0x43310a
447345:	85 c0                	test   %eax,%eax
447347:	0f 85 66 01 00 00    	jne    0x4474b3
44734d:	53                   	push   %ebx
44734e:	8d 45 f0             	lea    -0x10(%ebp),%eax
447351:	89 7d fc             	mov    %edi,-0x4(%ebp)
447354:	50                   	push   %eax
447355:	8d 45 f8             	lea    -0x8(%ebp),%eax
447358:	89 7d f8             	mov    %edi,-0x8(%ebp)
44735b:	50                   	push   %eax
44735c:	8d 45 fc             	lea    -0x4(%ebp),%eax
44735f:	89 7d f0             	mov    %edi,-0x10(%ebp)
447362:	50                   	push   %eax
447363:	57                   	push   %edi
447364:	8d 5e 1c             	lea    0x1c(%esi),%ebx
447367:	53                   	push   %ebx
447368:	e8 51 01 00 00       	call   0x4474be
44736d:	85 c0                	test   %eax,%eax
44736f:	0f 85 24 01 00 00    	jne    0x447499
447375:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
447379:	0f 85 1a 01 00 00    	jne    0x447499
44737f:	39 7d f0             	cmp    %edi,-0x10(%ebp)
447382:	0f 84 11 01 00 00    	je     0x447499
447388:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44738b:	ba 38 b4 40 00       	mov    $0x40b438,%edx
447390:	e8 c3 70 fd ff       	call   0x41e458
447395:	85 c0                	test   %eax,%eax
447397:	0f 85 fc 00 00 00    	jne    0x447499
44739d:	8d 45 f4             	lea    -0xc(%ebp),%eax
4473a0:	89 7d f4             	mov    %edi,-0xc(%ebp)
4473a3:	50                   	push   %eax
4473a4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4473a7:	50                   	push   %eax
4473a8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4473ab:	50                   	push   %eax
4473ac:	ff 75 f8             	push   -0x8(%ebp)
4473af:	53                   	push   %ebx
4473b0:	e8 09 01 00 00       	call   0x4474be
4473b5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4473b8:	8b f0                	mov    %eax,%esi
4473ba:	e8 51 8c fc ff       	call   0x410010
4473bf:	85 f6                	test   %esi,%esi
4473c1:	75 6b                	jne    0x44742e
4473c3:	83 7d fc 02          	cmpl   $0x2,-0x4(%ebp)
4473c7:	75 65                	jne    0x44742e
4473c9:	8d 45 f4             	lea    -0xc(%ebp),%eax
4473cc:	89 7d f4             	mov    %edi,-0xc(%ebp)
4473cf:	50                   	push   %eax
4473d0:	8d 45 f8             	lea    -0x8(%ebp),%eax
4473d3:	50                   	push   %eax
4473d4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4473d7:	50                   	push   %eax
4473d8:	ff 75 f8             	push   -0x8(%ebp)
4473db:	53                   	push   %ebx
4473dc:	e8 dd 00 00 00       	call   0x4474be
4473e1:	8b f0                	mov    %eax,%esi
4473e3:	85 f6                	test   %esi,%esi
4473e5:	75 3a                	jne    0x447421
4473e7:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
4473eb:	75 34                	jne    0x447421
4473ed:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4473f0:	ba 54 b4 40 00       	mov    $0x40b454,%edx
4473f5:	e8 5e 70 fd ff       	call   0x41e458
4473fa:	85 c0                	test   %eax,%eax
4473fc:	75 0b                	jne    0x447409
4473fe:	8b 45 ec             	mov    -0x14(%ebp),%eax
447401:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
447407:	eb 1b                	jmp    0x447424
447409:	8b 4d f4             	mov    -0xc(%ebp),%ecx
44740c:	ba 60 b4 40 00       	mov    $0x40b460,%edx
447411:	e8 42 70 fd ff       	call   0x41e458
447416:	85 c0                	test   %eax,%eax
447418:	75 07                	jne    0x447421
44741a:	8b 45 ec             	mov    -0x14(%ebp),%eax
44741d:	89 38                	mov    %edi,(%eax)
44741f:	eb 03                	jmp    0x447424
447421:	33 f6                	xor    %esi,%esi
447423:	46                   	inc    %esi
447424:	8b 4d f4             	mov    -0xc(%ebp),%ecx
447427:	e8 e4 8b fc ff       	call   0x410010
44742c:	eb 03                	jmp    0x447431
44742e:	33 f6                	xor    %esi,%esi
447430:	46                   	inc    %esi
447431:	85 f6                	test   %esi,%esi
447433:	75 67                	jne    0x44749c
447435:	8d 45 ec             	lea    -0x14(%ebp),%eax
447438:	89 7d ec             	mov    %edi,-0x14(%ebp)
44743b:	50                   	push   %eax
44743c:	8d 45 f8             	lea    -0x8(%ebp),%eax
44743f:	50                   	push   %eax
447440:	8d 45 fc             	lea    -0x4(%ebp),%eax
447443:	50                   	push   %eax
447444:	ff 75 f8             	push   -0x8(%ebp)
447447:	53                   	push   %ebx
447448:	e8 71 00 00 00       	call   0x4474be
44744d:	8b f0                	mov    %eax,%esi
44744f:	85 f6                	test   %esi,%esi
447451:	75 06                	jne    0x447459
447453:	83 7d fc 03          	cmpl   $0x3,-0x4(%ebp)
447457:	74 03                	je     0x44745c
447459:	33 f6                	xor    %esi,%esi
44745b:	46                   	inc    %esi
44745c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44745f:	e8 ac 8b fc ff       	call   0x410010
447464:	85 f6                	test   %esi,%esi
447466:	75 34                	jne    0x44749c
447468:	8d 45 ec             	lea    -0x14(%ebp),%eax
44746b:	89 7d ec             	mov    %edi,-0x14(%ebp)
44746e:	50                   	push   %eax
44746f:	8d 45 f8             	lea    -0x8(%ebp),%eax
447472:	50                   	push   %eax
447473:	8d 45 fc             	lea    -0x4(%ebp),%eax
447476:	50                   	push   %eax
447477:	ff 75 f8             	push   -0x8(%ebp)
44747a:	53                   	push   %ebx
44747b:	e8 3e 00 00 00       	call   0x4474be
447480:	8b f0                	mov    %eax,%esi
447482:	85 f6                	test   %esi,%esi
447484:	75 06                	jne    0x44748c
447486:	83 7d fc 06          	cmpl   $0x6,-0x4(%ebp)
44748a:	74 03                	je     0x44748f
44748c:	33 f6                	xor    %esi,%esi
44748e:	46                   	inc    %esi
44748f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
447492:	e8 79 8b fc ff       	call   0x410010
447497:	eb 03                	jmp    0x44749c
447499:	33 f6                	xor    %esi,%esi
44749b:	46                   	inc    %esi
44749c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44749f:	e8 6c 8b fc ff       	call   0x410010
4474a4:	8b fe                	mov    %esi,%edi
4474a6:	f7 df                	neg    %edi
4474a8:	5b                   	pop    %ebx
4474a9:	1b ff                	sbb    %edi,%edi
4474ab:	81 e7 12 10 04 80    	and    $0x80041012,%edi
4474b1:	eb 05                	jmp    0x4474b8
4474b3:	bf 12 10 04 80       	mov    $0x80041012,%edi
4474b8:	8b c7                	mov    %edi,%eax
4474ba:	5f                   	pop    %edi
4474bb:	5e                   	pop    %esi
4474bc:	c9                   	leave
4474bd:	c3                   	ret
4474be:	8b ff                	mov    %edi,%edi
4474c0:	55                   	push   %ebp
4474c1:	8b ec                	mov    %esp,%ebp
4474c3:	83 ec 24             	sub    $0x24,%esp
4474c6:	8b 45 10             	mov    0x10(%ebp),%eax
4474c9:	8b 4d 14             	mov    0x14(%ebp),%ecx
4474cc:	53                   	push   %ebx
4474cd:	56                   	push   %esi
4474ce:	33 f6                	xor    %esi,%esi
4474d0:	89 30                	mov    %esi,(%eax)
4474d2:	8b d6                	mov    %esi,%edx
4474d4:	8b 45 18             	mov    0x18(%ebp),%eax
4474d7:	8b de                	mov    %esi,%ebx
4474d9:	57                   	push   %edi
4474da:	89 75 e8             	mov    %esi,-0x18(%ebp)
4474dd:	8b fe                	mov    %esi,%edi
4474df:	89 55 f0             	mov    %edx,-0x10(%ebp)
4474e2:	89 30                	mov    %esi,(%eax)
4474e4:	8b 45 0c             	mov    0xc(%ebp),%eax
4474e7:	89 01                	mov    %eax,(%ecx)
4474e9:	33 c9                	xor    %ecx,%ecx
4474eb:	41                   	inc    %ecx
4474ec:	89 75 ec             	mov    %esi,-0x14(%ebp)
4474ef:	89 75 fc             	mov    %esi,-0x4(%ebp)
4474f2:	89 75 f4             	mov    %esi,-0xc(%ebp)
4474f5:	8b c2                	mov    %edx,%eax
4474f7:	c1 e0 04             	shl    $0x4,%eax
4474fa:	8b 90 98 04 45 00    	mov    0x450498(%eax),%edx
447500:	0f b7 b0 92 04 45 00 	movzwl 0x450492(%eax),%esi
447507:	89 55 e0             	mov    %edx,-0x20(%ebp)
44750a:	8b 90 94 04 45 00    	mov    0x450494(%eax),%edx
447510:	89 55 dc             	mov    %edx,-0x24(%ebp)
447513:	8b 90 9c 04 45 00    	mov    0x45049c(%eax),%edx
447519:	89 75 e4             	mov    %esi,-0x1c(%ebp)
44751c:	0f b7 b0 90 04 45 00 	movzwl 0x450490(%eax),%esi
447523:	89 55 f8             	mov    %edx,-0x8(%ebp)
447526:	8b 55 f0             	mov    -0x10(%ebp),%edx
447529:	85 c9                	test   %ecx,%ecx
44752b:	74 3b                	je     0x447568
44752d:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
447531:	0f 85 5e 01 00 00    	jne    0x447695
447537:	8b 4d 08             	mov    0x8(%ebp),%ecx
44753a:	8d 59 02             	lea    0x2(%ecx),%ebx
44753d:	66 8b 01             	mov    (%ecx),%ax
447540:	83 c1 02             	add    $0x2,%ecx
447543:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
447547:	75 f4                	jne    0x44753d
447549:	8b 45 14             	mov    0x14(%ebp),%eax
44754c:	2b cb                	sub    %ebx,%ecx
44754e:	d1 f9                	sar    $1,%ecx
447550:	8b 00                	mov    (%eax),%eax
447552:	3b c1                	cmp    %ecx,%eax
447554:	76 0b                	jbe    0x447561
447556:	33 db                	xor    %ebx,%ebx
447558:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44755f:	eb 07                	jmp    0x447568
447561:	8b 4d 08             	mov    0x8(%ebp),%ecx
447564:	0f b7 1c 41          	movzwl (%ecx,%eax,2),%ebx
447568:	b9 ff ff 00 00       	mov    $0xffff,%ecx
44756d:	33 c0                	xor    %eax,%eax
44756f:	66 3b f1             	cmp    %cx,%si
447572:	74 49                	je     0x4475bd
447574:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
447577:	c7 45 f0 fe ff 00 00 	movl   $0xfffe,-0x10(%ebp)
44757e:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
447582:	75 10                	jne    0x447594
447584:	66 3b de             	cmp    %si,%bx
447587:	74 34                	je     0x4475bd
447589:	8b 45 f8             	mov    -0x8(%ebp),%eax
44758c:	c1 e8 03             	shr    $0x3,%eax
44758f:	83 e0 01             	and    $0x1,%eax
447592:	eb 1d                	jmp    0x4475b1
447594:	f6 45 f8 08          	testb  $0x8,-0x8(%ebp)
447598:	74 0a                	je     0x4475a4
44759a:	66 3b de             	cmp    %si,%bx
44759d:	72 1e                	jb     0x4475bd
44759f:	66 3b d9             	cmp    %cx,%bx
4475a2:	77 19                	ja     0x4475bd
4475a4:	66 3b de             	cmp    %si,%bx
4475a7:	72 08                	jb     0x4475b1
4475a9:	66 3b d9             	cmp    %cx,%bx
4475ac:	77 03                	ja     0x4475b1
4475ae:	33 c0                	xor    %eax,%eax
4475b0:	40                   	inc    %eax
4475b1:	33 c9                	xor    %ecx,%ecx
4475b3:	85 c0                	test   %eax,%eax
4475b5:	75 06                	jne    0x4475bd
4475b7:	42                   	inc    %edx
4475b8:	e9 be 00 00 00       	jmp    0x44767b
4475bd:	8b 55 f8             	mov    -0x8(%ebp),%edx
4475c0:	33 c0                	xor    %eax,%eax
4475c2:	8b c8                	mov    %eax,%ecx
4475c4:	f6 c2 01             	test   $0x1,%dl
4475c7:	0f 84 8d 00 00 00    	je     0x44765a
4475cd:	85 ff                	test   %edi,%edi
4475cf:	74 60                	je     0x447631
4475d1:	8b 55 f4             	mov    -0xc(%ebp),%edx
4475d4:	8b 75 fc             	mov    -0x4(%ebp),%esi
4475d7:	8d 42 ff             	lea    -0x1(%edx),%eax
4475da:	3b f0                	cmp    %eax,%esi
4475dc:	72 42                	jb     0x447620
4475de:	83 c2 20             	add    $0x20,%edx
4475e1:	89 55 f4             	mov    %edx,-0xc(%ebp)
4475e4:	8b c2                	mov    %edx,%eax
4475e6:	6a 02                	push   $0x2
4475e8:	5a                   	pop    %edx
4475e9:	f7 e2                	mul    %edx
4475eb:	0f 90 c1             	seto   %cl
4475ee:	f7 d9                	neg    %ecx
4475f0:	0b c8                	or     %eax,%ecx
4475f2:	51                   	push   %ecx
4475f3:	e8 e3 6b fd ff       	call   0x41e1db
4475f8:	8b f0                	mov    %eax,%esi
4475fa:	59                   	pop    %ecx
4475fb:	85 f6                	test   %esi,%esi
4475fd:	0f 84 96 00 00 00    	je     0x447699
447603:	8b 45 fc             	mov    -0x4(%ebp),%eax
447606:	8d 14 00             	lea    (%eax,%eax,1),%edx
447609:	52                   	push   %edx
44760a:	57                   	push   %edi
44760b:	56                   	push   %esi
44760c:	e8 34 81 fd ff       	call   0x41f745
447611:	83 c4 0c             	add    $0xc,%esp
447614:	8b cf                	mov    %edi,%ecx
447616:	e8 f5 89 fc ff       	call   0x410010
44761b:	8b fe                	mov    %esi,%edi
44761d:	8b 75 fc             	mov    -0x4(%ebp),%esi
447620:	33 c0                	xor    %eax,%eax
447622:	66 89 1c 77          	mov    %bx,(%edi,%esi,2)
447626:	66 89 44 77 02       	mov    %ax,0x2(%edi,%esi,2)
44762b:	46                   	inc    %esi
44762c:	89 75 fc             	mov    %esi,-0x4(%ebp)
44762f:	eb 23                	jmp    0x447654
447631:	33 c0                	xor    %eax,%eax
447633:	40                   	inc    %eax
447634:	6a 20                	push   $0x20
447636:	89 45 fc             	mov    %eax,-0x4(%ebp)
447639:	58                   	pop    %eax
44763a:	6a 40                	push   $0x40
44763c:	89 45 f4             	mov    %eax,-0xc(%ebp)
44763f:	e8 97 6b fd ff       	call   0x41e1db
447644:	8b f8                	mov    %eax,%edi
447646:	59                   	pop    %ecx
447647:	85 ff                	test   %edi,%edi
447649:	74 52                	je     0x44769d
44764b:	33 c0                	xor    %eax,%eax
44764d:	66 89 1f             	mov    %bx,(%edi)
447650:	66 89 47 02          	mov    %ax,0x2(%edi)
447654:	8b 55 f8             	mov    -0x8(%ebp),%edx
447657:	33 c9                	xor    %ecx,%ecx
447659:	41                   	inc    %ecx
44765a:	f6 c2 02             	test   $0x2,%dl
44765d:	74 03                	je     0x447662
44765f:	33 c9                	xor    %ecx,%ecx
447661:	41                   	inc    %ecx
447662:	8b 75 14             	mov    0x14(%ebp),%esi
447665:	8b 06                	mov    (%esi),%eax
447667:	f6 c2 04             	test   $0x4,%dl
44766a:	74 04                	je     0x447670
44766c:	33 c9                	xor    %ecx,%ecx
44766e:	41                   	inc    %ecx
44766f:	48                   	dec    %eax
447670:	40                   	inc    %eax
447671:	89 06                	mov    %eax,(%esi)
447673:	f6 c2 20             	test   $0x20,%dl
447676:	75 2a                	jne    0x4476a2
447678:	8b 55 e0             	mov    -0x20(%ebp),%edx
44767b:	89 55 f0             	mov    %edx,-0x10(%ebp)
44767e:	83 fa 0b             	cmp    $0xb,%edx
447681:	0f 82 6e fe ff ff    	jb     0x4474f5
447687:	6a 05                	push   $0x5
447689:	5e                   	pop    %esi
44768a:	8b cf                	mov    %edi,%ecx
44768c:	e8 7f 89 fc ff       	call   0x410010
447691:	8b c6                	mov    %esi,%eax
447693:	eb 1c                	jmp    0x4476b1
447695:	6a 06                	push   $0x6
447697:	eb f0                	jmp    0x447689
447699:	6a 07                	push   $0x7
44769b:	eb ec                	jmp    0x447689
44769d:	6a 07                	push   $0x7
44769f:	58                   	pop    %eax
4476a0:	eb 0f                	jmp    0x4476b1
4476a2:	8b 45 10             	mov    0x10(%ebp),%eax
4476a5:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4476a8:	89 08                	mov    %ecx,(%eax)
4476aa:	8b 45 18             	mov    0x18(%ebp),%eax
4476ad:	89 38                	mov    %edi,(%eax)
4476af:	33 c0                	xor    %eax,%eax
4476b1:	5f                   	pop    %edi
4476b2:	5e                   	pop    %esi
4476b3:	5b                   	pop    %ebx
4476b4:	c9                   	leave
4476b5:	c2 14 00             	ret    $0x14