40b5f7:	6a 00                	push   $0x0
40b5f9:	ff 15 e0 60 41 00    	call   *0x4160e0
40b5ff:	50                   	push   %eax
40b600:	ff 15 e4 60 41 00    	call   *0x4160e4
40b606:	56                   	push   %esi
40b607:	ff 15 b8 61 41 00    	call   *0x4161b8
40b60d:	8b c7                	mov    %edi,%eax
40b60f:	e8 18 6f 00 00       	call   0x41252c
40b614:	c2 04 00             	ret    $0x4
40b617:	cc                   	int3
40b618:	cc                   	int3
40b619:	cc                   	int3
40b61a:	cc                   	int3
40b61b:	cc                   	int3
40b61c:	cc                   	int3
40b61d:	cc                   	int3
40b61e:	cc                   	int3
40b61f:	cc                   	int3
40b620:	8b ff                	mov    %edi,%edi
40b622:	55                   	push   %ebp
40b623:	8b ec                	mov    %esp,%ebp
40b625:	56                   	push   %esi
40b626:	33 f6                	xor    %esi,%esi
40b628:	8b 55 0c             	mov    0xc(%ebp),%edx
40b62b:	8b 8e 0c 1a 40 00    	mov    0x401a0c(%esi),%ecx
40b631:	e8 5a 95 ff ff       	call   0x404b90
40b636:	85 c0                	test   %eax,%eax
40b638:	75 0b                	jne    0x40b645
40b63a:	83 c6 04             	add    $0x4,%esi
40b63d:	83 fe 04             	cmp    $0x4,%esi
40b640:	72 e6                	jb     0x40b628
40b642:	40                   	inc    %eax
40b643:	eb 02                	jmp    0x40b647
40b645:	33 c0                	xor    %eax,%eax
40b647:	5e                   	pop    %esi
40b648:	5d                   	pop    %ebp
40b649:	c2 08 00             	ret    $0x8
40b64c:	cc                   	int3
40b64d:	cc                   	int3
40b64e:	cc                   	int3
40b64f:	cc                   	int3
40b650:	8b ff                	mov    %edi,%edi
40b652:	55                   	push   %ebp
40b653:	8b ec                	mov    %esp,%ebp
40b655:	56                   	push   %esi
40b656:	8b 75 08             	mov    0x8(%ebp),%esi
40b659:	57                   	push   %edi
40b65a:	8d 7e 08             	lea    0x8(%esi),%edi
40b65d:	57                   	push   %edi
40b65e:	ff 15 64 61 41 00    	call   *0x416164
40b664:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40b668:	74 12                	je     0x40b67c
40b66a:	ff 75 14             	push   0x14(%ebp)
40b66d:	8b 55 10             	mov    0x10(%ebp),%edx
40b670:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b673:	e8 1e fb ff ff       	call   0x40b196
40b678:	8b f0                	mov    %eax,%esi
40b67a:	eb 05                	jmp    0x40b681
40b67c:	be ff ff 00 80       	mov    $0x8000ffff,%esi
40b681:	57                   	push   %edi
40b682:	ff 15 5c 61 41 00    	call   *0x41615c
40b688:	5f                   	pop    %edi
40b689:	8b c6                	mov    %esi,%eax
40b68b:	5e                   	pop    %esi
40b68c:	5d                   	pop    %ebp
40b68d:	c2 10 00             	ret    $0x10
40b690:	8b ff                	mov    %edi,%edi
40b692:	55                   	push   %ebp
40b693:	8b ec                	mov    %esp,%ebp
40b695:	56                   	push   %esi
40b696:	57                   	push   %edi
40b697:	8b 7d 08             	mov    0x8(%ebp),%edi
40b69a:	83 c7 08             	add    $0x8,%edi
40b69d:	57                   	push   %edi
40b69e:	ff 15 64 61 41 00    	call   *0x416164
40b6a4:	ff 75 14             	push   0x14(%ebp)
40b6a7:	8b 55 10             	mov    0x10(%ebp),%edx
40b6aa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b6ad:	e8 8d fd ff ff       	call   0x40b43f
40b6b2:	57                   	push   %edi
40b6b3:	8b f0                	mov    %eax,%esi
40b6b5:	ff 15 5c 61 41 00    	call   *0x41615c
40b6bb:	5f                   	pop    %edi
40b6bc:	8b c6                	mov    %esi,%eax
40b6be:	5e                   	pop    %esi
40b6bf:	5d                   	pop    %ebp
40b6c0:	c2 10 00             	ret    $0x10
40b6c3:	cc                   	int3
40b6c4:	cc                   	int3
40b6c5:	cc                   	int3
40b6c6:	cc                   	int3
40b6c7:	cc                   	int3
40b6c8:	cc                   	int3
40b6c9:	cc                   	int3
40b6ca:	cc                   	int3
40b6cb:	cc                   	int3
40b6cc:	cc                   	int3
40b6cd:	cc                   	int3
40b6ce:	cc                   	int3
40b6cf:	cc                   	int3
40b6d0:	8b ff                	mov    %edi,%edi
40b6d2:	55                   	push   %ebp
40b6d3:	8b ec                	mov    %esp,%ebp
40b6d5:	56                   	push   %esi
40b6d6:	8b 75 08             	mov    0x8(%ebp),%esi
40b6d9:	57                   	push   %edi
40b6da:	8d 7e 08             	lea    0x8(%esi),%edi
40b6dd:	57                   	push   %edi
40b6de:	ff 15 64 61 41 00    	call   *0x416164
40b6e4:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40b6e8:	74 10                	je     0x40b6fa
40b6ea:	8b 55 0c             	mov    0xc(%ebp),%edx
40b6ed:	33 c9                	xor    %ecx,%ecx
40b6ef:	6a 01                	push   $0x1
40b6f1:	e8 49 fd ff ff       	call   0x40b43f
40b6f6:	8b f0                	mov    %eax,%esi
40b6f8:	eb 05                	jmp    0x40b6ff
40b6fa:	be ff ff 00 80       	mov    $0x8000ffff,%esi
40b6ff:	57                   	push   %edi
40b700:	ff 15 5c 61 41 00    	call   *0x41615c
40b706:	5f                   	pop    %edi
40b707:	8b c6                	mov    %esi,%eax
40b709:	5e                   	pop    %esi
40b70a:	5d                   	pop    %ebp
40b70b:	c2 08 00             	ret    $0x8
40b70e:	cc                   	int3
40b70f:	cc                   	int3
40b710:	8b ff                	mov    %edi,%edi
40b712:	55                   	push   %ebp
40b713:	8b ec                	mov    %esp,%ebp
40b715:	53                   	push   %ebx
40b716:	56                   	push   %esi
40b717:	8b 75 08             	mov    0x8(%ebp),%esi
40b71a:	57                   	push   %edi
40b71b:	33 ff                	xor    %edi,%edi
40b71d:	8d 5e 08             	lea    0x8(%esi),%ebx
40b720:	53                   	push   %ebx
40b721:	ff 15 64 61 41 00    	call   *0x416164
40b727:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40b72a:	75 07                	jne    0x40b733
40b72c:	bf 03 40 00 80       	mov    $0x80004003,%edi
40b731:	eb 29                	jmp    0x40b75c
40b733:	39 7e 2c             	cmp    %edi,0x2c(%esi)
40b736:	74 24                	je     0x40b75c
40b738:	39 7e 30             	cmp    %edi,0x30(%esi)
40b73b:	74 1f                	je     0x40b75c
40b73d:	8d 4e 24             	lea    0x24(%esi),%ecx
40b740:	e8 9c e1 ff ff       	call   0x4098e1
40b745:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b748:	89 01                	mov    %eax,(%ecx)
40b74a:	ff 76 30             	push   0x30(%esi)
40b74d:	ff 15 10 61 41 00    	call   *0x416110
40b753:	ff 76 2c             	push   0x2c(%esi)
40b756:	ff 15 1c 61 41 00    	call   *0x41611c
40b75c:	53                   	push   %ebx
40b75d:	ff 15 5c 61 41 00    	call   *0x41615c
40b763:	8b c7                	mov    %edi,%eax
40b765:	5f                   	pop    %edi
40b766:	5e                   	pop    %esi
40b767:	5b                   	pop    %ebx
40b768:	5d                   	pop    %ebp
40b769:	c2 08 00             	ret    $0x8
40b76c:	cc                   	int3
40b76d:	cc                   	int3
40b76e:	cc                   	int3
40b76f:	cc                   	int3
40b770:	8b ff                	mov    %edi,%edi
40b772:	55                   	push   %ebp
40b773:	8b ec                	mov    %esp,%ebp
40b775:	56                   	push   %esi
40b776:	8b 75 08             	mov    0x8(%ebp),%esi
40b779:	57                   	push   %edi
40b77a:	8d 7e 08             	lea    0x8(%esi),%edi
40b77d:	57                   	push   %edi
40b77e:	ff 15 64 61 41 00    	call   *0x416164
40b784:	ff 75 0c             	push   0xc(%ebp)
40b787:	8d 4e 24             	lea    0x24(%esi),%ecx
40b78a:	e8 11 e1 ff ff       	call   0x4098a0
40b78f:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40b793:	74 12                	je     0x40b7a7
40b795:	ff 76 2c             	push   0x2c(%esi)
40b798:	ff 15 10 61 41 00    	call   *0x416110
40b79e:	ff 76 30             	push   0x30(%esi)
40b7a1:	ff 15 1c 61 41 00    	call   *0x41611c
40b7a7:	57                   	push   %edi
40b7a8:	ff 15 5c 61 41 00    	call   *0x41615c
40b7ae:	5f                   	pop    %edi
40b7af:	33 c0                	xor    %eax,%eax
40b7b1:	5e                   	pop    %esi
40b7b2:	5d                   	pop    %ebp
40b7b3:	c2 08 00             	ret    $0x8
40b7b6:	cc                   	int3
40b7b7:	cc                   	int3
40b7b8:	cc                   	int3
40b7b9:	cc                   	int3
40b7ba:	cc                   	int3
40b7bb:	cc                   	int3
40b7bc:	cc                   	int3
40b7bd:	cc                   	int3
40b7be:	cc                   	int3
40b7bf:	cc                   	int3
40b7c0:	8b ff                	mov    %edi,%edi
40b7c2:	55                   	push   %ebp
40b7c3:	8b ec                	mov    %esp,%ebp
40b7c5:	53                   	push   %ebx
40b7c6:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b7c9:	56                   	push   %esi
40b7ca:	57                   	push   %edi
40b7cb:	33 f6                	xor    %esi,%esi
40b7cd:	8d 7b 08             	lea    0x8(%ebx),%edi
40b7d0:	57                   	push   %edi
40b7d1:	ff 15 64 61 41 00    	call   *0x416164
40b7d7:	39 75 0c             	cmp    %esi,0xc(%ebp)
40b7da:	75 07                	jne    0x40b7e3
40b7dc:	be 03 40 00 80       	mov    $0x80004003,%esi
40b7e1:	eb 0d                	jmp    0x40b7f0
40b7e3:	8d 4b 34             	lea    0x34(%ebx),%ecx
40b7e6:	e8 f6 e0 ff ff       	call   0x4098e1
40b7eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b7ee:	89 01                	mov    %eax,(%ecx)
40b7f0:	57                   	push   %edi
40b7f1:	ff 15 5c 61 41 00    	call   *0x41615c
40b7f7:	5f                   	pop    %edi
40b7f8:	8b c6                	mov    %esi,%eax
40b7fa:	5e                   	pop    %esi
40b7fb:	5b                   	pop    %ebx
40b7fc:	5d                   	pop    %ebp
40b7fd:	c2 08 00             	ret    $0x8
40b800:	8b ff                	mov    %edi,%edi
40b802:	55                   	push   %ebp
40b803:	8b ec                	mov    %esp,%ebp
40b805:	56                   	push   %esi
40b806:	8b 75 08             	mov    0x8(%ebp),%esi
40b809:	57                   	push   %edi
40b80a:	8d 7e 08             	lea    0x8(%esi),%edi
40b80d:	57                   	push   %edi
40b80e:	ff 15 64 61 41 00    	call   *0x416164
40b814:	ff 75 0c             	push   0xc(%ebp)
40b817:	8d 4e 34             	lea    0x34(%esi),%ecx
40b81a:	e8 81 e0 ff ff       	call   0x4098a0
40b81f:	57                   	push   %edi
40b820:	ff 15 5c 61 41 00    	call   *0x41615c
40b826:	5f                   	pop    %edi
40b827:	33 c0                	xor    %eax,%eax
40b829:	5e                   	pop    %esi
40b82a:	5d                   	pop    %ebp
40b82b:	c2 08 00             	ret    $0x8
40b82e:	cc                   	int3
40b82f:	cc                   	int3
40b830:	8b ff                	mov    %edi,%edi
40b832:	55                   	push   %ebp
40b833:	8b ec                	mov    %esp,%ebp
40b835:	53                   	push   %ebx
40b836:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b839:	56                   	push   %esi
40b83a:	57                   	push   %edi
40b83b:	33 f6                	xor    %esi,%esi
40b83d:	8d 7b 08             	lea    0x8(%ebx),%edi
40b840:	57                   	push   %edi
40b841:	ff 15 64 61 41 00    	call   *0x416164
40b847:	39 75 0c             	cmp    %esi,0xc(%ebp)
40b84a:	75 07                	jne    0x40b853
40b84c:	be 03 40 00 80       	mov    $0x80004003,%esi
40b851:	eb 0d                	jmp    0x40b860
40b853:	8d 4b 38             	lea    0x38(%ebx),%ecx
40b856:	e8 86 e0 ff ff       	call   0x4098e1
40b85b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b85e:	89 01                	mov    %eax,(%ecx)
40b860:	57                   	push   %edi
40b861:	ff 15 5c 61 41 00    	call   *0x41615c
40b867:	5f                   	pop    %edi
40b868:	8b c6                	mov    %esi,%eax
40b86a:	5e                   	pop    %esi
40b86b:	5b                   	pop    %ebx
40b86c:	5d                   	pop    %ebp
40b86d:	c2 08 00             	ret    $0x8
40b870:	8b ff                	mov    %edi,%edi
40b872:	55                   	push   %ebp
40b873:	8b ec                	mov    %esp,%ebp
40b875:	56                   	push   %esi
40b876:	8b 75 08             	mov    0x8(%ebp),%esi
40b879:	57                   	push   %edi
40b87a:	8d 7e 08             	lea    0x8(%esi),%edi
40b87d:	57                   	push   %edi
40b87e:	ff 15 64 61 41 00    	call   *0x416164
40b884:	ff 75 0c             	push   0xc(%ebp)
40b887:	8d 4e 38             	lea    0x38(%esi),%ecx
40b88a:	e8 11 e0 ff ff       	call   0x4098a0
40b88f:	57                   	push   %edi
40b890:	ff 15 5c 61 41 00    	call   *0x41615c
40b896:	5f                   	pop    %edi
40b897:	33 c0                	xor    %eax,%eax
40b899:	5e                   	pop    %esi
40b89a:	5d                   	pop    %ebp
40b89b:	c2 08 00             	ret    $0x8
40b89e:	cc                   	int3
40b89f:	cc                   	int3
40b8a0:	8b ff                	mov    %edi,%edi
40b8a2:	55                   	push   %ebp
40b8a3:	8b ec                	mov    %esp,%ebp
40b8a5:	83 ec 0c             	sub    $0xc,%esp
40b8a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b8ab:	53                   	push   %ebx
40b8ac:	56                   	push   %esi
40b8ad:	57                   	push   %edi
40b8ae:	8b 7d 08             	mov    0x8(%ebp),%edi
40b8b1:	33 db                	xor    %ebx,%ebx
40b8b3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b8b6:	8b 47 2c             	mov    0x2c(%edi),%eax
40b8b9:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b8bc:	85 c9                	test   %ecx,%ecx
40b8be:	75 1f                	jne    0x40b8df
40b8c0:	be 03 40 00 80       	mov    $0x80004003,%esi
40b8c5:	56                   	push   %esi
40b8c6:	68 b0 33 40 00       	push   $0x4033b0
40b8cb:	68 54 02 00 00       	push   $0x254
40b8d0:	68 c8 31 40 00       	push   $0x4031c8
40b8d5:	51                   	push   %ecx
40b8d6:	e8 f7 56 00 00       	call   0x410fd2
40b8db:	8b c6                	mov    %esi,%eax
40b8dd:	eb 7a                	jmp    0x40b959
40b8df:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b8e2:	50                   	push   %eax
40b8e3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b8e6:	50                   	push   %eax
40b8e7:	8b 45 10             	mov    0x10(%ebp),%eax
40b8ea:	48                   	dec    %eax
40b8eb:	f7 d8                	neg    %eax
40b8ed:	6a 01                	push   $0x1
40b8ef:	1b c0                	sbb    %eax,%eax
40b8f1:	25 c1 d4 01 00       	and    $0x1d4c1,%eax
40b8f6:	48                   	dec    %eax
40b8f7:	50                   	push   %eax
40b8f8:	6a 01                	push   $0x1
40b8fa:	ff 15 0c 62 41 00    	call   *0x41620c
40b900:	89 45 f4             	mov    %eax,-0xc(%ebp)
40b903:	85 c0                	test   %eax,%eax
40b905:	75 34                	jne    0x40b93b
40b907:	68 a0 31 40 00       	push   $0x4031a0
40b90c:	ff 15 a4 61 41 00    	call   *0x4161a4
40b912:	8b f0                	mov    %eax,%esi
40b914:	85 f6                	test   %esi,%esi
40b916:	74 48                	je     0x40b960
40b918:	53                   	push   %ebx
40b919:	68 00 04 00 00       	push   $0x400
40b91e:	56                   	push   %esi
40b91f:	ff 77 24             	push   0x24(%edi)
40b922:	ff 15 88 61 41 00    	call   *0x416188
40b928:	56                   	push   %esi
40b929:	8b f8                	mov    %eax,%edi