58ea63:	00 00                	add    %al,(%eax)
58ea65:	00 80 bf 00 00 00    	add    %al,0xbf(%eax)
58ea6b:	00 53 56             	add    %dl,0x56(%ebx)
58ea6e:	57                   	push   %edi
58ea6f:	55                   	push   %ebp
58ea70:	50                   	push   %eax
58ea71:	b8 05 00 00 00       	mov    $0x5,%eax
58ea76:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
58ea7c:	50                   	push   %eax
58ea7d:	48                   	dec    %eax
58ea7e:	75 f6                	jne    0x58ea76
58ea80:	8b 84 24 00 50 00 00 	mov    0x5000(%esp),%eax
58ea87:	81 c4 70 ff ff ff    	add    $0xffffff70,%esp
58ea8d:	8b f8                	mov    %eax,%edi
58ea8f:	33 c0                	xor    %eax,%eax
58ea91:	89 44 24 04          	mov    %eax,0x4(%esp)
58ea95:	8d 44 24 64          	lea    0x64(%esp),%eax
58ea99:	89 44 24 40          	mov    %eax,0x40(%esp)
58ea9d:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
58eaa4:	00
58eaa5:	8b 44 24 08          	mov    0x8(%esp),%eax
58eaa9:	83 e0 01             	and    $0x1,%eax
58eaac:	c1 e0 05             	shl    $0x5,%eax
58eaaf:	8d 04 80             	lea    (%eax,%eax,4),%eax
58eab2:	8b 54 24 40          	mov    0x40(%esp),%edx
58eab6:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
58eab9:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58eac0:	b9 10 00 00 00       	mov    $0x10,%ecx
58eac5:	33 d2                	xor    %edx,%edx
58eac7:	e8 e8 a6 ff ff       	call   0x5891b4
58eacc:	c7 44 24 10 ff ff ff 	movl   $0xffffffff,0x10(%esp)
58ead3:	ff
58ead4:	c7 44 24 0c ff ff ff 	movl   $0xffffffff,0xc(%esp)
58eadb:	ff
58eadc:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
58eae1:	0f 94 c0             	sete   %al
58eae4:	83 e0 7f             	and    $0x7f,%eax
58eae7:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
58eaec:	0f 94 c2             	sete   %dl
58eaef:	83 e2 7f             	and    $0x7f,%edx
58eaf2:	03 c2                	add    %edx,%eax
58eaf4:	83 f8 02             	cmp    $0x2,%eax
58eaf7:	74 5a                	je     0x58eb53
58eaf9:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58eafd:	03 4c 24 10          	add    0x10(%esp),%ecx
58eb01:	03 c9                	add    %ecx,%ecx
58eb03:	83 e1 0e             	and    $0xe,%ecx
58eb06:	8b 54 24 08          	mov    0x8(%esp),%edx
58eb0a:	03 54 24 0c          	add    0xc(%esp),%edx
58eb0e:	83 e2 01             	and    $0x1,%edx
58eb11:	03 ca                	add    %edx,%ecx
58eb13:	03 c9                	add    %ecx,%ecx
58eb15:	8b af 3c 01 00 00    	mov    0x13c(%edi),%ebp
58eb1b:	d3 ed                	shr    %cl,%ebp
58eb1d:	83 e5 03             	and    $0x3,%ebp
58eb20:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58eb26:	0f af 54 24 10       	imul   0x10(%esp),%edx
58eb2b:	03 54 24 0c          	add    0xc(%esp),%edx
58eb2f:	c1 e2 02             	shl    $0x2,%edx
58eb32:	03 d5                	add    %ebp,%edx
58eb34:	89 13                	mov    %edx,(%ebx)
58eb36:	83 c3 04             	add    $0x4,%ebx
58eb39:	89 03                	mov    %eax,(%ebx)
58eb3b:	83 c3 04             	add    $0x4,%ebx
58eb3e:	89 2b                	mov    %ebp,(%ebx)
58eb40:	83 c3 04             	add    $0x4,%ebx
58eb43:	8b c8                	mov    %eax,%ecx
58eb45:	b8 01 00 00 00       	mov    $0x1,%eax
58eb4a:	d3 e0                	shl    %cl,%eax
58eb4c:	01 84 ac 84 50 00 00 	add    %eax,0x5084(%esp,%ebp,4)
58eb53:	ff 44 24 0c          	incl   0xc(%esp)
58eb57:	83 7c 24 0c 02       	cmpl   $0x2,0xc(%esp)
58eb5c:	0f 85 7a ff ff ff    	jne    0x58eadc
58eb62:	ff 44 24 10          	incl   0x10(%esp)
58eb66:	83 7c 24 10 02       	cmpl   $0x2,0x10(%esp)
58eb6b:	0f 85 63 ff ff ff    	jne    0x58ead4
58eb71:	8b 87 00 01 00 00    	mov    0x100(%edi),%eax
58eb77:	48                   	dec    %eax
58eb78:	85 c0                	test   %eax,%eax
58eb7a:	7c 66                	jl     0x58ebe2
58eb7c:	40                   	inc    %eax
58eb7d:	89 44 24 38          	mov    %eax,0x38(%esp)
58eb81:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
58eb88:	00
58eb89:	8d b4 24 84 50 00 00 	lea    0x5084(%esp),%esi
58eb90:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58eb94:	03 c9                	add    %ecx,%ecx
58eb96:	83 e1 0e             	and    $0xe,%ecx
58eb99:	8b 44 24 08          	mov    0x8(%esp),%eax
58eb9d:	83 e0 01             	and    $0x1,%eax
58eba0:	03 c8                	add    %eax,%ecx
58eba2:	03 c9                	add    %ecx,%ecx
58eba4:	8b 87 3c 01 00 00    	mov    0x13c(%edi),%eax
58ebaa:	d3 e8                	shr    %cl,%eax
58ebac:	83 e0 03             	and    $0x3,%eax
58ebaf:	33 d2                	xor    %edx,%edx
58ebb1:	52                   	push   %edx
58ebb2:	50                   	push   %eax
58ebb3:	8b 44 24 3c          	mov    0x3c(%esp),%eax
58ebb7:	99                   	cltd
58ebb8:	3b 54 24 04          	cmp    0x4(%esp),%edx
58ebbc:	75 03                	jne    0x58ebc1
58ebbe:	3b 04 24             	cmp    (%esp),%eax
58ebc1:	5a                   	pop    %edx
58ebc2:	58                   	pop    %eax
58ebc3:	74 10                	je     0x58ebd5
58ebc5:	8b 44 24 34          	mov    0x34(%esp),%eax
58ebc9:	89 03                	mov    %eax,(%ebx)
58ebcb:	83 c3 04             	add    $0x4,%ebx
58ebce:	8b 06                	mov    (%esi),%eax
58ebd0:	89 03                	mov    %eax,(%ebx)
58ebd2:	83 c3 04             	add    $0x4,%ebx
58ebd5:	ff 44 24 34          	incl   0x34(%esp)
58ebd9:	83 c6 04             	add    $0x4,%esi
58ebdc:	ff 4c 24 38          	decl   0x38(%esp)
58ebe0:	75 ae                	jne    0x58eb90
58ebe2:	ff 44 24 08          	incl   0x8(%esp)
58ebe6:	83 7c 24 08 03       	cmpl   $0x3,0x8(%esp)
58ebeb:	0f 85 b4 fe ff ff    	jne    0x58eaa5
58ebf1:	ff 44 24 04          	incl   0x4(%esp)
58ebf5:	81 44 24 40 00 0a 00 	addl   $0xa00,0x40(%esp)
58ebfc:	00
58ebfd:	83 7c 24 04 08       	cmpl   $0x8,0x4(%esp)
58ec02:	0f 85 95 fe ff ff    	jne    0x58ea9d
58ec08:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58ec0e:	48                   	dec    %eax
58ec0f:	48                   	dec    %eax
58ec10:	85 c0                	test   %eax,%eax
58ec12:	0f 8e e9 00 00 00    	jle    0x58ed01
58ec18:	89 44 24 38          	mov    %eax,0x38(%esp)
58ec1c:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
58ec23:	00
58ec24:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ec2a:	48                   	dec    %eax
58ec2b:	48                   	dec    %eax
58ec2c:	85 c0                	test   %eax,%eax
58ec2e:	0f 8e bf 00 00 00    	jle    0x58ecf3
58ec34:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58ec38:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
58ec3f:	00
58ec40:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ec46:	f7 6c 24 04          	imull  0x4(%esp)
58ec4a:	03 44 24 08          	add    0x8(%esp),%eax
58ec4e:	8b 17                	mov    (%edi),%edx
58ec50:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58ec53:	89 04 24             	mov    %eax,(%esp)
58ec56:	8b 44 24 08          	mov    0x8(%esp),%eax
58ec5a:	83 e0 01             	and    $0x1,%eax
58ec5d:	c1 e0 05             	shl    $0x5,%eax
58ec60:	8d 04 80             	lea    (%eax,%eax,4),%eax
58ec63:	8b 54 24 04          	mov    0x4(%esp),%edx
58ec67:	83 e2 07             	and    $0x7,%edx
58ec6a:	c1 e2 06             	shl    $0x6,%edx
58ec6d:	8d 14 92             	lea    (%edx,%edx,4),%edx
58ec70:	8d 54 d4 64          	lea    0x64(%esp,%edx,8),%edx
58ec74:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
58ec77:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58ec7e:	b9 10 00 00 00       	mov    $0x10,%ecx
58ec83:	33 d2                	xor    %edx,%edx
58ec85:	e8 2a a5 ff ff       	call   0x5891b4
58ec8a:	be 08 00 00 00       	mov    $0x8,%esi
58ec8f:	4e                   	dec    %esi
58ec90:	8b 04 24             	mov    (%esp),%eax
58ec93:	8b 13                	mov    (%ebx),%edx
58ec95:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
58ec99:	83 c3 04             	add    $0x4,%ebx
58ec9c:	8b 0b                	mov    (%ebx),%ecx
58ec9e:	d3 e0                	shl    %cl,%eax
58eca0:	83 c3 04             	add    $0x4,%ebx
58eca3:	8b 13                	mov    (%ebx),%edx
58eca5:	01 84 94 84 50 00 00 	add    %eax,0x5084(%esp,%edx,4)
58ecac:	83 c3 04             	add    $0x4,%ebx
58ecaf:	85 f6                	test   %esi,%esi
58ecb1:	75 dc                	jne    0x58ec8f
58ecb3:	8b b7 00 01 00 00    	mov    0x100(%edi),%esi
58ecb9:	4e                   	dec    %esi
58ecba:	85 f6                	test   %esi,%esi
58ecbc:	74 27                	je     0x58ece5
58ecbe:	8b 03                	mov    (%ebx),%eax
58ecc0:	89 44 24 34          	mov    %eax,0x34(%esp)
58ecc4:	83 c3 04             	add    $0x4,%ebx
58ecc7:	8b 44 24 34          	mov    0x34(%esp),%eax
58eccb:	8b 84 84 84 50 00 00 	mov    0x5084(%esp,%eax,4),%eax
58ecd2:	99                   	cltd
58ecd3:	f7 3b                	idivl  (%ebx)
58ecd5:	8b 14 24             	mov    (%esp),%edx
58ecd8:	8b 4c 24 34          	mov    0x34(%esp),%ecx
58ecdc:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
58ece0:	83 c3 04             	add    $0x4,%ebx
58ece3:	eb d4                	jmp    0x58ecb9
58ece5:	ff 44 24 08          	incl   0x8(%esp)
58ece9:	ff 4c 24 3c          	decl   0x3c(%esp)
58eced:	0f 85 4d ff ff ff    	jne    0x58ec40
58ecf3:	ff 44 24 04          	incl   0x4(%esp)
58ecf7:	ff 4c 24 38          	decl   0x38(%esp)
58ecfb:	0f 85 23 ff ff ff    	jne    0x58ec24
58ed01:	83 bf dc 01 00 00 00 	cmpl   $0x0,0x1dc(%edi)
58ed08:	0f 85 7b 06 00 00    	jne    0x58f389
58ed0e:	33 c0                	xor    %eax,%eax
58ed10:	89 44 24 04          	mov    %eax,0x4(%esp)
58ed14:	8d 44 24 64          	lea    0x64(%esp),%eax
58ed18:	89 44 24 40          	mov    %eax,0x40(%esp)
58ed1c:	33 c0                	xor    %eax,%eax
58ed1e:	89 44 24 08          	mov    %eax,0x8(%esp)
58ed22:	8b 44 24 40          	mov    0x40(%esp),%eax
58ed26:	89 44 24 44          	mov    %eax,0x44(%esp)
58ed2a:	8b 44 24 44          	mov    0x44(%esp),%eax
58ed2e:	8b d8                	mov    %eax,%ebx
58ed30:	b8 34 42 6a 00       	mov    $0x6a4234,%eax
58ed35:	89 87 94 94 00 00    	mov    %eax,0x9494(%edi)
58ed3b:	c7 44 24 20 40 00 00 	movl   $0x40,0x20(%esp)
58ed42:	00
58ed43:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58ed49:	8b 00                	mov    (%eax),%eax
58ed4b:	89 44 24 18          	mov    %eax,0x18(%esp)
58ed4f:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58ed56:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58ed5c:	8b 30                	mov    (%eax),%esi
58ed5e:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58ed65:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58ed6b:	8b 00                	mov    (%eax),%eax
58ed6d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58ed71:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58ed78:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58ed7e:	8b 00                	mov    (%eax),%eax
58ed80:	89 44 24 14          	mov    %eax,0x14(%esp)
58ed84:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58ed8b:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58ed91:	8b 00                	mov    (%eax),%eax
58ed93:	89 44 24 24          	mov    %eax,0x24(%esp)
58ed97:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58ed9e:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58eda4:	8b 00                	mov    (%eax),%eax
58eda6:	89 44 24 28          	mov    %eax,0x28(%esp)
58edaa:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58edb1:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58edb5:	03 ce                	add    %esi,%ecx
58edb7:	8b 54 24 04          	mov    0x4(%esp),%edx
58edbb:	03 54 24 18          	add    0x18(%esp),%edx
58edbf:	8b c7                	mov    %edi,%eax
58edc1:	e8 16 9c ff ff       	call   0x5889dc
58edc6:	8b e8                	mov    %eax,%ebp
58edc8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58edcc:	03 4c 24 14          	add    0x14(%esp),%ecx
58edd0:	8b 54 24 04          	mov    0x4(%esp),%edx
58edd4:	03 54 24 1c          	add    0x1c(%esp),%edx
58edd8:	8b c7                	mov    %edi,%eax
58edda:	e8 fd 9b ff ff       	call   0x5889dc
58eddf:	3b e8                	cmp    %eax,%ebp
58ede1:	0f 85 bd 00 00 00    	jne    0x58eea4
58ede7:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58edeb:	41                   	inc    %ecx
58edec:	8b c7                	mov    %edi,%eax
58edee:	8b 54 24 04          	mov    0x4(%esp),%edx
58edf2:	e8 e5 9b ff ff       	call   0x5889dc
58edf7:	3b e8                	cmp    %eax,%ebp
58edf9:	75 14                	jne    0x58ee0f
58edfb:	8b 54 24 04          	mov    0x4(%esp),%edx
58edff:	42                   	inc    %edx
58ee00:	8b c7                	mov    %edi,%eax
58ee02:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58ee06:	e8 d1 9b ff ff       	call   0x5889dc
58ee0b:	3b e8                	cmp    %eax,%ebp
58ee0d:	74 04                	je     0x58ee13
58ee0f:	33 c0                	xor    %eax,%eax
58ee11:	eb 02                	jmp    0x58ee15
58ee13:	b0 01                	mov    $0x1,%al
58ee15:	b9 01 00 00 00       	mov    $0x1,%ecx
58ee1a:	ba 02 00 00 00       	mov    $0x2,%edx
58ee1f:	e8 e4 5a 07 00       	call   0x604908
58ee24:	8b c8                	mov    %eax,%ecx
58ee26:	8b 44 24 18          	mov    0x18(%esp),%eax
58ee2a:	2b 44 24 1c          	sub    0x1c(%esp),%eax
58ee2e:	99                   	cltd
58ee2f:	33 c2                	xor    %edx,%eax
58ee31:	2b c2                	sub    %edx,%eax
58ee33:	3b c8                	cmp    %eax,%ecx
58ee35:	75 0f                	jne    0x58ee46
58ee37:	8b c6                	mov    %esi,%eax
58ee39:	2b 44 24 14          	sub    0x14(%esp),%eax
58ee3d:	99                   	cltd
58ee3e:	33 c2                	xor    %edx,%eax
58ee40:	2b c2                	sub    %edx,%eax
58ee42:	3b c8                	cmp    %eax,%ecx
58ee44:	74 5e                	je     0x58eea4
58ee46:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ee4c:	f7 6c 24 18          	imull  0x18(%esp)
58ee50:	03 f0                	add    %eax,%esi
58ee52:	8b c6                	mov    %esi,%eax
58ee54:	c1 e0 02             	shl    $0x2,%eax
58ee57:	03 c5                	add    %ebp,%eax
58ee59:	89 03                	mov    %eax,(%ebx)
58ee5b:	83 c3 04             	add    $0x4,%ebx
58ee5e:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ee64:	f7 6c 24 1c          	imull  0x1c(%esp)
58ee68:	03 44 24 14          	add    0x14(%esp),%eax
58ee6c:	c1 e0 02             	shl    $0x2,%eax
58ee6f:	03 e8                	add    %eax,%ebp
58ee71:	89 2b                	mov    %ebp,(%ebx)
58ee73:	83 c3 04             	add    $0x4,%ebx
58ee76:	8b 44 24 24          	mov    0x24(%esp),%eax
58ee7a:	89 03                	mov    %eax,(%ebx)
58ee7c:	83 c3 04             	add    $0x4,%ebx
58ee7f:	33 f6                	xor    %esi,%esi
58ee81:	8b ce                	mov    %esi,%ecx
58ee83:	b8 01 00 00 00       	mov    $0x1,%eax
58ee88:	d3 e0                	shl    %cl,%eax
58ee8a:	23 44 24 28          	and    0x28(%esp),%eax
58ee8e:	74 05                	je     0x58ee95
58ee90:	89 33                	mov    %esi,(%ebx)
58ee92:	83 c3 04             	add    $0x4,%ebx
58ee95:	46                   	inc    %esi
58ee96:	83 fe 08             	cmp    $0x8,%esi
58ee99:	75 e6                	jne    0x58ee81
58ee9b:	c7 03 ff ff ff ff    	movl   $0xffffffff,(%ebx)
58eea1:	83 c3 04             	add    $0x4,%ebx
58eea4:	ff 4c 24 20          	decl   0x20(%esp)
58eea8:	0f 85 95 fe ff ff    	jne    0x58ed43
58eeae:	c7 03 ff ff ff 7f    	movl   $0x7fffffff,(%ebx)
58eeb4:	83 c3 04             	add    $0x4,%ebx
58eeb7:	b8 34 48 6a 00       	mov    $0x6a4834,%eax
58eebc:	89 87 94 94 00 00    	mov    %eax,0x9494(%edi)
58eec2:	be 08 00 00 00       	mov    $0x8,%esi
58eec7:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58eecd:	8b 00                	mov    (%eax),%eax
58eecf:	89 44 24 10          	mov    %eax,0x10(%esp)
58eed3:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58eeda:	8b 87 94 94 00 00    	mov    0x9494(%edi),%eax
58eee0:	8b 00                	mov    (%eax),%eax
58eee2:	89 44 24 0c          	mov    %eax,0xc(%esp)
58eee6:	83 87 94 94 00 00 04 	addl   $0x4,0x9494(%edi)
58eeed:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58eef3:	f7 6c 24 10          	imull  0x10(%esp)
58eef7:	03 44 24 0c          	add    0xc(%esp),%eax
58eefb:	c1 e0 02             	shl    $0x2,%eax
58eefe:	89 03                	mov    %eax,(%ebx)
58ef00:	83 c3 04             	add    $0x4,%ebx
58ef03:	8b c7                	mov    %edi,%eax
58ef05:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58ef09:	8b 54 24 04          	mov    0x4(%esp),%edx
58ef0d:	e8 ca 9a ff ff       	call   0x5889dc
58ef12:	8b e8                	mov    %eax,%ebp
58ef14:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58ef18:	03 4c 24 0c          	add    0xc(%esp),%ecx
58ef1c:	8b 54 24 04          	mov    0x4(%esp),%edx
58ef20:	03 54 24 10          	add    0x10(%esp),%edx
58ef24:	8b c7                	mov    %edi,%eax
58ef26:	e8 b1 9a ff ff       	call   0x5889dc
58ef2b:	3b e8                	cmp    %eax,%ebp
58ef2d:	74 39                	je     0x58ef68