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
58ef2f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
58ef33:	03 c9                	add    %ecx,%ecx
58ef35:	03 4c 24 08          	add    0x8(%esp),%ecx
58ef39:	8b 54 24 10          	mov    0x10(%esp),%edx
58ef3d:	03 d2                	add    %edx,%edx
58ef3f:	03 54 24 04          	add    0x4(%esp),%edx
58ef43:	8b c7                	mov    %edi,%eax
58ef45:	e8 92 9a ff ff       	call   0x5889dc
58ef4a:	3b e8                	cmp    %eax,%ebp
58ef4c:	75 1a                	jne    0x58ef68
58ef4e:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ef54:	f7 6c 24 10          	imull  0x10(%esp)
58ef58:	03 44 24 0c          	add    0xc(%esp),%eax
58ef5c:	c1 e0 03             	shl    $0x3,%eax
58ef5f:	03 e8                	add    %eax,%ebp
58ef61:	89 2b                	mov    %ebp,(%ebx)
58ef63:	83 c3 04             	add    $0x4,%ebx
58ef66:	eb 07                	jmp    0x58ef6f
58ef68:	33 c0                	xor    %eax,%eax
58ef6a:	89 03                	mov    %eax,(%ebx)
58ef6c:	83 c3 04             	add    $0x4,%ebx
58ef6f:	4e                   	dec    %esi
58ef70:	0f 85 51 ff ff ff    	jne    0x58eec7
58ef76:	ff 44 24 08          	incl   0x8(%esp)
58ef7a:	81 44 24 44 00 05 00 	addl   $0x500,0x44(%esp)
58ef81:	00
58ef82:	83 7c 24 08 02       	cmpl   $0x2,0x8(%esp)
58ef87:	0f 85 9d fd ff ff    	jne    0x58ed2a
58ef8d:	ff 44 24 04          	incl   0x4(%esp)
58ef91:	81 44 24 40 00 0a 00 	addl   $0xa00,0x40(%esp)
58ef98:	00
58ef99:	83 7c 24 04 08       	cmpl   $0x8,0x4(%esp)
58ef9e:	0f 85 78 fd ff ff    	jne    0x58ed1c
58efa4:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58efaa:	8d 04 40             	lea    (%eax,%eax,2),%eax
58efad:	03 c0                	add    %eax,%eax
58efaf:	c1 e0 02             	shl    $0x2,%eax
58efb2:	e8 fd a0 e7 ff       	call   0x4090b4
58efb7:	89 44 24 60          	mov    %eax,0x60(%esp)
58efbb:	ba 94 f3 58 00       	mov    $0x58f394,%edx
58efc0:	8b 44 24 60          	mov    0x60(%esp),%eax
58efc4:	e8 fb 9a ff ff       	call   0x588ac4
58efc9:	33 c0                	xor    %eax,%eax
58efcb:	89 44 24 04          	mov    %eax,0x4(%esp)
58efcf:	8d 44 24 50          	lea    0x50(%esp),%eax
58efd3:	89 44 24 40          	mov    %eax,0x40(%esp)
58efd7:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58efdd:	f7 6c 24 04          	imull  0x4(%esp)
58efe1:	03 c0                	add    %eax,%eax
58efe3:	c1 e0 02             	shl    $0x2,%eax
58efe6:	03 44 24 60          	add    0x60(%esp),%eax
58efea:	8b 54 24 40          	mov    0x40(%esp),%edx
58efee:	89 02                	mov    %eax,(%edx)
58eff0:	ff 44 24 04          	incl   0x4(%esp)
58eff4:	83 44 24 40 04       	addl   $0x4,0x40(%esp)
58eff9:	83 7c 24 04 03       	cmpl   $0x3,0x4(%esp)
58effe:	75 d7                	jne    0x58efd7
58f000:	c7 44 24 04 02 00 00 	movl   $0x2,0x4(%esp)
58f007:	00
58f008:	e9 04 03 00 00       	jmp    0x58f311
58f00d:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58f013:	83 e8 02             	sub    $0x2,%eax
58f016:	48                   	dec    %eax
58f017:	83 e8 02             	sub    $0x2,%eax
58f01a:	0f 8c 92 02 00 00    	jl     0x58f2b2
58f020:	40                   	inc    %eax
58f021:	89 44 24 38          	mov    %eax,0x38(%esp)
58f025:	c7 44 24 08 02 00 00 	movl   $0x2,0x8(%esp)
58f02c:	00
58f02d:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58f033:	f7 6c 24 04          	imull  0x4(%esp)
58f037:	03 44 24 08          	add    0x8(%esp),%eax
58f03b:	8b 17                	mov    (%edi),%edx
58f03d:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58f040:	89 04 24             	mov    %eax,(%esp)
58f043:	8b 44 24 08          	mov    0x8(%esp),%eax
58f047:	83 e0 01             	and    $0x1,%eax
58f04a:	c1 e0 05             	shl    $0x5,%eax
58f04d:	8d 04 80             	lea    (%eax,%eax,4),%eax
58f050:	8b 54 24 04          	mov    0x4(%esp),%edx
58f054:	83 e2 07             	and    $0x7,%edx
58f057:	c1 e2 06             	shl    $0x6,%edx
58f05a:	8d 14 92             	lea    (%edx,%edx,4),%edx
58f05d:	8d 54 d4 64          	lea    0x64(%esp,%edx,8),%edx
58f061:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
58f064:	8d 84 24 64 50 00 00 	lea    0x5064(%esp),%eax
58f06b:	b9 20 00 00 00       	mov    $0x20,%ecx
58f070:	33 d2                	xor    %edx,%edx
58f072:	e8 3d a1 ff ff       	call   0x5891b4
58f077:	8b 33                	mov    (%ebx),%esi
58f079:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
58f07f:	74 61                	je     0x58f0e2
58f081:	8b d3                	mov    %ebx,%edx
58f083:	8b 42 04             	mov    0x4(%edx),%eax
58f086:	8b 0c 24             	mov    (%esp),%ecx
58f089:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
58f08d:	50                   	push   %eax
58f08e:	8b 44 24 04          	mov    0x4(%esp),%eax
58f092:	0f b7 04 70          	movzwl (%eax,%esi,2),%eax
58f096:	59                   	pop    %ecx
58f097:	2b c1                	sub    %ecx,%eax
58f099:	8b c8                	mov    %eax,%ecx
58f09b:	c1 e9 1f             	shr    $0x1f,%ecx
58f09e:	89 4c 24 30          	mov    %ecx,0x30(%esp)
58f0a2:	8b 4a 08             	mov    0x8(%edx),%ecx
58f0a5:	33 44 24 30          	xor    0x30(%esp),%eax
58f0a9:	2b 44 24 30          	sub    0x30(%esp),%eax
58f0ad:	d3 e0                	shl    %cl,%eax
58f0af:	8b 52 0c             	mov    0xc(%edx),%edx
58f0b2:	01 84 94 64 50 00 00 	add    %eax,0x5064(%esp,%edx,4)
58f0b9:	83 c3 14             	add    $0x14,%ebx
58f0bc:	8b d3                	mov    %ebx,%edx
58f0be:	83 ea 04             	sub    $0x4,%edx
58f0c1:	8b 32                	mov    (%edx),%esi
58f0c3:	83 fe ff             	cmp    $0xffffffff,%esi
58f0c6:	74 af                	je     0x58f077
58f0c8:	01 84 b4 64 50 00 00 	add    %eax,0x5064(%esp,%esi,4)
58f0cf:	8b 33                	mov    (%ebx),%esi
58f0d1:	83 c3 04             	add    $0x4,%ebx
58f0d4:	83 fe ff             	cmp    $0xffffffff,%esi
58f0d7:	74 9e                	je     0x58f077
58f0d9:	01 84 b4 64 50 00 00 	add    %eax,0x5064(%esp,%esi,4)
58f0e0:	eb ed                	jmp    0x58f0cf
58f0e2:	83 c3 04             	add    $0x4,%ebx
58f0e5:	8b 84 24 64 50 00 00 	mov    0x5064(%esp),%eax
58f0ec:	8b d0                	mov    %eax,%edx
58f0ee:	be 07 00 00 00       	mov    $0x7,%esi
58f0f3:	8d 8c 24 68 50 00 00 	lea    0x5068(%esp),%ecx
58f0fa:	89 4c 24 48          	mov    %ecx,0x48(%esp)
58f0fe:	8b 4c 24 48          	mov    0x48(%esp),%ecx
58f102:	8b 29                	mov    (%ecx),%ebp
58f104:	3b d5                	cmp    %ebp,%edx
58f106:	7e 02                	jle    0x58f10a
58f108:	8b d5                	mov    %ebp,%edx
58f10a:	3b e8                	cmp    %eax,%ebp
58f10c:	7e 02                	jle    0x58f110
58f10e:	8b c5                	mov    %ebp,%eax
58f110:	83 44 24 48 04       	addl   $0x4,0x48(%esp)
58f115:	4e                   	dec    %esi
58f116:	75 e6                	jne    0x58f0fe
58f118:	85 c0                	test   %eax,%eax
58f11a:	75 1d                	jne    0x58f139
58f11c:	8b 44 24 58          	mov    0x58(%esp),%eax
58f120:	8b 54 24 08          	mov    0x8(%esp),%edx
58f124:	8d 04 d0             	lea    (%eax,%edx,8),%eax
58f127:	b9 08 00 00 00       	mov    $0x8,%ecx
58f12c:	8b 14 24             	mov    (%esp),%edx
58f12f:	e8 7c c6 ff ff       	call   0x58b7b0
58f134:	e9 6b 01 00 00       	jmp    0x58f2a4
58f139:	d1 e8                	shr    $1,%eax
58f13b:	03 d0                	add    %eax,%edx
58f13d:	89 54 24 2c          	mov    %edx,0x2c(%esp)
58f141:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58f148:	b9 10 00 00 00       	mov    $0x10,%ecx
58f14d:	33 d2                	xor    %edx,%edx
58f14f:	e8 60 a0 ff ff       	call   0x5891b4
58f154:	8b c7                	mov    %edi,%eax
58f156:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58f15a:	8b 54 24 04          	mov    0x4(%esp),%edx
58f15e:	e8 79 98 ff ff       	call   0x5889dc
58f163:	8b e8                	mov    %eax,%ebp
58f165:	33 c0                	xor    %eax,%eax
58f167:	89 44 24 30          	mov    %eax,0x30(%esp)
58f16b:	be 08 00 00 00       	mov    $0x8,%esi
58f170:	8d 84 24 64 50 00 00 	lea    0x5064(%esp),%eax
58f177:	89 44 24 48          	mov    %eax,0x48(%esp)
58f17b:	8b 44 24 48          	mov    0x48(%esp),%eax
58f17f:	8b 00                	mov    (%eax),%eax
58f181:	3b 44 24 2c          	cmp    0x2c(%esp),%eax
58f185:	7f 76                	jg     0x58f1fd
58f187:	8b 87 00 01 00 00    	mov    0x100(%edi),%eax
58f18d:	48                   	dec    %eax
58f18e:	85 c0                	test   %eax,%eax
58f190:	7c 67                	jl     0x58f1f9
58f192:	40                   	inc    %eax