508fbc:	83 f8 01             	cmp    $0x1,%eax
508fbf:	75 0f                	jne    0x508fd0
508fc1:	85 d2                	test   %edx,%edx
508fc3:	75 0b                	jne    0x508fd0
508fc5:	8b c1                	mov    %ecx,%eax
508fc7:	25 00 00 00 40       	and    $0x40000000,%eax
508fcc:	0b c2                	or     %edx,%eax
508fce:	75 48                	jne    0x509018
508fd0:	81 e1 00 00 00 20    	and    $0x20000000,%ecx
508fd6:	0b ca                	or     %edx,%ecx
508fd8:	75 3e                	jne    0x509018
508fda:	f7 c3 00 00 00 04    	test   $0x4000000,%ebx
508fe0:	0f 85 c5 00 00 00    	jne    0x5090ab
508fe6:	8b 57 08             	mov    0x8(%edi),%edx
508fe9:	bf a8 57 6e 00       	mov    $0x6e57a8,%edi
508fee:	8b f2                	mov    %edx,%esi
508ff0:	2b fa                	sub    %edx,%edi
508ff2:	0f b6 0e             	movzbl (%esi),%ecx
508ff5:	0f b6 04 37          	movzbl (%edi,%esi,1),%eax
508ff9:	3b c8                	cmp    %eax,%ecx
508ffb:	75 41                	jne    0x50903e
508ffd:	85 c9                	test   %ecx,%ecx
508fff:	75 4f                	jne    0x509050
509001:	b8 00 00 00 10       	mov    $0x10000000,%eax
509006:	e9 69 00 00 00       	jmp    0x509074
50900b:	8b 40 20             	mov    0x20(%eax),%eax
50900e:	25 00 00 00 40       	and    $0x40000000,%eax
509013:	83 c8 00             	or     $0x0,%eax
509016:	74 c2                	je     0x508fda
509018:	56                   	push   %esi
509019:	68 8c 8c 6b 00       	push   $0x6b8c8c
50901e:	6a 1c                	push   $0x1c
509020:	e8 bb 6f fd ff       	call   0x4dffe0
509025:	83 c4 0c             	add    $0xc,%esp
509028:	c6 07 73             	movb   $0x73,(%edi)
50902b:	c7 47 2c 00 00 00 00 	movl   $0x0,0x2c(%edi)
509032:	b8 01 00 00 00       	mov    $0x1,%eax
509037:	5f                   	pop    %edi
509038:	5e                   	pop    %esi
509039:	5b                   	pop    %ebx
50903a:	8b e5                	mov    %ebp,%esp
50903c:	5d                   	pop    %ebp
50903d:	c3                   	ret
50903e:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
509045:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
50904c:	2b c8                	sub    %eax,%ecx
50904e:	75 03                	jne    0x509053
509050:	46                   	inc    %esi
509051:	eb 9f                	jmp    0x508ff2
509053:	bf a0 57 6e 00       	mov    $0x6e57a0,%edi
509058:	2b fa                	sub    %edx,%edi
50905a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
509060:	0f b6 02             	movzbl (%edx),%eax
509063:	0f b6 34 17          	movzbl (%edi,%edx,1),%esi
509067:	3b c6                	cmp    %esi,%eax
509069:	75 20                	jne    0x50908b
50906b:	85 c0                	test   %eax,%eax
50906d:	75 2e                	jne    0x50909d
50906f:	b8 00 00 00 20       	mov    $0x20000000,%eax
509074:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
509077:	0b d8                	or     %eax,%ebx
509079:	5f                   	pop    %edi
50907a:	5e                   	pop    %esi
50907b:	b8 01 00 00 00       	mov    $0x1,%eax
509080:	89 59 04             	mov    %ebx,0x4(%ecx)
509083:	c6 01 a7             	movb   $0xa7,(%ecx)
509086:	5b                   	pop    %ebx
509087:	8b e5                	mov    %ebp,%esp
509089:	5d                   	pop    %ebp
50908a:	c3                   	ret
50908b:	0f b6 88 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%ecx
509092:	0f b6 86 20 2a 6b 00 	movzbl 0x6b2a20(%esi),%eax
509099:	2b c8                	sub    %eax,%ecx
50909b:	75 0e                	jne    0x5090ab
50909d:	42                   	inc    %edx
50909e:	eb c0                	jmp    0x509060
5090a0:	83 fb 01             	cmp    $0x1,%ebx
5090a3:	0f 84 6f 00 00 00    	je     0x509118
5090a9:	eb 03                	jmp    0x5090ae
5090ab:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5090ae:	8b 55 0c             	mov    0xc(%ebp),%edx
5090b1:	85 db                	test   %ebx,%ebx
5090b3:	b9 c0 8c 6b 00       	mov    $0x6b8cc0,%ecx
5090b8:	b8 b0 8c 6b 00       	mov    $0x6b8cb0,%eax
5090bd:	0f 45 c1             	cmovne %ecx,%eax
5090c0:	8b 4d 14             	mov    0x14(%ebp),%ecx
5090c3:	51                   	push   %ecx
5090c4:	85 d2                	test   %edx,%edx
5090c6:	74 17                	je     0x5090df
5090c8:	ff 75 10             	push   0x10(%ebp)
5090cb:	52                   	push   %edx
5090cc:	50                   	push   %eax
5090cd:	68 d8 8c 6b 00       	push   $0x6b8cd8
5090d2:	ff 75 08             	push   0x8(%ebp)
5090d5:	e8 86 a1 01 00       	call   0x523260
5090da:	83 c4 18             	add    $0x18,%esp
5090dd:	eb 2c                	jmp    0x50910b
5090df:	8b 55 10             	mov    0x10(%ebp),%edx
5090e2:	85 d2                	test   %edx,%edx
5090e4:	74 14                	je     0x5090fa
5090e6:	52                   	push   %edx
5090e7:	50                   	push   %eax
5090e8:	68 e8 8c 6b 00       	push   $0x6b8ce8
5090ed:	ff 75 08             	push   0x8(%ebp)
5090f0:	e8 6b a1 01 00       	call   0x523260
5090f5:	83 c4 14             	add    $0x14,%esp
5090f8:	eb 11                	jmp    0x50910b
5090fa:	50                   	push   %eax
5090fb:	68 f4 8c 6b 00       	push   $0x6b8cf4
509100:	ff 75 08             	push   0x8(%ebp)
509103:	e8 58 a1 01 00       	call   0x523260
509108:	83 c4 10             	add    $0x10,%esp
50910b:	8b 45 08             	mov    0x8(%ebp),%eax
50910e:	c6 40 11 01          	movb   $0x1,0x11(%eax)
509112:	8b 45 d8             	mov    -0x28(%ebp),%eax
509115:	ff 40 14             	incl   0x14(%eax)
509118:	8b 7d 1c             	mov    0x1c(%ebp),%edi
50911b:	0f b7 47 20          	movzwl 0x20(%edi),%eax
50911f:	66 85 c0             	test   %ax,%ax
509122:	0f 88 8e 00 00 00    	js     0x5091b6
509128:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
50912c:	0f 84 84 00 00 00    	je     0x5091b6
509132:	8b 77 2c             	mov    0x2c(%edi),%esi
509135:	0f bf d0             	movswl %ax,%edx
509138:	f6 46 24 60          	testb  $0x60,0x24(%esi)
50913c:	74 4f                	je     0x50918d
50913e:	8b 46 04             	mov    0x4(%esi),%eax
509141:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
509144:	f6 44 88 10 60       	testb  $0x60,0x10(%eax,%ecx,4)
509149:	74 42                	je     0x50918d
50914b:	0f b7 46 2a          	movzwl 0x2a(%esi),%eax
50914f:	66 83 f8 40          	cmp    $0x40,%ax
509153:	7c 11                	jl     0x509166
509155:	8b 45 fc             	mov    -0x4(%ebp),%eax
509158:	83 c9 ff             	or     $0xffffffff,%ecx
50915b:	83 ca ff             	or     $0xffffffff,%edx
50915e:	89 48 38             	mov    %ecx,0x38(%eax)
509161:	89 50 3c             	mov    %edx,0x3c(%eax)
509164:	eb 50                	jmp    0x5091b6
509166:	33 c9                	xor    %ecx,%ecx
509168:	98                   	cwtl
509169:	0f ab c1             	bts    %eax,%ecx
50916c:	33 d2                	xor    %edx,%edx
50916e:	83 f8 20             	cmp    $0x20,%eax
509171:	0f 43 d1             	cmovae %ecx,%edx
509174:	33 ca                	xor    %edx,%ecx
509176:	83 f8 40             	cmp    $0x40,%eax
509179:	8b 45 fc             	mov    -0x4(%ebp),%eax
50917c:	0f 43 d1             	cmovae %ecx,%edx
50917f:	83 c1 ff             	add    $0xffffffff,%ecx
509182:	83 d2 ff             	adc    $0xffffffff,%edx
509185:	89 48 38             	mov    %ecx,0x38(%eax)
509188:	89 50 3c             	mov    %edx,0x3c(%eax)
50918b:	eb 29                	jmp    0x5091b6
50918d:	83 fa 40             	cmp    $0x40,%edx
509190:	b8 3f 00 00 00       	mov    $0x3f,%eax
509195:	0f 4d d0             	cmovge %eax,%edx
509198:	33 c0                	xor    %eax,%eax
50919a:	0f ab d0             	bts    %edx,%eax
50919d:	33 c9                	xor    %ecx,%ecx
50919f:	83 fa 20             	cmp    $0x20,%edx
5091a2:	0f 43 c8             	cmovae %eax,%ecx
5091a5:	33 c1                	xor    %ecx,%eax
5091a7:	83 fa 40             	cmp    $0x40,%edx
5091aa:	8b 55 fc             	mov    -0x4(%ebp),%edx
5091ad:	0f 43 c8             	cmovae %eax,%ecx
5091b0:	09 42 38             	or     %eax,0x38(%edx)
5091b3:	09 4a 3c             	or     %ecx,0x3c(%edx)
5091b6:	8b 47 0c             	mov    0xc(%edi),%eax
5091b9:	8b 75 e8             	mov    -0x18(%ebp),%esi
5091bc:	85 c0                	test   %eax,%eax
5091be:	74 0a                	je     0x5091ca
5091c0:	50                   	push   %eax
5091c1:	56                   	push   %esi
5091c2:	e8 e9 d5 01 00       	call   0x5267b0
5091c7:	83 c4 08             	add    $0x8,%esp
5091ca:	8b 47 10             	mov    0x10(%edi),%eax
5091cd:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
5091d4:	85 c0                	test   %eax,%eax
5091d6:	74 0a                	je     0x5091e2
5091d8:	50                   	push   %eax
5091d9:	56                   	push   %esi
5091da:	e8 d1 d5 01 00       	call   0x5267b0
5091df:	83 c4 08             	add    $0x8,%esp
5091e2:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5091e5:	81 4f 04 00 00 80 00 	orl    $0x800000,0x4(%edi)
5091ec:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
5091f3:	88 0f                	mov    %cl,(%edi)
5091f5:	83 fb 01             	cmp    $0x1,%ebx
5091f8:	0f 85 bf fc ff ff    	jne    0x508ebd
5091fe:	8b 5d 08             	mov    0x8(%ebp),%ebx
509201:	f7 47 04 00 00 40 00 	testl  $0x400000,0x4(%edi)
509208:	75 13                	jne    0x50921d
50920a:	8b 45 18             	mov    0x18(%ebp),%eax
50920d:	ff 70 04             	push   0x4(%eax)
509210:	ff 75 e4             	push   -0x1c(%ebp)
509213:	57                   	push   %edi
509214:	53                   	push   %ebx
509215:	e8 16 06 01 00       	call   0x519830
50921a:	83 c4 10             	add    $0x10,%esp
50921d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
509220:	8b 45 18             	mov    0x18(%ebp),%eax
509223:	ff 41 10             	incl   0x10(%ecx)
509226:	3b c8                	cmp    %eax,%ecx
509228:	74 10                	je     0x50923a
50922a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
509230:	8b 49 0c             	mov    0xc(%ecx),%ecx
509233:	ff 41 10             	incl   0x10(%ecx)
509236:	3b c8                	cmp    %eax,%ecx
509238:	75 f6                	jne    0x509230
50923a:	5f                   	pop    %edi
50923b:	5e                   	pop    %esi
50923c:	b8 01 00 00 00       	mov    $0x1,%eax
509241:	5b                   	pop    %ebx
509242:	8b e5                	mov    %ebp,%esp
509244:	5d                   	pop    %ebp
509245:	c3                   	ret
509246:	cc                   	int3
509247:	cc                   	int3
509248:	cc                   	int3
509249:	cc                   	int3
50924a:	cc                   	int3
50924b:	cc                   	int3
50924c:	cc                   	int3
50924d:	cc                   	int3
50924e:	cc                   	int3
50924f:	cc                   	int3
509250:	55                   	push   %ebp
509251:	8b ec                	mov    %esp,%ebp
509253:	8b 45 0c             	mov    0xc(%ebp),%eax
509256:	66 83 48 10 01       	orw    $0x1,0x10(%eax)
50925b:	f6 40 10 60          	testb  $0x60,0x10(%eax)
50925f:	74 0d                	je     0x50926e
509261:	c7 45 0c f0 9e 6b 00 	movl   $0x6b9ef0,0xc(%ebp)
509268:	5d                   	pop    %ebp
509269:	e9 f2 9f 01 00       	jmp    0x523260
50926e:	5d                   	pop    %ebp
50926f:	c3                   	ret
509270:	55                   	push   %ebp
509271:	8b ec                	mov    %esp,%ebp
509273:	8b 45 0c             	mov    0xc(%ebp),%eax
509276:	8b 4d 08             	mov    0x8(%ebp),%ecx
509279:	53                   	push   %ebx
50927a:	56                   	push   %esi
50927b:	8b 58 04             	mov    0x4(%eax),%ebx
50927e:	ff 41 2c             	incl   0x2c(%ecx)
509281:	8b 50 24             	mov    0x24(%eax),%edx
509284:	8b 71 08             	mov    0x8(%ecx),%esi
509287:	57                   	push   %edi
509288:	8b 79 2c             	mov    0x2c(%ecx),%edi
50928b:	85 d2                	test   %edx,%edx
50928d:	74 18                	je     0x5092a7
50928f:	0f b6 42 04          	movzbl 0x4(%edx),%eax
509293:	50                   	push   %eax
509294:	8b 45 10             	mov    0x10(%ebp),%eax
509297:	6a 00                	push   $0x0
509299:	ff 32                	push   (%edx)
50929b:	ff 70 1c             	push   0x1c(%eax)
50929e:	51                   	push   %ecx
50929f:	e8 2c aa 01 00       	call   0x523cd0
5092a4:	83 c4 14             	add    $0x14,%esp
5092a7:	8b 55 18             	mov    0x18(%ebp),%edx
5092aa:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5092ad:	2b d3                	sub    %ebx,%edx
5092af:	03 5d 14             	add    0x14(%ebp),%ebx
5092b2:	39 4e 70             	cmp    %ecx,0x70(%esi)
5092b5:	7f 15                	jg     0x5092cc
5092b7:	57                   	push   %edi
5092b8:	52                   	push   %edx
5092b9:	53                   	push   %ebx
5092ba:	6a 5b                	push   $0x5b
5092bc:	56                   	push   %esi
5092bd:	e8 3e d2 ff ff       	call   0x506500
5092c2:	83 c4 14             	add    $0x14,%esp
5092c5:	8b c7                	mov    %edi,%eax
5092c7:	5f                   	pop    %edi
5092c8:	5e                   	pop    %esi
5092c9:	5b                   	pop    %ebx
5092ca:	5d                   	pop    %ebp
5092cb:	c3                   	ret
5092cc:	8d 41 01             	lea    0x1(%ecx),%eax
5092cf:	89 46 6c             	mov    %eax,0x6c(%esi)
5092d2:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5092d5:	8b 46 68             	mov    0x68(%esi),%eax
5092d8:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5092dc:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
5092e0:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
5092e7:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5092eb:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5092f2:	00
5092f3:	8b c7                	mov    %edi,%eax
5092f5:	5f                   	pop    %edi
5092f6:	5e                   	pop    %esi
5092f7:	5b                   	pop    %ebx
5092f8:	5d                   	pop    %ebp
5092f9:	c3                   	ret
5092fa:	cc                   	int3
5092fb:	cc                   	int3
5092fc:	cc                   	int3
5092fd:	cc                   	int3
5092fe:	cc                   	int3
5092ff:	cc                   	int3
509300:	55                   	push   %ebp
509301:	8b ec                	mov    %esp,%ebp
509303:	53                   	push   %ebx
509304:	56                   	push   %esi
509305:	8b 75 08             	mov    0x8(%ebp),%esi
509308:	57                   	push   %edi
509309:	56                   	push   %esi
50930a:	ff 15 40 18 72 00    	call   *0x721840
509310:	8b 0d 5c 00 73 00    	mov    0x73005c,%ecx
509316:	83 c4 04             	add    $0x4,%esp
509319:	3b f1                	cmp    %ecx,%esi
50931b:	8b f8                	mov    %eax,%edi
50931d:	0f 47 ce             	cmova  %esi,%ecx
509320:	8b 35 9c ff 72 00    	mov    0x72ff9c,%esi
509326:	89 0d 5c 00 73 00    	mov    %ecx,0x73005c
50932c:	85 f6                	test   %esi,%esi
50932e:	0f 8c 96 00 00 00    	jl     0x5093ca
509334:	8b 0d 98 ff 72 00    	mov    0x72ff98,%ecx
50933a:	7f 08                	jg     0x509344
50933c:	85 c9                	test   %ecx,%ecx
50933e:	0f 84 86 00 00 00    	je     0x5093ca
509344:	99                   	cltd
509345:	8b d8                	mov    %eax,%ebx
509347:	8b c2                	mov    %edx,%eax
509349:	2b cb                	sub    %ebx,%ecx
50934b:	89 45 08             	mov    %eax,0x8(%ebp)
50934e:	1b f0                	sbb    %eax,%esi
509350:	33 c0                	xor    %eax,%eax
509352:	3b c6                	cmp    %esi,%eax
509354:	7c 6f                	jl     0x5093c5
509356:	7f 08                	jg     0x509360
509358:	39 0d 20 00 73 00    	cmp    %ecx,0x730020
50935e:	72 65                	jb     0x5093c5
509360:	a1 90 ff 72 00       	mov    0x72ff90,%eax
509365:	c7 05 a8 ff 72 00 01 	movl   $0x1,0x72ffa8
50936c:	00 00 00
50936f:	85 c0                	test   %eax,%eax
509371:	74 1d                	je     0x509390
509373:	50                   	push   %eax
509374:	ff 15 68 18 72 00    	call   *0x721868
50937a:	a1 90 ff 72 00       	mov    0x72ff90,%eax
50937f:	83 c4 04             	add    $0x4,%esp
509382:	85 c0                	test   %eax,%eax
509384:	74 0a                	je     0x509390
509386:	50                   	push   %eax
509387:	ff 15 60 18 72 00    	call   *0x721860
50938d:	83 c4 04             	add    $0x4,%esp
509390:	8b 0d a0 ff 72 00    	mov    0x72ffa0,%ecx