41a5c6:	57                   	push   %edi
41a5c7:	8b f9                	mov    %ecx,%edi
41a5c9:	8b f2                	mov    %edx,%esi
41a5cb:	8b d8                	mov    %eax,%ebx
41a5cd:	80 7b 24 00          	cmpb   $0x0,0x24(%ebx)
41a5d1:	74 0f                	je     0x41a5e2
41a5d3:	8b 15 90 75 4a 00    	mov    0x4a7590,%edx
41a5d9:	33 c9                	xor    %ecx,%ecx
41a5db:	8b c3                	mov    %ebx,%eax
41a5dd:	e8 fe ef ff ff       	call   0x4195e0
41a5e2:	85 f6                	test   %esi,%esi
41a5e4:	7c 05                	jl     0x41a5eb
41a5e6:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a5e9:	7c 0f                	jl     0x41a5fa
41a5eb:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a5f1:	8b ce                	mov    %esi,%ecx
41a5f3:	8b c3                	mov    %ebx,%eax
41a5f5:	e8 e6 ef ff ff       	call   0x4195e0
41a5fa:	8b c3                	mov    %ebx,%eax
41a5fc:	8b 10                	mov    (%eax),%edx
41a5fe:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a604:	8b 43 18             	mov    0x18(%ebx),%eax
41a607:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a60a:	8b d7                	mov    %edi,%edx
41a60c:	e8 8b a1 fe ff       	call   0x40479c
41a611:	8b c3                	mov    %ebx,%eax
41a613:	8b 10                	mov    (%eax),%edx
41a615:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a61b:	5f                   	pop    %edi
41a61c:	5e                   	pop    %esi
41a61d:	5b                   	pop    %ebx
41a61e:	c3                   	ret
41a61f:	90                   	nop
41a620:	53                   	push   %ebx
41a621:	56                   	push   %esi
41a622:	57                   	push   %edi
41a623:	8b f9                	mov    %ecx,%edi
41a625:	8b f2                	mov    %edx,%esi
41a627:	8b d8                	mov    %eax,%ebx
41a629:	85 f6                	test   %esi,%esi
41a62b:	7c 05                	jl     0x41a632
41a62d:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a630:	7c 0f                	jl     0x41a641
41a632:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a638:	8b ce                	mov    %esi,%ecx
41a63a:	8b c3                	mov    %ebx,%eax
41a63c:	e8 9f ef ff ff       	call   0x4195e0
41a641:	8b c3                	mov    %ebx,%eax
41a643:	8b 10                	mov    (%eax),%edx
41a645:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a64b:	8b 43 18             	mov    0x18(%ebx),%eax
41a64e:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
41a652:	8b c3                	mov    %ebx,%eax
41a654:	8b 10                	mov    (%eax),%edx
41a656:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a65c:	5f                   	pop    %edi
41a65d:	5e                   	pop    %esi
41a65e:	5b                   	pop    %ebx
41a65f:	c3                   	ret
41a660:	55                   	push   %ebp
41a661:	8b ec                	mov    %esp,%ebp
41a663:	83 c4 f0             	add    $0xfffffff0,%esp
41a666:	53                   	push   %ebx
41a667:	56                   	push   %esi
41a668:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41a66b:	89 55 f8             	mov    %edx,-0x8(%ebp)
41a66e:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a671:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41a674:	8b 75 f4             	mov    -0xc(%ebp),%esi
41a677:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a67a:	03 45 f4             	add    -0xc(%ebp),%eax
41a67d:	d1 e8                	shr    $1,%eax
41a67f:	89 45 f0             	mov    %eax,-0x10(%ebp)
41a682:	eb 01                	jmp    0x41a685
41a684:	43                   	inc    %ebx
41a685:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a688:	8b d3                	mov    %ebx,%edx
41a68a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a68d:	ff 55 08             	call   *0x8(%ebp)
41a690:	85 c0                	test   %eax,%eax
41a692:	7c f0                	jl     0x41a684
41a694:	eb 01                	jmp    0x41a697
41a696:	4e                   	dec    %esi
41a697:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a69a:	8b d6                	mov    %esi,%edx
41a69c:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a69f:	ff 55 08             	call   *0x8(%ebp)
41a6a2:	85 c0                	test   %eax,%eax
41a6a4:	7f f0                	jg     0x41a696
41a6a6:	3b f3                	cmp    %ebx,%esi
41a6a8:	7c 20                	jl     0x41a6ca
41a6aa:	8b ce                	mov    %esi,%ecx
41a6ac:	8b d3                	mov    %ebx,%edx
41a6ae:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a6b1:	e8 b2 fc ff ff       	call   0x41a368
41a6b6:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
41a6b9:	75 05                	jne    0x41a6c0
41a6bb:	89 75 f0             	mov    %esi,-0x10(%ebp)
41a6be:	eb 08                	jmp    0x41a6c8
41a6c0:	3b 75 f0             	cmp    -0x10(%ebp),%esi
41a6c3:	75 03                	jne    0x41a6c8
41a6c5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41a6c8:	43                   	inc    %ebx
41a6c9:	4e                   	dec    %esi
41a6ca:	3b f3                	cmp    %ebx,%esi
41a6cc:	7d b7                	jge    0x41a685
41a6ce:	3b 75 f8             	cmp    -0x8(%ebp),%esi
41a6d1:	7e 11                	jle    0x41a6e4
41a6d3:	8b 45 08             	mov    0x8(%ebp),%eax
41a6d6:	50                   	push   %eax
41a6d7:	8b ce                	mov    %esi,%ecx
41a6d9:	8b 55 f8             	mov    -0x8(%ebp),%edx
41a6dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a6df:	e8 7c ff ff ff       	call   0x41a660
41a6e4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41a6e7:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
41a6ea:	7c 85                	jl     0x41a671
41a6ec:	5e                   	pop    %esi
41a6ed:	5b                   	pop    %ebx
41a6ee:	8b e5                	mov    %ebp,%esp
41a6f0:	5d                   	pop    %ebp
41a6f1:	c2 04 00             	ret    $0x4
41a6f4:	53                   	push   %ebx
41a6f5:	56                   	push   %esi
41a6f6:	8b f2                	mov    %edx,%esi
41a6f8:	8b d8                	mov    %eax,%ebx
41a6fa:	8b d6                	mov    %esi,%edx
41a6fc:	03 d2                	add    %edx,%edx
41a6fe:	03 d2                	add    %edx,%edx
41a700:	03 d2                	add    %edx,%edx
41a702:	8d 43 18             	lea    0x18(%ebx),%eax
41a705:	e8 26 86 fe ff       	call   0x402d30
41a70a:	89 73 20             	mov    %esi,0x20(%ebx)
41a70d:	5e                   	pop    %esi
41a70e:	5b                   	pop    %ebx
41a70f:	c3                   	ret
41a710:	53                   	push   %ebx
41a711:	56                   	push   %esi
41a712:	8b da                	mov    %edx,%ebx
41a714:	8b f0                	mov    %eax,%esi
41a716:	3a 5e 24             	cmp    0x24(%esi),%bl
41a719:	74 11                	je     0x41a72c
41a71b:	84 db                	test   %bl,%bl
41a71d:	74 0a                	je     0x41a729
41a71f:	8b c6                	mov    %esi,%eax
41a721:	8b 10                	mov    (%eax),%edx
41a723:	ff 92 90 00 00 00    	call   *0x90(%edx)
41a729:	88 5e 24             	mov    %bl,0x24(%esi)
41a72c:	5e                   	pop    %esi
41a72d:	5b                   	pop    %ebx
41a72e:	c3                   	ret
41a72f:	90                   	nop
41a730:	84 d2                	test   %dl,%dl
41a732:	74 09                	je     0x41a73d
41a734:	8b 10                	mov    (%eax),%edx
41a736:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a73c:	c3                   	ret
41a73d:	8b 10                	mov    (%eax),%edx
41a73f:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a745:	c3                   	ret
41a746:	8b c0                	mov    %eax,%eax
41a748:	53                   	push   %ebx
41a749:	56                   	push   %esi
41a74a:	57                   	push   %edi
41a74b:	8b fa                	mov    %edx,%edi
41a74d:	8b f0                	mov    %eax,%esi
41a74f:	8b 46 18             	mov    0x18(%esi),%eax
41a752:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
41a755:	8b 46 18             	mov    0x18(%esi),%eax
41a758:	8b 14 f8             	mov    (%eax,%edi,8),%edx
41a75b:	8b c6                	mov    %esi,%eax
41a75d:	8b 18                	mov    (%eax),%ebx
41a75f:	ff 53 34             	call   *0x34(%ebx)
41a762:	5f                   	pop    %edi
41a763:	5e                   	pop    %esi
41a764:	5b                   	pop    %ebx
41a765:	c3                   	ret
41a766:	8b c0                	mov    %eax,%eax
41a768:	ba 48 a7 41 00       	mov    $0x41a748,%edx
41a76d:	8b 08                	mov    (%eax),%ecx
41a76f:	ff 91 94 00 00 00    	call   *0x94(%ecx)
41a775:	c3                   	ret
41a776:	8b c0                	mov    %eax,%eax
41a778:	53                   	push   %ebx
41a779:	56                   	push   %esi
41a77a:	8b f2                	mov    %edx,%esi
41a77c:	8b d8                	mov    %eax,%ebx
41a77e:	80 7b 24 00          	cmpb   $0x0,0x24(%ebx)
41a782:	75 28                	jne    0x41a7ac
41a784:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)
41a788:	7e 22                	jle    0x41a7ac
41a78a:	8b c3                	mov    %ebx,%eax
41a78c:	8b 10                	mov    (%eax),%edx
41a78e:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a794:	56                   	push   %esi
41a795:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
41a798:	49                   	dec    %ecx
41a799:	33 d2                	xor    %edx,%edx
41a79b:	8b c3                	mov    %ebx,%eax
41a79d:	e8 be fe ff ff       	call   0x41a660
41a7a2:	8b c3                	mov    %ebx,%eax
41a7a4:	8b 10                	mov    (%eax),%edx
41a7a6:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a7ac:	5e                   	pop    %esi
41a7ad:	5b                   	pop    %ebx
41a7ae:	c3                   	ret
41a7af:	90                   	nop
41a7b0:	53                   	push   %ebx
41a7b1:	56                   	push   %esi
41a7b2:	57                   	push   %edi
41a7b3:	55                   	push   %ebp
41a7b4:	8b e9                	mov    %ecx,%ebp
41a7b6:	8b fa                	mov    %edx,%edi
41a7b8:	80 78 26 00          	cmpb   $0x0,0x26(%eax)
41a7bc:	74 39                	je     0x41a7f7
41a7be:	8b df                	mov    %edi,%ebx
41a7c0:	85 db                	test   %ebx,%ebx
41a7c2:	74 05                	je     0x41a7c9
41a7c4:	83 eb 04             	sub    $0x4,%ebx
41a7c7:	8b 1b                	mov    (%ebx),%ebx
41a7c9:	8b f5                	mov    %ebp,%esi
41a7cb:	85 f6                	test   %esi,%esi
41a7cd:	74 05                	je     0x41a7d4
41a7cf:	83 ee 04             	sub    $0x4,%esi
41a7d2:	8b 36                	mov    (%esi),%esi
41a7d4:	56                   	push   %esi
41a7d5:	8b c5                	mov    %ebp,%eax
41a7d7:	e8 30 a4 fe ff       	call   0x404c0c
41a7dc:	50                   	push   %eax
41a7dd:	53                   	push   %ebx
41a7de:	8b c7                	mov    %edi,%eax
41a7e0:	e8 27 a4 fe ff       	call   0x404c0c
41a7e5:	50                   	push   %eax
41a7e6:	6a 00                	push   $0x0
41a7e8:	68 00 04 00 00       	push   $0x400
41a7ed:	e8 96 c1 fe ff       	call   0x406988
41a7f2:	83 e8 02             	sub    $0x2,%eax
41a7f5:	eb 37                	jmp    0x41a82e
41a7f7:	8b df                	mov    %edi,%ebx
41a7f9:	85 db                	test   %ebx,%ebx
41a7fb:	74 05                	je     0x41a802
41a7fd:	83 eb 04             	sub    $0x4,%ebx
41a800:	8b 1b                	mov    (%ebx),%ebx
41a802:	8b f5                	mov    %ebp,%esi
41a804:	85 f6                	test   %esi,%esi
41a806:	74 05                	je     0x41a80d
41a808:	83 ee 04             	sub    $0x4,%esi
41a80b:	8b 36                	mov    (%esi),%esi
41a80d:	56                   	push   %esi
41a80e:	8b c5                	mov    %ebp,%eax
41a810:	e8 f7 a3 fe ff       	call   0x404c0c
41a815:	50                   	push   %eax
41a816:	53                   	push   %ebx
41a817:	8b c7                	mov    %edi,%eax
41a819:	e8 ee a3 fe ff       	call   0x404c0c
41a81e:	50                   	push   %eax
41a81f:	6a 01                	push   $0x1
41a821:	68 00 04 00 00       	push   $0x400
41a826:	e8 5d c1 fe ff       	call   0x406988
41a82b:	83 e8 02             	sub    $0x2,%eax
41a82e:	5d                   	pop    %ebp
41a82f:	5f                   	pop    %edi
41a830:	5e                   	pop    %esi
41a831:	5b                   	pop    %ebx
41a832:	c3                   	ret
41a833:	90                   	nop
41a834:	83 c4 f8             	add    $0xfffffff8,%esp
41a837:	6a 00                	push   $0x0
41a839:	6a 00                	push   $0x0
41a83b:	b2 01                	mov    $0x1,%dl
41a83d:	8b 08                	mov    (%eax),%ecx
41a83f:	ff 51 18             	call   *0x18(%ecx)
41a842:	89 04 24             	mov    %eax,(%esp)
41a845:	89 54 24 04          	mov    %edx,0x4(%esp)
41a849:	8b 04 24             	mov    (%esp),%eax
41a84c:	8b 54 24 04          	mov    0x4(%esp),%edx
41a850:	59                   	pop    %ecx
41a851:	5a                   	pop    %edx
41a852:	c3                   	ret
41a853:	90                   	nop
41a854:	55                   	push   %ebp
41a855:	8b ec                	mov    %esp,%ebp
41a857:	ff 75 0c             	push   0xc(%ebp)
41a85a:	ff 75 08             	push   0x8(%ebp)
41a85d:	33 d2                	xor    %edx,%edx
41a85f:	8b 08                	mov    (%eax),%ecx
41a861:	ff 51 18             	call   *0x18(%ecx)
41a864:	5d                   	pop    %ebp
41a865:	c2 08 00             	ret    $0x8
41a868:	53                   	push   %ebx
41a869:	83 c4 f0             	add    $0xfffffff0,%esp
41a86c:	8b d8                	mov    %eax,%ebx
41a86e:	6a 00                	push   $0x0
41a870:	6a 00                	push   $0x0
41a872:	b2 01                	mov    $0x1,%dl
41a874:	8b c3                	mov    %ebx,%eax
41a876:	8b 08                	mov    (%eax),%ecx
41a878:	ff 51 18             	call   *0x18(%ecx)
41a87b:	89 44 24 08          	mov    %eax,0x8(%esp)
41a87f:	89 54 24 0c          	mov    %edx,0xc(%esp)
41a883:	6a 00                	push   $0x0
41a885:	6a 00                	push   $0x0
41a887:	b2 02                	mov    $0x2,%dl
41a889:	8b c3                	mov    %ebx,%eax
41a88b:	8b 08                	mov    (%eax),%ecx
41a88d:	ff 51 18             	call   *0x18(%ecx)
41a890:	89 04 24             	mov    %eax,(%esp)
41a893:	89 54 24 04          	mov    %edx,0x4(%esp)
41a897:	ff 74 24 0c          	push   0xc(%esp)
41a89b:	ff 74 24 0c          	push   0xc(%esp)
41a89f:	33 d2                	xor    %edx,%edx
41a8a1:	8b c3                	mov    %ebx,%eax
41a8a3:	8b 08                	mov    (%eax),%ecx
41a8a5:	ff 51 18             	call   *0x18(%ecx)
41a8a8:	8b 04 24             	mov    (%esp),%eax
41a8ab:	8b 54 24 04          	mov    0x4(%esp),%edx
41a8af:	83 c4 10             	add    $0x10,%esp
41a8b2:	5b                   	pop    %ebx
41a8b3:	c3                   	ret
41a8b4:	c3                   	ret
41a8b5:	8d 40 00             	lea    0x0(%eax),%eax
41a8b8:	55                   	push   %ebp
41a8b9:	8b ec                	mov    %esp,%ebp
41a8bb:	ff 75 0c             	push   0xc(%ebp)
41a8be:	ff 75 08             	push   0x8(%ebp)
41a8c1:	8b 10                	mov    (%eax),%edx
41a8c3:	ff 52 08             	call   *0x8(%edx)
41a8c6:	5d                   	pop    %ebp
41a8c7:	c2 08 00             	ret    $0x8
41a8ca:	8b c0                	mov    %eax,%eax
41a8cc:	55                   	push   %ebp
41a8cd:	8b ec                	mov    %esp,%ebp
41a8cf:	8b c8                	mov    %eax,%ecx
41a8d1:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
41a8d5:	75 0b                	jne    0x41a8e2
41a8d7:	81 7d 08 00 00 00 80 	cmpl   $0x80000000,0x8(%ebp)
41a8de:	72 17                	jb     0x41a8f7
41a8e0:	eb 02                	jmp    0x41a8e4
41a8e2:	7c 13                	jl     0x41a8f7
41a8e4:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
41a8e8:	75 0b                	jne    0x41a8f5
41a8ea:	81 7d 08 ff ff ff 7f 	cmpl   $0x7fffffff,0x8(%ebp)
41a8f1:	76 1b                	jbe    0x41a90e
41a8f3:	eb 02                	jmp    0x41a8f7
41a8f5:	7e 17                	jle    0x41a90e
41a8f7:	8b 0d ac 77 4a 00    	mov    0x4a77ac,%ecx
41a8fd:	b2 01                	mov    $0x1,%dl
41a8ff:	a1 6c 7e 40 00       	mov    0x407e6c,%eax
41a904:	e8 c3 1b ff ff       	call   0x40c4cc
41a909:	e8 82 98 fe ff       	call   0x404190