56eea9:	eb 0e                	jmp    0x56eeb9
56eeab:	8b 54 24 0c          	mov    0xc(%esp),%edx
56eeaf:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56eeb3:	3b d1                	cmp    %ecx,%edx
56eeb5:	75 02                	jne    0x56eeb9
56eeb7:	d1 26                	shll   $1,(%esi)
56eeb9:	8b 44 24 20          	mov    0x20(%esp),%eax
56eebd:	c1 e0 02             	shl    $0x2,%eax
56eec0:	03 f0                	add    %eax,%esi
56eec2:	8b 54 24 24          	mov    0x24(%esp),%edx
56eec6:	83 44 24 24 ff       	addl   $0xffffffff,0x24(%esp)
56eecb:	85 d2                	test   %edx,%edx
56eecd:	0f 8f 82 fe ff ff    	jg     0x56ed55
56eed3:	83 c4 38             	add    $0x38,%esp
56eed6:	5d                   	pop    %ebp
56eed7:	5f                   	pop    %edi
56eed8:	5e                   	pop    %esi
56eed9:	5b                   	pop    %ebx
56eeda:	c3                   	ret
56eedb:	90                   	nop
56eedc:	53                   	push   %ebx
56eedd:	56                   	push   %esi
56eede:	57                   	push   %edi
56eedf:	55                   	push   %ebp
56eee0:	83 c4 c8             	add    $0xffffffc8,%esp
56eee3:	8b ea                	mov    %edx,%ebp
56eee5:	f7 c5 00 00 01 00    	test   $0x10000,%ebp
56eeeb:	89 04 24             	mov    %eax,(%esp)
56eeee:	8b f1                	mov    %ecx,%esi
56eef0:	74 41                	je     0x56ef33
56eef2:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
56eef9:	00
56eefa:	8b 46 14             	mov    0x14(%esi),%eax
56eefd:	48                   	dec    %eax
56eefe:	7e 19                	jle    0x56ef19
56ef00:	8b 56 1c             	mov    0x1c(%esi),%edx
56ef03:	8b 46 1c             	mov    0x1c(%esi),%eax
56ef06:	8b 5a 04             	mov    0x4(%edx),%ebx
56ef09:	8b 10                	mov    (%eax),%edx
56ef0b:	2b da                	sub    %edx,%ebx
56ef0d:	85 db                	test   %ebx,%ebx
56ef0f:	79 03                	jns    0x56ef14
56ef11:	83 c3 03             	add    $0x3,%ebx
56ef14:	c1 fb 02             	sar    $0x2,%ebx
56ef17:	eb 02                	jmp    0x56ef1b
56ef19:	33 db                	xor    %ebx,%ebx
56ef1b:	8b 46 0c             	mov    0xc(%esi),%eax
56ef1e:	8b 56 04             	mov    0x4(%esi),%edx
56ef21:	2b c2                	sub    %edx,%eax
56ef23:	89 44 24 24          	mov    %eax,0x24(%esp)
56ef27:	8b 7e 08             	mov    0x8(%esi),%edi
56ef2a:	8b 46 10             	mov    0x10(%esi),%eax
56ef2d:	89 44 24 04          	mov    %eax,0x4(%esp)
56ef31:	eb 3d                	jmp    0x56ef70
56ef33:	8b 56 14             	mov    0x14(%esi),%edx
56ef36:	4a                   	dec    %edx
56ef37:	7e 16                	jle    0x56ef4f
56ef39:	8b 46 1c             	mov    0x1c(%esi),%eax
56ef3c:	8b 50 04             	mov    0x4(%eax),%edx
56ef3f:	8b 08                	mov    (%eax),%ecx
56ef41:	2b d1                	sub    %ecx,%edx
56ef43:	85 d2                	test   %edx,%edx
56ef45:	79 03                	jns    0x56ef4a
56ef47:	83 c2 03             	add    $0x3,%edx
56ef4a:	c1 fa 02             	sar    $0x2,%edx
56ef4d:	eb 02                	jmp    0x56ef51
56ef4f:	33 d2                	xor    %edx,%edx
56ef51:	89 54 24 20          	mov    %edx,0x20(%esp)
56ef55:	bb 01 00 00 00       	mov    $0x1,%ebx
56ef5a:	8b 46 10             	mov    0x10(%esi),%eax
56ef5d:	8b 56 08             	mov    0x8(%esi),%edx
56ef60:	2b c2                	sub    %edx,%eax
56ef62:	89 44 24 24          	mov    %eax,0x24(%esp)
56ef66:	8b 7e 04             	mov    0x4(%esi),%edi
56ef69:	8b 46 0c             	mov    0xc(%esi),%eax
56ef6c:	89 44 24 04          	mov    %eax,0x4(%esp)
56ef70:	8b 54 24 04          	mov    0x4(%esp),%edx
56ef74:	3b fa                	cmp    %edx,%edi
56ef76:	7c 17                	jl     0x56ef8f
56ef78:	68 bc 02 00 00       	push   $0x2bc
56ef7d:	68 79 0d 6a 00       	push   $0x6a0d79
56ef82:	68 67 0d 6a 00       	push   $0x6a0d67
56ef87:	e8 b4 bb fe ff       	call   0x55ab40
56ef8c:	83 c4 0c             	add    $0xc,%esp
56ef8f:	8b 4e 08             	mov    0x8(%esi),%ecx
56ef92:	8b 46 08             	mov    0x8(%esi),%eax
56ef95:	2b c8                	sub    %eax,%ecx
56ef97:	8b 56 1c             	mov    0x1c(%esi),%edx
56ef9a:	8b 46 04             	mov    0x4(%esi),%eax
56ef9d:	8b 0c 8a             	mov    (%edx,%ecx,4),%ecx
56efa0:	8b 56 04             	mov    0x4(%esi),%edx
56efa3:	2b c2                	sub    %edx,%eax
56efa5:	c1 e0 02             	shl    $0x2,%eax
56efa8:	03 c8                	add    %eax,%ecx
56efaa:	f7 c5 01 00 00 00    	test   $0x1,%ebp
56efb0:	8b f1                	mov    %ecx,%esi
56efb2:	0f 84 02 03 00 00    	je     0x56f2ba
56efb8:	e9 7a 01 00 00       	jmp    0x56f137
56efbd:	53                   	push   %ebx
56efbe:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
56efc2:	51                   	push   %ecx
56efc3:	8d 44 24 14          	lea    0x14(%esp),%eax
56efc7:	50                   	push   %eax
56efc8:	8d 54 24 1c          	lea    0x1c(%esp),%edx
56efcc:	52                   	push   %edx
56efcd:	8d 4c 24 24          	lea    0x24(%esp),%ecx
56efd1:	51                   	push   %ecx
56efd2:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56efd6:	50                   	push   %eax
56efd7:	8d 54 24 34          	lea    0x34(%esp),%edx
56efdb:	52                   	push   %edx
56efdc:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56efe0:	8b d7                	mov    %edi,%edx
56efe2:	8b c6                	mov    %esi,%eax
56efe4:	e8 f3 f3 ff ff       	call   0x56e3dc
56efe9:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56efed:	2b cf                	sub    %edi,%ecx
56efef:	49                   	dec    %ecx
56eff0:	0f 8e 2a 01 00 00    	jle    0x56f120
56eff6:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56effa:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56effe:	2b cd                	sub    %ebp,%ecx
56f000:	8b 54 24 08          	mov    0x8(%esp),%edx
56f004:	8b 44 24 14          	mov    0x14(%esp),%eax
56f008:	89 4c 24 28          	mov    %ecx,0x28(%esp)
56f00c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f010:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f014:	3b cd                	cmp    %ebp,%ecx
56f016:	7c 17                	jl     0x56f02f
56f018:	8b 08                	mov    (%eax),%ecx
56f01a:	03 c9                	add    %ecx,%ecx
56f01c:	83 c1 02             	add    $0x2,%ecx
56f01f:	c1 f9 02             	sar    $0x2,%ecx
56f022:	29 0a                	sub    %ecx,(%edx)
56f024:	8b cb                	mov    %ebx,%ecx
56f026:	c1 e1 02             	shl    $0x2,%ecx
56f029:	03 d1                	add    %ecx,%edx
56f02b:	ff 4c 24 28          	decl   0x28(%esp)
56f02f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f033:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f037:	3b cd                	cmp    %ebp,%ecx
56f039:	7e 1e                	jle    0x56f059
56f03b:	ff 4c 24 28          	decl   0x28(%esp)
56f03f:	eb 18                	jmp    0x56f059
56f041:	8b 08                	mov    (%eax),%ecx
56f043:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f046:	03 cd                	add    %ebp,%ecx
56f048:	83 c1 02             	add    $0x2,%ecx
56f04b:	c1 f9 02             	sar    $0x2,%ecx
56f04e:	29 0a                	sub    %ecx,(%edx)
56f050:	8b cb                	mov    %ebx,%ecx
56f052:	c1 e1 02             	shl    $0x2,%ecx
56f055:	03 d1                	add    %ecx,%edx
56f057:	03 c1                	add    %ecx,%eax
56f059:	8b 4c 24 28          	mov    0x28(%esp),%ecx
56f05d:	83 44 24 28 ff       	addl   $0xffffffff,0x28(%esp)
56f062:	85 c9                	test   %ecx,%ecx
56f064:	7f db                	jg     0x56f041
56f066:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f06a:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f06e:	3b cd                	cmp    %ebp,%ecx
56f070:	7e 0c                	jle    0x56f07e
56f072:	8b 00                	mov    (%eax),%eax
56f074:	03 c0                	add    %eax,%eax
56f076:	83 c0 02             	add    $0x2,%eax
56f079:	c1 f8 02             	sar    $0x2,%eax
56f07c:	29 02                	sub    %eax,(%edx)
56f07e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f082:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56f086:	2b cd                	sub    %ebp,%ecx
56f088:	8b 44 24 08          	mov    0x8(%esp),%eax
56f08c:	8b 54 24 14          	mov    0x14(%esp),%edx
56f090:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
56f094:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f098:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f09c:	3b cd                	cmp    %ebp,%ecx
56f09e:	7d 0f                	jge    0x56f0af
56f0a0:	8b 08                	mov    (%eax),%ecx
56f0a2:	01 0a                	add    %ecx,(%edx)
56f0a4:	8b cb                	mov    %ebx,%ecx
56f0a6:	c1 e1 02             	shl    $0x2,%ecx
56f0a9:	03 d1                	add    %ecx,%edx
56f0ab:	ff 4c 24 2c          	decl   0x2c(%esp)
56f0af:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f0b3:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f0b7:	3b cd                	cmp    %ebp,%ecx
56f0b9:	7c 1a                	jl     0x56f0d5
56f0bb:	ff 4c 24 2c          	decl   0x2c(%esp)
56f0bf:	eb 14                	jmp    0x56f0d5
56f0c1:	8b 08                	mov    (%eax),%ecx
56f0c3:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f0c6:	03 cd                	add    %ebp,%ecx
56f0c8:	d1 f9                	sar    $1,%ecx
56f0ca:	01 0a                	add    %ecx,(%edx)
56f0cc:	8b cb                	mov    %ebx,%ecx
56f0ce:	c1 e1 02             	shl    $0x2,%ecx
56f0d1:	03 d1                	add    %ecx,%edx
56f0d3:	03 c1                	add    %ecx,%eax
56f0d5:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f0d9:	83 44 24 2c ff       	addl   $0xffffffff,0x2c(%esp)
56f0de:	85 c9                	test   %ecx,%ecx
56f0e0:	7f df                	jg     0x56f0c1
56f0e2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f0e6:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f0ea:	3b cd                	cmp    %ebp,%ecx
56f0ec:	7c 04                	jl     0x56f0f2
56f0ee:	8b 00                	mov    (%eax),%eax
56f0f0:	01 02                	add    %eax,(%edx)
56f0f2:	53                   	push   %ebx
56f0f3:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f0f7:	52                   	push   %edx
56f0f8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56f0fc:	51                   	push   %ecx
56f0fd:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f101:	50                   	push   %eax
56f102:	8b 54 24 24          	mov    0x24(%esp),%edx
56f106:	52                   	push   %edx
56f107:	8b d7                	mov    %edi,%edx
56f109:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f10d:	51                   	push   %ecx
56f10e:	8b 44 24 34          	mov    0x34(%esp),%eax
56f112:	50                   	push   %eax
56f113:	8b c6                	mov    %esi,%eax
56f115:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f119:	e8 de f5 ff ff       	call   0x56e6fc
56f11e:	eb 0e                	jmp    0x56f12e
56f120:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f124:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f128:	3b d1                	cmp    %ecx,%edx
56f12a:	75 02                	jne    0x56f12e
56f12c:	d1 3e                	sarl   $1,(%esi)
56f12e:	8b 44 24 20          	mov    0x20(%esp),%eax
56f132:	c1 e0 02             	shl    $0x2,%eax
56f135:	03 f0                	add    %eax,%esi
56f137:	8b 54 24 24          	mov    0x24(%esp),%edx
56f13b:	83 44 24 24 ff       	addl   $0xffffffff,0x24(%esp)
56f140:	85 d2                	test   %edx,%edx
56f142:	0f 8f 75 fe ff ff    	jg     0x56efbd
56f148:	e9 7e 01 00 00       	jmp    0x56f2cb
56f14d:	53                   	push   %ebx
56f14e:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
56f152:	51                   	push   %ecx
56f153:	8d 44 24 14          	lea    0x14(%esp),%eax
56f157:	50                   	push   %eax
56f158:	8d 54 24 1c          	lea    0x1c(%esp),%edx
56f15c:	52                   	push   %edx
56f15d:	8d 4c 24 24          	lea    0x24(%esp),%ecx
56f161:	51                   	push   %ecx
56f162:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56f166:	50                   	push   %eax
56f167:	8d 54 24 34          	lea    0x34(%esp),%edx
56f16b:	52                   	push   %edx
56f16c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f170:	8b d7                	mov    %edi,%edx
56f172:	8b c6                	mov    %esi,%eax
56f174:	e8 63 f2 ff ff       	call   0x56e3dc
56f179:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56f17d:	2b cf                	sub    %edi,%ecx
56f17f:	49                   	dec    %ecx
56f180:	0f 8e 1d 01 00 00    	jle    0x56f2a3
56f186:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f18a:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f18e:	2b cd                	sub    %ebp,%ecx
56f190:	8b 54 24 08          	mov    0x8(%esp),%edx
56f194:	8b 44 24 14          	mov    0x14(%esp),%eax
56f198:	89 4c 24 30          	mov    %ecx,0x30(%esp)
56f19c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f1a0:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f1a4:	3b cd                	cmp    %ebp,%ecx
56f1a6:	7c 11                	jl     0x56f1b9
56f1a8:	8b 08                	mov    (%eax),%ecx
56f1aa:	f7 d9                	neg    %ecx
56f1ac:	01 0a                	add    %ecx,(%edx)
56f1ae:	8b cb                	mov    %ebx,%ecx
56f1b0:	c1 e1 02             	shl    $0x2,%ecx
56f1b3:	03 d1                	add    %ecx,%edx
56f1b5:	ff 4c 24 30          	decl   0x30(%esp)
56f1b9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f1bd:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f1c1:	3b cd                	cmp    %ebp,%ecx
56f1c3:	7e 1d                	jle    0x56f1e2
56f1c5:	ff 4c 24 30          	decl   0x30(%esp)
56f1c9:	eb 17                	jmp    0x56f1e2
56f1cb:	8b 08                	mov    (%eax),%ecx
56f1cd:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f1d0:	03 cd                	add    %ebp,%ecx
56f1d2:	c1 f9 02             	sar    $0x2,%ecx
56f1d5:	f7 d9                	neg    %ecx
56f1d7:	01 0a                	add    %ecx,(%edx)
56f1d9:	8b cb                	mov    %ebx,%ecx
56f1db:	c1 e1 02             	shl    $0x2,%ecx
56f1de:	03 d1                	add    %ecx,%edx
56f1e0:	03 c1                	add    %ecx,%eax
56f1e2:	8b 4c 24 30          	mov    0x30(%esp),%ecx
56f1e6:	83 44 24 30 ff       	addl   $0xffffffff,0x30(%esp)
56f1eb:	85 c9                	test   %ecx,%ecx
56f1ed:	7f dc                	jg     0x56f1cb
56f1ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56f1f3:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f1f7:	3b cd                	cmp    %ebp,%ecx
56f1f9:	7e 06                	jle    0x56f201
56f1fb:	8b 00                	mov    (%eax),%eax
56f1fd:	f7 d8                	neg    %eax
56f1ff:	01 02                	add    %eax,(%edx)
56f201:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f205:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56f209:	2b cd                	sub    %ebp,%ecx
56f20b:	8b 44 24 08          	mov    0x8(%esp),%eax
56f20f:	8b 54 24 14          	mov    0x14(%esp),%edx
56f213:	89 4c 24 34          	mov    %ecx,0x34(%esp)
56f217:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56f21b:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
56f21f:	3b cd                	cmp    %ebp,%ecx
56f221:	7d 0f                	jge    0x56f232
56f223:	8b 08                	mov    (%eax),%ecx
56f225:	01 0a                	add    %ecx,(%edx)
56f227:	8b cb                	mov    %ebx,%ecx
56f229:	c1 e1 02             	shl    $0x2,%ecx
56f22c:	03 d1                	add    %ecx,%edx
56f22e:	ff 4c 24 34          	decl   0x34(%esp)
56f232:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f236:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f23a:	3b cd                	cmp    %ebp,%ecx
56f23c:	7c 1a                	jl     0x56f258
56f23e:	ff 4c 24 34          	decl   0x34(%esp)
56f242:	eb 14                	jmp    0x56f258
56f244:	8b 08                	mov    (%eax),%ecx
56f246:	8b 2c 98             	mov    (%eax,%ebx,4),%ebp
56f249:	03 cd                	add    %ebp,%ecx
56f24b:	d1 f9                	sar    $1,%ecx
56f24d:	01 0a                	add    %ecx,(%edx)
56f24f:	8b cb                	mov    %ebx,%ecx
56f251:	c1 e1 02             	shl    $0x2,%ecx
56f254:	03 d1                	add    %ecx,%edx
56f256:	03 c1                	add    %ecx,%eax
56f258:	8b 4c 24 34          	mov    0x34(%esp),%ecx
56f25c:	83 44 24 34 ff       	addl   $0xffffffff,0x34(%esp)
56f261:	85 c9                	test   %ecx,%ecx
56f263:	7f df                	jg     0x56f244
56f265:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56f269:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56f26d:	3b cd                	cmp    %ebp,%ecx
56f26f:	7c 04                	jl     0x56f275
56f271:	8b 00                	mov    (%eax),%eax
56f273:	01 02                	add    %eax,(%edx)
56f275:	53                   	push   %ebx
56f276:	8b 54 24 0c          	mov    0xc(%esp),%edx
56f27a:	52                   	push   %edx
56f27b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56f27f:	51                   	push   %ecx