584b77:	8b 44 24 2c          	mov    0x2c(%esp),%eax
584b7b:	8b 40 04             	mov    0x4(%eax),%eax
584b7e:	85 c0                	test   %eax,%eax
584b80:	75 07                	jne    0x584b89
584b82:	b8 04 00 00 00       	mov    $0x4,%eax
584b87:	eb 68                	jmp    0x584bf1
584b89:	50                   	push   %eax
584b8a:	e8 a1 35 fd ff       	call   0x558130
584b8f:	50                   	push   %eax
584b90:	8d 44 24 18          	lea    0x18(%esp),%eax
584b94:	50                   	push   %eax
584b95:	e8 86 72 f5 ff       	call   0x4dbe20
584b9a:	83 c4 0c             	add    $0xc,%esp
584b9d:	83 f8 01             	cmp    $0x1,%eax
584ba0:	75 5a                	jne    0x584bfc
584ba2:	ff 74 24 10          	push   0x10(%esp)
584ba6:	57                   	push   %edi
584ba7:	e8 24 14 00 00       	call   0x585fd0
584bac:	83 c4 08             	add    $0x8,%esp
584baf:	83 f8 01             	cmp    $0x1,%eax
584bb2:	75 48                	jne    0x584bfc
584bb4:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
584bb8:	ff 73 14             	push   0x14(%ebx)
584bbb:	ff 73 10             	push   0x10(%ebx)
584bbe:	57                   	push   %edi
584bbf:	e8 8c 14 00 00       	call   0x586050
584bc4:	6a 00                	push   $0x0
584bc6:	ff 33                	push   (%ebx)
584bc8:	57                   	push   %edi
584bc9:	e8 72 11 00 00       	call   0x585d40
584bce:	83 c4 18             	add    $0x18,%esp
584bd1:	83 f8 01             	cmp    $0x1,%eax
584bd4:	74 07                	je     0x584bdd
584bd6:	b8 04 00 00 00       	mov    $0x4,%eax
584bdb:	eb 14                	jmp    0x584bf1
584bdd:	56                   	push   %esi
584bde:	57                   	push   %edi
584bdf:	e8 6c 15 00 00       	call   0x586150
584be4:	48                   	dec    %eax
584be5:	83 c4 08             	add    $0x8,%esp
584be8:	f7 d8                	neg    %eax
584bea:	1b c0                	sbb    %eax,%eax
584bec:	f7 d8                	neg    %eax
584bee:	83 c0 02             	add    $0x2,%eax
584bf1:	33 db                	xor    %ebx,%ebx
584bf3:	89 46 3c             	mov    %eax,0x3c(%esi)
584bf6:	83 f8 02             	cmp    $0x2,%eax
584bf9:	0f 94 c3             	sete   %bl
584bfc:	ff 74 24 10          	push   0x10(%esp)
584c00:	e8 ab 70 f5 ff       	call   0x4dbcb0
584c05:	ff 74 24 18          	push   0x18(%esp)
584c09:	e8 a2 70 f5 ff       	call   0x4dbcb0
584c0e:	57                   	push   %edi
584c0f:	e8 8c 10 00 00       	call   0x585ca0
584c14:	83 c4 0c             	add    $0xc,%esp
584c17:	85 db                	test   %ebx,%ebx
584c19:	78 2d                	js     0x584c48
584c1b:	8b 74 24 18          	mov    0x18(%esp),%esi
584c1f:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
584c23:	23 f3                	and    %ebx,%esi
584c25:	8b 5c 24 28          	mov    0x28(%esp),%ebx
584c29:	89 74 24 18          	mov    %esi,0x18(%esp)
584c2d:	eb 04                	jmp    0x584c33
584c2f:	8b 74 24 18          	mov    0x18(%esp),%esi
584c33:	45                   	inc    %ebp
584c34:	3b 6c 24 20          	cmp    0x20(%esp),%ebp
584c38:	0f 8c 72 fe ff ff    	jl     0x584ab0
584c3e:	5f                   	pop    %edi
584c3f:	8b c6                	mov    %esi,%eax
584c41:	5e                   	pop    %esi
584c42:	5d                   	pop    %ebp
584c43:	5b                   	pop    %ebx
584c44:	83 c4 14             	add    $0x14,%esp
584c47:	c3                   	ret
584c48:	5f                   	pop    %edi
584c49:	5e                   	pop    %esi
584c4a:	5d                   	pop    %ebp
584c4b:	8b c3                	mov    %ebx,%eax
584c4d:	5b                   	pop    %ebx
584c4e:	83 c4 14             	add    $0x14,%esp
584c51:	c3                   	ret
584c52:	cc                   	int3
584c53:	cc                   	int3
584c54:	cc                   	int3
584c55:	cc                   	int3
584c56:	cc                   	int3
584c57:	cc                   	int3
584c58:	cc                   	int3
584c59:	cc                   	int3
584c5a:	cc                   	int3
584c5b:	cc                   	int3
584c5c:	cc                   	int3
584c5d:	cc                   	int3
584c5e:	cc                   	int3
584c5f:	cc                   	int3
584c60:	56                   	push   %esi
584c61:	8b 74 24 08          	mov    0x8(%esp),%esi
584c65:	85 f6                	test   %esi,%esi
584c67:	74 4c                	je     0x584cb5
584c69:	6a 29                	push   $0x29
584c6b:	68 40 d3 65 00       	push   $0x65d340
584c70:	ff 76 0c             	push   0xc(%esi)
584c73:	e8 08 bb f5 ff       	call   0x4e0780
584c78:	6a 2a                	push   $0x2a
584c7a:	68 40 d3 65 00       	push   $0x65d340
584c7f:	ff 76 20             	push   0x20(%esi)
584c82:	e8 f9 ba f5 ff       	call   0x4e0780
584c87:	6a 2b                	push   $0x2b
584c89:	68 40 d3 65 00       	push   $0x65d340
584c8e:	ff 76 2c             	push   0x2c(%esi)
584c91:	e8 ea ba f5 ff       	call   0x4e0780
584c96:	6a 2c                	push   $0x2c
584c98:	68 40 d3 65 00       	push   $0x65d340
584c9d:	ff 76 04             	push   0x4(%esi)
584ca0:	e8 db ba f5 ff       	call   0x4e0780
584ca5:	6a 2d                	push   $0x2d
584ca7:	68 40 d3 65 00       	push   $0x65d340
584cac:	56                   	push   %esi
584cad:	e8 ce ba f5 ff       	call   0x4e0780
584cb2:	83 c4 3c             	add    $0x3c,%esp
584cb5:	5e                   	pop    %esi
584cb6:	c3                   	ret
584cb7:	cc                   	int3
584cb8:	cc                   	int3
584cb9:	cc                   	int3
584cba:	cc                   	int3
584cbb:	cc                   	int3
584cbc:	cc                   	int3
584cbd:	cc                   	int3
584cbe:	cc                   	int3
584cbf:	cc                   	int3
584cc0:	8b 44 24 04          	mov    0x4(%esp),%eax
584cc4:	83 38 00             	cmpl   $0x0,(%eax)
584cc7:	75 20                	jne    0x584ce9
584cc9:	80 78 28 04          	cmpb   $0x4,0x28(%eax)
584ccd:	75 1a                	jne    0x584ce9
584ccf:	0f b6 40 29          	movzbl 0x29(%eax),%eax
584cd3:	83 e8 01             	sub    $0x1,%eax
584cd6:	74 0b                	je     0x584ce3
584cd8:	83 e8 02             	sub    $0x2,%eax
584cdb:	75 0c                	jne    0x584ce9
584cdd:	b8 1a 03 00 00       	mov    $0x31a,%eax
584ce2:	c3                   	ret
584ce3:	b8 9c 02 00 00       	mov    $0x29c,%eax
584ce8:	c3                   	ret
584ce9:	33 c0                	xor    %eax,%eax
584ceb:	c3                   	ret
584cec:	cc                   	int3
584ced:	cc                   	int3
584cee:	cc                   	int3
584cef:	cc                   	int3
584cf0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
584cf4:	8b 01                	mov    (%ecx),%eax
584cf6:	83 f8 ff             	cmp    $0xffffffff,%eax
584cf9:	74 39                	je     0x584d34
584cfb:	85 c0                	test   %eax,%eax
584cfd:	74 09                	je     0x584d08
584cff:	33 c0                	xor    %eax,%eax
584d01:	39 41 04             	cmp    %eax,0x4(%ecx)
584d04:	0f 95 c0             	setne  %al
584d07:	c3                   	ret
584d08:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
584d0c:	74 26                	je     0x584d34
584d0e:	80 79 28 04          	cmpb   $0x4,0x28(%ecx)
584d12:	75 20                	jne    0x584d34
584d14:	0f b6 41 29          	movzbl 0x29(%ecx),%eax
584d18:	83 e8 01             	sub    $0x1,%eax
584d1b:	74 05                	je     0x584d22
584d1d:	83 e8 02             	sub    $0x2,%eax
584d20:	75 12                	jne    0x584d34
584d22:	83 79 2c 00          	cmpl   $0x0,0x2c(%ecx)
584d26:	74 0c                	je     0x584d34
584d28:	83 79 30 00          	cmpl   $0x0,0x30(%ecx)
584d2c:	76 06                	jbe    0x584d34
584d2e:	b8 01 00 00 00       	mov    $0x1,%eax
584d33:	c3                   	ret
584d34:	33 c0                	xor    %eax,%eax
584d36:	c3                   	ret
584d37:	cc                   	int3
584d38:	cc                   	int3
584d39:	cc                   	int3
584d3a:	cc                   	int3
584d3b:	cc                   	int3
584d3c:	cc                   	int3
584d3d:	cc                   	int3
584d3e:	cc                   	int3
584d3f:	cc                   	int3
584d40:	6a 18                	push   $0x18
584d42:	68 40 d3 65 00       	push   $0x65d340
584d47:	6a 40                	push   $0x40
584d49:	e8 f2 bc f5 ff       	call   0x4e0a40
584d4e:	83 c4 0c             	add    $0xc,%esp
584d51:	85 c0                	test   %eax,%eax
584d53:	75 18                	jne    0x584d6d
584d55:	6a 1b                	push   $0x1b
584d57:	68 40 d3 65 00       	push   $0x65d340
584d5c:	6a 41                	push   $0x41
584d5e:	6a 64                	push   $0x64
584d60:	6a 32                	push   $0x32
584d62:	e8 19 42 f5 ff       	call   0x4d8f80
584d67:	83 c4 14             	add    $0x14,%esp
584d6a:	33 c0                	xor    %eax,%eax
584d6c:	c3                   	ret
584d6d:	c7 40 34 ff ff ff ff 	movl   $0xffffffff,0x34(%eax)
584d74:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
584d7a:	c3                   	ret
584d7b:	cc                   	int3
584d7c:	cc                   	int3
584d7d:	cc                   	int3
584d7e:	cc                   	int3
584d7f:	cc                   	int3
584d80:	56                   	push   %esi
584d81:	8b 74 24 08          	mov    0x8(%esp),%esi
584d85:	57                   	push   %edi
584d86:	68 b3 00 00 00       	push   $0xb3
584d8b:	68 40 d3 65 00       	push   $0x65d340
584d90:	ff 76 2c             	push   0x2c(%esi)
584d93:	e8 e8 b9 f5 ff       	call   0x4e0780
584d98:	8b 44 24 1c          	mov    0x1c(%esp),%eax
584d9c:	83 c4 0c             	add    $0xc,%esp
584d9f:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
584da6:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)
584dad:	c7 46 3c 00 00 00 00 	movl   $0x0,0x3c(%esi)
584db4:	85 c0                	test   %eax,%eax
584db6:	74 43                	je     0x584dfb
584db8:	8b 7c 24 14          	mov    0x14(%esp),%edi
584dbc:	85 ff                	test   %edi,%edi
584dbe:	74 3b                	je     0x584dfb
584dc0:	68 b9 00 00 00       	push   $0xb9
584dc5:	68 40 d3 65 00       	push   $0x65d340
584dca:	57                   	push   %edi
584dcb:	50                   	push   %eax
584dcc:	e8 9f d2 f5 ff       	call   0x4e2070
584dd1:	83 c4 10             	add    $0x10,%esp
584dd4:	89 46 2c             	mov    %eax,0x2c(%esi)
584dd7:	85 c0                	test   %eax,%eax
584dd9:	75 1d                	jne    0x584df8
584ddb:	68 bb 00 00 00       	push   $0xbb
584de0:	68 40 d3 65 00       	push   $0x65d340
584de5:	6a 41                	push   $0x41
584de7:	6a 74                	push   $0x74
584de9:	6a 32                	push   $0x32
584deb:	e8 90 41 f5 ff       	call   0x4d8f80
584df0:	83 c4 14             	add    $0x14,%esp
584df3:	33 c0                	xor    %eax,%eax
584df5:	5f                   	pop    %edi
584df6:	5e                   	pop    %esi
584df7:	c3                   	ret
584df8:	89 7e 30             	mov    %edi,0x30(%esi)
584dfb:	5f                   	pop    %edi
584dfc:	b8 01 00 00 00       	mov    $0x1,%eax
584e01:	5e                   	pop    %esi
584e02:	c3                   	ret
584e03:	cc                   	int3
584e04:	cc                   	int3
584e05:	cc                   	int3
584e06:	cc                   	int3
584e07:	cc                   	int3
584e08:	cc                   	int3
584e09:	cc                   	int3
584e0a:	cc                   	int3
584e0b:	cc                   	int3
584e0c:	cc                   	int3
584e0d:	cc                   	int3
584e0e:	cc                   	int3
584e0f:	cc                   	int3
584e10:	8b 4c 24 04          	mov    0x4(%esp),%ecx
584e14:	8b 44 24 08          	mov    0x8(%esp),%eax
584e18:	89 41 38             	mov    %eax,0x38(%ecx)
584e1b:	c7 41 3c 00 00 00 00 	movl   $0x0,0x3c(%ecx)
584e22:	83 e8 01             	sub    $0x1,%eax
584e25:	74 0a                	je     0x584e31
584e27:	83 e8 01             	sub    $0x1,%eax
584e2a:	74 12                	je     0x584e3e
584e2c:	83 e8 01             	sub    $0x1,%eax
584e2f:	75 07                	jne    0x584e38
584e31:	c7 41 34 00 00 00 00 	movl   $0x0,0x34(%ecx)
584e38:	b8 01 00 00 00       	mov    $0x1,%eax
584e3d:	c3                   	ret
584e3e:	c7 41 34 01 00 00 00 	movl   $0x1,0x34(%ecx)
584e45:	b8 01 00 00 00       	mov    $0x1,%eax
584e4a:	c3                   	ret
584e4b:	cc                   	int3
584e4c:	cc                   	int3
584e4d:	cc                   	int3
584e4e:	cc                   	int3
584e4f:	cc                   	int3
584e50:	8b 44 24 04          	mov    0x4(%esp),%eax
584e54:	83 38 00             	cmpl   $0x0,(%eax)
584e57:	75 26                	jne    0x584e7f
584e59:	80 78 28 04          	cmpb   $0x4,0x28(%eax)
584e5d:	75 20                	jne    0x584e7f
584e5f:	0f b6 48 29          	movzbl 0x29(%eax),%ecx
584e63:	83 e9 01             	sub    $0x1,%ecx
584e66:	74 05                	je     0x584e6d
584e68:	83 e9 02             	sub    $0x2,%ecx
584e6b:	75 12                	jne    0x584e7f
584e6d:	83 78 2c 00          	cmpl   $0x0,0x2c(%eax)
584e71:	74 0c                	je     0x584e7f
584e73:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
584e77:	76 06                	jbe    0x584e7f
584e79:	b8 01 00 00 00       	mov    $0x1,%eax
584e7e:	c3                   	ret
584e7f:	33 c0                	xor    %eax,%eax
584e81:	c3                   	ret
584e82:	cc                   	int3
584e83:	cc                   	int3
584e84:	cc                   	int3
584e85:	cc                   	int3
584e86:	cc                   	int3
584e87:	cc                   	int3
584e88:	cc                   	int3
584e89:	cc                   	int3
584e8a:	cc                   	int3
584e8b:	cc                   	int3
584e8c:	cc                   	int3
584e8d:	cc                   	int3
584e8e:	cc                   	int3
584e8f:	cc                   	int3
584e90:	b8 04 00 00 00       	mov    $0x4,%eax
584e95:	e8 16 c9 04 00       	call   0x5d17b0
584e9a:	56                   	push   %esi
584e9b:	8b 74 24 10          	mov    0x10(%esp),%esi
584e9f:	57                   	push   %edi
584ea0:	8b 7c 24 18          	mov    0x18(%esp),%edi
584ea4:	57                   	push   %edi
584ea5:	8b 06                	mov    (%esi),%eax
584ea7:	89 44 24 18          	mov    %eax,0x18(%esp)
584eab:	8d 44 24 18          	lea    0x18(%esp),%eax
584eaf:	50                   	push   %eax
584eb0:	8d 44 24 10          	lea    0x10(%esp),%eax
584eb4:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
584ebb:	00
584ebc:	50                   	push   %eax
584ebd:	e8 9e 6a f6 ff       	call   0x4eb960
584ec2:	83 c4 0c             	add    $0xc,%esp
584ec5:	85 c0                	test   %eax,%eax
584ec7:	75 04                	jne    0x584ecd
584ec9:	5f                   	pop    %edi
584eca:	5e                   	pop    %esi
584ecb:	59                   	pop    %ecx
584ecc:	c3                   	ret
584ecd:	8b 4c 24 08          	mov    0x8(%esp),%ecx
584ed1:	53                   	push   %ebx
584ed2:	8b 41 08             	mov    0x8(%ecx),%eax
584ed5:	89 44 24 18          	mov    %eax,0x18(%esp)
584ed9:	8d 44 24 18          	lea    0x18(%esp),%eax
584edd:	ff 31                	push   (%ecx)
584edf:	50                   	push   %eax
584ee0:	ff 74 24 1c          	push   0x1c(%esp)