411a4c:	2b c1                	sub    %ecx,%eax
411a4e:	74 09                	je     0x411a59
411a50:	83 e8 05             	sub    $0x5,%eax
411a53:	75 0f                	jne    0x411a64
411a55:	8b d9                	mov    %ecx,%ebx
411a57:	eb 0b                	jmp    0x411a64
411a59:	6a 05                	push   $0x5
411a5b:	5b                   	pop    %ebx
411a5c:	eb 06                	jmp    0x411a64
411a5e:	6a 03                	push   $0x3
411a60:	eb f9                	jmp    0x411a5b
411a62:	8b df                	mov    %edi,%ebx
411a64:	8b b6 8c 00 00 00    	mov    0x8c(%esi),%esi
411a6a:	85 f6                	test   %esi,%esi
411a6c:	0f 84 91 00 00 00    	je     0x411b03
411a72:	3b d9                	cmp    %ecx,%ebx
411a74:	75 0e                	jne    0x411a84
411a76:	39 55 08             	cmp    %edx,0x8(%ebp)
411a79:	75 13                	jne    0x411a8e
411a7b:	8b 06                	mov    (%esi),%eax
411a7d:	8b ce                	mov    %esi,%ecx
411a7f:	ff 50 14             	call   *0x14(%eax)
411a82:	eb 4a                	jmp    0x411ace
411a84:	3b df                	cmp    %edi,%ebx
411a86:	75 06                	jne    0x411a8e
411a88:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
411a8c:	74 0b                	je     0x411a99
411a8e:	83 7d 08 06          	cmpl   $0x6,0x8(%ebp)
411a92:	75 36                	jne    0x411aca
411a94:	83 fb 05             	cmp    $0x5,%ebx
411a97:	75 31                	jne    0x411aca
411a99:	8b 06                	mov    (%esi),%eax
411a9b:	8b ce                	mov    %esi,%ecx
411a9d:	ff 50 14             	call   *0x14(%eax)
411aa0:	8b 4d 14             	mov    0x14(%ebp),%ecx
411aa3:	8b 09                	mov    (%ecx),%ecx
411aa5:	8b 46 50             	mov    0x50(%esi),%eax
411aa8:	89 48 0c             	mov    %ecx,0xc(%eax)
411aab:	8b 7e 44             	mov    0x44(%esi),%edi
411aae:	8b ce                	mov    %esi,%ecx
411ab0:	c7 46 44 01 00 00 00 	movl   $0x1,0x44(%esi)
411ab7:	e8 3c fc ff ff       	call   0x4116f8
411abc:	85 ff                	test   %edi,%edi
411abe:	89 7e 44             	mov    %edi,0x44(%esi)
411ac1:	75 07                	jne    0x411aca
411ac3:	8b 06                	mov    (%esi),%eax
411ac5:	8b ce                	mov    %esi,%ecx
411ac7:	ff 50 10             	call   *0x10(%eax)
411aca:	85 db                	test   %ebx,%ebx
411acc:	74 35                	je     0x411b03
411ace:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411ad1:	83 4d dc ff          	orl    $0xffffffff,-0x24(%ebp)
411ad5:	33 c0                	xor    %eax,%eax
411ad7:	89 45 e0             	mov    %eax,-0x20(%ebp)
411ada:	89 45 e4             	mov    %eax,-0x1c(%ebp)
411add:	89 45 e8             	mov    %eax,-0x18(%ebp)
411ae0:	89 45 f0             	mov    %eax,-0x10(%ebp)
411ae3:	8b 45 08             	mov    0x8(%ebp),%eax
411ae6:	89 45 f4             	mov    %eax,-0xc(%ebp)
411ae9:	8d 45 d8             	lea    -0x28(%ebp),%eax
411aec:	50                   	push   %eax
411aed:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%ebp)
411af4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
411af7:	e8 6e d1 ff ff       	call   0x40ec6a
411afc:	8b 45 f0             	mov    -0x10(%ebp),%eax
411aff:	85 c0                	test   %eax,%eax
411b01:	7c 02                	jl     0x411b05
411b03:	33 c0                	xor    %eax,%eax
411b05:	5f                   	pop    %edi
411b06:	5e                   	pop    %esi
411b07:	5b                   	pop    %ebx
411b08:	c9                   	leave
411b09:	c2 1c 00             	ret    $0x1c
411b0c:	56                   	push   %esi
411b0d:	8b f1                	mov    %ecx,%esi
411b0f:	e8 13 f4 ff ff       	call   0x410f27
411b14:	8b 44 24 08          	mov    0x8(%esp),%eax
411b18:	85 c0                	test   %eax,%eax
411b1a:	74 0b                	je     0x411b27
411b1c:	8b 08                	mov    (%eax),%ecx
411b1e:	56                   	push   %esi
411b1f:	68 38 c7 48 00       	push   $0x48c738
411b24:	50                   	push   %eax
411b25:	ff 11                	call   *(%ecx)
411b27:	8b c6                	mov    %esi,%eax
411b29:	5e                   	pop    %esi
411b2a:	c2 04 00             	ret    $0x4
411b2d:	56                   	push   %esi
411b2e:	8b f1                	mov    %ecx,%esi
411b30:	e8 04 f4 ff ff       	call   0x410f39
411b35:	8b c6                	mov    %esi,%eax
411b37:	5e                   	pop    %esi
411b38:	c3                   	ret
411b39:	56                   	push   %esi
411b3a:	ff 74 24 08          	push   0x8(%esp)
411b3e:	8b f1                	mov    %ecx,%esi
411b40:	33 c0                	xor    %eax,%eax
411b42:	89 06                	mov    %eax,(%esi)
411b44:	89 46 04             	mov    %eax,0x4(%esi)
411b47:	56                   	push   %esi
411b48:	89 46 10             	mov    %eax,0x10(%esi)
411b4b:	89 46 08             	mov    %eax,0x8(%esi)
411b4e:	89 46 0c             	mov    %eax,0xc(%esi)
411b51:	e8 70 cb ff ff       	call   0x40e6c6
411b56:	8b c6                	mov    %esi,%eax
411b58:	5e                   	pop    %esi
411b59:	c2 04 00             	ret    $0x4
411b5c:	53                   	push   %ebx
411b5d:	56                   	push   %esi
411b5e:	8b f1                	mov    %ecx,%esi
411b60:	8b 4e 08             	mov    0x8(%esi),%ecx
411b63:	57                   	push   %edi
411b64:	8b 79 04             	mov    0x4(%ecx),%edi
411b67:	33 c0                	xor    %eax,%eax
411b69:	33 db                	xor    %ebx,%ebx
411b6b:	85 ff                	test   %edi,%edi
411b6d:	76 11                	jbe    0x411b80
411b6f:	53                   	push   %ebx
411b70:	8b ce                	mov    %esi,%ecx
411b72:	e8 c8 f3 ff ff       	call   0x410f3f
411b77:	85 c0                	test   %eax,%eax
411b79:	7c 05                	jl     0x411b80
411b7b:	43                   	inc    %ebx
411b7c:	3b df                	cmp    %edi,%ebx
411b7e:	72 ef                	jb     0x411b6f
411b80:	5f                   	pop    %edi
411b81:	5e                   	pop    %esi
411b82:	5b                   	pop    %ebx
411b83:	c3                   	ret
411b84:	6a 01                	push   $0x1
411b86:	6a 00                	push   $0x0
411b88:	e8 e6 f3 ff ff       	call   0x410f73
411b8d:	c3                   	ret
411b8e:	e9 c2 c6 ff ff       	jmp    0x40e255
411b93:	55                   	push   %ebp
411b94:	8b ec                	mov    %esp,%ebp
411b96:	56                   	push   %esi
411b97:	8b 75 0c             	mov    0xc(%ebp),%esi
411b9a:	85 f6                	test   %esi,%esi
411b9c:	0f 84 93 00 00 00    	je     0x411c35
411ba2:	53                   	push   %ebx
411ba3:	8b 5d 08             	mov    0x8(%ebp),%ebx
411ba6:	f6 c7 20             	test   $0x20,%bh
411ba9:	74 0f                	je     0x411bba
411bab:	8b 06                	mov    (%esi),%eax
411bad:	85 c0                	test   %eax,%eax
411baf:	74 69                	je     0x411c1a
411bb1:	50                   	push   %eax
411bb2:	ff 15 a4 04 4b 00    	call   *0x4b04a4
411bb8:	eb 5d                	jmp    0x411c17
411bba:	0f b7 c3             	movzwl %bx,%eax
411bbd:	83 e8 08             	sub    $0x8,%eax
411bc0:	74 4d                	je     0x411c0f
411bc2:	48                   	dec    %eax
411bc3:	74 3c                	je     0x411c01
411bc5:	83 e8 03             	sub    $0x3,%eax
411bc8:	74 2e                	je     0x411bf8
411bca:	48                   	dec    %eax
411bcb:	74 34                	je     0x411c01
411bcd:	83 e8 7b             	sub    $0x7b,%eax
411bd0:	75 48                	jne    0x411c1a
411bd2:	ff 75 10             	push   0x10(%ebp)
411bd5:	8d 4d 0c             	lea    0xc(%ebp),%ecx
411bd8:	e8 2f ff ff ff       	call   0x411b0c
411bdd:	8b 45 0c             	mov    0xc(%ebp),%eax
411be0:	85 c0                	test   %eax,%eax
411be2:	74 0a                	je     0x411bee
411be4:	8b 08                	mov    (%eax),%ecx
411be6:	6a 00                	push   $0x0
411be8:	ff 36                	push   (%esi)
411bea:	50                   	push   %eax
411beb:	ff 51 10             	call   *0x10(%ecx)
411bee:	8d 4d 0c             	lea    0xc(%ebp),%ecx
411bf1:	e8 6c f7 ff ff       	call   0x411362
411bf6:	eb 22                	jmp    0x411c1a
411bf8:	56                   	push   %esi
411bf9:	ff 15 f4 04 4b 00    	call   *0x4b04f4
411bff:	eb 19                	jmp    0x411c1a
411c01:	8b 06                	mov    (%esi),%eax
411c03:	85 c0                	test   %eax,%eax
411c05:	74 13                	je     0x411c1a
411c07:	8b 08                	mov    (%eax),%ecx
411c09:	50                   	push   %eax
411c0a:	ff 51 08             	call   *0x8(%ecx)
411c0d:	eb 08                	jmp    0x411c17
411c0f:	ff 36                	push   (%esi)
411c11:	ff 15 08 05 4b 00    	call   *0x4b0508
411c17:	83 26 00             	andl   $0x0,(%esi)
411c1a:	f6 c7 10             	test   $0x10,%bh
411c1d:	74 15                	je     0x411c34
411c1f:	81 e3 00 40 00 00    	and    $0x4000,%ebx
411c25:	f7 d3                	not    %ebx
411c27:	85 db                	test   %ebx,%ebx
411c29:	74 09                	je     0x411c34
411c2b:	ff 76 04             	push   0x4(%esi)
411c2e:	ff 15 f0 0a 4b 00    	call   *0x4b0af0
411c34:	5b                   	pop    %ebx
411c35:	5e                   	pop    %esi
411c36:	5d                   	pop    %ebp
411c37:	c3                   	ret
411c38:	55                   	push   %ebp
411c39:	8b ec                	mov    %esp,%ebp
411c3b:	51                   	push   %ecx
411c3c:	56                   	push   %esi
411c3d:	57                   	push   %edi
411c3e:	33 ff                	xor    %edi,%edi
411c40:	8b f1                	mov    %ecx,%esi
411c42:	39 7e 0c             	cmp    %edi,0xc(%esi)
411c45:	89 7d fc             	mov    %edi,-0x4(%ebp)
411c48:	0f 86 ca 00 00 00    	jbe    0x411d18
411c4e:	53                   	push   %ebx
411c4f:	8b 46 10             	mov    0x10(%esi),%eax
411c52:	85 c0                	test   %eax,%eax
411c54:	74 4e                	je     0x411ca4
411c56:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411c59:	80 3c 08 01          	cmpb   $0x1,(%eax,%ecx,1)
411c5d:	75 45                	jne    0x411ca4
411c5f:	8b 46 14             	mov    0x14(%esi),%eax
411c62:	8b 4e 08             	mov    0x8(%esi),%ecx
411c65:	03 c7                	add    %edi,%eax
411c67:	8b 50 10             	mov    0x10(%eax),%edx
411c6a:	8b 40 04             	mov    0x4(%eax),%eax
411c6d:	8d 44 02 03          	lea    0x3(%edx,%eax,1),%eax
411c71:	83 e0 fc             	and    $0xfffffffc,%eax
411c74:	83 c0 04             	add    $0x4,%eax
411c77:	83 e0 fc             	and    $0xfffffffc,%eax
411c7a:	83 3c 08 03          	cmpl   $0x3,(%eax,%ecx,1)
411c7e:	0f 84 81 00 00 00    	je     0x411d05
411c84:	8b 46 14             	mov    0x14(%esi),%eax
411c87:	8b 44 07 04          	mov    0x4(%edi,%eax,1),%eax
411c8b:	8d 1c 08             	lea    (%eax,%ecx,1),%ebx
411c8e:	85 db                	test   %ebx,%ebx
411c90:	74 73                	je     0x411d05
411c92:	83 3b 00             	cmpl   $0x0,(%ebx)
411c95:	74 6e                	je     0x411d05
411c97:	ff 33                	push   (%ebx)
411c99:	ff 15 f0 0a 4b 00    	call   *0x4b0af0
411c9f:	83 23 00             	andl   $0x0,(%ebx)
411ca2:	eb 61                	jmp    0x411d05
411ca4:	8b 46 14             	mov    0x14(%esi),%eax
411ca7:	66 8b 44 07 14       	mov    0x14(%edi,%eax,1),%ax
411cac:	66 3d 0d 00          	cmp    $0xd,%ax
411cb0:	74 17                	je     0x411cc9
411cb2:	66 3d 09 00          	cmp    $0x9,%ax
411cb6:	74 11                	je     0x411cc9
411cb8:	8b 46 14             	mov    0x14(%esi),%eax
411cbb:	ff 75 08             	push   0x8(%ebp)
411cbe:	03 c7                	add    %edi,%eax
411cc0:	8b 48 04             	mov    0x4(%eax),%ecx
411cc3:	03 4e 08             	add    0x8(%esi),%ecx
411cc6:	51                   	push   %ecx
411cc7:	eb 2f                	jmp    0x411cf8
411cc9:	8b 46 14             	mov    0x14(%esi),%eax
411ccc:	8b 4e 08             	mov    0x8(%esi),%ecx
411ccf:	03 c7                	add    %edi,%eax
411cd1:	8b 50 10             	mov    0x10(%eax),%edx
411cd4:	8b 40 04             	mov    0x4(%eax),%eax
411cd7:	8d 44 02 03          	lea    0x3(%edx,%eax,1),%eax
411cdb:	83 e0 fc             	and    $0xfffffffc,%eax
411cde:	83 c0 04             	add    $0x4,%eax
411ce1:	83 e0 fc             	and    $0xfffffffc,%eax
411ce4:	83 3c 08 00          	cmpl   $0x0,(%eax,%ecx,1)
411ce8:	75 1b                	jne    0x411d05
411cea:	8b 46 14             	mov    0x14(%esi),%eax
411ced:	ff 75 08             	push   0x8(%ebp)
411cf0:	03 c7                	add    %edi,%eax
411cf2:	8b 50 04             	mov    0x4(%eax),%edx
411cf5:	03 d1                	add    %ecx,%edx
411cf7:	52                   	push   %edx
411cf8:	0f b7 40 14          	movzwl 0x14(%eax),%eax
411cfc:	50                   	push   %eax
411cfd:	e8 91 fe ff ff       	call   0x411b93
411d02:	83 c4 0c             	add    $0xc,%esp
411d05:	ff 45 fc             	incl   -0x4(%ebp)
411d08:	8b 45 fc             	mov    -0x4(%ebp),%eax
411d0b:	83 c7 30             	add    $0x30,%edi
411d0e:	3b 46 0c             	cmp    0xc(%esi),%eax
411d11:	0f 82 38 ff ff ff    	jb     0x411c4f
411d17:	5b                   	pop    %ebx
411d18:	5f                   	pop    %edi
411d19:	5e                   	pop    %esi
411d1a:	c9                   	leave
411d1b:	c2 04 00             	ret    $0x4
411d1e:	e9 8d f6 ff ff       	jmp    0x4113b0
411d23:	8b c1                	mov    %ecx,%eax
411d25:	c3                   	ret
411d26:	55                   	push   %ebp
411d27:	8b ec                	mov    %esp,%ebp
411d29:	83 ec 10             	sub    $0x10,%esp
411d2c:	53                   	push   %ebx
411d2d:	56                   	push   %esi
411d2e:	8b f1                	mov    %ecx,%esi
411d30:	33 db                	xor    %ebx,%ebx
411d32:	39 5e 48             	cmp    %ebx,0x48(%esi)
411d35:	74 11                	je     0x411d48
411d37:	e8 bc f9 ff ff       	call   0x4116f8
411d3c:	8b 06                	mov    (%esi),%eax
411d3e:	8b ce                	mov    %esi,%ecx
411d40:	ff 50 10             	call   *0x10(%eax)
411d43:	e9 9b 01 00 00       	jmp    0x411ee3
411d48:	39 5e 40             	cmp    %ebx,0x40(%esi)
411d4b:	57                   	push   %edi
411d4c:	74 3b                	je     0x411d89
411d4e:	33 ff                	xor    %edi,%edi
411d50:	39 5e 38             	cmp    %ebx,0x38(%esi)
411d53:	7e 31                	jle    0x411d86
411d55:	89 5d f8             	mov    %ebx,-0x8(%ebp)
411d58:	8b 46 40             	mov    0x40(%esi),%eax
411d5b:	03 45 f8             	add    -0x8(%ebp),%eax
411d5e:	50                   	push   %eax
411d5f:	ff 15 f4 04 4b 00    	call   *0x4b04f4
411d65:	83 45 f8 10          	addl   $0x10,-0x8(%ebp)
411d69:	47                   	inc    %edi
411d6a:	3b 7e 38             	cmp    0x38(%esi),%edi
411d6d:	7c e9                	jl     0x411d58
411d6f:	39 5e 38             	cmp    %ebx,0x38(%esi)
411d72:	7e 12                	jle    0x411d86
411d74:	ff 76 40             	push   0x40(%esi)
411d77:	e8 04 e3 02 00       	call   0x440080
411d7c:	ff 76 3c             	push   0x3c(%esi)
411d7f:	e8 fc e2 02 00       	call   0x440080
411d84:	59                   	pop    %ecx
411d85:	59                   	pop    %ecx
411d86:	89 5e 40             	mov    %ebx,0x40(%esi)
411d89:	33 c9                	xor    %ecx,%ecx
411d8b:	39 5e 10             	cmp    %ebx,0x10(%esi)
411d8e:	89 5e 38             	mov    %ebx,0x38(%esi)
411d91:	7e 17                	jle    0x411daa
411d93:	8b 46 14             	mov    0x14(%esi),%eax
411d96:	83 c0 24             	add    $0x24,%eax
411d99:	8b 10                	mov    (%eax),%edx
411d9b:	8b 52 0c             	mov    0xc(%edx),%edx
411d9e:	01 56 38             	add    %edx,0x38(%esi)
411da1:	41                   	inc    %ecx
411da2:	83 c0 28             	add    $0x28,%eax
411da5:	3b 4e 10             	cmp    0x10(%esi),%ecx
411da8:	7c ef                	jl     0x411d99
411daa:	8b 46 38             	mov    0x38(%esi),%eax
411dad:	3b c3                	cmp    %ebx,%eax
411daf:	7e 10                	jle    0x411dc1
411db1:	8d 04 40             	lea    (%eax,%eax,2),%eax
411db4:	c1 e0 04             	shl    $0x4,%eax
411db7:	50                   	push   %eax
411db8:	e8 98 e2 02 00       	call   0x440055
411dbd:	59                   	pop    %ecx
411dbe:	89 46 3c             	mov    %eax,0x3c(%esi)
411dc1:	33 ff                	xor    %edi,%edi
411dc3:	39 5e 10             	cmp    %ebx,0x10(%esi)
411dc6:	89 7d f8             	mov    %edi,-0x8(%ebp)
411dc9:	89 5d f4             	mov    %ebx,-0xc(%ebp)