4044c8:	83 c4 14             	add    $0x14,%esp
4044cb:	e9 1f 02 00 00       	jmp    0x4046ef
4044d0:	33 c9                	xor    %ecx,%ecx
4044d2:	89 8d 78 fd ff ff    	mov    %ecx,-0x288(%ebp)
4044d8:	85 c0                	test   %eax,%eax
4044da:	0f 84 0f 02 00 00    	je     0x4046ef
4044e0:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
4044e6:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
4044ec:	eb 02                	jmp    0x4044f0
4044ee:	33 c9                	xor    %ecx,%ecx
4044f0:	51                   	push   %ecx
4044f1:	56                   	push   %esi
4044f2:	51                   	push   %ecx
4044f3:	53                   	push   %ebx
4044f4:	51                   	push   %ecx
4044f5:	51                   	push   %ecx
4044f6:	50                   	push   %eax
4044f7:	89 8d 84 fd ff ff    	mov    %ecx,-0x27c(%ebp)
4044fd:	ff 15 08 81 40 00    	call   *0x408108
404503:	8b f8                	mov    %eax,%edi
404505:	83 ff ff             	cmp    $0xffffffff,%edi
404508:	74 44                	je     0x40454e
40450a:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404510:	c7 85 a0 fd ff ff 1c 	movl   $0x1c,-0x260(%ebp)
404517:	00 00 00
40451a:	50                   	push   %eax
40451b:	6a 00                	push   $0x0
40451d:	57                   	push   %edi
40451e:	ff 15 14 81 40 00    	call   *0x408114
404524:	85 c0                	test   %eax,%eax
404526:	74 26                	je     0x40454e
404528:	8b b5 84 fd ff ff    	mov    -0x27c(%ebp),%esi
40452e:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404534:	46                   	inc    %esi
404535:	50                   	push   %eax
404536:	56                   	push   %esi
404537:	57                   	push   %edi
404538:	ff 15 14 81 40 00    	call   *0x408114
40453e:	85 c0                	test   %eax,%eax
404540:	75 ec                	jne    0x40452e
404542:	89 b5 84 fd ff ff    	mov    %esi,-0x27c(%ebp)
404548:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
40454e:	33 c0                	xor    %eax,%eax
404550:	50                   	push   %eax
404551:	56                   	push   %esi
404552:	50                   	push   %eax
404553:	6a 20                	push   $0x20
404555:	8d 45 bc             	lea    -0x44(%ebp),%eax
404558:	50                   	push   %eax
404559:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
40455f:	ff 15 9c 80 40 00    	call   *0x40809c
404565:	85 c0                	test   %eax,%eax
404567:	75 4b                	jne    0x4045b4
404569:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40456c:	b8 b8 11 40 00       	mov    $0x4011b8,%eax
404571:	8b f1                	mov    %ecx,%esi
404573:	2b c6                	sub    %esi,%eax
404575:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
40457b:	6a 20                	push   $0x20
40457d:	5a                   	pop    %edx
40457e:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
404584:	8d 82 de ff ff 7f    	lea    0x7fffffde(%edx),%eax
40458a:	85 c0                	test   %eax,%eax
40458c:	74 21                	je     0x4045af
40458e:	8b 85 7c fd ff ff    	mov    -0x284(%ebp),%eax
404594:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
404598:	66 85 c0             	test   %ax,%ax
40459b:	74 0a                	je     0x4045a7
40459d:	66 89 01             	mov    %ax,(%ecx)
4045a0:	03 cb                	add    %ebx,%ecx
4045a2:	83 ea 01             	sub    $0x1,%edx
4045a5:	75 dd                	jne    0x404584
4045a7:	85 d2                	test   %edx,%edx
4045a9:	0f 84 99 01 00 00    	je     0x404748
4045af:	33 c0                	xor    %eax,%eax
4045b1:	66 89 01             	mov    %ax,(%ecx)
4045b4:	33 c0                	xor    %eax,%eax
4045b6:	50                   	push   %eax
4045b7:	56                   	push   %esi
4045b8:	50                   	push   %eax
4045b9:	68 00 01 00 00       	push   $0x100
4045be:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
4045c4:	50                   	push   %eax
4045c5:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
4045cb:	ff 15 24 81 40 00    	call   *0x408124
4045d1:	85 c0                	test   %eax,%eax
4045d3:	75 4e                	jne    0x404623
4045d5:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
4045db:	ba 00 01 00 00       	mov    $0x100,%edx
4045e0:	8b f1                	mov    %ecx,%esi
4045e2:	8d 45 bc             	lea    -0x44(%ebp),%eax
4045e5:	2b c6                	sub    %esi,%eax
4045e7:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
4045ed:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
4045f3:	8d 82 fe fe ff 7f    	lea    0x7ffffefe(%edx),%eax
4045f9:	85 c0                	test   %eax,%eax
4045fb:	74 21                	je     0x40461e
4045fd:	8b 85 7c fd ff ff    	mov    -0x284(%ebp),%eax
404603:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
404607:	66 85 c0             	test   %ax,%ax
40460a:	74 0a                	je     0x404616
40460c:	66 89 01             	mov    %ax,(%ecx)
40460f:	03 cb                	add    %ebx,%ecx
404611:	83 ea 01             	sub    $0x1,%edx
404614:	75 dd                	jne    0x4045f3
404616:	85 d2                	test   %edx,%edx
404618:	0f 84 2a 01 00 00    	je     0x404748
40461e:	33 c0                	xor    %eax,%eax
404620:	66 89 01             	mov    %ax,(%ecx)
404623:	8b 85 84 fd ff ff    	mov    -0x27c(%ebp),%eax
404629:	56                   	push   %esi
40462a:	85 c0                	test   %eax,%eax
40462c:	75 2a                	jne    0x404658
40462e:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
404634:	50                   	push   %eax
404635:	8d 45 bc             	lea    -0x44(%ebp),%eax
404638:	50                   	push   %eax
404639:	8b c6                	mov    %esi,%eax
40463b:	f7 d8                	neg    %eax
40463d:	1b c0                	sbb    %eax,%eax
40463f:	05 93 eb 00 00       	add    $0xeb93,%eax
404644:	50                   	push   %eax
404645:	6a 01                	push   $0x1
404647:	e8 2d 28 00 00       	call   0x406e79
40464c:	59                   	pop    %ecx
40464d:	50                   	push   %eax
40464e:	e8 8a d3 ff ff       	call   0x4019dd
404653:	83 c4 14             	add    $0x14,%esp
404656:	eb 5e                	jmp    0x4046b6
404658:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
40465e:	51                   	push   %ecx
40465f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
404662:	51                   	push   %ecx
404663:	50                   	push   %eax
404664:	8b c6                	mov    %esi,%eax
404666:	f7 d8                	neg    %eax
404668:	1b c0                	sbb    %eax,%eax
40466a:	05 8f eb 00 00       	add    $0xeb8f,%eax
40466f:	50                   	push   %eax
404670:	6a 01                	push   $0x1
404672:	e8 02 28 00 00       	call   0x406e79
404677:	59                   	pop    %ecx
404678:	50                   	push   %eax
404679:	e8 5f d3 ff ff       	call   0x4019dd
40467e:	83 c4 18             	add    $0x18,%esp
404681:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
404687:	33 c9                	xor    %ecx,%ecx
404689:	8b f1                	mov    %ecx,%esi
40468b:	50                   	push   %eax
40468c:	51                   	push   %ecx
40468d:	57                   	push   %edi
40468e:	ff 15 14 81 40 00    	call   *0x408114
404694:	85 c0                	test   %eax,%eax
404696:	74 18                	je     0x4046b0
404698:	8d 95 a0 fd ff ff    	lea    -0x260(%ebp),%edx
40469e:	8b cf                	mov    %edi,%ecx
4046a0:	e8 ea e1 ff ff       	call   0x40288f
4046a5:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
4046ab:	46                   	inc    %esi
4046ac:	50                   	push   %eax
4046ad:	56                   	push   %esi
4046ae:	eb dd                	jmp    0x40468d
4046b0:	8b b5 9c fd ff ff    	mov    -0x264(%ebp),%esi
4046b6:	83 ff ff             	cmp    $0xffffffff,%edi
4046b9:	74 0a                	je     0x4046c5
4046bb:	57                   	push   %edi
4046bc:	ff 15 fc 80 40 00    	call   *0x4080fc
4046c2:	83 cf ff             	or     $0xffffffff,%edi
4046c5:	8b 8d 78 fd ff ff    	mov    -0x288(%ebp),%ecx
4046cb:	8b 85 90 fd ff ff    	mov    -0x270(%ebp),%eax
4046d1:	41                   	inc    %ecx
4046d2:	6a 10                	push   $0x10
4046d4:	5a                   	pop    %edx
4046d5:	03 c2                	add    %edx,%eax
4046d7:	89 8d 78 fd ff ff    	mov    %ecx,-0x288(%ebp)
4046dd:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
4046e3:	3b 8d 8c fd ff ff    	cmp    -0x274(%ebp),%ecx
4046e9:	0f 82 ff fd ff ff    	jb     0x4044ee
4046ef:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
4046f5:	ff 85 80 fd ff ff    	incl   -0x280(%ebp)
4046fb:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
404701:	8b 95 80 fd ff ff    	mov    -0x280(%ebp),%edx
404707:	83 c0 04             	add    $0x4,%eax
40470a:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
404710:	3b 55 14             	cmp    0x14(%ebp),%edx
404713:	0f 8c e0 fc ff ff    	jl     0x4043f9
404719:	33 c0                	xor    %eax,%eax
40471b:	8b d8                	mov    %eax,%ebx
40471d:	ff b5 98 fd ff ff    	push   -0x268(%ebp)
404723:	e8 c5 1e 00 00       	call   0x4065ed
404728:	59                   	pop    %ecx
404729:	83 ff ff             	cmp    $0xffffffff,%edi
40472c:	74 07                	je     0x404735
40472e:	57                   	push   %edi
40472f:	ff 15 fc 80 40 00    	call   *0x4080fc
404735:	8b c3                	mov    %ebx,%eax
404737:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40473a:	5f                   	pop    %edi
40473b:	5e                   	pop    %esi
40473c:	33 cd                	xor    %ebp,%ecx
40473e:	5b                   	pop    %ebx
40473f:	e8 9c 21 00 00       	call   0x4068e0
404744:	c9                   	leave
404745:	c2 14 00             	ret    $0x14
404748:	2b cb                	sub    %ebx,%ecx
40474a:	33 c0                	xor    %eax,%eax
40474c:	66 89 01             	mov    %ax,(%ecx)
40474f:	eb cc                	jmp    0x40471d
404751:	cc                   	int3
404752:	cc                   	int3
404753:	cc                   	int3
404754:	cc                   	int3
404755:	cc                   	int3
404756:	cc                   	int3
404757:	cc                   	int3
404758:	cc                   	int3
404759:	cc                   	int3
40475a:	cc                   	int3
40475b:	cc                   	int3
40475c:	cc                   	int3
40475d:	cc                   	int3
40475e:	cc                   	int3
40475f:	cc                   	int3
404760:	8b ff                	mov    %edi,%edi
404762:	55                   	push   %ebp
404763:	8b ec                	mov    %esp,%ebp
404765:	56                   	push   %esi
404766:	8b 75 14             	mov    0x14(%ebp),%esi
404769:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40476d:	75 12                	jne    0x404781
40476f:	8b 55 0c             	mov    0xc(%ebp),%edx
404772:	8b 4d 08             	mov    0x8(%ebp),%ecx
404775:	e8 15 e1 ff ff       	call   0x40288f
40477a:	ff 06                	incl   (%esi)
40477c:	e9 93 00 00 00       	jmp    0x404814
404781:	53                   	push   %ebx
404782:	8b 5d 08             	mov    0x8(%ebp),%ebx
404785:	8b cb                	mov    %ebx,%ecx
404787:	57                   	push   %edi
404788:	8b 7d 0c             	mov    0xc(%ebp),%edi
40478b:	8b d7                	mov    %edi,%edx
40478d:	6a 00                	push   $0x0
40478f:	e8 15 e0 ff ff       	call   0x4027a9
404794:	85 c0                	test   %eax,%eax
404796:	74 7a                	je     0x404812
404798:	f6 46 04 01          	testb  $0x1,0x4(%esi)
40479c:	74 09                	je     0x4047a7
40479e:	8b d7                	mov    %edi,%edx
4047a0:	8b cb                	mov    %ebx,%ecx
4047a2:	e8 2d e1 ff ff       	call   0x4028d4
4047a7:	f6 46 04 40          	testb  $0x40,0x4(%esi)
4047ab:	74 09                	je     0x4047b6
4047ad:	8b d7                	mov    %edi,%edx
4047af:	8b cb                	mov    %ebx,%ecx
4047b1:	e8 76 e1 ff ff       	call   0x40292c
4047b6:	f6 46 04 02          	testb  $0x2,0x4(%esi)
4047ba:	74 09                	je     0x4047c5
4047bc:	8b d7                	mov    %edi,%edx
4047be:	8b cb                	mov    %ebx,%ecx
4047c0:	e8 01 e2 ff ff       	call   0x4029c6
4047c5:	f6 46 04 04          	testb  $0x4,0x4(%esi)
4047c9:	74 09                	je     0x4047d4
4047cb:	8b d7                	mov    %edi,%edx
4047cd:	8b cb                	mov    %ebx,%ecx
4047cf:	e8 05 e5 ff ff       	call   0x402cd9
4047d4:	f6 46 04 08          	testb  $0x8,0x4(%esi)
4047d8:	74 09                	je     0x4047e3
4047da:	8b d7                	mov    %edi,%edx
4047dc:	8b cb                	mov    %ebx,%ecx
4047de:	e8 ea ea ff ff       	call   0x4032cd
4047e3:	f6 46 04 80          	testb  $0x80,0x4(%esi)
4047e7:	74 09                	je     0x4047f2
4047e9:	8b d7                	mov    %edi,%edx
4047eb:	8b cb                	mov    %ebx,%ecx
4047ed:	e8 53 f2 ff ff       	call   0x403a45
4047f2:	f6 46 04 10          	testb  $0x10,0x4(%esi)
4047f6:	74 09                	je     0x404801
4047f8:	8b d7                	mov    %edi,%edx
4047fa:	8b cb                	mov    %ebx,%ecx
4047fc:	e8 77 ed ff ff       	call   0x403578
404801:	f6 46 04 20          	testb  $0x20,0x4(%esi)
404805:	74 09                	je     0x404810
404807:	8b d7                	mov    %edi,%edx
404809:	8b cb                	mov    %ebx,%ecx
40480b:	e8 27 ee ff ff       	call   0x403637
404810:	ff 06                	incl   (%esi)
404812:	5f                   	pop    %edi
404813:	5b                   	pop    %ebx
404814:	33 c0                	xor    %eax,%eax
404816:	5e                   	pop    %esi
404817:	5d                   	pop    %ebp
404818:	c2 10 00             	ret    $0x10
40481b:	cc                   	int3
40481c:	cc                   	int3
40481d:	cc                   	int3
40481e:	cc                   	int3
40481f:	cc                   	int3
404820:	cc                   	int3
404821:	cc                   	int3
404822:	cc                   	int3
404823:	cc                   	int3
404824:	cc                   	int3
404825:	cc                   	int3
404826:	cc                   	int3
404827:	cc                   	int3
404828:	cc                   	int3
404829:	cc                   	int3
40482a:	cc                   	int3
40482b:	cc                   	int3
40482c:	cc                   	int3
40482d:	cc                   	int3
40482e:	cc                   	int3
40482f:	cc                   	int3
404830:	8b ff                	mov    %edi,%edi
404832:	55                   	push   %ebp
404833:	8b ec                	mov    %esp,%ebp
404835:	83 ec 18             	sub    $0x18,%esp
404838:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40483c:	75 05                	jne    0x404843
40483e:	6a 03                	push   $0x3
404840:	58                   	pop    %eax
404841:	eb 72                	jmp    0x4048b5
404843:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
404847:	8d 45 e8             	lea    -0x18(%ebp),%eax
40484a:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40484e:	56                   	push   %esi
40484f:	8b 75 0c             	mov    0xc(%ebp),%esi
404852:	8b d6                	mov    %esi,%edx
404854:	57                   	push   %edi
404855:	50                   	push   %eax
404856:	68 60 47 40 00       	push   $0x404760
40485b:	ff 75 18             	push   0x18(%ebp)
40485e:	ff 75 14             	push   0x14(%ebp)
404861:	6a 02                	push   $0x2
404863:	e8 77 d8 ff ff       	call   0x4020df
404868:	8b f8                	mov    %eax,%edi
40486a:	85 ff                	test   %edi,%edi
40486c:	75 43                	jne    0x4048b1
40486e:	56                   	push   %esi
40486f:	39 45 e8             	cmp    %eax,-0x18(%ebp)
404872:	75 1e                	jne    0x404892
404874:	f7 de                	neg    %esi
404876:	1b f6                	sbb    %esi,%esi
404878:	81 c6 f3 eb 00 00    	add    $0xebf3,%esi
40487e:	56                   	push   %esi
40487f:	6a 01                	push   $0x1
404881:	e8 f3 25 00 00       	call   0x406e79
404886:	59                   	pop    %ecx
404887:	50                   	push   %eax
404888:	e8 50 d1 ff ff       	call   0x4019dd