51109f:	83 c4 1c             	add    $0x1c,%esp
5110a2:	85 c0                	test   %eax,%eax
5110a4:	74 0f                	je     0x5110b5
5110a6:	ff 77 18             	push   0x18(%edi)
5110a9:	50                   	push   %eax
5110aa:	6a 14                	push   $0x14
5110ac:	56                   	push   %esi
5110ad:	e8 2e 0a 03 00       	call   0x541ae0
5110b2:	83 c4 10             	add    $0x10,%esp
5110b5:	8b 4d 18             	mov    0x18(%ebp),%ecx
5110b8:	8b 56 6c             	mov    0x6c(%esi),%edx
5110bb:	85 c9                	test   %ecx,%ecx
5110bd:	79 03                	jns    0x5110c2
5110bf:	8d 4a ff             	lea    -0x1(%edx),%ecx
5110c2:	8b 06                	mov    (%esi),%eax
5110c4:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5110c8:	74 07                	je     0x5110d1
5110ca:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5110cf:	eb 09                	jmp    0x5110da
5110d1:	8b 46 68             	mov    0x68(%esi),%eax
5110d4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5110d7:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5110da:	89 50 08             	mov    %edx,0x8(%eax)
5110dd:	ff 77 04             	push   0x4(%edi)
5110e0:	ff 75 08             	push   0x8(%ebp)
5110e3:	ff 75 fc             	push   -0x4(%ebp)
5110e6:	53                   	push   %ebx
5110e7:	e8 04 41 01 00       	call   0x5251f0
5110ec:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5110ef:	83 c4 10             	add    $0x10,%esp
5110f2:	8b 56 6c             	mov    0x6c(%esi),%edx
5110f5:	85 c9                	test   %ecx,%ecx
5110f7:	79 03                	jns    0x5110fc
5110f9:	8d 4a ff             	lea    -0x1(%edx),%ecx
5110fc:	8b 06                	mov    (%esi),%eax
5110fe:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
511102:	74 07                	je     0x51110b
511104:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
511109:	eb 09                	jmp    0x511114
51110b:	8b 46 68             	mov    0x68(%esi),%eax
51110e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
511111:	8d 04 88             	lea    (%eax,%ecx,4),%eax
511114:	89 50 08             	mov    %edx,0x8(%eax)
511117:	8b 4d e8             	mov    -0x18(%ebp),%ecx
51111a:	85 c9                	test   %ecx,%ecx
51111c:	0f 84 91 00 00 00    	je     0x5111b3
511122:	8b 47 08             	mov    0x8(%edi),%eax
511125:	89 45 1c             	mov    %eax,0x1c(%ebp)
511128:	8b 46 6c             	mov    0x6c(%esi),%eax
51112b:	83 c0 04             	add    $0x4,%eax
51112e:	50                   	push   %eax
51112f:	51                   	push   %ecx
511130:	6a 31                	push   $0x31
511132:	56                   	push   %esi
511133:	e8 a8 09 03 00       	call   0x541ae0
511138:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51113b:	83 c4 10             	add    $0x10,%esp
51113e:	8b 55 1c             	mov    0x1c(%ebp),%edx
511141:	39 4e 70             	cmp    %ecx,0x70(%esi)
511144:	7f 12                	jg     0x511158
511146:	6a 00                	push   $0x0
511148:	6a 00                	push   $0x0
51114a:	52                   	push   %edx
51114b:	6a 21                	push   $0x21
51114d:	56                   	push   %esi
51114e:	e8 ad 53 ff ff       	call   0x506500
511153:	83 c4 14             	add    $0x14,%esp
511156:	eb 2f                	jmp    0x511187
511158:	8d 41 01             	lea    0x1(%ecx),%eax
51115b:	89 46 6c             	mov    %eax,0x6c(%esi)
51115e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
511161:	8b 46 68             	mov    0x68(%esi),%eax
511164:	c7 04 88 21 00 00 00 	movl   $0x21,(%eax,%ecx,4)
51116b:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
51116f:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
511176:	00
511177:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
51117e:	00
51117f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
511186:	00
511187:	8b 45 f8             	mov    -0x8(%ebp),%eax
51118a:	2b 45 ec             	sub    -0x14(%ebp),%eax
51118d:	50                   	push   %eax
51118e:	8b 45 fc             	mov    -0x4(%ebp),%eax
511191:	03 45 ec             	add    -0x14(%ebp),%eax
511194:	50                   	push   %eax
511195:	6a 00                	push   $0x0
511197:	ff 75 1c             	push   0x1c(%ebp)
51119a:	6a 26                	push   $0x26
51119c:	56                   	push   %esi
51119d:	e8 6e 0a 03 00       	call   0x541c10
5111a2:	ff 75 1c             	push   0x1c(%ebp)
5111a5:	89 45 e0             	mov    %eax,-0x20(%ebp)
5111a8:	6a 7a                	push   $0x7a
5111aa:	56                   	push   %esi
5111ab:	e8 d0 08 03 00       	call   0x541a80
5111b0:	83 c4 24             	add    $0x24,%esp
5111b3:	8b 55 f0             	mov    -0x10(%ebp),%edx
5111b6:	85 d2                	test   %edx,%edx
5111b8:	75 18                	jne    0x5111d2
5111ba:	ff 75 e4             	push   -0x1c(%ebp)
5111bd:	ff 75 fc             	push   -0x4(%ebp)
5111c0:	ff 75 10             	push   0x10(%ebp)
5111c3:	57                   	push   %edi
5111c4:	53                   	push   %ebx
5111c5:	e8 a6 80 ff ff       	call   0x509270
5111ca:	83 c4 14             	add    $0x14,%esp
5111cd:	89 45 f0             	mov    %eax,-0x10(%ebp)
5111d0:	8b d0                	mov    %eax,%edx
5111d2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5111d5:	2b 45 ec             	sub    -0x14(%ebp),%eax
5111d8:	50                   	push   %eax
5111d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
5111dc:	03 45 ec             	add    -0x14(%ebp),%eax
5111df:	50                   	push   %eax
5111e0:	8a 47 20             	mov    0x20(%edi),%al
5111e3:	52                   	push   %edx
5111e4:	ff 77 08             	push   0x8(%edi)
5111e7:	f6 d0                	not    %al
5111e9:	83 e0 01             	and    $0x1,%eax
5111ec:	0d 82 00 00 00       	or     $0x82,%eax
5111f1:	50                   	push   %eax
5111f2:	56                   	push   %esi
5111f3:	e8 18 0a 03 00       	call   0x541c10
5111f8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5111fb:	83 c4 18             	add    $0x18,%esp
5111fe:	85 c9                	test   %ecx,%ecx
511200:	74 36                	je     0x511238
511202:	8b 57 1c             	mov    0x1c(%edi),%edx
511205:	85 d2                	test   %edx,%edx
511207:	75 03                	jne    0x51120c
511209:	8b 56 6c             	mov    0x6c(%esi),%edx
51120c:	85 c9                	test   %ecx,%ecx
51120e:	79 04                	jns    0x511214
511210:	8b 4e 6c             	mov    0x6c(%esi),%ecx
511213:	49                   	dec    %ecx
511214:	8b 06                	mov    (%esi),%eax
511216:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51121a:	74 0f                	je     0x51122b
51121c:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
511221:	5f                   	pop    %edi
511222:	5e                   	pop    %esi
511223:	5b                   	pop    %ebx
511224:	89 50 08             	mov    %edx,0x8(%eax)
511227:	8b e5                	mov    %ebp,%esp
511229:	5d                   	pop    %ebp
51122a:	c3                   	ret
51122b:	8b 46 68             	mov    0x68(%esi),%eax
51122e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
511231:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
511235:	8d 04 88             	lea    (%eax,%ecx,4),%eax
511238:	5f                   	pop    %edi
511239:	5e                   	pop    %esi
51123a:	5b                   	pop    %ebx
51123b:	8b e5                	mov    %ebp,%esp
51123d:	5d                   	pop    %ebp
51123e:	c3                   	ret
51123f:	cc                   	int3
511240:	55                   	push   %ebp
511241:	8b ec                	mov    %esp,%ebp
511243:	8b 45 10             	mov    0x10(%ebp),%eax
511246:	33 c9                	xor    %ecx,%ecx
511248:	8b d0                	mov    %eax,%edx
51124a:	83 ec 0c             	sub    $0xc,%esp
51124d:	81 e2 00 00 00 ff    	and    $0xff000000,%edx
511253:	0b ca                	or     %edx,%ecx
511255:	0f 84 89 00 00 00    	je     0x5112e4
51125b:	8b 55 08             	mov    0x8(%ebp),%edx
51125e:	53                   	push   %ebx
51125f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
511262:	88 5a 08             	mov    %bl,0x8(%edx)
511265:	0f ac c3 08          	shrd   $0x8,%eax,%ebx
511269:	c1 e8 08             	shr    $0x8,%eax
51126c:	8a cb                	mov    %bl,%cl
51126e:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
511272:	80 c9 80             	or     $0x80,%cl
511275:	c1 e8 07             	shr    $0x7,%eax
511278:	88 4a 07             	mov    %cl,0x7(%edx)
51127b:	8a cb                	mov    %bl,%cl
51127d:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
511281:	80 c9 80             	or     $0x80,%cl
511284:	c1 e8 07             	shr    $0x7,%eax
511287:	88 4a 06             	mov    %cl,0x6(%edx)
51128a:	8a cb                	mov    %bl,%cl
51128c:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
511290:	80 c9 80             	or     $0x80,%cl
511293:	c1 e8 07             	shr    $0x7,%eax
511296:	88 4a 05             	mov    %cl,0x5(%edx)
511299:	8a cb                	mov    %bl,%cl
51129b:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
51129f:	80 c9 80             	or     $0x80,%cl
5112a2:	c1 e8 07             	shr    $0x7,%eax
5112a5:	88 4a 04             	mov    %cl,0x4(%edx)
5112a8:	8a cb                	mov    %bl,%cl
5112aa:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
5112ae:	80 c9 80             	or     $0x80,%cl
5112b1:	c1 e8 07             	shr    $0x7,%eax
5112b4:	88 4a 03             	mov    %cl,0x3(%edx)
5112b7:	8a cb                	mov    %bl,%cl
5112b9:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
5112bd:	80 c9 80             	or     $0x80,%cl
5112c0:	c1 e8 07             	shr    $0x7,%eax
5112c3:	88 4a 02             	mov    %cl,0x2(%edx)
5112c6:	8a cb                	mov    %bl,%cl
5112c8:	0f ac c3 07          	shrd   $0x7,%eax,%ebx
5112cc:	80 c9 80             	or     $0x80,%cl
5112cf:	c1 e8 07             	shr    $0x7,%eax
5112d2:	80 cb 80             	or     $0x80,%bl
5112d5:	88 1a                	mov    %bl,(%edx)
5112d7:	b8 09 00 00 00       	mov    $0x9,%eax
5112dc:	88 4a 01             	mov    %cl,0x1(%edx)
5112df:	5b                   	pop    %ebx
5112e0:	8b e5                	mov    %ebp,%esp
5112e2:	5d                   	pop    %ebp
5112e3:	c3                   	ret
5112e4:	8b 55 0c             	mov    0xc(%ebp),%edx
5112e7:	56                   	push   %esi
5112e8:	57                   	push   %edi
5112e9:	33 ff                	xor    %edi,%edi
5112eb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5112f0:	8a ca                	mov    %dl,%cl
5112f2:	8b f7                	mov    %edi,%esi
5112f4:	80 c9 80             	or     $0x80,%cl
5112f7:	0f ac c2 07          	shrd   $0x7,%eax,%edx
5112fb:	88 4c 3d f4          	mov    %cl,-0xc(%ebp,%edi,1)
5112ff:	47                   	inc    %edi
511300:	c1 e8 07             	shr    $0x7,%eax
511303:	8b ca                	mov    %edx,%ecx
511305:	0b c8                	or     %eax,%ecx
511307:	75 e7                	jne    0x5112f0
511309:	80 65 f4 7f          	andb   $0x7f,-0xc(%ebp)
51130d:	85 f6                	test   %esi,%esi
51130f:	78 12                	js     0x511323
511311:	8b 45 08             	mov    0x8(%ebp),%eax
511314:	8a 4c 35 f4          	mov    -0xc(%ebp,%esi,1),%cl
511318:	8d 40 01             	lea    0x1(%eax),%eax
51131b:	83 ee 01             	sub    $0x1,%esi
51131e:	88 48 ff             	mov    %cl,-0x1(%eax)
511321:	79 f1                	jns    0x511314
511323:	8b c7                	mov    %edi,%eax
511325:	5f                   	pop    %edi
511326:	5e                   	pop    %esi
511327:	8b e5                	mov    %ebp,%esp
511329:	5d                   	pop    %ebp
51132a:	c3                   	ret
51132b:	cc                   	int3
51132c:	cc                   	int3
51132d:	cc                   	int3
51132e:	cc                   	int3
51132f:	cc                   	int3
511330:	55                   	push   %ebp
511331:	8b ec                	mov    %esp,%ebp
511333:	8b 4d 08             	mov    0x8(%ebp),%ecx
511336:	80 79 09 00          	cmpb   $0x0,0x9(%ecx)
51133a:	8b 51 04             	mov    0x4(%ecx),%edx
51133d:	75 04                	jne    0x511343
51133f:	33 c0                	xor    %eax,%eax
511341:	5d                   	pop    %ebp
511342:	c3                   	ret
511343:	39 4a 4c             	cmp    %ecx,0x4c(%edx)
511346:	74 0d                	je     0x511355
511348:	f6 42 16 40          	testb  $0x40,0x16(%edx)
51134c:	74 07                	je     0x511355
51134e:	b8 06 01 00 00       	mov    $0x106,%eax
511353:	5d                   	pop    %ebp
511354:	c3                   	ret
511355:	8b 42 48             	mov    0x48(%edx),%eax
511358:	53                   	push   %ebx
511359:	56                   	push   %esi
51135a:	85 c0                	test   %eax,%eax
51135c:	74 1b                	je     0x511379
51135e:	8a 5d 10             	mov    0x10(%ebp),%bl
511361:	8b 75 0c             	mov    0xc(%ebp),%esi
511364:	39 08                	cmp    %ecx,(%eax)
511366:	74 0a                	je     0x511372
511368:	39 70 04             	cmp    %esi,0x4(%eax)
51136b:	75 05                	jne    0x511372
51136d:	38 58 08             	cmp    %bl,0x8(%eax)
511370:	75 0d                	jne    0x51137f
511372:	8b 40 0c             	mov    0xc(%eax),%eax
511375:	85 c0                	test   %eax,%eax
511377:	75 eb                	jne    0x511364
511379:	5e                   	pop    %esi
51137a:	33 c0                	xor    %eax,%eax
51137c:	5b                   	pop    %ebx
51137d:	5d                   	pop    %ebp
51137e:	c3                   	ret
51137f:	80 fb 02             	cmp    $0x2,%bl
511382:	75 09                	jne    0x51138d
511384:	b8 80 00 00 00       	mov    $0x80,%eax
511389:	66 09 42 16          	or     %ax,0x16(%edx)
51138d:	5e                   	pop    %esi
51138e:	b8 06 01 00 00       	mov    $0x106,%eax
511393:	5b                   	pop    %ebx
511394:	5d                   	pop    %ebp
511395:	c3                   	ret
511396:	cc                   	int3
511397:	cc                   	int3
511398:	cc                   	int3
511399:	cc                   	int3
51139a:	cc                   	int3
51139b:	cc                   	int3
51139c:	cc                   	int3
51139d:	cc                   	int3
51139e:	cc                   	int3
51139f:	cc                   	int3
5113a0:	55                   	push   %ebp
5113a1:	8b ec                	mov    %esp,%ebp
5113a3:	83 ec 08             	sub    $0x8,%esp
5113a6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5113ab:	33 c5                	xor    %ebp,%eax
5113ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
5113b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
5113b3:	8d 55 f8             	lea    -0x8(%ebp),%edx
5113b6:	56                   	push   %esi
5113b7:	ff 75 10             	push   0x10(%ebp)
5113ba:	8b 75 14             	mov    0x14(%ebp),%esi
5113bd:	ff 75 0c             	push   0xc(%ebp)
5113c0:	8b 01                	mov    (%ecx),%eax
5113c2:	6a 04                	push   $0x4
5113c4:	52                   	push   %edx
5113c5:	51                   	push   %ecx
5113c6:	8b 40 08             	mov    0x8(%eax),%eax
5113c9:	ff d0                	call   *%eax
5113cb:	83 c4 14             	add    $0x14,%esp
5113ce:	85 c0                	test   %eax,%eax
5113d0:	75 07                	jne    0x5113d9
5113d2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5113d5:	0f c9                	bswap  %ecx
5113d7:	89 0e                	mov    %ecx,(%esi)
5113d9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5113dc:	33 cd                	xor    %ebp,%ecx
5113de:	5e                   	pop    %esi
5113df:	e8 f6 00 0d 00       	call   0x5e14da
5113e4:	8b e5                	mov    %ebp,%esp
5113e6:	5d                   	pop    %ebp
5113e7:	c3                   	ret
5113e8:	cc                   	int3
5113e9:	cc                   	int3
5113ea:	cc                   	int3
5113eb:	cc                   	int3
5113ec:	cc                   	int3
5113ed:	cc                   	int3
5113ee:	cc                   	int3
5113ef:	cc                   	int3
5113f0:	55                   	push   %ebp
5113f1:	8b ec                	mov    %esp,%ebp
5113f3:	83 ec 08             	sub    $0x8,%esp
5113f6:	53                   	push   %ebx
5113f7:	8b 5d 08             	mov    0x8(%ebp),%ebx