40d5a0:	5e                   	pop    %esi
40d5a1:	5d                   	pop    %ebp
40d5a2:	c2 04 00             	ret    $0x4
40d5a5:	8b ff                	mov    %edi,%edi
40d5a7:	55                   	push   %ebp
40d5a8:	8b ec                	mov    %esp,%ebp
40d5aa:	6a ff                	push   $0xffffffff
40d5ac:	68 c0 2e 41 00       	push   $0x412ec0
40d5b1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d5b7:	50                   	push   %eax
40d5b8:	56                   	push   %esi
40d5b9:	57                   	push   %edi
40d5ba:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40d5bf:	33 c5                	xor    %ebp,%eax
40d5c1:	50                   	push   %eax
40d5c2:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d5c5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40d5cb:	8b f9                	mov    %ecx,%edi
40d5cd:	8b 4f 08             	mov    0x8(%edi),%ecx
40d5d0:	85 c9                	test   %ecx,%ecx
40d5d2:	74 20                	je     0x40d5f4
40d5d4:	e8 39 06 00 00       	call   0x40dc12
40d5d9:	8b 4f 08             	mov    0x8(%edi),%ecx
40d5dc:	85 c9                	test   %ecx,%ecx
40d5de:	74 14                	je     0x40d5f4
40d5e0:	8b 01                	mov    (%ecx),%eax
40d5e2:	51                   	push   %ecx
40d5e3:	8b 70 08             	mov    0x8(%eax),%esi
40d5e6:	8b ce                	mov    %esi,%ecx
40d5e8:	ff 15 28 63 41 00    	call   *0x416328
40d5ee:	ff d6                	call   *%esi
40d5f0:	83 67 08 00          	andl   $0x0,0x8(%edi)
40d5f4:	ff 77 24             	push   0x24(%edi)
40d5f7:	ff 15 b8 61 41 00    	call   *0x4161b8
40d5fd:	ff 77 10             	push   0x10(%edi)
40d600:	ff 15 b8 61 41 00    	call   *0x4161b8
40d606:	8b 4f 0c             	mov    0xc(%edi),%ecx
40d609:	85 c9                	test   %ecx,%ecx
40d60b:	74 10                	je     0x40d61d
40d60d:	8b 01                	mov    (%ecx),%eax
40d60f:	51                   	push   %ecx
40d610:	8b 70 08             	mov    0x8(%eax),%esi
40d613:	8b ce                	mov    %esi,%ecx
40d615:	ff 15 28 63 41 00    	call   *0x416328
40d61b:	ff d6                	call   *%esi
40d61d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d620:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d627:	59                   	pop    %ecx
40d628:	5f                   	pop    %edi
40d629:	5e                   	pop    %esi
40d62a:	c9                   	leave
40d62b:	c3                   	ret
40d62c:	cc                   	int3
40d62d:	cc                   	int3
40d62e:	cc                   	int3
40d62f:	cc                   	int3
40d630:	8b ff                	mov    %edi,%edi
40d632:	55                   	push   %ebp
40d633:	8b ec                	mov    %esp,%ebp
40d635:	8b 45 08             	mov    0x8(%ebp),%eax
40d638:	8b 48 0c             	mov    0xc(%eax),%ecx
40d63b:	85 c9                	test   %ecx,%ecx
40d63d:	74 1a                	je     0x40d659
40d63f:	8b 01                	mov    (%ecx),%eax
40d641:	56                   	push   %esi
40d642:	ff 75 10             	push   0x10(%ebp)
40d645:	ff 75 0c             	push   0xc(%ebp)
40d648:	8b 70 1c             	mov    0x1c(%eax),%esi
40d64b:	51                   	push   %ecx
40d64c:	8b ce                	mov    %esi,%ecx
40d64e:	ff 15 28 63 41 00    	call   *0x416328
40d654:	ff d6                	call   *%esi
40d656:	5e                   	pop    %esi
40d657:	eb 05                	jmp    0x40d65e
40d659:	b8 03 40 00 80       	mov    $0x80004003,%eax
40d65e:	5d                   	pop    %ebp
40d65f:	c2 0c 00             	ret    $0xc
40d662:	cc                   	int3
40d663:	cc                   	int3
40d664:	cc                   	int3
40d665:	cc                   	int3
40d666:	cc                   	int3
40d667:	cc                   	int3
40d668:	cc                   	int3
40d669:	cc                   	int3
40d66a:	cc                   	int3
40d66b:	cc                   	int3
40d66c:	cc                   	int3
40d66d:	cc                   	int3
40d66e:	cc                   	int3
40d66f:	cc                   	int3
40d670:	8b ff                	mov    %edi,%edi
40d672:	55                   	push   %ebp
40d673:	8b ec                	mov    %esp,%ebp
40d675:	8b 45 08             	mov    0x8(%ebp),%eax
40d678:	8b 48 0c             	mov    0xc(%eax),%ecx
40d67b:	85 c9                	test   %ecx,%ecx
40d67d:	74 17                	je     0x40d696
40d67f:	8b 01                	mov    (%ecx),%eax
40d681:	56                   	push   %esi
40d682:	ff 75 0c             	push   0xc(%ebp)
40d685:	8b 70 18             	mov    0x18(%eax),%esi
40d688:	51                   	push   %ecx
40d689:	8b ce                	mov    %esi,%ecx
40d68b:	ff 15 28 63 41 00    	call   *0x416328
40d691:	ff d6                	call   *%esi
40d693:	5e                   	pop    %esi
40d694:	eb 05                	jmp    0x40d69b
40d696:	b8 03 40 00 80       	mov    $0x80004003,%eax
40d69b:	5d                   	pop    %ebp
40d69c:	c2 08 00             	ret    $0x8
40d69f:	cc                   	int3
40d6a0:	8b ff                	mov    %edi,%edi
40d6a2:	55                   	push   %ebp
40d6a3:	8b ec                	mov    %esp,%ebp
40d6a5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6a8:	8b 48 14             	mov    0x14(%eax),%ecx
40d6ab:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ae:	89 08                	mov    %ecx,(%eax)
40d6b0:	33 c0                	xor    %eax,%eax
40d6b2:	5d                   	pop    %ebp
40d6b3:	c2 08 00             	ret    $0x8
40d6b6:	cc                   	int3
40d6b7:	cc                   	int3
40d6b8:	cc                   	int3
40d6b9:	cc                   	int3
40d6ba:	cc                   	int3
40d6bb:	cc                   	int3
40d6bc:	cc                   	int3
40d6bd:	cc                   	int3
40d6be:	cc                   	int3
40d6bf:	cc                   	int3
40d6c0:	8b ff                	mov    %edi,%edi
40d6c2:	55                   	push   %ebp
40d6c3:	8b ec                	mov    %esp,%ebp
40d6c5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6c8:	8b 48 18             	mov    0x18(%eax),%ecx
40d6cb:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ce:	89 08                	mov    %ecx,(%eax)
40d6d0:	33 c0                	xor    %eax,%eax
40d6d2:	5d                   	pop    %ebp
40d6d3:	c2 08 00             	ret    $0x8
40d6d6:	cc                   	int3
40d6d7:	cc                   	int3
40d6d8:	cc                   	int3
40d6d9:	cc                   	int3
40d6da:	cc                   	int3
40d6db:	cc                   	int3
40d6dc:	cc                   	int3
40d6dd:	cc                   	int3
40d6de:	cc                   	int3
40d6df:	cc                   	int3
40d6e0:	8b ff                	mov    %edi,%edi
40d6e2:	55                   	push   %ebp
40d6e3:	8b ec                	mov    %esp,%ebp
40d6e5:	8b 45 08             	mov    0x8(%ebp),%eax
40d6e8:	8b 48 1c             	mov    0x1c(%eax),%ecx
40d6eb:	8b 45 0c             	mov    0xc(%ebp),%eax
40d6ee:	89 08                	mov    %ecx,(%eax)
40d6f0:	33 c0                	xor    %eax,%eax
40d6f2:	5d                   	pop    %ebp
40d6f3:	c2 08 00             	ret    $0x8
40d6f6:	cc                   	int3
40d6f7:	cc                   	int3
40d6f8:	cc                   	int3
40d6f9:	cc                   	int3
40d6fa:	cc                   	int3
40d6fb:	cc                   	int3
40d6fc:	cc                   	int3
40d6fd:	cc                   	int3
40d6fe:	cc                   	int3
40d6ff:	cc                   	int3
40d700:	8b ff                	mov    %edi,%edi
40d702:	55                   	push   %ebp
40d703:	8b ec                	mov    %esp,%ebp
40d705:	8b 45 08             	mov    0x8(%ebp),%eax
40d708:	8b 48 20             	mov    0x20(%eax),%ecx
40d70b:	8b 45 0c             	mov    0xc(%ebp),%eax
40d70e:	89 08                	mov    %ecx,(%eax)
40d710:	33 c0                	xor    %eax,%eax
40d712:	5d                   	pop    %ebp
40d713:	c2 08 00             	ret    $0x8
40d716:	cc                   	int3
40d717:	cc                   	int3
40d718:	cc                   	int3
40d719:	cc                   	int3
40d71a:	cc                   	int3
40d71b:	cc                   	int3
40d71c:	cc                   	int3
40d71d:	cc                   	int3
40d71e:	cc                   	int3
40d71f:	cc                   	int3
40d720:	8b ff                	mov    %edi,%edi
40d722:	55                   	push   %ebp
40d723:	8b ec                	mov    %esp,%ebp
40d725:	56                   	push   %esi
40d726:	8b 75 0c             	mov    0xc(%ebp),%esi
40d729:	85 f6                	test   %esi,%esi
40d72b:	75 1f                	jne    0x40d74c
40d72d:	be 03 40 00 80       	mov    $0x80004003,%esi
40d732:	56                   	push   %esi
40d733:	68 58 3b 40 00       	push   $0x403b58
40d738:	68 cf 00 00 00       	push   $0xcf
40d73d:	68 98 3b 40 00       	push   $0x403b98
40d742:	51                   	push   %ecx
40d743:	e8 8a 38 00 00       	call   0x410fd2
40d748:	8b c6                	mov    %esi,%eax
40d74a:	eb 1b                	jmp    0x40d767
40d74c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d74f:	8d 49 24             	lea    0x24(%ecx),%ecx
40d752:	e8 8a c1 ff ff       	call   0x4098e1
40d757:	89 06                	mov    %eax,(%esi)
40d759:	f7 d8                	neg    %eax
40d75b:	1b c0                	sbb    %eax,%eax
40d75d:	25 f2 ff f8 7f       	and    $0x7ff8fff2,%eax
40d762:	05 0e 00 07 80       	add    $0x8007000e,%eax
40d767:	5e                   	pop    %esi
40d768:	5d                   	pop    %ebp
40d769:	c2 08 00             	ret    $0x8
40d76c:	cc                   	int3
40d76d:	cc                   	int3
40d76e:	cc                   	int3
40d76f:	cc                   	int3
40d770:	8b ff                	mov    %edi,%edi
40d772:	55                   	push   %ebp
40d773:	8b ec                	mov    %esp,%ebp
40d775:	83 e4 f8             	and    $0xfffffff8,%esp
40d778:	83 ec 14             	sub    $0x14,%esp
40d77b:	53                   	push   %ebx
40d77c:	56                   	push   %esi
40d77d:	57                   	push   %edi
40d77e:	33 f6                	xor    %esi,%esi
40d780:	68 f0 1d 40 00       	push   $0x401df0
40d785:	6a 70                	push   $0x70
40d787:	89 74 24 1c          	mov    %esi,0x1c(%esp)
40d78b:	89 74 24 18          	mov    %esi,0x18(%esp)
40d78f:	89 74 24 24          	mov    %esi,0x24(%esp)
40d793:	e8 37 4d 00 00       	call   0x4124cf
40d798:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d79b:	59                   	pop    %ecx
40d79c:	59                   	pop    %ecx
40d79d:	85 c0                	test   %eax,%eax
40d79f:	74 0c                	je     0x40d7ad
40d7a1:	53                   	push   %ebx
40d7a2:	8b c8                	mov    %eax,%ecx
40d7a4:	e8 c6 02 00 00       	call   0x40da6f
40d7a9:	8b c8                	mov    %eax,%ecx
40d7ab:	eb 02                	jmp    0x40d7af
40d7ad:	8b ce                	mov    %esi,%ecx
40d7af:	89 4b 08             	mov    %ecx,0x8(%ebx)
40d7b2:	85 c9                	test   %ecx,%ecx
40d7b4:	0f 84 6b 01 00 00    	je     0x40d925
40d7ba:	8b 01                	mov    (%ecx),%eax
40d7bc:	51                   	push   %ecx
40d7bd:	8b 70 04             	mov    0x4(%eax),%esi
40d7c0:	8b ce                	mov    %esi,%ecx
40d7c2:	ff 15 28 63 41 00    	call   *0x416328
40d7c8:	ff d6                	call   *%esi
40d7ca:	8b 45 0c             	mov    0xc(%ebp),%eax
40d7cd:	85 c0                	test   %eax,%eax
40d7cf:	0f 84 49 01 00 00    	je     0x40d91e
40d7d5:	8b 30                	mov    (%eax),%esi
40d7d7:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40d7db:	51                   	push   %ecx
40d7dc:	68 90 3c 40 00       	push   $0x403c90
40d7e1:	50                   	push   %eax
40d7e2:	8b 0e                	mov    (%esi),%ecx
40d7e4:	ff 15 28 63 41 00    	call   *0x416328
40d7ea:	ff 16                	call   *(%esi)
40d7ec:	8b f8                	mov    %eax,%edi
40d7ee:	85 ff                	test   %edi,%edi
40d7f0:	79 10                	jns    0x40d802
40d7f2:	57                   	push   %edi
40d7f3:	68 f0 3b 40 00       	push   $0x403bf0
40d7f8:	68 11 01 00 00       	push   $0x111
40d7fd:	e9 33 01 00 00       	jmp    0x40d935
40d802:	8b 44 24 14          	mov    0x14(%esp),%eax
40d806:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40d80a:	51                   	push   %ecx
40d80b:	68 a0 3c 40 00       	push   $0x403ca0
40d810:	50                   	push   %eax
40d811:	8b 30                	mov    (%eax),%esi
40d813:	8b 4e 10             	mov    0x10(%esi),%ecx
40d816:	ff 15 28 63 41 00    	call   *0x416328
40d81c:	ff 56 10             	call   *0x10(%esi)
40d81f:	8b f8                	mov    %eax,%edi
40d821:	85 ff                	test   %edi,%edi
40d823:	79 10                	jns    0x40d835
40d825:	57                   	push   %edi
40d826:	68 f0 3b 40 00       	push   $0x403bf0
40d82b:	68 17 01 00 00       	push   $0x117
40d830:	e9 00 01 00 00       	jmp    0x40d935
40d835:	ff 74 24 10          	push   0x10(%esp)
40d839:	8b 4b 08             	mov    0x8(%ebx),%ecx
40d83c:	e8 3f 0e 00 00       	call   0x40e680
40d841:	8b f8                	mov    %eax,%edi
40d843:	85 ff                	test   %edi,%edi
40d845:	79 10                	jns    0x40d857
40d847:	57                   	push   %edi
40d848:	68 f0 3b 40 00       	push   $0x403bf0
40d84d:	68 1d 01 00 00       	push   $0x11d
40d852:	e9 de 00 00 00       	jmp    0x40d935
40d857:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d85a:	8d 53 0c             	lea    0xc(%ebx),%edx
40d85d:	52                   	push   %edx
40d85e:	68 80 3c 40 00       	push   $0x403c80
40d863:	51                   	push   %ecx
40d864:	8b 01                	mov    (%ecx),%eax
40d866:	8b 30                	mov    (%eax),%esi
40d868:	8b ce                	mov    %esi,%ecx
40d86a:	ff 15 28 63 41 00    	call   *0x416328
40d870:	ff d6                	call   *%esi
40d872:	8b f8                	mov    %eax,%edi
40d874:	85 ff                	test   %edi,%edi
40d876:	79 10                	jns    0x40d888
40d878:	57                   	push   %edi
40d879:	68 f0 3b 40 00       	push   $0x403bf0
40d87e:	68 28 01 00 00       	push   $0x128
40d883:	e9 ad 00 00 00       	jmp    0x40d935
40d888:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40d88b:	85 c9                	test   %ecx,%ecx
40d88d:	75 15                	jne    0x40d8a4
40d88f:	bf 05 40 00 80       	mov    $0x80004005,%edi
40d894:	57                   	push   %edi
40d895:	68 f0 3b 40 00       	push   $0x403bf0
40d89a:	68 2e 01 00 00       	push   $0x12e
40d89f:	e9 91 00 00 00       	jmp    0x40d935
40d8a4:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
40d8a9:	8d 54 24 18          	lea    0x18(%esp),%edx
40d8ad:	8b 01                	mov    (%ecx),%eax
40d8af:	52                   	push   %edx
40d8b0:	51                   	push   %ecx
40d8b1:	8b 70 14             	mov    0x14(%eax),%esi
40d8b4:	8b ce                	mov    %esi,%ecx
40d8b6:	ff 15 28 63 41 00    	call   *0x416328
40d8bc:	ff d6                	call   *%esi
40d8be:	8b f8                	mov    %eax,%edi
40d8c0:	85 ff                	test   %edi,%edi
40d8c2:	79 0d                	jns    0x40d8d1
40d8c4:	57                   	push   %edi
40d8c5:	68 f0 3b 40 00       	push   $0x403bf0
40d8ca:	68 3a 01 00 00       	push   $0x13a
40d8cf:	eb 64                	jmp    0x40d935
40d8d1:	8b 44 24 18          	mov    0x18(%esp),%eax
40d8d5:	33 c9                	xor    %ecx,%ecx
40d8d7:	41                   	inc    %ecx
40d8d8:	84 c1                	test   %al,%cl
40d8da:	74 0a                	je     0x40d8e6
40d8dc:	89 4b 14             	mov    %ecx,0x14(%ebx)
40d8df:	a8 08                	test   $0x8,%al