6170af:	8b 7d 10             	mov    0x10(%ebp),%edi
6170b2:	3b fb                	cmp    %ebx,%edi
6170b4:	75 05                	jne    0x6170bb
6170b6:	8b 45 0c             	mov    0xc(%ebp),%eax
6170b9:	eb 66                	jmp    0x617121
6170bb:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
6170bf:	74 42                	je     0x617103
6170c1:	8b 4d 08             	mov    0x8(%ebp),%ecx
6170c4:	56                   	push   %esi
6170c5:	6a 00                	push   $0x0
6170c7:	53                   	push   %ebx
6170c8:	e8 b9 2a 00 00       	call   0x619b86
6170cd:	3b df                	cmp    %edi,%ebx
6170cf:	8b cf                	mov    %edi,%ecx
6170d1:	8b f0                	mov    %eax,%esi
6170d3:	0f 42 cb             	cmovb  %ebx,%ecx
6170d6:	c1 e1 03             	shl    $0x3,%ecx
6170d9:	51                   	push   %ecx
6170da:	ff 75 0c             	push   0xc(%ebp)
6170dd:	8b cb                	mov    %ebx,%ecx
6170df:	c1 e1 03             	shl    $0x3,%ecx
6170e2:	51                   	push   %ecx
6170e3:	56                   	push   %esi
6170e4:	e8 ae e5 ff ff       	call   0x615697
6170e9:	ff 75 0c             	push   0xc(%ebp)
6170ec:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
6170ef:	33 c0                	xor    %eax,%eax
6170f1:	8b 7d 0c             	mov    0xc(%ebp),%edi
6170f4:	f3 ab                	rep stos %eax,%es:(%edi)
6170f6:	e8 d5 93 ed ff       	call   0x4f04d0
6170fb:	83 c4 14             	add    $0x14,%esp
6170fe:	8b c6                	mov    %esi,%eax
617100:	5e                   	pop    %esi
617101:	eb 1e                	jmp    0x617121
617103:	ff 75 0c             	push   0xc(%ebp)
617106:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
617109:	33 c0                	xor    %eax,%eax
61710b:	8b 7d 0c             	mov    0xc(%ebp),%edi
61710e:	f3 ab                	rep stos %eax,%es:(%edi)
617110:	e8 bb 93 ed ff       	call   0x4f04d0
617115:	59                   	pop    %ecx
617116:	8b 4d 08             	mov    0x8(%ebp),%ecx
617119:	6a 00                	push   $0x0
61711b:	53                   	push   %ebx
61711c:	e8 65 2a 00 00       	call   0x619b86
617121:	5f                   	pop    %edi
617122:	5b                   	pop    %ebx
617123:	5d                   	pop    %ebp
617124:	c3                   	ret
617125:	55                   	push   %ebp
617126:	8b ec                	mov    %esp,%ebp
617128:	53                   	push   %ebx
617129:	8b 5d 14             	mov    0x14(%ebp),%ebx
61712c:	39 5d 10             	cmp    %ebx,0x10(%ebp)
61712f:	75 05                	jne    0x617136
617131:	8b 45 0c             	mov    0xc(%ebp),%eax
617134:	eb 69                	jmp    0x61719f
617136:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
61713a:	57                   	push   %edi
61713b:	74 43                	je     0x617180
61713d:	8b 4d 08             	mov    0x8(%ebp),%ecx
617140:	56                   	push   %esi
617141:	6a 00                	push   $0x0
617143:	53                   	push   %ebx
617144:	e8 16 2a 00 00       	call   0x619b5f
617149:	8b 4d 10             	mov    0x10(%ebp),%ecx
61714c:	8b d3                	mov    %ebx,%edx
61714e:	3b d9                	cmp    %ecx,%ebx
617150:	8b f0                	mov    %eax,%esi
617152:	0f 42 cb             	cmovb  %ebx,%ecx
617155:	c1 e2 02             	shl    $0x2,%edx
617158:	c1 e1 02             	shl    $0x2,%ecx
61715b:	51                   	push   %ecx
61715c:	ff 75 0c             	push   0xc(%ebp)
61715f:	52                   	push   %edx
617160:	56                   	push   %esi
617161:	e8 31 e5 ff ff       	call   0x615697
617166:	8b 7d 0c             	mov    0xc(%ebp),%edi
617169:	33 c0                	xor    %eax,%eax
61716b:	8b 4d 10             	mov    0x10(%ebp),%ecx
61716e:	ff 75 0c             	push   0xc(%ebp)
617171:	f3 ab                	rep stos %eax,%es:(%edi)
617173:	e8 58 93 ed ff       	call   0x4f04d0
617178:	83 c4 14             	add    $0x14,%esp
61717b:	8b c6                	mov    %esi,%eax
61717d:	5e                   	pop    %esi
61717e:	eb 1e                	jmp    0x61719e
617180:	8b 7d 0c             	mov    0xc(%ebp),%edi
617183:	33 c0                	xor    %eax,%eax
617185:	8b 4d 10             	mov    0x10(%ebp),%ecx
617188:	ff 75 0c             	push   0xc(%ebp)
61718b:	f3 ab                	rep stos %eax,%es:(%edi)
61718d:	e8 3e 93 ed ff       	call   0x4f04d0
617192:	59                   	pop    %ecx
617193:	8b 4d 08             	mov    0x8(%ebp),%ecx
617196:	6a 00                	push   $0x0
617198:	53                   	push   %ebx
617199:	e8 c1 29 00 00       	call   0x619b5f
61719e:	5f                   	pop    %edi
61719f:	5b                   	pop    %ebx
6171a0:	5d                   	pop    %ebp
6171a1:	c3                   	ret
6171a2:	55                   	push   %ebp
6171a3:	8b ec                	mov    %esp,%ebp
6171a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6171a8:	2b 4d 08             	sub    0x8(%ebp),%ecx
6171ab:	8b 45 10             	mov    0x10(%ebp),%eax
6171ae:	51                   	push   %ecx
6171af:	ff 75 08             	push   0x8(%ebp)
6171b2:	2b c1                	sub    %ecx,%eax
6171b4:	50                   	push   %eax
6171b5:	e8 c6 c2 fc ff       	call   0x5e3480
6171ba:	83 c4 0c             	add    $0xc,%esp
6171bd:	5d                   	pop    %ebp
6171be:	c3                   	ret
6171bf:	55                   	push   %ebp
6171c0:	8b ec                	mov    %esp,%ebp
6171c2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6171c5:	33 c0                	xor    %eax,%eax
6171c7:	8b 55 08             	mov    0x8(%ebp),%edx
6171ca:	2b ca                	sub    %edx,%ecx
6171cc:	56                   	push   %esi
6171cd:	33 f6                	xor    %esi,%esi
6171cf:	41                   	inc    %ecx
6171d0:	d1 e9                	shr    $1,%ecx
6171d2:	3b 55 0c             	cmp    0xc(%ebp),%edx
6171d5:	0f 47 c8             	cmova  %eax,%ecx
6171d8:	85 c9                	test   %ecx,%ecx
6171da:	74 13                	je     0x6171ef
6171dc:	57                   	push   %edi
6171dd:	8b 7d 10             	mov    0x10(%ebp),%edi
6171e0:	66 8b 07             	mov    (%edi),%ax
6171e3:	46                   	inc    %esi
6171e4:	66 89 02             	mov    %ax,(%edx)
6171e7:	8d 52 02             	lea    0x2(%edx),%edx
6171ea:	3b f1                	cmp    %ecx,%esi
6171ec:	75 f2                	jne    0x6171e0
6171ee:	5f                   	pop    %edi
6171ef:	5e                   	pop    %esi
6171f0:	5d                   	pop    %ebp
6171f1:	c3                   	ret
6171f2:	55                   	push   %ebp
6171f3:	8b ec                	mov    %esp,%ebp
6171f5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6171f8:	33 c0                	xor    %eax,%eax
6171fa:	8b 55 08             	mov    0x8(%ebp),%edx
6171fd:	2b ca                	sub    %edx,%ecx
6171ff:	83 c1 03             	add    $0x3,%ecx
617202:	c1 e9 02             	shr    $0x2,%ecx
617205:	56                   	push   %esi
617206:	33 f6                	xor    %esi,%esi
617208:	3b 55 0c             	cmp    0xc(%ebp),%edx
61720b:	0f 47 c8             	cmova  %eax,%ecx
61720e:	85 c9                	test   %ecx,%ecx
617210:	74 11                	je     0x617223
617212:	57                   	push   %edi
617213:	8b 7d 10             	mov    0x10(%ebp),%edi
617216:	8b 07                	mov    (%edi),%eax
617218:	46                   	inc    %esi
617219:	89 02                	mov    %eax,(%edx)
61721b:	8d 52 04             	lea    0x4(%edx),%edx
61721e:	3b f1                	cmp    %ecx,%esi
617220:	75 f4                	jne    0x617216
617222:	5f                   	pop    %edi
617223:	5e                   	pop    %esi
617224:	5d                   	pop    %ebp
617225:	c3                   	ret
617226:	55                   	push   %ebp
617227:	8b ec                	mov    %esp,%ebp
617229:	8b 45 0c             	mov    0xc(%ebp),%eax
61722c:	3b 45 10             	cmp    0x10(%ebp),%eax
61722f:	74 16                	je     0x617247
617231:	8b 4d 14             	mov    0x14(%ebp),%ecx
617234:	8b 51 04             	mov    0x4(%ecx),%edx
617237:	39 50 fc             	cmp    %edx,-0x4(%eax)
61723a:	75 0b                	jne    0x617247
61723c:	83 c0 fc             	add    $0xfffffffc,%eax
61723f:	89 45 0c             	mov    %eax,0xc(%ebp)
617242:	3b 45 10             	cmp    0x10(%ebp),%eax
617245:	75 f0                	jne    0x617237
617247:	8b 4d 08             	mov    0x8(%ebp),%ecx
61724a:	89 01                	mov    %eax,(%ecx)
61724c:	8b c1                	mov    %ecx,%eax
61724e:	5d                   	pop    %ebp
61724f:	c3                   	ret
617250:	55                   	push   %ebp
617251:	8b ec                	mov    %esp,%ebp
617253:	51                   	push   %ecx
617254:	8b 4d 10             	mov    0x10(%ebp),%ecx
617257:	8b c1                	mov    %ecx,%eax
617259:	53                   	push   %ebx
61725a:	8b 5d 08             	mov    0x8(%ebp),%ebx
61725d:	2b c3                	sub    %ebx,%eax
61725f:	c1 f8 03             	sar    $0x3,%eax
617262:	83 f8 28             	cmp    $0x28,%eax
617265:	7e 6b                	jle    0x6172d2
617267:	40                   	inc    %eax
617268:	99                   	cltd
617269:	83 e2 07             	and    $0x7,%edx
61726c:	03 c2                	add    %edx,%eax
61726e:	56                   	push   %esi
61726f:	c1 f8 03             	sar    $0x3,%eax
617272:	57                   	push   %edi
617273:	ff 75 14             	push   0x14(%ebp)
617276:	8b c8                	mov    %eax,%ecx
617278:	8b f8                	mov    %eax,%edi
61727a:	c1 e1 04             	shl    $0x4,%ecx
61727d:	c1 e7 03             	shl    $0x3,%edi
617280:	89 4d fc             	mov    %ecx,-0x4(%ebp)
617283:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
617286:	50                   	push   %eax
617287:	8d 14 1f             	lea    (%edi,%ebx,1),%edx
61728a:	52                   	push   %edx
61728b:	53                   	push   %ebx
61728c:	e8 3e 01 00 00       	call   0x6173cf
617291:	8b 5d 0c             	mov    0xc(%ebp),%ebx
617294:	ff 75 14             	push   0x14(%ebp)
617297:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
61729a:	50                   	push   %eax
61729b:	8b c3                	mov    %ebx,%eax
61729d:	2b c7                	sub    %edi,%eax
61729f:	53                   	push   %ebx
6172a0:	50                   	push   %eax
6172a1:	e8 29 01 00 00       	call   0x6173cf
6172a6:	8b 45 10             	mov    0x10(%ebp),%eax
6172a9:	8b f0                	mov    %eax,%esi
6172ab:	ff 75 14             	push   0x14(%ebp)
6172ae:	2b f7                	sub    %edi,%esi
6172b0:	50                   	push   %eax
6172b1:	2b 45 fc             	sub    -0x4(%ebp),%eax
6172b4:	56                   	push   %esi
6172b5:	50                   	push   %eax
6172b6:	e8 14 01 00 00       	call   0x6173cf
6172bb:	ff 75 14             	push   0x14(%ebp)
6172be:	8b 45 08             	mov    0x8(%ebp),%eax
6172c1:	56                   	push   %esi
6172c2:	03 c7                	add    %edi,%eax
6172c4:	53                   	push   %ebx
6172c5:	50                   	push   %eax
6172c6:	e8 04 01 00 00       	call   0x6173cf
6172cb:	83 c4 40             	add    $0x40,%esp
6172ce:	5f                   	pop    %edi
6172cf:	5e                   	pop    %esi
6172d0:	eb 10                	jmp    0x6172e2
6172d2:	ff 75 14             	push   0x14(%ebp)
6172d5:	51                   	push   %ecx
6172d6:	ff 75 0c             	push   0xc(%ebp)
6172d9:	53                   	push   %ebx
6172da:	e8 f0 00 00 00       	call   0x6173cf
6172df:	83 c4 10             	add    $0x10,%esp
6172e2:	5b                   	pop    %ebx
6172e3:	8b e5                	mov    %ebp,%esp
6172e5:	5d                   	pop    %ebp
6172e6:	c3                   	ret
6172e7:	55                   	push   %ebp
6172e8:	8b ec                	mov    %esp,%ebp
6172ea:	57                   	push   %edi
6172eb:	8b 7d 08             	mov    0x8(%ebp),%edi
6172ee:	3b 7d 0c             	cmp    0xc(%ebp),%edi
6172f1:	74 5f                	je     0x617352
6172f3:	56                   	push   %esi
6172f4:	8d 77 08             	lea    0x8(%edi),%esi
6172f7:	3b 75 0c             	cmp    0xc(%ebp),%esi
6172fa:	74 55                	je     0x617351
6172fc:	53                   	push   %ebx
6172fd:	8b 5e 04             	mov    0x4(%esi),%ebx
617300:	8b d6                	mov    %esi,%edx
617302:	8b 06                	mov    (%esi),%eax
617304:	89 45 08             	mov    %eax,0x8(%ebp)
617307:	3b 5f 04             	cmp    0x4(%edi),%ebx
61730a:	73 18                	jae    0x617324
61730c:	8d 46 08             	lea    0x8(%esi),%eax
61730f:	50                   	push   %eax
617310:	56                   	push   %esi
617311:	57                   	push   %edi
617312:	e8 8b fe ff ff       	call   0x6171a2
617317:	8b 45 08             	mov    0x8(%ebp),%eax
61731a:	83 c4 0c             	add    $0xc,%esp
61731d:	89 07                	mov    %eax,(%edi)
61731f:	89 5f 04             	mov    %ebx,0x4(%edi)
617322:	eb 24                	jmp    0x617348
617324:	8d 4e f8             	lea    -0x8(%esi),%ecx
617327:	3b 5e fc             	cmp    -0x4(%esi),%ebx
61732a:	73 17                	jae    0x617343
61732c:	8b 01                	mov    (%ecx),%eax
61732e:	89 02                	mov    %eax,(%edx)
617330:	8b 41 04             	mov    0x4(%ecx),%eax
617333:	89 42 04             	mov    %eax,0x4(%edx)
617336:	8b d1                	mov    %ecx,%edx
617338:	83 e9 08             	sub    $0x8,%ecx
61733b:	3b 59 04             	cmp    0x4(%ecx),%ebx
61733e:	72 ec                	jb     0x61732c
617340:	8b 45 08             	mov    0x8(%ebp),%eax
617343:	89 02                	mov    %eax,(%edx)
617345:	89 5a 04             	mov    %ebx,0x4(%edx)
617348:	83 c6 08             	add    $0x8,%esi
61734b:	3b 75 0c             	cmp    0xc(%ebp),%esi
61734e:	75 ad                	jne    0x6172fd
617350:	5b                   	pop    %ebx
617351:	5e                   	pop    %esi
617352:	5f                   	pop    %edi
617353:	5d                   	pop    %ebp
617354:	c3                   	ret
617355:	55                   	push   %ebp
617356:	8b ec                	mov    %esp,%ebp
617358:	51                   	push   %ecx
617359:	51                   	push   %ecx
61735a:	53                   	push   %ebx
61735b:	8b 5d 08             	mov    0x8(%ebp),%ebx
61735e:	56                   	push   %esi
61735f:	8b 75 0c             	mov    0xc(%ebp),%esi
617362:	2b f3                	sub    %ebx,%esi
617364:	c1 fe 03             	sar    $0x3,%esi
617367:	83 fe 02             	cmp    $0x2,%esi
61736a:	7c 3d                	jl     0x6173a9
61736c:	8b c6                	mov    %esi,%eax
61736e:	99                   	cltd
61736f:	2b c2                	sub    %edx,%eax
617371:	57                   	push   %edi
617372:	8b f8                	mov    %eax,%edi
617374:	d1 ff                	sar    $1,%edi
617376:	85 ff                	test   %edi,%edi
617378:	7e 2e                	jle    0x6173a8
61737a:	8d 0c fb             	lea    (%ebx,%edi,8),%ecx
61737d:	ff 75 10             	push   0x10(%ebp)
617380:	83 e9 08             	sub    $0x8,%ecx
617383:	4f                   	dec    %edi
617384:	89 4d 0c             	mov    %ecx,0xc(%ebp)
617387:	8b 01                	mov    (%ecx),%eax
617389:	89 45 f8             	mov    %eax,-0x8(%ebp)
61738c:	8b 41 04             	mov    0x4(%ecx),%eax
61738f:	89 45 fc             	mov    %eax,-0x4(%ebp)
617392:	8d 45 f8             	lea    -0x8(%ebp),%eax
617395:	50                   	push   %eax
617396:	56                   	push   %esi
617397:	57                   	push   %edi
617398:	53                   	push   %ebx
617399:	e8 66 02 00 00       	call   0x617604
61739e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6173a1:	83 c4 14             	add    $0x14,%esp
6173a4:	85 ff                	test   %edi,%edi
6173a6:	7f d5                	jg     0x61737d
6173a8:	5f                   	pop    %edi
6173a9:	5e                   	pop    %esi
6173aa:	5b                   	pop    %ebx
6173ab:	8b e5                	mov    %ebp,%esp
6173ad:	5d                   	pop    %ebp
6173ae:	c3                   	ret
6173af:	55                   	push   %ebp
6173b0:	8b ec                	mov    %esp,%ebp