45f6a9:	0f 84 86 01 00 00    	je     0x45f835
45f6af:	8b 75 18             	mov    0x18(%ebp),%esi
45f6b2:	0f 8e b1 00 00 00    	jle    0x45f769
45f6b8:	85 f6                	test   %esi,%esi
45f6ba:	79 02                	jns    0x45f6be
45f6bc:	33 f6                	xor    %esi,%esi
45f6be:	3b f1                	cmp    %ecx,%esi
45f6c0:	7c 07                	jl     0x45f6c9
45f6c2:	8b c1                	mov    %ecx,%eax
45f6c4:	e9 6f 01 00 00       	jmp    0x45f838
45f6c9:	85 ff                	test   %edi,%edi
45f6cb:	79 04                	jns    0x45f6d1
45f6cd:	8b f9                	mov    %ecx,%edi
45f6cf:	2b fe                	sub    %esi,%edi
45f6d1:	2b ce                	sub    %esi,%ecx
45f6d3:	3b f9                	cmp    %ecx,%edi
45f6d5:	7e 02                	jle    0x45f6d9
45f6d7:	8b f9                	mov    %ecx,%edi
45f6d9:	8b c6                	mov    %esi,%eax
45f6db:	2b c3                	sub    %ebx,%eax
45f6dd:	40                   	inc    %eax
45f6de:	03 c7                	add    %edi,%eax
45f6e0:	8b 7d 10             	mov    0x10(%ebp),%edi
45f6e3:	89 45 1c             	mov    %eax,0x1c(%ebp)
45f6e6:	3b f0                	cmp    %eax,%esi
45f6e8:	0f 8d 2d 01 00 00    	jge    0x45f81b
45f6ee:	3b d7                	cmp    %edi,%edx
45f6f0:	0f 8d 3b 01 00 00    	jge    0x45f831
45f6f6:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
45f6fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f6fd:	8b 00                	mov    (%eax),%eax
45f6ff:	8d 04 70             	lea    (%eax,%esi,2),%eax
45f702:	75 35                	jne    0x45f739
45f704:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f707:	85 db                	test   %ebx,%ebx
45f709:	89 5d 18             	mov    %ebx,0x18(%ebp)
45f70c:	eb 14                	jmp    0x45f722
45f70e:	66 8b 00             	mov    (%eax),%ax
45f711:	66 3b 01             	cmp    (%ecx),%ax
45f714:	8b 45 10             	mov    0x10(%ebp),%eax
45f717:	75 12                	jne    0x45f72b
45f719:	83 c0 02             	add    $0x2,%eax
45f71c:	83 c1 02             	add    $0x2,%ecx
45f71f:	ff 4d 18             	decl   0x18(%ebp)
45f722:	89 45 10             	mov    %eax,0x10(%ebp)
45f725:	75 e7                	jne    0x45f70e
45f727:	33 c0                	xor    %eax,%eax
45f729:	eb 1f                	jmp    0x45f74a
45f72b:	66 8b 00             	mov    (%eax),%ax
45f72e:	66 3b 01             	cmp    (%ecx),%ax
45f731:	1b c0                	sbb    %eax,%eax
45f733:	83 e0 fe             	and    $0xfffffffe,%eax
45f736:	40                   	inc    %eax
45f737:	eb 11                	jmp    0x45f74a
45f739:	ff 75 0c             	push   0xc(%ebp)
45f73c:	53                   	push   %ebx
45f73d:	ff 75 08             	push   0x8(%ebp)
45f740:	53                   	push   %ebx
45f741:	50                   	push   %eax
45f742:	e8 dd 82 fa ff       	call   0x407a24
45f747:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f74a:	85 c0                	test   %eax,%eax
45f74c:	75 10                	jne    0x45f75e
45f74e:	42                   	inc    %edx
45f74f:	89 55 fc             	mov    %edx,-0x4(%ebp)
45f752:	3b d7                	cmp    %edi,%edx
45f754:	0f 84 d7 00 00 00    	je     0x45f831
45f75a:	03 f3                	add    %ebx,%esi
45f75c:	eb 01                	jmp    0x45f75f
45f75e:	46                   	inc    %esi
45f75f:	3b 75 1c             	cmp    0x1c(%ebp),%esi
45f762:	7c 8a                	jl     0x45f6ee
45f764:	e9 b2 00 00 00       	jmp    0x45f81b
45f769:	f7 d8                	neg    %eax
45f76b:	89 45 10             	mov    %eax,0x10(%ebp)
45f76e:	85 f6                	test   %esi,%esi
45f770:	78 0d                	js     0x45f77f
45f772:	3b f1                	cmp    %ecx,%esi
45f774:	7d 09                	jge    0x45f77f
45f776:	33 c0                	xor    %eax,%eax
45f778:	40                   	inc    %eax
45f779:	2b c3                	sub    %ebx,%eax
45f77b:	03 f0                	add    %eax,%esi
45f77d:	eb 04                	jmp    0x45f783
45f77f:	8b f1                	mov    %ecx,%esi
45f781:	2b f3                	sub    %ebx,%esi
45f783:	85 f6                	test   %esi,%esi
45f785:	0f 88 37 ff ff ff    	js     0x45f6c2
45f78b:	85 ff                	test   %edi,%edi
45f78d:	79 03                	jns    0x45f792
45f78f:	8d 7e 01             	lea    0x1(%esi),%edi
45f792:	8d 46 01             	lea    0x1(%esi),%eax
45f795:	3b f8                	cmp    %eax,%edi
45f797:	7e 02                	jle    0x45f79b
45f799:	8b f8                	mov    %eax,%edi
45f79b:	8b c6                	mov    %esi,%eax
45f79d:	2b c7                	sub    %edi,%eax
45f79f:	8b 7d 10             	mov    0x10(%ebp),%edi
45f7a2:	89 45 1c             	mov    %eax,0x1c(%ebp)
45f7a5:	3b f0                	cmp    %eax,%esi
45f7a7:	7e 72                	jle    0x45f81b
45f7a9:	3b d7                	cmp    %edi,%edx
45f7ab:	0f 8d 80 00 00 00    	jge    0x45f831
45f7b1:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
45f7b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f7b8:	8b 00                	mov    (%eax),%eax
45f7ba:	8d 04 70             	lea    (%eax,%esi,2),%eax
45f7bd:	75 35                	jne    0x45f7f4
45f7bf:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f7c2:	85 db                	test   %ebx,%ebx
45f7c4:	89 5d 18             	mov    %ebx,0x18(%ebp)
45f7c7:	eb 14                	jmp    0x45f7dd
45f7c9:	66 8b 00             	mov    (%eax),%ax
45f7cc:	66 3b 01             	cmp    (%ecx),%ax
45f7cf:	8b 45 10             	mov    0x10(%ebp),%eax
45f7d2:	75 12                	jne    0x45f7e6
45f7d4:	83 c0 02             	add    $0x2,%eax
45f7d7:	83 c1 02             	add    $0x2,%ecx
45f7da:	ff 4d 18             	decl   0x18(%ebp)
45f7dd:	89 45 10             	mov    %eax,0x10(%ebp)
45f7e0:	75 e7                	jne    0x45f7c9
45f7e2:	33 c0                	xor    %eax,%eax
45f7e4:	eb 1f                	jmp    0x45f805
45f7e6:	66 8b 00             	mov    (%eax),%ax
45f7e9:	66 3b 01             	cmp    (%ecx),%ax
45f7ec:	1b c0                	sbb    %eax,%eax
45f7ee:	83 e0 fe             	and    $0xfffffffe,%eax
45f7f1:	40                   	inc    %eax
45f7f2:	eb 11                	jmp    0x45f805
45f7f4:	ff 75 0c             	push   0xc(%ebp)
45f7f7:	53                   	push   %ebx
45f7f8:	ff 75 08             	push   0x8(%ebp)
45f7fb:	53                   	push   %ebx
45f7fc:	50                   	push   %eax
45f7fd:	e8 22 82 fa ff       	call   0x407a24
45f802:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f805:	85 c0                	test   %eax,%eax
45f807:	75 0c                	jne    0x45f815
45f809:	42                   	inc    %edx
45f80a:	89 55 fc             	mov    %edx,-0x4(%ebp)
45f80d:	3b d7                	cmp    %edi,%edx
45f80f:	74 20                	je     0x45f831
45f811:	2b f3                	sub    %ebx,%esi
45f813:	eb 01                	jmp    0x45f816
45f815:	4e                   	dec    %esi
45f816:	3b 75 1c             	cmp    0x1c(%ebp),%esi
45f819:	7f 8e                	jg     0x45f7a9
45f81b:	3b d7                	cmp    %edi,%edx
45f81d:	7d 12                	jge    0x45f831
45f81f:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
45f823:	74 04                	je     0x45f829
45f825:	8b c2                	mov    %edx,%eax
45f827:	eb 0f                	jmp    0x45f838
45f829:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f82c:	8b 40 04             	mov    0x4(%eax),%eax
45f82f:	eb 07                	jmp    0x45f838
45f831:	8b c6                	mov    %esi,%eax
45f833:	eb 03                	jmp    0x45f838
45f835:	8b 46 04             	mov    0x4(%esi),%eax
45f838:	5f                   	pop    %edi
45f839:	5e                   	pop    %esi
45f83a:	5b                   	pop    %ebx
45f83b:	8b e5                	mov    %ebp,%esp
45f83d:	5d                   	pop    %ebp
45f83e:	c2 18 00             	ret    $0x18
45f841:	55                   	push   %ebp
45f842:	8b ec                	mov    %esp,%ebp
45f844:	83 ec 18             	sub    $0x18,%esp
45f847:	53                   	push   %ebx
45f848:	56                   	push   %esi
45f849:	8b f1                	mov    %ecx,%esi
45f84b:	57                   	push   %edi
45f84c:	33 ff                	xor    %edi,%edi
45f84e:	39 7e 14             	cmp    %edi,0x14(%esi)
45f851:	74 56                	je     0x45f8a9
45f853:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
45f857:	74 50                	je     0x45f8a9
45f859:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45f85c:	e8 bf 46 fa ff       	call   0x403f20
45f861:	ff 75 10             	push   0x10(%ebp)
45f864:	8b ce                	mov    %esi,%ecx
45f866:	ff 75 08             	push   0x8(%ebp)
45f869:	e8 96 5d fb ff       	call   0x415604
45f86e:	8b d8                	mov    %eax,%ebx
45f870:	85 db                	test   %ebx,%ebx
45f872:	7e 35                	jle    0x45f8a9
45f874:	8d 4d ec             	lea    -0x14(%ebp),%ecx
45f877:	e8 4b 7f fa ff       	call   0x4077c7
45f87c:	85 db                	test   %ebx,%ebx
45f87e:	7e 1d                	jle    0x45f89d
45f880:	8d 45 ec             	lea    -0x14(%ebp),%eax
45f883:	8b ce                	mov    %esi,%ecx
45f885:	50                   	push   %eax
45f886:	57                   	push   %edi
45f887:	e8 a5 6e ff ff       	call   0x456731
45f88c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45f88f:	8d 45 ec             	lea    -0x14(%ebp),%eax
45f892:	50                   	push   %eax
45f893:	e8 ec 46 fa ff       	call   0x403f84
45f898:	47                   	inc    %edi
45f899:	3b fb                	cmp    %ebx,%edi
45f89b:	7c e3                	jl     0x45f880
45f89d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
45f8a0:	e8 bf 61 fa ff       	call   0x405a64
45f8a5:	8b c3                	mov    %ebx,%eax
45f8a7:	eb 02                	jmp    0x45f8ab
45f8a9:	33 c0                	xor    %eax,%eax
45f8ab:	5f                   	pop    %edi
45f8ac:	5e                   	pop    %esi
45f8ad:	5b                   	pop    %ebx
45f8ae:	8b e5                	mov    %ebp,%esp
45f8b0:	5d                   	pop    %ebp
45f8b1:	c2 0c 00             	ret    $0xc
45f8b4:	56                   	push   %esi
45f8b5:	8b f1                	mov    %ecx,%esi
45f8b7:	8b 4e 14             	mov    0x14(%esi),%ecx
45f8ba:	85 c9                	test   %ecx,%ecx
45f8bc:	74 30                	je     0x45f8ee
45f8be:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
45f8c2:	74 2a                	je     0x45f8ee
45f8c4:	ff 76 24             	push   0x24(%esi)
45f8c7:	8b 56 18             	mov    0x18(%esi),%edx
45f8ca:	ff 76 20             	push   0x20(%esi)
45f8cd:	ff 76 34             	push   0x34(%esi)
45f8d0:	6a 00                	push   $0x0
45f8d2:	ff 76 1c             	push   0x1c(%esi)
45f8d5:	ff 36                	push   (%esi)
45f8d7:	e8 64 48 fb ff       	call   0x414140
45f8dc:	83 c4 18             	add    $0x18,%esp
45f8df:	89 46 28             	mov    %eax,0x28(%esi)
45f8e2:	85 c0                	test   %eax,%eax
45f8e4:	7e 08                	jle    0x45f8ee
45f8e6:	83 66 28 00          	andl   $0x0,0x28(%esi)
45f8ea:	b0 01                	mov    $0x1,%al
45f8ec:	5e                   	pop    %esi
45f8ed:	c3                   	ret
45f8ee:	32 c0                	xor    %al,%al
45f8f0:	5e                   	pop    %esi
45f8f1:	c3                   	ret
45f8f2:	55                   	push   %ebp
45f8f3:	8b ec                	mov    %esp,%ebp
45f8f5:	83 ec 2c             	sub    $0x2c,%esp
45f8f8:	53                   	push   %ebx
45f8f9:	56                   	push   %esi
45f8fa:	8b d9                	mov    %ecx,%ebx
45f8fc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45f8ff:	57                   	push   %edi
45f900:	e8 c2 7e fa ff       	call   0x4077c7
45f905:	8b 75 08             	mov    0x8(%ebp),%esi
45f908:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f90b:	ff 73 04             	push   0x4(%ebx)
45f90e:	8b 7e 04             	mov    0x4(%esi),%edi
45f911:	89 7d fc             	mov    %edi,-0x4(%ebp)
45f914:	e8 5d 82 fa ff       	call   0x407b76
45f919:	8b 45 10             	mov    0x10(%ebp),%eax
45f91c:	85 c0                	test   %eax,%eax
45f91e:	79 3a                	jns    0x45f95a
45f920:	68 ff ff ff 7f       	push   $0x7fffffff
45f925:	6a ff                	push   $0xffffffff
45f927:	57                   	push   %edi
45f928:	50                   	push   %eax
45f929:	ff 75 14             	push   0x14(%ebp)
45f92c:	8b cb                	mov    %ebx,%ecx
45f92e:	ff 36                	push   (%esi)
45f930:	e8 23 fd ff ff       	call   0x45f658
45f935:	8b f0                	mov    %eax,%esi
45f937:	85 f6                	test   %esi,%esi
45f939:	79 08                	jns    0x45f943
45f93b:	f7 d8                	neg    %eax
45f93d:	33 ff                	xor    %edi,%edi
45f93f:	8b f7                	mov    %edi,%esi
45f941:	eb 10                	jmp    0x45f953
45f943:	56                   	push   %esi
45f944:	33 ff                	xor    %edi,%edi
45f946:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f949:	57                   	push   %edi
45f94a:	53                   	push   %ebx
45f94b:	e8 5b 80 fa ff       	call   0x4079ab
45f950:	8b 45 10             	mov    0x10(%ebp),%eax
45f953:	f7 d8                	neg    %eax
45f955:	89 45 10             	mov    %eax,0x10(%ebp)
45f958:	eb 04                	jmp    0x45f95e
45f95a:	33 ff                	xor    %edi,%edi
45f95c:	8b f7                	mov    %edi,%esi
45f95e:	8b 45 08             	mov    0x8(%ebp),%eax
45f961:	8b cb                	mov    %ebx,%ecx
45f963:	6a ff                	push   $0xffffffff
45f965:	56                   	push   %esi
45f966:	ff 75 fc             	push   -0x4(%ebp)
45f969:	89 75 f8             	mov    %esi,-0x8(%ebp)
45f96c:	6a 01                	push   $0x1
45f96e:	ff 75 14             	push   0x14(%ebp)
45f971:	ff 30                	push   (%eax)
45f973:	e8 e0 fc ff ff       	call   0x45f658
45f978:	8b f0                	mov    %eax,%esi
45f97a:	3b 73 04             	cmp    0x4(%ebx),%esi
45f97d:	74 3f                	je     0x45f9be
45f97f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f982:	2b c1                	sub    %ecx,%eax
45f984:	50                   	push   %eax
45f985:	51                   	push   %ecx
45f986:	53                   	push   %ebx
45f987:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45f98a:	e8 1c 80 fa ff       	call   0x4079ab
45f98f:	8d 45 d8             	lea    -0x28(%ebp),%eax
45f992:	50                   	push   %eax
45f993:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f996:	e8 f3 82 fa ff       	call   0x407c8e
45f99b:	ff 75 0c             	push   0xc(%ebp)
45f99e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f9a1:	e8 e8 82 fa ff       	call   0x407c8e
45f9a6:	03 75 fc             	add    -0x4(%ebp),%esi
45f9a9:	47                   	inc    %edi
45f9aa:	8b 45 10             	mov    0x10(%ebp),%eax
45f9ad:	85 c0                	test   %eax,%eax
45f9af:	74 ad                	je     0x45f95e
45f9b1:	3b f8                	cmp    %eax,%edi
45f9b3:	75 a9                	jne    0x45f95e
45f9b5:	8b 43 04             	mov    0x4(%ebx),%eax
45f9b8:	2b c6                	sub    %esi,%eax
45f9ba:	50                   	push   %eax
45f9bb:	56                   	push   %esi
45f9bc:	eb 07                	jmp    0x45f9c5
45f9be:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f9c1:	2b f0                	sub    %eax,%esi
45f9c3:	56                   	push   %esi
45f9c4:	50                   	push   %eax
45f9c5:	53                   	push   %ebx
45f9c6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45f9c9:	e8 dd 7f fa ff       	call   0x4079ab
45f9ce:	8d 45 d8             	lea    -0x28(%ebp),%eax
45f9d1:	50                   	push   %eax
45f9d2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f9d5:	e8 b4 82 fa ff       	call   0x407c8e
45f9da:	85 ff                	test   %edi,%edi
45f9dc:	74 0b                	je     0x45f9e9
45f9de:	8d 45 e8             	lea    -0x18(%ebp),%eax
45f9e1:	8b cb                	mov    %ebx,%ecx
45f9e3:	50                   	push   %eax
45f9e4:	e8 ee 86 fa ff       	call   0x4080d7
45f9e9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45f9ec:	e8 73 60 fa ff       	call   0x405a64
45f9f1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45f9f4:	e8 6b 60 fa ff       	call   0x405a64
45f9f9:	8b c7                	mov    %edi,%eax
45f9fb:	5f                   	pop    %edi
45f9fc:	5e                   	pop    %esi
45f9fd:	5b                   	pop    %ebx
45f9fe:	8b e5                	mov    %ebp,%esp
45fa00:	5d                   	pop    %ebp