577fe5:	5a                   	pop    %edx
577fe6:	5d                   	pop    %ebp
577fe7:	5f                   	pop    %edi
577fe8:	5e                   	pop    %esi
577fe9:	5b                   	pop    %ebx
577fea:	c3                   	ret
577feb:	90                   	nop
577fec:	53                   	push   %ebx
577fed:	56                   	push   %esi
577fee:	57                   	push   %edi
577fef:	55                   	push   %ebp
577ff0:	83 c4 f8             	add    $0xfffffff8,%esp
577ff3:	89 04 24             	mov    %eax,(%esp)
577ff6:	8b 0c 24             	mov    (%esp),%ecx
577ff9:	8b 49 14             	mov    0x14(%ecx),%ecx
577ffc:	49                   	dec    %ecx
577ffd:	7e 19                	jle    0x578018
577fff:	8b 04 24             	mov    (%esp),%eax
578002:	8b 40 1c             	mov    0x1c(%eax),%eax
578005:	8b 48 04             	mov    0x4(%eax),%ecx
578008:	8b 00                	mov    (%eax),%eax
57800a:	2b c8                	sub    %eax,%ecx
57800c:	85 c9                	test   %ecx,%ecx
57800e:	79 03                	jns    0x578013
578010:	83 c1 03             	add    $0x3,%ecx
578013:	c1 f9 02             	sar    $0x2,%ecx
578016:	eb 02                	jmp    0x57801a
578018:	33 c9                	xor    %ecx,%ecx
57801a:	89 4c 24 04          	mov    %ecx,0x4(%esp)
57801e:	8b 0c 24             	mov    (%esp),%ecx
578021:	8b 04 24             	mov    (%esp),%eax
578024:	8b 49 1c             	mov    0x1c(%ecx),%ecx
578027:	8b 40 14             	mov    0x14(%eax),%eax
57802a:	85 c0                	test   %eax,%eax
57802c:	8b 39                	mov    (%ecx),%edi
57802e:	7e 3c                	jle    0x57806c
578030:	8b 0c 24             	mov    (%esp),%ecx
578033:	8b 71 18             	mov    0x18(%ecx),%esi
578036:	8b df                	mov    %edi,%ebx
578038:	85 f6                	test   %esi,%esi
57803a:	7e 22                	jle    0x57805e
57803c:	8b 0b                	mov    (%ebx),%ecx
57803e:	85 c9                	test   %ecx,%ecx
578040:	7c 08                	jl     0x57804a
578042:	8b ca                	mov    %edx,%ecx
578044:	8b 2b                	mov    (%ebx),%ebp
578046:	d3 fd                	sar    %cl,%ebp
578048:	eb 0a                	jmp    0x578054
57804a:	8b ca                	mov    %edx,%ecx
57804c:	8b 2b                	mov    (%ebx),%ebp
57804e:	f7 dd                	neg    %ebp
578050:	d3 fd                	sar    %cl,%ebp
578052:	f7 dd                	neg    %ebp
578054:	89 2b                	mov    %ebp,(%ebx)
578056:	4e                   	dec    %esi
578057:	83 c3 04             	add    $0x4,%ebx
57805a:	85 f6                	test   %esi,%esi
57805c:	7f de                	jg     0x57803c
57805e:	48                   	dec    %eax
57805f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
578063:	c1 e1 02             	shl    $0x2,%ecx
578066:	03 f9                	add    %ecx,%edi
578068:	85 c0                	test   %eax,%eax
57806a:	7f c4                	jg     0x578030
57806c:	59                   	pop    %ecx
57806d:	5a                   	pop    %edx
57806e:	5d                   	pop    %ebp
57806f:	5f                   	pop    %edi
578070:	5e                   	pop    %esi
578071:	5b                   	pop    %ebx
578072:	c3                   	ret
578073:	90                   	nop
578074:	53                   	push   %ebx
578075:	56                   	push   %esi
578076:	57                   	push   %edi
578077:	83 c4 f4             	add    $0xfffffff4,%esp
57807a:	89 04 24             	mov    %eax,(%esp)
57807d:	8b 04 24             	mov    (%esp),%eax
578080:	8b 40 14             	mov    0x14(%eax),%eax
578083:	48                   	dec    %eax
578084:	7e 19                	jle    0x57809f
578086:	8b 04 24             	mov    (%esp),%eax
578089:	8b 58 1c             	mov    0x1c(%eax),%ebx
57808c:	8b 43 04             	mov    0x4(%ebx),%eax
57808f:	8b 1b                	mov    (%ebx),%ebx
578091:	2b c3                	sub    %ebx,%eax
578093:	85 c0                	test   %eax,%eax
578095:	79 03                	jns    0x57809a
578097:	83 c0 03             	add    $0x3,%eax
57809a:	c1 f8 02             	sar    $0x2,%eax
57809d:	eb 02                	jmp    0x5780a1
57809f:	33 c0                	xor    %eax,%eax
5780a1:	89 44 24 08          	mov    %eax,0x8(%esp)
5780a5:	8b 04 24             	mov    (%esp),%eax
5780a8:	8b 40 14             	mov    0x14(%eax),%eax
5780ab:	89 44 24 04          	mov    %eax,0x4(%esp)
5780af:	8b 04 24             	mov    (%esp),%eax
5780b2:	8b 5c 24 04          	mov    0x4(%esp),%ebx
5780b6:	85 db                	test   %ebx,%ebx
5780b8:	8b 40 1c             	mov    0x1c(%eax),%eax
5780bb:	8b 00                	mov    (%eax),%eax
5780bd:	7e 39                	jle    0x5780f8
5780bf:	8b 1c 24             	mov    (%esp),%ebx
5780c2:	8b 7b 18             	mov    0x18(%ebx),%edi
5780c5:	8b d8                	mov    %eax,%ebx
5780c7:	85 ff                	test   %edi,%edi
5780c9:	7e 18                	jle    0x5780e3
5780cb:	8b 33                	mov    (%ebx),%esi
5780cd:	3b d6                	cmp    %esi,%edx
5780cf:	7e 04                	jle    0x5780d5
5780d1:	89 13                	mov    %edx,(%ebx)
5780d3:	eb 06                	jmp    0x5780db
5780d5:	3b ce                	cmp    %esi,%ecx
5780d7:	7d 02                	jge    0x5780db
5780d9:	89 0b                	mov    %ecx,(%ebx)
5780db:	4f                   	dec    %edi
5780dc:	83 c3 04             	add    $0x4,%ebx
5780df:	85 ff                	test   %edi,%edi
5780e1:	7f e8                	jg     0x5780cb
5780e3:	ff 4c 24 04          	decl   0x4(%esp)
5780e7:	8b 5c 24 08          	mov    0x8(%esp),%ebx
5780eb:	c1 e3 02             	shl    $0x2,%ebx
5780ee:	03 c3                	add    %ebx,%eax
5780f0:	8b 5c 24 04          	mov    0x4(%esp),%ebx
5780f4:	85 db                	test   %ebx,%ebx
5780f6:	7f c7                	jg     0x5780bf
5780f8:	83 c4 0c             	add    $0xc,%esp
5780fb:	5f                   	pop    %edi
5780fc:	5e                   	pop    %esi
5780fd:	5b                   	pop    %ebx
5780fe:	c3                   	ret
5780ff:	90                   	nop
578100:	53                   	push   %ebx
578101:	56                   	push   %esi
578102:	57                   	push   %edi
578103:	55                   	push   %ebp
578104:	51                   	push   %ecx
578105:	8b da                	mov    %edx,%ebx
578107:	8b f0                	mov    %eax,%esi
578109:	85 db                	test   %ebx,%ebx
57810b:	7d 17                	jge    0x578124
57810d:	68 66 01 00 00       	push   $0x166
578112:	68 1b 29 6a 00       	push   $0x6a291b
578117:	68 14 29 6a 00       	push   $0x6a2914
57811c:	e8 1f 2a fe ff       	call   0x55ab40
578121:	83 c4 0c             	add    $0xc,%esp
578124:	8b 56 14             	mov    0x14(%esi),%edx
578127:	4a                   	dec    %edx
578128:	7e 16                	jle    0x578140
57812a:	8b 46 1c             	mov    0x1c(%esi),%eax
57812d:	8b 48 04             	mov    0x4(%eax),%ecx
578130:	8b 00                	mov    (%eax),%eax
578132:	2b c8                	sub    %eax,%ecx
578134:	85 c9                	test   %ecx,%ecx
578136:	79 03                	jns    0x57813b
578138:	83 c1 03             	add    $0x3,%ecx
57813b:	c1 f9 02             	sar    $0x2,%ecx
57813e:	eb 02                	jmp    0x578142
578140:	33 c9                	xor    %ecx,%ecx
578142:	89 0c 24             	mov    %ecx,(%esp)
578145:	8b 6e 14             	mov    0x14(%esi),%ebp
578148:	8b 46 1c             	mov    0x1c(%esi),%eax
57814b:	8b 38                	mov    (%eax),%edi
57814d:	85 ed                	test   %ebp,%ebp
57814f:	7e 22                	jle    0x578173
578151:	8b 46 18             	mov    0x18(%esi),%eax
578154:	8b d7                	mov    %edi,%edx
578156:	85 c0                	test   %eax,%eax
578158:	7e 0c                	jle    0x578166
57815a:	8b cb                	mov    %ebx,%ecx
57815c:	d3 3a                	sarl   %cl,(%edx)
57815e:	48                   	dec    %eax
57815f:	83 c2 04             	add    $0x4,%edx
578162:	85 c0                	test   %eax,%eax
578164:	7f f4                	jg     0x57815a
578166:	4d                   	dec    %ebp
578167:	8b 04 24             	mov    (%esp),%eax
57816a:	c1 e0 02             	shl    $0x2,%eax
57816d:	03 f8                	add    %eax,%edi
57816f:	85 ed                	test   %ebp,%ebp
578171:	7f de                	jg     0x578151
578173:	5a                   	pop    %edx
578174:	5d                   	pop    %ebp
578175:	5f                   	pop    %edi
578176:	5e                   	pop    %esi
578177:	5b                   	pop    %ebx
578178:	c3                   	ret
578179:	90                   	nop
57817a:	90                   	nop
57817b:	90                   	nop
57817c:	53                   	push   %ebx
57817d:	56                   	push   %esi
57817e:	57                   	push   %edi
57817f:	55                   	push   %ebp
578180:	51                   	push   %ecx
578181:	8b 58 14             	mov    0x14(%eax),%ebx
578184:	4b                   	dec    %ebx
578185:	7e 16                	jle    0x57819d
578187:	8b 48 1c             	mov    0x1c(%eax),%ecx
57818a:	8b 59 04             	mov    0x4(%ecx),%ebx
57818d:	8b 09                	mov    (%ecx),%ecx
57818f:	2b d9                	sub    %ecx,%ebx
578191:	85 db                	test   %ebx,%ebx
578193:	79 03                	jns    0x578198
578195:	83 c3 03             	add    $0x3,%ebx
578198:	c1 fb 02             	sar    $0x2,%ebx
57819b:	eb 02                	jmp    0x57819f
57819d:	33 db                	xor    %ebx,%ebx
57819f:	89 1c 24             	mov    %ebx,(%esp)
5781a2:	8b 68 14             	mov    0x14(%eax),%ebp
5781a5:	8b 48 1c             	mov    0x1c(%eax),%ecx
5781a8:	8b 39                	mov    (%ecx),%edi
5781aa:	85 ed                	test   %ebp,%ebp
5781ac:	7e 22                	jle    0x5781d0
5781ae:	8b 58 18             	mov    0x18(%eax),%ebx
5781b1:	8b f7                	mov    %edi,%esi
5781b3:	85 db                	test   %ebx,%ebx
5781b5:	7e 0c                	jle    0x5781c3
5781b7:	8b ca                	mov    %edx,%ecx
5781b9:	d3 26                	shll   %cl,(%esi)
5781bb:	4b                   	dec    %ebx
5781bc:	83 c6 04             	add    $0x4,%esi
5781bf:	85 db                	test   %ebx,%ebx
5781c1:	7f f4                	jg     0x5781b7
5781c3:	4d                   	dec    %ebp
5781c4:	8b 0c 24             	mov    (%esp),%ecx
5781c7:	c1 e1 02             	shl    $0x2,%ecx
5781ca:	03 f9                	add    %ecx,%edi
5781cc:	85 ed                	test   %ebp,%ebp
5781ce:	7f de                	jg     0x5781ae
5781d0:	5a                   	pop    %edx
5781d1:	5d                   	pop    %ebp
5781d2:	5f                   	pop    %edi
5781d3:	5e                   	pop    %esi
5781d4:	5b                   	pop    %ebx
5781d5:	c3                   	ret
5781d6:	90                   	nop
5781d7:	90                   	nop
5781d8:	53                   	push   %ebx
5781d9:	56                   	push   %esi
5781da:	57                   	push   %edi
5781db:	8b da                	mov    %edx,%ebx
5781dd:	0f af d9             	imul   %ecx,%ebx
5781e0:	3b 58 28             	cmp    0x28(%eax),%ebx
5781e3:	7f 07                	jg     0x5781ec
5781e5:	8b 58 20             	mov    0x20(%eax),%ebx
5781e8:	3b d3                	cmp    %ebx,%edx
5781ea:	7e 05                	jle    0x5781f1
5781ec:	83 c8 ff             	or     $0xffffffff,%eax
5781ef:	eb 24                	jmp    0x578215
5781f1:	89 50 14             	mov    %edx,0x14(%eax)
5781f4:	89 48 18             	mov    %ecx,0x18(%eax)
5781f7:	33 db                	xor    %ebx,%ebx
5781f9:	3b d3                	cmp    %ebx,%edx
5781fb:	7e 16                	jle    0x578213
5781fd:	8b f1                	mov    %ecx,%esi
5781ff:	8b 78 1c             	mov    0x1c(%eax),%edi
578202:	0f af f3             	imul   %ebx,%esi
578205:	c1 e6 02             	shl    $0x2,%esi
578208:	03 70 24             	add    0x24(%eax),%esi
57820b:	89 34 9f             	mov    %esi,(%edi,%ebx,4)
57820e:	43                   	inc    %ebx
57820f:	3b d3                	cmp    %ebx,%edx
578211:	7f ea                	jg     0x5781fd
578213:	33 c0                	xor    %eax,%eax
578215:	5f                   	pop    %edi
578216:	5e                   	pop    %esi
578217:	5b                   	pop    %ebx
578218:	c3                   	ret
578219:	90                   	nop
57821a:	90                   	nop
57821b:	90                   	nop
57821c:	53                   	push   %ebx
57821d:	56                   	push   %esi
57821e:	8b f0                	mov    %eax,%esi
578220:	57                   	push   %edi
578221:	55                   	push   %ebp
578222:	8b fa                	mov    %edx,%edi
578224:	8b 46 18             	mov    0x18(%esi),%eax
578227:	50                   	push   %eax
578228:	8b 56 14             	mov    0x14(%esi),%edx
57822b:	52                   	push   %edx
57822c:	68 25 29 6a 00       	push   $0x6a2925
578231:	57                   	push   %edi
578232:	e8 95 1e 00 00       	call   0x57a0cc
578237:	83 c4 10             	add    $0x10,%esp
57823a:	33 ed                	xor    %ebp,%ebp
57823c:	eb 49                	jmp    0x578287
57823e:	33 db                	xor    %ebx,%ebx
578240:	eb 2f                	jmp    0x578271
578242:	8b 46 1c             	mov    0x1c(%esi),%eax
578245:	8b 14 a8             	mov    (%eax,%ebp,4),%edx
578248:	8b 04 9a             	mov    (%edx,%ebx,4),%eax
57824b:	50                   	push   %eax
57824c:	68 2c 29 6a 00       	push   $0x6a292c
578251:	57                   	push   %edi
578252:	e8 75 1e 00 00       	call   0x57a0cc
578257:	83 c4 0c             	add    $0xc,%esp
57825a:	8b 56 18             	mov    0x18(%esi),%edx
57825d:	4a                   	dec    %edx
57825e:	3b da                	cmp    %edx,%ebx
578260:	7d 0e                	jge    0x578270
578262:	68 30 29 6a 00       	push   $0x6a2930
578267:	57                   	push   %edi
578268:	e8 5f 1e 00 00       	call   0x57a0cc
57826d:	83 c4 08             	add    $0x8,%esp
578270:	43                   	inc    %ebx
578271:	8b 4e 18             	mov    0x18(%esi),%ecx
578274:	3b d9                	cmp    %ecx,%ebx
578276:	7c ca                	jl     0x578242
578278:	68 32 29 6a 00       	push   $0x6a2932
57827d:	57                   	push   %edi
57827e:	e8 49 1e 00 00       	call   0x57a0cc
578283:	83 c4 08             	add    $0x8,%esp
578286:	45                   	inc    %ebp
578287:	8b 46 14             	mov    0x14(%esi),%eax
57828a:	3b e8                	cmp    %eax,%ebp
57828c:	7c b0                	jl     0x57823e
57828e:	33 c0                	xor    %eax,%eax
578290:	5d                   	pop    %ebp
578291:	5f                   	pop    %edi
578292:	5e                   	pop    %esi
578293:	5b                   	pop    %ebx
578294:	c3                   	ret
578295:	90                   	nop
578296:	90                   	nop
578297:	90                   	nop
578298:	53                   	push   %ebx
578299:	56                   	push   %esi
57829a:	57                   	push   %edi
57829b:	51                   	push   %ecx
57829c:	8b 58 14             	mov    0x14(%eax),%ebx
57829f:	4b                   	dec    %ebx
5782a0:	7e 16                	jle    0x5782b8
5782a2:	8b 48 1c             	mov    0x1c(%eax),%ecx
5782a5:	8b 59 04             	mov    0x4(%ecx),%ebx
5782a8:	8b 09                	mov    (%ecx),%ecx
5782aa:	2b d9                	sub    %ecx,%ebx
5782ac:	85 db                	test   %ebx,%ebx
5782ae:	79 03                	jns    0x5782b3
5782b0:	83 c3 03             	add    $0x3,%ebx
5782b3:	c1 fb 02             	sar    $0x2,%ebx
5782b6:	eb 02                	jmp    0x5782ba
5782b8:	33 db                	xor    %ebx,%ebx
5782ba:	89 1c 24             	mov    %ebx,(%esp)
5782bd:	8b 78 14             	mov    0x14(%eax),%edi
5782c0:	8b 48 1c             	mov    0x1c(%eax),%ecx
5782c3:	8b 31                	mov    (%ecx),%esi
5782c5:	85 ff                	test   %edi,%edi
5782c7:	7e 20                	jle    0x5782e9