409804:	ff d6                	call   *%esi
409806:	e8 f0 2a 00 00       	call   0x40c2fb
40980b:	cc                   	int3
40980c:	55                   	push   %ebp
40980d:	8b ec                	mov    %esp,%ebp
40980f:	51                   	push   %ecx
409810:	8b 45 18             	mov    0x18(%ebp),%eax
409813:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
409816:	53                   	push   %ebx
409817:	56                   	push   %esi
409818:	8b 58 10             	mov    0x10(%eax),%ebx
40981b:	57                   	push   %edi
40981c:	8b 78 0c             	mov    0xc(%eax),%edi
40981f:	8b d7                	mov    %edi,%edx
409821:	89 55 fc             	mov    %edx,-0x4(%ebp)
409824:	8b f2                	mov    %edx,%esi
409826:	85 c9                	test   %ecx,%ecx
409828:	78 2d                	js     0x409857
40982a:	6b c2 14             	imul   $0x14,%edx,%eax
40982d:	83 c3 08             	add    $0x8,%ebx
409830:	03 c3                	add    %ebx,%eax
409832:	8b 5d 10             	mov    0x10(%ebp),%ebx
409835:	83 fa ff             	cmp    $0xffffffff,%edx
409838:	74 3c                	je     0x409876
40983a:	83 e8 14             	sub    $0x14,%eax
40983d:	4a                   	dec    %edx
40983e:	39 58 fc             	cmp    %ebx,-0x4(%eax)
409841:	7d 04                	jge    0x409847
409843:	3b 18                	cmp    (%eax),%ebx
409845:	7e 05                	jle    0x40984c
409847:	83 fa ff             	cmp    $0xffffffff,%edx
40984a:	75 07                	jne    0x409853
40984c:	8b 75 fc             	mov    -0x4(%ebp),%esi
40984f:	49                   	dec    %ecx
409850:	89 55 fc             	mov    %edx,-0x4(%ebp)
409853:	85 c9                	test   %ecx,%ecx
409855:	79 de                	jns    0x409835
409857:	42                   	inc    %edx
409858:	3b f7                	cmp    %edi,%esi
40985a:	77 1a                	ja     0x409876
40985c:	3b d6                	cmp    %esi,%edx
40985e:	77 16                	ja     0x409876
409860:	8b 45 08             	mov    0x8(%ebp),%eax
409863:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409866:	5f                   	pop    %edi
409867:	89 70 0c             	mov    %esi,0xc(%eax)
40986a:	5e                   	pop    %esi
40986b:	89 08                	mov    %ecx,(%eax)
40986d:	89 50 04             	mov    %edx,0x4(%eax)
409870:	89 48 08             	mov    %ecx,0x8(%eax)
409873:	5b                   	pop    %ebx
409874:	c9                   	leave
409875:	c3                   	ret
409876:	e8 80 2a 00 00       	call   0x40c2fb
40987b:	cc                   	int3
40987c:	55                   	push   %ebp
40987d:	8b ec                	mov    %esp,%ebp
40987f:	83 ec 18             	sub    $0x18,%esp
409882:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
409886:	8d 45 e8             	lea    -0x18(%ebp),%eax
409889:	33 05 18 60 42 00    	xor    0x426018,%eax
40988f:	8b 4d 08             	mov    0x8(%ebp),%ecx
409892:	89 45 f0             	mov    %eax,-0x10(%ebp)
409895:	8b 45 0c             	mov    0xc(%ebp),%eax
409898:	89 45 f4             	mov    %eax,-0xc(%ebp)
40989b:	8b 45 14             	mov    0x14(%ebp),%eax
40989e:	40                   	inc    %eax
40989f:	c7 45 ec 52 9a 40 00 	movl   $0x409a52,-0x14(%ebp)
4098a6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4098a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4098ac:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4098b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4098b5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4098b8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4098be:	ff 75 18             	push   0x18(%ebp)
4098c1:	51                   	push   %ecx
4098c2:	ff 75 10             	push   0x10(%ebp)
4098c5:	e8 66 16 00 00       	call   0x40af30
4098ca:	8b c8                	mov    %eax,%ecx
4098cc:	8b 45 e8             	mov    -0x18(%ebp),%eax
4098cf:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4098d5:	8b c1                	mov    %ecx,%eax
4098d7:	c9                   	leave
4098d8:	c3                   	ret
4098d9:	55                   	push   %ebp
4098da:	8b ec                	mov    %esp,%ebp
4098dc:	83 ec 40             	sub    $0x40,%esp
4098df:	53                   	push   %ebx
4098e0:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
4098e7:	75 12                	jne    0x4098fb
4098e9:	b8 a3 99 40 00       	mov    $0x4099a3,%eax
4098ee:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4098f1:	89 01                	mov    %eax,(%ecx)
4098f3:	33 c0                	xor    %eax,%eax
4098f5:	40                   	inc    %eax
4098f6:	e9 d1 00 00 00       	jmp    0x4099cc
4098fb:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
4098ff:	c7 45 c4 ef 9a 40 00 	movl   $0x409aef,-0x3c(%ebp)
409906:	a1 18 60 42 00       	mov    0x426018,%eax
40990b:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40990e:	33 c1                	xor    %ecx,%eax
409910:	89 45 c8             	mov    %eax,-0x38(%ebp)
409913:	8b 45 18             	mov    0x18(%ebp),%eax
409916:	89 45 cc             	mov    %eax,-0x34(%ebp)
409919:	8b 45 0c             	mov    0xc(%ebp),%eax
40991c:	89 45 d0             	mov    %eax,-0x30(%ebp)
40991f:	8b 45 1c             	mov    0x1c(%ebp),%eax
409922:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409925:	8b 45 20             	mov    0x20(%ebp),%eax
409928:	89 45 d8             	mov    %eax,-0x28(%ebp)
40992b:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
40992f:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
409933:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
409937:	89 65 dc             	mov    %esp,-0x24(%ebp)
40993a:	89 6d e0             	mov    %ebp,-0x20(%ebp)
40993d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409943:	89 45 c0             	mov    %eax,-0x40(%ebp)
409946:	8d 45 c0             	lea    -0x40(%ebp),%eax
409949:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40994f:	8b 45 08             	mov    0x8(%ebp),%eax
409952:	ff 30                	push   (%eax)
409954:	e8 87 24 01 00       	call   0x41bde0
409959:	59                   	pop    %ecx
40995a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40995d:	89 01                	mov    %eax,(%ecx)
40995f:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
409966:	8b 45 08             	mov    0x8(%ebp),%eax
409969:	89 45 e8             	mov    %eax,-0x18(%ebp)
40996c:	8b 45 10             	mov    0x10(%ebp),%eax
40996f:	89 45 ec             	mov    %eax,-0x14(%ebp)
409972:	e8 b5 fa ff ff       	call   0x40942c
409977:	8b 40 08             	mov    0x8(%eax),%eax
40997a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40997d:	a1 50 c2 41 00       	mov    0x41c250,%eax
409982:	89 45 f4             	mov    %eax,-0xc(%ebp)
409985:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409988:	ff 55 f4             	call   *-0xc(%ebp)
40998b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40998e:	89 45 f0             	mov    %eax,-0x10(%ebp)
409991:	8d 45 e8             	lea    -0x18(%ebp),%eax
409994:	50                   	push   %eax
409995:	8b 45 08             	mov    0x8(%ebp),%eax
409998:	ff 30                	push   (%eax)
40999a:	ff 55 f0             	call   *-0x10(%ebp)
40999d:	59                   	pop    %ecx
40999e:	59                   	pop    %ecx
40999f:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4099a3:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4099a7:	74 17                	je     0x4099c0
4099a9:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4099b0:	8b 03                	mov    (%ebx),%eax
4099b2:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4099b5:	89 03                	mov    %eax,(%ebx)
4099b7:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4099be:	eb 09                	jmp    0x4099c9
4099c0:	8b 45 c0             	mov    -0x40(%ebp),%eax
4099c3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4099c9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4099cc:	5b                   	pop    %ebx
4099cd:	c9                   	leave
4099ce:	c3                   	ret
4099cf:	55                   	push   %ebp
4099d0:	8b ec                	mov    %esp,%ebp
4099d2:	51                   	push   %ecx
4099d3:	53                   	push   %ebx
4099d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4099d7:	83 c0 0c             	add    $0xc,%eax
4099da:	89 45 fc             	mov    %eax,-0x4(%ebp)
4099dd:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4099e4:	8b 03                	mov    (%ebx),%eax
4099e6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4099ec:	8b 45 08             	mov    0x8(%ebp),%eax
4099ef:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4099f2:	8b 6d fc             	mov    -0x4(%ebp),%ebp
4099f5:	8b 63 fc             	mov    -0x4(%ebx),%esp
4099f8:	ff e0                	jmp    *%eax
4099fa:	5b                   	pop    %ebx
4099fb:	c9                   	leave
4099fc:	c2 08 00             	ret    $0x8
4099ff:	55                   	push   %ebp
409a00:	8b ec                	mov    %esp,%ebp
409a02:	51                   	push   %ecx
409a03:	51                   	push   %ecx
409a04:	53                   	push   %ebx
409a05:	56                   	push   %esi
409a06:	57                   	push   %edi
409a07:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
409a0e:	89 75 f8             	mov    %esi,-0x8(%ebp)
409a11:	c7 45 fc 29 9a 40 00 	movl   $0x409a29,-0x4(%ebp)
409a18:	6a 00                	push   $0x0
409a1a:	ff 75 0c             	push   0xc(%ebp)
409a1d:	ff 75 fc             	push   -0x4(%ebp)
409a20:	ff 75 08             	push   0x8(%ebp)
409a23:	ff 15 4c c1 41 00    	call   *0x41c14c
409a29:	8b 45 0c             	mov    0xc(%ebp),%eax
409a2c:	8b 40 04             	mov    0x4(%eax),%eax
409a2f:	83 e0 fd             	and    $0xfffffffd,%eax
409a32:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409a35:	89 41 04             	mov    %eax,0x4(%ecx)
409a38:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
409a3f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409a42:	89 3b                	mov    %edi,(%ebx)
409a44:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
409a4b:	5f                   	pop    %edi
409a4c:	5e                   	pop    %esi
409a4d:	5b                   	pop    %ebx
409a4e:	c9                   	leave
409a4f:	c2 08 00             	ret    $0x8
409a52:	55                   	push   %ebp
409a53:	8b ec                	mov    %esp,%ebp
409a55:	56                   	push   %esi
409a56:	fc                   	cld
409a57:	8b 75 0c             	mov    0xc(%ebp),%esi
409a5a:	8b 4e 08             	mov    0x8(%esi),%ecx
409a5d:	33 ce                	xor    %esi,%ecx
409a5f:	e8 91 f1 ff ff       	call   0x408bf5
409a64:	6a 00                	push   $0x0
409a66:	56                   	push   %esi
409a67:	ff 76 14             	push   0x14(%esi)
409a6a:	ff 76 0c             	push   0xc(%esi)
409a6d:	6a 00                	push   $0x0
409a6f:	ff 75 10             	push   0x10(%ebp)
409a72:	ff 76 10             	push   0x10(%esi)
409a75:	ff 75 08             	push   0x8(%ebp)
409a78:	e8 a5 0e 00 00       	call   0x40a922
409a7d:	83 c4 20             	add    $0x20,%esp
409a80:	5e                   	pop    %esi
409a81:	5d                   	pop    %ebp
409a82:	c3                   	ret
409a83:	55                   	push   %ebp
409a84:	8b ec                	mov    %esp,%ebp
409a86:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409a89:	56                   	push   %esi
409a8a:	8b 75 08             	mov    0x8(%ebp),%esi
409a8d:	89 0e                	mov    %ecx,(%esi)
409a8f:	e8 98 f9 ff ff       	call   0x40942c
409a94:	8b 48 24             	mov    0x24(%eax),%ecx
409a97:	89 4e 04             	mov    %ecx,0x4(%esi)
409a9a:	e8 8d f9 ff ff       	call   0x40942c
409a9f:	89 70 24             	mov    %esi,0x24(%eax)
409aa2:	8b c6                	mov    %esi,%eax
409aa4:	5e                   	pop    %esi
409aa5:	5d                   	pop    %ebp
409aa6:	c3                   	ret
409aa7:	55                   	push   %ebp
409aa8:	8b ec                	mov    %esp,%ebp
409aaa:	56                   	push   %esi
409aab:	e8 7c f9 ff ff       	call   0x40942c
409ab0:	8b 75 08             	mov    0x8(%ebp),%esi
409ab3:	3b 70 24             	cmp    0x24(%eax),%esi
409ab6:	75 0e                	jne    0x409ac6
409ab8:	8b 76 04             	mov    0x4(%esi),%esi
409abb:	e8 6c f9 ff ff       	call   0x40942c
409ac0:	89 70 24             	mov    %esi,0x24(%eax)
409ac3:	5e                   	pop    %esi
409ac4:	5d                   	pop    %ebp
409ac5:	c3                   	ret
409ac6:	e8 61 f9 ff ff       	call   0x40942c
409acb:	8b 48 24             	mov    0x24(%eax),%ecx
409ace:	83 c1 04             	add    $0x4,%ecx
409ad1:	eb 07                	jmp    0x409ada
409ad3:	3b f0                	cmp    %eax,%esi
409ad5:	74 0b                	je     0x409ae2
409ad7:	8d 48 04             	lea    0x4(%eax),%ecx
409ada:	8b 01                	mov    (%ecx),%eax
409adc:	85 c0                	test   %eax,%eax
409ade:	74 09                	je     0x409ae9
409ae0:	eb f1                	jmp    0x409ad3
409ae2:	8b 46 04             	mov    0x4(%esi),%eax
409ae5:	89 01                	mov    %eax,(%ecx)
409ae7:	eb da                	jmp    0x409ac3
409ae9:	e8 0d 28 00 00       	call   0x40c2fb
409aee:	cc                   	int3
409aef:	55                   	push   %ebp
409af0:	8b ec                	mov    %esp,%ebp
409af2:	51                   	push   %ecx
409af3:	53                   	push   %ebx
409af4:	fc                   	cld
409af5:	8b 45 0c             	mov    0xc(%ebp),%eax
409af8:	8b 48 08             	mov    0x8(%eax),%ecx
409afb:	33 4d 0c             	xor    0xc(%ebp),%ecx
409afe:	e8 f2 f0 ff ff       	call   0x408bf5
409b03:	8b 45 08             	mov    0x8(%ebp),%eax
409b06:	8b 40 04             	mov    0x4(%eax),%eax
409b09:	83 e0 66             	and    $0x66,%eax
409b0c:	74 11                	je     0x409b1f
409b0e:	8b 45 0c             	mov    0xc(%ebp),%eax
409b11:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
409b18:	33 c0                	xor    %eax,%eax
409b1a:	40                   	inc    %eax
409b1b:	eb 6c                	jmp    0x409b89
409b1d:	eb 6a                	jmp    0x409b89
409b1f:	6a 01                	push   $0x1
409b21:	8b 45 0c             	mov    0xc(%ebp),%eax
409b24:	ff 70 18             	push   0x18(%eax)
409b27:	8b 45 0c             	mov    0xc(%ebp),%eax
409b2a:	ff 70 14             	push   0x14(%eax)
409b2d:	8b 45 0c             	mov    0xc(%ebp),%eax
409b30:	ff 70 0c             	push   0xc(%eax)
409b33:	6a 00                	push   $0x0
409b35:	ff 75 10             	push   0x10(%ebp)
409b38:	8b 45 0c             	mov    0xc(%ebp),%eax
409b3b:	ff 70 10             	push   0x10(%eax)
409b3e:	ff 75 08             	push   0x8(%ebp)
409b41:	e8 dc 0d 00 00       	call   0x40a922
409b46:	83 c4 20             	add    $0x20,%esp
409b49:	8b 45 0c             	mov    0xc(%ebp),%eax
409b4c:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
409b50:	75 0b                	jne    0x409b5d
409b52:	ff 75 08             	push   0x8(%ebp)
409b55:	ff 75 0c             	push   0xc(%ebp)
409b58:	e8 a2 fe ff ff       	call   0x4099ff
409b5d:	6a 00                	push   $0x0
409b5f:	6a 00                	push   $0x0
409b61:	6a 00                	push   $0x0
409b63:	6a 00                	push   $0x0
409b65:	6a 00                	push   $0x0
409b67:	8d 45 fc             	lea    -0x4(%ebp),%eax
409b6a:	50                   	push   %eax
409b6b:	68 23 01 00 00       	push   $0x123
409b70:	e8 64 fd ff ff       	call   0x4098d9
409b75:	83 c4 1c             	add    $0x1c,%esp
409b78:	8b 45 fc             	mov    -0x4(%ebp),%eax
409b7b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
409b7e:	8b 63 1c             	mov    0x1c(%ebx),%esp
409b81:	8b 6b 20             	mov    0x20(%ebx),%ebp
409b84:	ff e0                	jmp    *%eax
409b86:	33 c0                	xor    %eax,%eax
409b88:	40                   	inc    %eax
409b89:	5b                   	pop    %ebx
409b8a:	c9                   	leave
409b8b:	c3                   	ret
409b8c:	55                   	push   %ebp
409b8d:	8b ec                	mov    %esp,%ebp
409b8f:	83 ec 08             	sub    $0x8,%esp
409b92:	53                   	push   %ebx
409b93:	56                   	push   %esi
409b94:	57                   	push   %edi
409b95:	fc                   	cld
409b96:	89 45 fc             	mov    %eax,-0x4(%ebp)
409b99:	33 c0                	xor    %eax,%eax
409b9b:	50                   	push   %eax
409b9c:	50                   	push   %eax
409b9d:	50                   	push   %eax
409b9e:	ff 75 fc             	push   -0x4(%ebp)
409ba1:	ff 75 14             	push   0x14(%ebp)
409ba4:	ff 75 10             	push   0x10(%ebp)
409ba7:	ff 75 0c             	push   0xc(%ebp)
409baa:	ff 75 08             	push   0x8(%ebp)
409bad:	e8 70 0d 00 00       	call   0x40a922