585d58:	89 65 f0             	mov    %esp,-0x10(%ebp)
585d5b:	8b 7d 08             	mov    0x8(%ebp),%edi
585d5e:	33 c0                	xor    %eax,%eax
585d60:	89 45 e8             	mov    %eax,-0x18(%ebp)
585d63:	8b 07                	mov    (%edi),%eax
585d65:	8b 40 04             	mov    0x4(%eax),%eax
585d68:	83 7c 38 24 00       	cmpl   $0x0,0x24(%eax,%edi,1)
585d6d:	8b 5c 38 20          	mov    0x20(%eax,%edi,1),%ebx
585d71:	7c 11                	jl     0x585d84
585d73:	7f 04                	jg     0x585d79
585d75:	85 db                	test   %ebx,%ebx
585d77:	74 0b                	je     0x585d84
585d79:	8b 45 10             	mov    0x10(%ebp),%eax
585d7c:	3b d8                	cmp    %eax,%ebx
585d7e:	76 04                	jbe    0x585d84
585d80:	2b d8                	sub    %eax,%ebx
585d82:	eb 02                	jmp    0x585d86
585d84:	33 db                	xor    %ebx,%ebx
585d86:	57                   	push   %edi
585d87:	8d 4d d8             	lea    -0x28(%ebp),%ecx
585d8a:	e8 31 81 ec ff       	call   0x44dec0
585d8f:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
585d93:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
585d9a:	75 0a                	jne    0x585da6
585d9c:	b9 04 00 00 00       	mov    $0x4,%ecx
585da1:	e9 5d 01 00 00       	jmp    0x585f03
585da6:	8b 0f                	mov    (%edi),%ecx
585da8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
585dac:	8b 41 04             	mov    0x4(%ecx),%eax
585daf:	8b 44 38 14          	mov    0x14(%eax,%edi,1),%eax
585db3:	25 c0 01 00 00       	and    $0x1c0,%eax
585db8:	83 f8 40             	cmp    $0x40,%eax
585dbb:	74 6b                	je     0x585e28
585dbd:	0f 1f 00             	nopl   (%eax)
585dc0:	85 db                	test   %ebx,%ebx
585dc2:	74 62                	je     0x585e26
585dc4:	8b 07                	mov    (%edi),%eax
585dc6:	8b 40 04             	mov    0x4(%eax),%eax
585dc9:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
585dcd:	8a 54 38 40          	mov    0x40(%eax,%edi,1),%dl
585dd1:	88 55 ef             	mov    %dl,-0x11(%ebp)
585dd4:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
585dd7:	8b 41 20             	mov    0x20(%ecx),%eax
585dda:	83 38 00             	cmpl   $0x0,(%eax)
585ddd:	74 20                	je     0x585dff
585ddf:	8b 71 30             	mov    0x30(%ecx),%esi
585de2:	8b 06                	mov    (%esi),%eax
585de4:	85 c0                	test   %eax,%eax
585de6:	7e 17                	jle    0x585dff
585de8:	48                   	dec    %eax
585de9:	89 06                	mov    %eax,(%esi)
585deb:	8b 49 20             	mov    0x20(%ecx),%ecx
585dee:	8b 11                	mov    (%ecx),%edx
585df0:	8d 42 01             	lea    0x1(%edx),%eax
585df3:	89 01                	mov    %eax,(%ecx)
585df5:	8a 45 ef             	mov    -0x11(%ebp),%al
585df8:	88 02                	mov    %al,(%edx)
585dfa:	0f b6 c0             	movzbl %al,%eax
585dfd:	eb 16                	jmp    0x585e15
585dff:	0f b6 c2             	movzbl %dl,%eax
585e02:	8b 11                	mov    (%ecx),%edx
585e04:	50                   	push   %eax
585e05:	8b 72 0c             	mov    0xc(%edx),%esi
585e08:	8b ce                	mov    %esi,%ecx
585e0a:	ff 15 e0 24 68 00    	call   *0x6824e0
585e10:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
585e13:	ff d6                	call   *%esi
585e15:	83 f8 ff             	cmp    $0xffffffff,%eax
585e18:	75 09                	jne    0x585e23
585e1a:	c7 45 e8 04 00 00 00 	movl   $0x4,-0x18(%ebp)
585e21:	eb 31                	jmp    0x585e54
585e23:	4b                   	dec    %ebx
585e24:	eb 9a                	jmp    0x585dc0
585e26:	8b 0f                	mov    (%edi),%ecx
585e28:	8b 41 04             	mov    0x4(%ecx),%eax
585e2b:	6a 00                	push   $0x0
585e2d:	ff 75 10             	push   0x10(%ebp)
585e30:	8b 7c 38 38          	mov    0x38(%eax,%edi,1),%edi
585e34:	ff 75 0c             	push   0xc(%ebp)
585e37:	8b 37                	mov    (%edi),%esi
585e39:	8b 76 24             	mov    0x24(%esi),%esi
585e3c:	8b ce                	mov    %esi,%ecx
585e3e:	ff 15 e0 24 68 00    	call   *0x6824e0
585e44:	8b cf                	mov    %edi,%ecx
585e46:	ff d6                	call   *%esi
585e48:	3b 45 10             	cmp    0x10(%ebp),%eax
585e4b:	75 6c                	jne    0x585eb9
585e4d:	85 d2                	test   %edx,%edx
585e4f:	75 68                	jne    0x585eb9
585e51:	8b 7d 08             	mov    0x8(%ebp),%edi
585e54:	85 db                	test   %ebx,%ebx
585e56:	74 6b                	je     0x585ec3
585e58:	8b 07                	mov    (%edi),%eax
585e5a:	8b 40 04             	mov    0x4(%eax),%eax
585e5d:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
585e61:	8a 54 38 40          	mov    0x40(%eax,%edi,1),%dl
585e65:	88 55 ef             	mov    %dl,-0x11(%ebp)
585e68:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
585e6b:	8b 41 20             	mov    0x20(%ecx),%eax
585e6e:	83 38 00             	cmpl   $0x0,(%eax)
585e71:	74 20                	je     0x585e93
585e73:	8b 71 30             	mov    0x30(%ecx),%esi
585e76:	8b 06                	mov    (%esi),%eax
585e78:	85 c0                	test   %eax,%eax
585e7a:	7e 17                	jle    0x585e93
585e7c:	48                   	dec    %eax
585e7d:	89 06                	mov    %eax,(%esi)
585e7f:	8b 49 20             	mov    0x20(%ecx),%ecx
585e82:	8b 11                	mov    (%ecx),%edx
585e84:	8d 42 01             	lea    0x1(%edx),%eax
585e87:	89 01                	mov    %eax,(%ecx)
585e89:	8a 45 ef             	mov    -0x11(%ebp),%al
585e8c:	88 02                	mov    %al,(%edx)
585e8e:	0f b6 c0             	movzbl %al,%eax
585e91:	eb 16                	jmp    0x585ea9
585e93:	0f b6 c2             	movzbl %dl,%eax
585e96:	8b 11                	mov    (%ecx),%edx
585e98:	50                   	push   %eax
585e99:	8b 72 0c             	mov    0xc(%edx),%esi
585e9c:	8b ce                	mov    %esi,%ecx
585e9e:	ff 15 e0 24 68 00    	call   *0x6824e0
585ea4:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
585ea7:	ff d6                	call   *%esi
585ea9:	83 f8 ff             	cmp    $0xffffffff,%eax
585eac:	75 08                	jne    0x585eb6
585eae:	8b 4d e8             	mov    -0x18(%ebp),%ecx
585eb1:	83 c9 04             	or     $0x4,%ecx
585eb4:	eb 10                	jmp    0x585ec6
585eb6:	4b                   	dec    %ebx
585eb7:	eb 9b                	jmp    0x585e54
585eb9:	8b 7d 08             	mov    0x8(%ebp),%edi
585ebc:	b9 04 00 00 00       	mov    $0x4,%ecx
585ec1:	eb 03                	jmp    0x585ec6
585ec3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
585ec6:	8b 07                	mov    (%edi),%eax
585ec8:	8b 40 04             	mov    0x4(%eax),%eax
585ecb:	c7 44 38 20 00 00 00 	movl   $0x0,0x20(%eax,%edi,1)
585ed2:	00
585ed3:	c7 44 38 24 00 00 00 	movl   $0x0,0x24(%eax,%edi,1)
585eda:	00
585edb:	eb 1f                	jmp    0x585efc
585edd:	8b 55 08             	mov    0x8(%ebp),%edx
585ee0:	6a 01                	push   $0x1
585ee2:	6a 04                	push   $0x4
585ee4:	8b 02                	mov    (%edx),%eax
585ee6:	8b 48 04             	mov    0x4(%eax),%ecx
585ee9:	03 ca                	add    %edx,%ecx
585eeb:	e8 a0 ba ec ff       	call   0x451990
585ef0:	b8 f6 5e 58 00       	mov    $0x585ef6,%eax
585ef5:	c3                   	ret
585ef6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
585ef9:	8b 7d 08             	mov    0x8(%ebp),%edi
585efc:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
585f03:	8b 07                	mov    (%edi),%eax
585f05:	33 f6                	xor    %esi,%esi
585f07:	8b 50 04             	mov    0x4(%eax),%edx
585f0a:	8b 44 3a 0c          	mov    0xc(%edx,%edi,1),%eax
585f0e:	03 d7                	add    %edi,%edx
585f10:	0b c1                	or     %ecx,%eax
585f12:	b9 04 00 00 00       	mov    $0x4,%ecx
585f17:	39 72 38             	cmp    %esi,0x38(%edx)
585f1a:	0f 45 ce             	cmovne %esi,%ecx
585f1d:	0b c8                	or     %eax,%ecx
585f1f:	8b 42 10             	mov    0x10(%edx),%eax
585f22:	83 e1 17             	and    $0x17,%ecx
585f25:	89 4a 0c             	mov    %ecx,0xc(%edx)
585f28:	23 c1                	and    %ecx,%eax
585f2a:	75 51                	jne    0x585f7d
585f2c:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
585f33:	e8 36 85 04 00       	call   0x5ce46e
585f38:	84 c0                	test   %al,%al
585f3a:	75 08                	jne    0x585f44
585f3c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
585f3f:	e8 bc a5 ec ff       	call   0x450500
585f44:	8b 4d d8             	mov    -0x28(%ebp),%ecx
585f47:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
585f4b:	8b 01                	mov    (%ecx),%eax
585f4d:	8b 40 04             	mov    0x4(%eax),%eax
585f50:	8b 5c 08 38          	mov    0x38(%eax,%ecx,1),%ebx
585f54:	85 db                	test   %ebx,%ebx
585f56:	74 11                	je     0x585f69
585f58:	8b 13                	mov    (%ebx),%edx
585f5a:	8b 72 08             	mov    0x8(%edx),%esi
585f5d:	8b ce                	mov    %esi,%ecx
585f5f:	ff 15 e0 24 68 00    	call   *0x6824e0
585f65:	8b cb                	mov    %ebx,%ecx
585f67:	ff d6                	call   *%esi
585f69:	8b c7                	mov    %edi,%eax
585f6b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
585f6e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
585f75:	59                   	pop    %ecx
585f76:	5f                   	pop    %edi
585f77:	5e                   	pop    %esi
585f78:	5b                   	pop    %ebx
585f79:	8b e5                	mov    %ebp,%esp
585f7b:	5d                   	pop    %ebp
585f7c:	c3                   	ret
585f7d:	a8 04                	test   $0x4,%al
585f7f:	74 07                	je     0x585f88
585f81:	be 34 c4 68 00       	mov    $0x68c434,%esi
585f86:	eb 0f                	jmp    0x585f97
585f88:	a8 02                	test   $0x2,%al
585f8a:	be 4c c4 68 00       	mov    $0x68c44c,%esi
585f8f:	b8 64 c4 68 00       	mov    $0x68c464,%eax
585f94:	0f 44 f0             	cmove  %eax,%esi
585f97:	8d 45 e0             	lea    -0x20(%ebp),%eax
585f9a:	6a 01                	push   $0x1
585f9c:	50                   	push   %eax
585f9d:	e8 2e 40 eb ff       	call   0x439fd0
585fa2:	83 c4 08             	add    $0x8,%esp
585fa5:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
585fa8:	50                   	push   %eax
585fa9:	56                   	push   %esi
585faa:	e8 41 45 eb ff       	call   0x43a4f0
585faf:	68 0c 60 70 00       	push   $0x70600c
585fb4:	8d 45 c4             	lea    -0x3c(%ebp),%eax
585fb7:	50                   	push   %eax
585fb8:	e8 75 ca 05 00       	call   0x5e2a32
585fbd:	cc                   	int3
585fbe:	cc                   	int3
585fbf:	cc                   	int3
585fc0:	55                   	push   %ebp
585fc1:	8b ec                	mov    %esp,%ebp
585fc3:	51                   	push   %ecx
585fc4:	c7 01 44 c9 6b 00    	movl   $0x6bc944,(%ecx)
585fca:	8b c1                	mov    %ecx,%eax
585fcc:	c7 41 14 00 00 00 00 	movl   $0x0,0x14(%ecx)
585fd3:	c7 41 18 0f 00 00 00 	movl   $0xf,0x18(%ecx)
585fda:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
585fde:	89 4d fc             	mov    %ecx,-0x4(%ebp)
585fe1:	66 c7 41 1c 00 00    	movw   $0x0,0x1c(%ecx)
585fe7:	c6 41 1e 00          	movb   $0x0,0x1e(%ecx)
585feb:	8b e5                	mov    %ebp,%esp
585fed:	5d                   	pop    %ebp
585fee:	c3                   	ret
585fef:	cc                   	int3
585ff0:	c7 01 40 37 6c 00    	movl   $0x6c3740,(%ecx)
585ff6:	c3                   	ret
585ff7:	cc                   	int3
585ff8:	cc                   	int3
585ff9:	cc                   	int3
585ffa:	cc                   	int3
585ffb:	cc                   	int3
585ffc:	cc                   	int3
585ffd:	cc                   	int3
585ffe:	cc                   	int3
585fff:	cc                   	int3
586000:	55                   	push   %ebp
586001:	8b ec                	mov    %esp,%ebp
586003:	8b 45 08             	mov    0x8(%ebp),%eax
586006:	8b d0                	mov    %eax,%edx
586008:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
58600c:	72 02                	jb     0x586010
58600e:	8b 10                	mov    (%eax),%edx
586010:	ff 70 10             	push   0x10(%eax)
586013:	52                   	push   %edx
586014:	e8 a7 f0 eb ff       	call   0x4450c0
586019:	5d                   	pop    %ebp
58601a:	c2 04 00             	ret    $0x4
58601d:	cc                   	int3
58601e:	cc                   	int3
58601f:	cc                   	int3
586020:	55                   	push   %ebp
586021:	8b ec                	mov    %esp,%ebp
586023:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
586027:	56                   	push   %esi
586028:	8b f1                	mov    %ecx,%esi
58602a:	c7 06 40 37 6c 00    	movl   $0x6c3740,(%esi)
586030:	74 0b                	je     0x58603d
586032:	6a 04                	push   $0x4
586034:	56                   	push   %esi
586035:	e8 38 b0 05 00       	call   0x5e1072
58603a:	83 c4 08             	add    $0x8,%esp
58603d:	8b c6                	mov    %esi,%eax
58603f:	5e                   	pop    %esi
586040:	5d                   	pop    %ebp
586041:	c2 04 00             	ret    $0x4
586044:	cc                   	int3
586045:	cc                   	int3
586046:	cc                   	int3
586047:	cc                   	int3
586048:	cc                   	int3
586049:	cc                   	int3
58604a:	cc                   	int3
58604b:	cc                   	int3
58604c:	cc                   	int3
58604d:	cc                   	int3
58604e:	cc                   	int3
58604f:	cc                   	int3
586050:	55                   	push   %ebp
586051:	8b ec                	mov    %esp,%ebp
586053:	83 ec 20             	sub    $0x20,%esp
586056:	8b 4d 10             	mov    0x10(%ebp),%ecx
586059:	8b 55 08             	mov    0x8(%ebp),%edx
58605c:	53                   	push   %ebx
58605d:	56                   	push   %esi
58605e:	ff 09                	decl   (%ecx)
586060:	8b 01                	mov    (%ecx),%eax
586062:	8b 75 0c             	mov    0xc(%ebp),%esi
586065:	57                   	push   %edi
586066:	89 75 f8             	mov    %esi,-0x8(%ebp)
586069:	c6 00 00             	movb   $0x0,(%eax)
58606c:	89 55 fc             	mov    %edx,-0x4(%ebp)
58606f:	90                   	nop
586070:	8b c2                	mov    %edx,%eax
586072:	ff 09                	decl   (%ecx)
586074:	bb cd cc cc cc       	mov    $0xcccccccd,%ebx
586079:	f7 e3                	mul    %ebx
58607b:	8b fa                	mov    %edx,%edi
58607d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
586080:	8b 45 fc             	mov    -0x4(%ebp),%eax
586083:	ba cc cc cc cc       	mov    $0xcccccccc,%edx
586088:	f7 e2                	mul    %edx
58608a:	89 55 ec             	mov    %edx,-0x14(%ebp)
58608d:	8b d8                	mov    %eax,%ebx
58608f:	8b c6                	mov    %esi,%eax
586091:	ba cd cc cc cc       	mov    $0xcccccccd,%edx
586096:	f7 e2                	mul    %edx
586098:	8b f0                	mov    %eax,%esi
58609a:	89 55 f4             	mov    %edx,-0xc(%ebp)
58609d:	8b 45 f8             	mov    -0x8(%ebp),%eax
5860a0:	ba cc cc cc cc       	mov    $0xcccccccc,%edx
5860a5:	f7 e2                	mul    %edx
5860a7:	03 f7                	add    %edi,%esi
5860a9:	89 55 f8             	mov    %edx,-0x8(%ebp)
5860ac:	8b 55 f4             	mov    -0xc(%ebp),%edx
5860af:	83 d2 00             	adc    $0x0,%edx
5860b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
5860b5:	03 de                	add    %esi,%ebx
5860b7:	8b 75 f8             	mov    -0x8(%ebp),%esi
5860ba:	89 5d f0             	mov    %ebx,-0x10(%ebp)
5860bd:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5860c0:	83 d3 00             	adc    $0x0,%ebx
5860c3:	33 c0                	xor    %eax,%eax
5860c5:	03 d3                	add    %ebx,%edx
5860c7:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5860ca:	13 c0                	adc    %eax,%eax
5860cc:	03 da                	add    %edx,%ebx
5860ce:	13 f0                	adc    %eax,%esi
5860d0:	0f ac f3 03          	shrd   $0x3,%esi,%ebx
5860d4:	8a c3                	mov    %bl,%al
5860d6:	c1 ee 03             	shr    $0x3,%esi
5860d9:	c0 e0 02             	shl    $0x2,%al
5860dc:	89 75 f8             	mov    %esi,-0x8(%ebp)
5860df:	8d 14 18             	lea    (%eax,%ebx,1),%edx
5860e2:	8b 01                	mov    (%ecx),%eax
5860e4:	02 d2                	add    %dl,%dl
5860e6:	28 55 fc             	sub    %dl,-0x4(%ebp)
5860e9:	8b 55 fc             	mov    -0x4(%ebp),%edx
5860ec:	80 c2 30             	add    $0x30,%dl