45f4eb:	83 20 00             	andl   $0x0,(%eax)
45f4ee:	e8 8d 1b fc ff       	call   0x421080
45f4f3:	83 c4 0c             	add    $0xc,%esp
45f4f6:	eb 07                	jmp    0x45f4ff
45f4f8:	8b 45 20             	mov    0x20(%ebp),%eax
45f4fb:	89 44 0a 08          	mov    %eax,0x8(%edx,%ecx,1)
45f4ff:	8b 0e                	mov    (%esi),%ecx
45f501:	8b 45 18             	mov    0x18(%ebp),%eax
45f504:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
45f507:	8b 55 10             	mov    0x10(%ebp),%edx
45f50a:	66 89 3c 48          	mov    %di,(%eax,%ecx,2)
45f50e:	8b c1                	mov    %ecx,%eax
45f510:	c1 e0 04             	shl    $0x4,%eax
45f513:	03 c2                	add    %edx,%eax
45f515:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
45f518:	8b 45 14             	mov    0x14(%ebp),%eax
45f51b:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f51e:	83 24 88 00          	andl   $0x0,(%eax,%ecx,4)
45f522:	8d 41 01             	lea    0x1(%ecx),%eax
45f525:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45f528:	89 06                	mov    %eax,(%esi)
45f52a:	8b 45 0c             	mov    0xc(%ebp),%eax
45f52d:	40                   	inc    %eax
45f52e:	89 45 0c             	mov    %eax,0xc(%ebp)
45f531:	3b c3                	cmp    %ebx,%eax
45f533:	72 81                	jb     0x45f4b6
45f535:	ff 0e                	decl   (%esi)
45f537:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45f53a:	50                   	push   %eax
45f53b:	ff 15 5c f4 48 00    	call   *0x48f45c
45f541:	eb 37                	jmp    0x45f57a
45f543:	8b 45 0c             	mov    0xc(%ebp),%eax
45f546:	b9 00 40 00 00       	mov    $0x4000,%ecx
45f54b:	66 85 08             	test   %cx,(%eax)
45f54e:	74 2a                	je     0x45f57a
45f550:	8b 7d 20             	mov    0x20(%ebp),%edi
45f553:	8b 75 10             	mov    0x10(%ebp),%esi
45f556:	6a 13                	push   $0x13
45f558:	59                   	pop    %ecx
45f559:	66 89 08             	mov    %cx,(%eax)
45f55c:	8b 07                	mov    (%edi),%eax
45f55e:	51                   	push   %ecx
45f55f:	6a 00                	push   $0x0
45f561:	03 c0                	add    %eax,%eax
45f563:	53                   	push   %ebx
45f564:	53                   	push   %ebx
45f565:	66 89 0c c6          	mov    %cx,(%esi,%eax,8)
45f569:	ff 15 44 f4 48 00    	call   *0x48f444
45f56f:	8b 0f                	mov    (%edi),%ecx
45f571:	8b 43 08             	mov    0x8(%ebx),%eax
45f574:	03 c9                	add    %ecx,%ecx
45f576:	89 44 ce 08          	mov    %eax,0x8(%esi,%ecx,8)
45f57a:	5f                   	pop    %edi
45f57b:	5e                   	pop    %esi
45f57c:	5b                   	pop    %ebx
45f57d:	8b e5                	mov    %ebp,%esp
45f57f:	5d                   	pop    %ebp
45f580:	c2 1c 00             	ret    $0x1c
45f583:	55                   	push   %ebp
45f584:	8b ec                	mov    %esp,%ebp
45f586:	51                   	push   %ecx
45f587:	56                   	push   %esi
45f588:	57                   	push   %edi
45f589:	8b 7d 08             	mov    0x8(%ebp),%edi
45f58c:	57                   	push   %edi
45f58d:	e8 62 fb ff ff       	call   0x45f0f4
45f592:	57                   	push   %edi
45f593:	8b f0                	mov    %eax,%esi
45f595:	ff 15 5c f4 48 00    	call   *0x48f45c
45f59b:	6a 13                	push   $0x13
45f59d:	58                   	pop    %eax
45f59e:	66 89 07             	mov    %ax,(%edi)
45f5a1:	8b c6                	mov    %esi,%eax
45f5a3:	89 77 08             	mov    %esi,0x8(%edi)
45f5a6:	5f                   	pop    %edi
45f5a7:	5e                   	pop    %esi
45f5a8:	59                   	pop    %ecx
45f5a9:	5d                   	pop    %ebp
45f5aa:	c2 04 00             	ret    $0x4
45f5ad:	55                   	push   %ebp
45f5ae:	8b ec                	mov    %esp,%ebp
45f5b0:	51                   	push   %ecx
45f5b1:	53                   	push   %ebx
45f5b2:	56                   	push   %esi
45f5b3:	57                   	push   %edi
45f5b4:	ff 75 08             	push   0x8(%ebp)
45f5b7:	33 f6                	xor    %esi,%esi
45f5b9:	89 75 fc             	mov    %esi,-0x4(%ebp)
45f5bc:	ff 15 b4 f1 48 00    	call   *0x48f1b4
45f5c2:	8b f8                	mov    %eax,%edi
45f5c4:	33 c9                	xor    %ecx,%ecx
45f5c6:	6a 02                	push   $0x2
45f5c8:	5a                   	pop    %edx
45f5c9:	8d 47 01             	lea    0x1(%edi),%eax
45f5cc:	f7 e2                	mul    %edx
45f5ce:	0f 90 c1             	seto   %cl
45f5d1:	f7 d9                	neg    %ecx
45f5d3:	0b c8                	or     %eax,%ecx
45f5d5:	51                   	push   %ecx
45f5d6:	e8 1b 1a fc ff       	call   0x420ff6
45f5db:	59                   	pop    %ecx
45f5dc:	ff 75 08             	push   0x8(%ebp)
45f5df:	8b d8                	mov    %eax,%ebx
45f5e1:	53                   	push   %ebx
45f5e2:	ff 15 b0 f1 48 00    	call   *0x48f1b0
45f5e8:	33 c0                	xor    %eax,%eax
45f5ea:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
45f5ee:	0f b7 44 7b fe       	movzwl -0x2(%ebx,%edi,2),%eax
45f5f3:	83 f8 2a             	cmp    $0x2a,%eax
45f5f6:	74 05                	je     0x45f5fd
45f5f8:	83 f8 5e             	cmp    $0x5e,%eax
45f5fb:	75 0e                	jne    0x45f60b
45f5fd:	33 c0                	xor    %eax,%eax
45f5ff:	c7 45 fc 00 40 00 00 	movl   $0x4000,-0x4(%ebp)
45f606:	66 89 44 7b fe       	mov    %ax,-0x2(%ebx,%edi,2)
45f60b:	53                   	push   %ebx
45f60c:	ff 34 b5 60 9d 4b 00 	push   0x4b9d60(,%esi,4)
45f613:	ff 15 38 f3 48 00    	call   *0x48f338
45f619:	85 c0                	test   %eax,%eax
45f61b:	74 0e                	je     0x45f62b
45f61d:	46                   	inc    %esi
45f61e:	83 fe 24             	cmp    $0x24,%esi
45f621:	7c e8                	jl     0x45f60b
45f623:	66 8b 7d fc          	mov    -0x4(%ebp),%di
45f627:	33 f6                	xor    %esi,%esi
45f629:	eb 0f                	jmp    0x45f63a
45f62b:	66 8b 7d fc          	mov    -0x4(%ebp),%di
45f62f:	66 03 3c 75 18 9d 4b 	add    0x4b9d18(,%esi,2),%di
45f636:	00
45f637:	33 f6                	xor    %esi,%esi
45f639:	46                   	inc    %esi
45f63a:	53                   	push   %ebx
45f63b:	e8 2c 1a fc ff       	call   0x42106c
45f640:	59                   	pop    %ecx
45f641:	85 f6                	test   %esi,%esi
45f643:	74 05                	je     0x45f64a
45f645:	66 8b c7             	mov    %di,%ax
45f648:	eb 05                	jmp    0x45f64f
45f64a:	b8 ff ff 00 00       	mov    $0xffff,%eax
45f64f:	5f                   	pop    %edi
45f650:	5e                   	pop    %esi
45f651:	5b                   	pop    %ebx
45f652:	8b e5                	mov    %ebp,%esp
45f654:	5d                   	pop    %ebp
45f655:	c2 04 00             	ret    $0x4
45f658:	55                   	push   %ebp
45f659:	8b ec                	mov    %esp,%ebp
45f65b:	83 ec 0c             	sub    $0xc,%esp
45f65e:	53                   	push   %ebx
45f65f:	8b 5d 14             	mov    0x14(%ebp),%ebx
45f662:	33 c0                	xor    %eax,%eax
45f664:	56                   	push   %esi
45f665:	33 d2                	xor    %edx,%edx
45f667:	8b f1                	mov    %ecx,%esi
45f669:	57                   	push   %edi
45f66a:	8b 7d 1c             	mov    0x1c(%ebp),%edi
45f66d:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
45f673:	89 75 f8             	mov    %esi,-0x8(%ebp)
45f676:	0f 94 c0             	sete   %al
45f679:	89 55 fc             	mov    %edx,-0x4(%ebp)
45f67c:	89 45 f4             	mov    %eax,-0xc(%ebp)
45f67f:	85 db                	test   %ebx,%ebx
45f681:	79 10                	jns    0x45f693
45f683:	ff 75 08             	push   0x8(%ebp)
45f686:	e8 b1 37 fc ff       	call   0x422e3c
45f68b:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f68e:	8b d8                	mov    %eax,%ebx
45f690:	59                   	pop    %ecx
45f691:	85 db                	test   %ebx,%ebx
45f693:	0f 84 9c 01 00 00    	je     0x45f835
45f699:	8b 4e 04             	mov    0x4(%esi),%ecx
45f69c:	85 c9                	test   %ecx,%ecx
45f69e:	0f 84 91 01 00 00    	je     0x45f835
45f6a4:	8b 45 10             	mov    0x10(%ebp),%eax
45f6a7:	85 c0                	test   %eax,%eax
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