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
40b92b:	ff 15 b8 61 41 00    	call   *0x4161b8
40b931:	33 db                	xor    %ebx,%ebx
40b933:	83 ff 01             	cmp    $0x1,%edi
40b936:	0f 95 c3             	setne  %bl
40b939:	eb 16                	jmp    0x40b951
40b93b:	50                   	push   %eax
40b93c:	68 b0 33 40 00       	push   $0x4033b0
40b941:	68 70 02 00 00       	push   $0x270
40b946:	68 c8 31 40 00       	push   $0x4031c8
40b94b:	51                   	push   %ecx
40b94c:	e8 81 56 00 00       	call   0x410fd2
40b951:	8b 45 0c             	mov    0xc(%ebp),%eax
40b954:	89 18                	mov    %ebx,(%eax)
40b956:	8b 45 f4             	mov    -0xc(%ebp),%eax
40b959:	5f                   	pop    %edi
40b95a:	5e                   	pop    %esi
40b95b:	5b                   	pop    %ebx
40b95c:	c9                   	leave
40b95d:	c2 0c 00             	ret    $0xc
40b960:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
40b965:	e8 85 92 ff ff       	call   0x404bef
40b96a:	cc                   	int3
40b96b:	cc                   	int3
40b96c:	cc                   	int3
40b96d:	cc                   	int3
40b96e:	cc                   	int3
40b96f:	cc                   	int3
40b970:	8b ff                	mov    %edi,%edi
40b972:	55                   	push   %ebp
40b973:	8b ec                	mov    %esp,%ebp
40b975:	51                   	push   %ecx
40b976:	51                   	push   %ecx
40b977:	8b 45 08             	mov    0x8(%ebp),%eax
40b97a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b97e:	53                   	push   %ebx
40b97f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b982:	8b 40 30             	mov    0x30(%eax),%eax
40b985:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b988:	56                   	push   %esi
40b989:	85 db                	test   %ebx,%ebx
40b98b:	75 1f                	jne    0x40b9ac
40b98d:	be 03 40 00 80       	mov    $0x80004003,%esi
40b992:	56                   	push   %esi
40b993:	68 f8 33 40 00       	push   $0x4033f8
40b998:	68 97 02 00 00       	push   $0x297
40b99d:	68 c8 31 40 00       	push   $0x4031c8
40b9a2:	51                   	push   %ecx
40b9a3:	e8 2a 56 00 00       	call   0x410fd2
40b9a8:	8b c6                	mov    %esi,%eax
40b9aa:	eb 46                	jmp    0x40b9f2
40b9ac:	57                   	push   %edi
40b9ad:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b9b0:	33 f6                	xor    %esi,%esi
40b9b2:	50                   	push   %eax
40b9b3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b9b6:	46                   	inc    %esi
40b9b7:	50                   	push   %eax
40b9b8:	8b 45 10             	mov    0x10(%ebp),%eax
40b9bb:	48                   	dec    %eax
40b9bc:	f7 d8                	neg    %eax
40b9be:	56                   	push   %esi
40b9bf:	1b c0                	sbb    %eax,%eax
40b9c1:	25 c1 d4 01 00       	and    $0x1d4c1,%eax
40b9c6:	48                   	dec    %eax
40b9c7:	50                   	push   %eax
40b9c8:	56                   	push   %esi
40b9c9:	ff 15 0c 62 41 00    	call   *0x41620c
40b9cf:	8b f8                	mov    %eax,%edi
40b9d1:	85 ff                	test   %edi,%edi
40b9d3:	74 18                	je     0x40b9ed
40b9d5:	57                   	push   %edi
40b9d6:	68 f8 33 40 00       	push   $0x4033f8
40b9db:	68 a9 02 00 00       	push   $0x2a9
40b9e0:	68 c8 31 40 00       	push   $0x4031c8
40b9e5:	51                   	push   %ecx
40b9e6:	e8 e7 55 00 00       	call   0x410fd2
40b9eb:	33 f6                	xor    %esi,%esi
40b9ed:	8b c7                	mov    %edi,%eax
40b9ef:	89 33                	mov    %esi,(%ebx)
40b9f1:	5f                   	pop    %edi
40b9f2:	5e                   	pop    %esi
40b9f3:	5b                   	pop    %ebx
40b9f4:	c9                   	leave
40b9f5:	c2 0c 00             	ret    $0xc
40b9f8:	cc                   	int3
40b9f9:	cc                   	int3
40b9fa:	cc                   	int3
40b9fb:	cc                   	int3
40b9fc:	cc                   	int3
40b9fd:	cc                   	int3
40b9fe:	cc                   	int3
40b9ff:	cc                   	int3
40ba00:	8b ff                	mov    %edi,%edi
40ba02:	55                   	push   %ebp
40ba03:	8b ec                	mov    %esp,%ebp
40ba05:	56                   	push   %esi
40ba06:	8b 75 08             	mov    0x8(%ebp),%esi
40ba09:	57                   	push   %edi
40ba0a:	8d 7e 08             	lea    0x8(%esi),%edi
40ba0d:	57                   	push   %edi
40ba0e:	ff 15 64 61 41 00    	call   *0x416164
40ba14:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40ba18:	74 09                	je     0x40ba23
40ba1a:	e8 05 f9 ff ff       	call   0x40b324
40ba1f:	8b f0                	mov    %eax,%esi
40ba21:	eb 05                	jmp    0x40ba28
40ba23:	be ff ff 00 80       	mov    $0x8000ffff,%esi
40ba28:	57                   	push   %edi
40ba29:	ff 15 5c 61 41 00    	call   *0x41615c
40ba2f:	5f                   	pop    %edi
40ba30:	8b c6                	mov    %esi,%eax
40ba32:	5e                   	pop    %esi
40ba33:	5d                   	pop    %ebp
40ba34:	c2 04 00             	ret    $0x4
40ba37:	8b ff                	mov    %edi,%edi
40ba39:	55                   	push   %ebp
40ba3a:	8b ec                	mov    %esp,%ebp
40ba3c:	56                   	push   %esi
40ba3d:	ff 75 08             	push   0x8(%ebp)
40ba40:	8b f1                	mov    %ecx,%esi
40ba42:	ff 15 a4 61 41 00    	call   *0x4161a4
40ba48:	89 06                	mov    %eax,(%esi)
40ba4a:	85 c0                	test   %eax,%eax
40ba4c:	74 07                	je     0x40ba55
40ba4e:	8b c6                	mov    %esi,%eax
40ba50:	5e                   	pop    %esi
40ba51:	5d                   	pop    %ebp
40ba52:	c2 04 00             	ret    $0x4
40ba55:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
40ba5a:	e8 90 91 ff ff       	call   0x404bef
40ba5f:	cc                   	int3
40ba60:	8b ff                	mov    %edi,%edi
40ba62:	55                   	push   %ebp
40ba63:	8b ec                	mov    %esp,%ebp
40ba65:	51                   	push   %ecx
40ba66:	56                   	push   %esi
40ba67:	33 f6                	xor    %esi,%esi
40ba69:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ba6c:	51                   	push   %ecx
40ba6d:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ba70:	e8 d8 56 00 00       	call   0x41114d
40ba75:	85 c0                	test   %eax,%eax
40ba77:	78 03                	js     0x40ba7c
40ba79:	8b 75 fc             	mov    -0x4(%ebp),%esi
40ba7c:	85 f6                	test   %esi,%esi
40ba7e:	74 15                	je     0x40ba95
40ba80:	e8 2d 16 00 00       	call   0x40d0b2
40ba85:	8b f0                	mov    %eax,%esi
40ba87:	85 f6                	test   %esi,%esi
40ba89:	79 28                	jns    0x40bab3
40ba8b:	56                   	push   %esi
40ba8c:	68 80 34 40 00       	push   $0x403480
40ba91:	6a 3c                	push   $0x3c
40ba93:	eb 13                	jmp    0x40baa8
40ba95:	e8 b5 17 00 00       	call   0x40d24f
40ba9a:	8b f0                	mov    %eax,%esi
40ba9c:	85 f6                	test   %esi,%esi
40ba9e:	79 13                	jns    0x40bab3
40baa0:	56                   	push   %esi
40baa1:	68 80 34 40 00       	push   $0x403480
40baa6:	6a 47                	push   $0x47
40baa8:	68 d0 34 40 00       	push   $0x4034d0
40baad:	51                   	push   %ecx
40baae:	e8 1f 55 00 00       	call   0x410fd2
40bab3:	8b c6                	mov    %esi,%eax
40bab5:	5e                   	pop    %esi
40bab6:	c9                   	leave
40bab7:	c3                   	ret
40bab8:	8b ff                	mov    %edi,%edi
40baba:	55                   	push   %ebp
40babb:	8b ec                	mov    %esp,%ebp
40babd:	83 ec 28             	sub    $0x28,%esp
40bac0:	8b 45 10             	mov    0x10(%ebp),%eax
40bac3:	33 c9                	xor    %ecx,%ecx
40bac5:	53                   	push   %ebx