5a5061:	0f 84 94 00 00 00    	je     0x5a50fb
5a5067:	f6 86 a4 05 00 00 01 	testb  $0x1,0x5a4(%esi)
5a506e:	0f 84 87 00 00 00    	je     0x5a50fb
5a5074:	8b 46 7c             	mov    0x7c(%esi),%eax
5a5077:	f7 00 00 08 00 00    	testl  $0x800,(%eax)
5a507d:	74 5d                	je     0x5a50dc
5a507f:	83 be bc 05 00 00 00 	cmpl   $0x0,0x5bc(%esi)
5a5086:	75 54                	jne    0x5a50dc
5a5088:	83 be 4c 04 00 00 00 	cmpl   $0x0,0x44c(%esi)
5a508f:	74 35                	je     0x5a50c6
5a5091:	68 88 05 00 00       	push   $0x588
5a5096:	68 38 80 66 00       	push   $0x668038
5a509b:	6a 44                	push   $0x44
5a509d:	68 f7 01 00 00       	push   $0x1f7
5a50a2:	6a 50                	push   $0x50
5a50a4:	56                   	push   %esi
5a50a5:	e8 66 a0 fe ff       	call   0x58f110
5a50aa:	83 c4 18             	add    $0x18,%esp
5a50ad:	33 c0                	xor    %eax,%eax
5a50af:	5f                   	pop    %edi
5a50b0:	5e                   	pop    %esi
5a50b1:	5b                   	pop    %ebx
5a50b2:	83 c4 0c             	add    $0xc,%esp
5a50b5:	c3                   	ret
5a50b6:	3b 7c 24 1c          	cmp    0x1c(%esp),%edi
5a50ba:	73 9e                	jae    0x5a505a
5a50bc:	8b 46 7c             	mov    0x7c(%esi),%eax
5a50bf:	66 89 98 56 03 00 00 	mov    %bx,0x356(%eax)
5a50c6:	c7 86 4c 04 00 00 01 	movl   $0x1,0x44c(%esi)
5a50cd:	00 00 00
5a50d0:	5f                   	pop    %edi
5a50d1:	5e                   	pop    %esi
5a50d2:	b8 01 00 00 00       	mov    $0x1,%eax
5a50d7:	5b                   	pop    %ebx
5a50d8:	83 c4 0c             	add    $0xc,%esp
5a50db:	c3                   	ret
5a50dc:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
5a50e3:	75 eb                	jne    0x5a50d0
5a50e5:	5f                   	pop    %edi
5a50e6:	c7 86 4c 04 00 00 02 	movl   $0x2,0x44c(%esi)
5a50ed:	00 00 00
5a50f0:	b8 01 00 00 00       	mov    $0x1,%eax
5a50f5:	5e                   	pop    %esi
5a50f6:	5b                   	pop    %ebx
5a50f7:	83 c4 0c             	add    $0xc,%esp
5a50fa:	c3                   	ret
5a50fb:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
5a5100:	b9 28 00 00 00       	mov    $0x28,%ecx
5a5105:	68 7b 05 00 00       	push   $0x57b
5a510a:	68 38 80 66 00       	push   $0x668038
5a510f:	6a 65                	push   $0x65
5a5111:	b8 6d 00 00 00       	mov    $0x6d,%eax
5a5116:	68 f7 01 00 00       	push   $0x1f7
5a511b:	0f 45 c1             	cmovne %ecx,%eax
5a511e:	50                   	push   %eax
5a511f:	56                   	push   %esi
5a5120:	e8 eb 9f fe ff       	call   0x58f110
5a5125:	83 c4 18             	add    $0x18,%esp
5a5128:	33 c0                	xor    %eax,%eax
5a512a:	5f                   	pop    %edi
5a512b:	5e                   	pop    %esi
5a512c:	5b                   	pop    %ebx
5a512d:	83 c4 0c             	add    $0xc,%esp
5a5130:	c3                   	ret
5a5131:	cc                   	int3
5a5132:	cc                   	int3
5a5133:	cc                   	int3
5a5134:	cc                   	int3
5a5135:	cc                   	int3
5a5136:	cc                   	int3
5a5137:	cc                   	int3
5a5138:	cc                   	int3
5a5139:	cc                   	int3
5a513a:	cc                   	int3
5a513b:	cc                   	int3
5a513c:	cc                   	int3
5a513d:	cc                   	int3
5a513e:	cc                   	int3
5a513f:	cc                   	int3
5a5140:	8b 44 24 04          	mov    0x4(%esp),%eax
5a5144:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
5a5148:	74 0a                	je     0x5a5154
5a514a:	c7 80 e8 05 00 00 00 	movl   $0x0,0x5e8(%eax)
5a5151:	00 00 00
5a5154:	b8 01 00 00 00       	mov    $0x1,%eax
5a5159:	c3                   	ret
5a515a:	cc                   	int3
5a515b:	cc                   	int3
5a515c:	cc                   	int3
5a515d:	cc                   	int3
5a515e:	cc                   	int3
5a515f:	cc                   	int3
5a5160:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5a5165:	75 48                	jne    0x5a51af
5a5167:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5a516b:	8b 51 04             	mov    0x4(%ecx),%edx
5a516e:	8b 42 64             	mov    0x64(%edx),%eax
5a5171:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5a5175:	75 38                	jne    0x5a51af
5a5177:	8b 02                	mov    (%edx),%eax
5a5179:	3d 04 03 00 00       	cmp    $0x304,%eax
5a517e:	7c 2f                	jl     0x5a51af
5a5180:	3d 00 00 01 00       	cmp    $0x10000,%eax
5a5185:	74 28                	je     0x5a51af
5a5187:	83 b9 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ecx)
5a518e:	75 1f                	jne    0x5a51af
5a5190:	68 fb 04 00 00       	push   $0x4fb
5a5195:	68 38 80 66 00       	push   $0x668038
5a519a:	6a 70                	push   $0x70
5a519c:	68 f1 01 00 00       	push   $0x1f1
5a51a1:	6a 6d                	push   $0x6d
5a51a3:	51                   	push   %ecx
5a51a4:	e8 67 9f fe ff       	call   0x58f110
5a51a9:	83 c4 18             	add    $0x18,%esp
5a51ac:	33 c0                	xor    %eax,%eax
5a51ae:	c3                   	ret
5a51af:	b8 01 00 00 00       	mov    $0x1,%eax
5a51b4:	c3                   	ret
5a51b5:	cc                   	int3
5a51b6:	cc                   	int3
5a51b7:	cc                   	int3
5a51b8:	cc                   	int3
5a51b9:	cc                   	int3
5a51ba:	cc                   	int3
5a51bb:	cc                   	int3
5a51bc:	cc                   	int3
5a51bd:	cc                   	int3
5a51be:	cc                   	int3
5a51bf:	cc                   	int3
5a51c0:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5a51c5:	56                   	push   %esi
5a51c6:	0f 84 b1 00 00 00    	je     0x5a527d
5a51cc:	8b 74 24 08          	mov    0x8(%esp),%esi
5a51d0:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5a51d4:	75 3e                	jne    0x5a5214
5a51d6:	81 7c 24 0c 00 04 00 	cmpl   $0x400,0xc(%esp)
5a51dd:	00
5a51de:	0f 85 99 00 00 00    	jne    0x5a527d
5a51e4:	83 be b0 05 00 00 00 	cmpl   $0x0,0x5b0(%esi)
5a51eb:	0f 85 8c 00 00 00    	jne    0x5a527d
5a51f1:	68 78 06 00 00       	push   $0x678
5a51f6:	68 38 80 66 00       	push   $0x668038
5a51fb:	68 e9 00 00 00       	push   $0xe9
5a5200:	68 2c 02 00 00       	push   $0x22c
5a5205:	6a 2f                	push   $0x2f
5a5207:	56                   	push   %esi
5a5208:	e8 03 9f fe ff       	call   0x58f110
5a520d:	83 c4 18             	add    $0x18,%esp
5a5210:	33 c0                	xor    %eax,%eax
5a5212:	5e                   	pop    %esi
5a5213:	c3                   	ret
5a5214:	83 be 50 0f 00 00 00 	cmpl   $0x0,0xf50(%esi)
5a521b:	74 56                	je     0x5a5273
5a521d:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
5a5224:	74 4d                	je     0x5a5273
5a5226:	83 7e 68 09          	cmpl   $0x9,0x68(%esi)
5a522a:	75 47                	jne    0x5a5273
5a522c:	83 be b0 05 00 00 00 	cmpl   $0x0,0x5b0(%esi)
5a5233:	74 3e                	je     0x5a5273
5a5235:	83 be 4c 04 00 00 00 	cmpl   $0x0,0x44c(%esi)
5a523c:	75 35                	jne    0x5a5273
5a523e:	8b 86 80 0f 00 00    	mov    0xf80(%esi),%eax
5a5244:	85 c0                	test   %eax,%eax
5a5246:	74 10                	je     0x5a5258
5a5248:	ff b6 84 0f 00 00    	push   0xf84(%esi)
5a524e:	56                   	push   %esi
5a524f:	ff d0                	call   *%eax
5a5251:	83 c4 08             	add    $0x8,%esp
5a5254:	85 c0                	test   %eax,%eax
5a5256:	74 1b                	je     0x5a5273
5a5258:	6a 61                	push   $0x61
5a525a:	56                   	push   %esi
5a525b:	c7 86 ac 05 00 00 02 	movl   $0x2,0x5ac(%esi)
5a5262:	00 00 00
5a5265:	e8 06 13 ff ff       	call   0x596570
5a526a:	83 c4 08             	add    $0x8,%esp
5a526d:	85 c0                	test   %eax,%eax
5a526f:	75 0c                	jne    0x5a527d
5a5271:	5e                   	pop    %esi
5a5272:	c3                   	ret
5a5273:	c7 86 ac 05 00 00 01 	movl   $0x1,0x5ac(%esi)
5a527a:	00 00 00
5a527d:	b8 01 00 00 00       	mov    $0x1,%eax
5a5282:	5e                   	pop    %esi
5a5283:	c3                   	ret
5a5284:	cc                   	int3
5a5285:	cc                   	int3
5a5286:	cc                   	int3
5a5287:	cc                   	int3
5a5288:	cc                   	int3
5a5289:	cc                   	int3
5a528a:	cc                   	int3
5a528b:	cc                   	int3
5a528c:	cc                   	int3
5a528d:	cc                   	int3
5a528e:	cc                   	int3
5a528f:	cc                   	int3
5a5290:	8b 54 24 04          	mov    0x4(%esp),%edx
5a5294:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
5a5298:	74 41                	je     0x5a52db
5a529a:	83 ba 8c 00 00 00 00 	cmpl   $0x0,0x8c(%edx)
5a52a1:	74 38                	je     0x5a52db
5a52a3:	8b 82 74 04 00 00    	mov    0x474(%edx),%eax
5a52a9:	8a 80 f0 01 00 00    	mov    0x1f0(%eax),%al
5a52af:	fe c8                	dec    %al
5a52b1:	3c 03                	cmp    $0x3,%al
5a52b3:	77 26                	ja     0x5a52db
5a52b5:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5a52ba:	75 1f                	jne    0x5a52db
5a52bc:	68 9e 06 00 00       	push   $0x69e
5a52c1:	68 38 80 66 00       	push   $0x668038
5a52c6:	6a 6e                	push   $0x6e
5a52c8:	68 2d 02 00 00       	push   $0x22d
5a52cd:	6a 6d                	push   $0x6d
5a52cf:	52                   	push   %edx
5a52d0:	e8 3b 9e fe ff       	call   0x58f110
5a52d5:	83 c4 18             	add    $0x18,%esp
5a52d8:	33 c0                	xor    %eax,%eax
5a52da:	c3                   	ret
5a52db:	8b 82 74 04 00 00    	mov    0x474(%edx),%eax
5a52e1:	85 c0                	test   %eax,%eax
5a52e3:	74 2d                	je     0x5a5312
5a52e5:	8a 88 f0 01 00 00    	mov    0x1f0(%eax),%cl
5a52eb:	8d 41 ff             	lea    -0x1(%ecx),%eax
5a52ee:	3c 03                	cmp    $0x3,%al
5a52f0:	77 20                	ja     0x5a5312
5a52f2:	0f b6 c9             	movzbl %cl,%ecx
5a52f5:	b8 00 02 00 00       	mov    $0x200,%eax
5a52fa:	49                   	dec    %ecx
5a52fb:	d3 e0                	shl    %cl,%eax
5a52fd:	39 82 0c 05 00 00    	cmp    %eax,0x50c(%edx)
5a5303:	73 0d                	jae    0x5a5312
5a5305:	52                   	push   %edx
5a5306:	e8 b5 de fe ff       	call   0x5931c0
5a530b:	83 c4 04             	add    $0x4,%esp
5a530e:	85 c0                	test   %eax,%eax
5a5310:	74 c6                	je     0x5a52d8
5a5312:	b8 01 00 00 00       	mov    $0x1,%eax
5a5317:	c3                   	ret
5a5318:	cc                   	int3
5a5319:	cc                   	int3
5a531a:	cc                   	int3
5a531b:	cc                   	int3
5a531c:	cc                   	int3
5a531d:	cc                   	int3
5a531e:	cc                   	int3
5a531f:	cc                   	int3
5a5320:	8b 44 24 04          	mov    0x4(%esp),%eax
5a5324:	c7 80 f4 05 00 00 00 	movl   $0x0,0x5f4(%eax)
5a532b:	00 00 00
5a532e:	b8 01 00 00 00       	mov    $0x1,%eax
5a5333:	c3                   	ret
5a5334:	cc                   	int3
5a5335:	cc                   	int3
5a5336:	cc                   	int3
5a5337:	cc                   	int3
5a5338:	cc                   	int3
5a5339:	cc                   	int3
5a533a:	cc                   	int3
5a533b:	cc                   	int3
5a533c:	cc                   	int3
5a533d:	cc                   	int3
5a533e:	cc                   	int3
5a533f:	cc                   	int3
5a5340:	8b 54 24 0c          	mov    0xc(%esp),%edx
5a5344:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
5a534a:	76 03                	jbe    0x5a534f
5a534c:	33 c0                	xor    %eax,%eax
5a534e:	c3                   	ret
5a534f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5a5353:	8b 44 24 08          	mov    0x8(%esp),%eax
5a5357:	89 01                	mov    %eax,(%ecx)
5a5359:	b8 01 00 00 00       	mov    $0x1,%eax
5a535e:	89 51 04             	mov    %edx,0x4(%ecx)
5a5361:	c3                   	ret
5a5362:	cc                   	int3
5a5363:	cc                   	int3
5a5364:	cc                   	int3
5a5365:	cc                   	int3
5a5366:	cc                   	int3
5a5367:	cc                   	int3
5a5368:	cc                   	int3
5a5369:	cc                   	int3
5a536a:	cc                   	int3
5a536b:	cc                   	int3
5a536c:	cc                   	int3
5a536d:	cc                   	int3
5a536e:	cc                   	int3
5a536f:	cc                   	int3
5a5370:	8b 44 24 04          	mov    0x4(%esp),%eax
5a5374:	8b 54 24 08          	mov    0x8(%esp),%edx
5a5378:	8b 48 04             	mov    0x4(%eax),%ecx
5a537b:	3b ca                	cmp    %edx,%ecx
5a537d:	73 03                	jae    0x5a5382
5a537f:	33 c0                	xor    %eax,%eax
5a5381:	c3                   	ret
5a5382:	01 10                	add    %edx,(%eax)
5a5384:	2b ca                	sub    %edx,%ecx
5a5386:	89 48 04             	mov    %ecx,0x4(%eax)
5a5389:	b8 01 00 00 00       	mov    $0x1,%eax
5a538e:	c3                   	ret
5a538f:	cc                   	int3
5a5390:	b8 08 00 00 00       	mov    $0x8,%eax
5a5395:	e8 16 c4 02 00       	call   0x5d17b0
5a539a:	8b 54 24 0c          	mov    0xc(%esp),%edx
5a539e:	53                   	push   %ebx
5a539f:	56                   	push   %esi
5a53a0:	57                   	push   %edi
5a53a1:	8b 7a 04             	mov    0x4(%edx),%edi
5a53a4:	8b 32                	mov    (%edx),%esi
5a53a6:	83 ff 03             	cmp    $0x3,%edi
5a53a9:	72 3e                	jb     0x5a53e9
5a53ab:	0f b6 0e             	movzbl (%esi),%ecx
5a53ae:	8d 5e 03             	lea    0x3(%esi),%ebx
5a53b1:	0f b6 46 01          	movzbl 0x1(%esi),%eax
5a53b5:	c1 e1 08             	shl    $0x8,%ecx
5a53b8:	0b c8                	or     %eax,%ecx
5a53ba:	0f b6 46 02          	movzbl 0x2(%esi),%eax
5a53be:	c1 e1 08             	shl    $0x8,%ecx
5a53c1:	8d 77 fd             	lea    -0x3(%edi),%esi
5a53c4:	0b c8                	or     %eax,%ecx
5a53c6:	3b f1                	cmp    %ecx,%esi
5a53c8:	72 1f                	jb     0x5a53e9
5a53ca:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
5a53cd:	2b f1                	sub    %ecx,%esi
5a53cf:	89 02                	mov    %eax,(%edx)
5a53d1:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5a53d5:	89 72 04             	mov    %esi,0x4(%edx)
5a53d8:	5f                   	pop    %edi
5a53d9:	5e                   	pop    %esi
5a53da:	89 18                	mov    %ebx,(%eax)
5a53dc:	89 48 04             	mov    %ecx,0x4(%eax)
5a53df:	b8 01 00 00 00       	mov    $0x1,%eax
5a53e4:	5b                   	pop    %ebx
5a53e5:	83 c4 08             	add    $0x8,%esp
5a53e8:	c3                   	ret
5a53e9:	5f                   	pop    %edi
5a53ea:	5e                   	pop    %esi
5a53eb:	33 c0                	xor    %eax,%eax
5a53ed:	5b                   	pop    %ebx
5a53ee:	83 c4 08             	add    $0x8,%esp
5a53f1:	c3                   	ret
5a53f2:	cc                   	int3
5a53f3:	cc                   	int3
5a53f4:	cc                   	int3
5a53f5:	cc                   	int3
5a53f6:	cc                   	int3
5a53f7:	cc                   	int3
5a53f8:	cc                   	int3
5a53f9:	cc                   	int3