50505a:	83 c8 ff             	or     $0xffffffff,%eax
50505d:	5e                   	pop    %esi
50505e:	59                   	pop    %ecx
50505f:	c3                   	ret
505060:	8b 47 08             	mov    0x8(%edi),%eax
505063:	6a 03                	push   $0x3
505065:	ff 70 18             	push   0x18(%eax)
505068:	ff 76 28             	push   0x28(%esi)
50506b:	ff 74 24 28          	push   0x28(%esp)
50506f:	ff 74 24 30          	push   0x30(%esp)
505073:	e8 08 59 fd ff       	call   0x4da980
505078:	83 c4 14             	add    $0x14,%esp
50507b:	85 c0                	test   %eax,%eax
50507d:	7e 7d                	jle    0x5050fc
50507f:	ff 76 1c             	push   0x1c(%esi)
505082:	ff 76 18             	push   0x18(%esi)
505085:	ff 76 30             	push   0x30(%esi)
505088:	ff 76 2c             	push   0x2c(%esi)
50508b:	50                   	push   %eax
50508c:	50                   	push   %eax
50508d:	ff 76 28             	push   0x28(%esi)
505090:	50                   	push   %eax
505091:	ff 74 24 34          	push   0x34(%esp)
505095:	e8 66 af ff ff       	call   0x500000
50509a:	83 c4 24             	add    $0x24,%esp
50509d:	eb 1b                	jmp    0x5050ba
50509f:	50                   	push   %eax
5050a0:	8b 47 08             	mov    0x8(%edi),%eax
5050a3:	ff 70 18             	push   0x18(%eax)
5050a6:	ff 74 24 1c          	push   0x1c(%esp)
5050aa:	ff 74 24 28          	push   0x28(%esp)
5050ae:	ff 74 24 30          	push   0x30(%esp)
5050b2:	e8 c9 58 fd ff       	call   0x4da980
5050b7:	83 c4 14             	add    $0x14,%esp
5050ba:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5050be:	8b f8                	mov    %eax,%edi
5050c0:	8b f7                	mov    %edi,%esi
5050c2:	c1 ee 1f             	shr    $0x1f,%esi
5050c5:	f7 de                	neg    %esi
5050c7:	89 74 24 10          	mov    %esi,0x10(%esp)
5050cb:	8b c6                	mov    %esi,%eax
5050cd:	f7 d0                	not    %eax
5050cf:	89 44 24 08          	mov    %eax,0x8(%esp)
5050d3:	8b 54 24 10          	mov    0x10(%esp),%edx
5050d7:	8b 44 24 08          	mov    0x8(%esp),%eax
5050db:	23 11                	and    (%ecx),%edx
5050dd:	23 c7                	and    %edi,%eax
5050df:	0b c2                	or     %edx,%eax
5050e1:	89 01                	mov    %eax,(%ecx)
5050e3:	89 74 24 10          	mov    %esi,0x10(%esp)
5050e7:	f7 d6                	not    %esi
5050e9:	89 74 24 08          	mov    %esi,0x8(%esp)
5050ed:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5050f1:	8b 44 24 08          	mov    0x8(%esp),%eax
5050f5:	23 cf                	and    %edi,%ecx
5050f7:	83 e0 01             	and    $0x1,%eax
5050fa:	0b c1                	or     %ecx,%eax
5050fc:	5f                   	pop    %edi
5050fd:	5e                   	pop    %esi
5050fe:	59                   	pop    %ecx
5050ff:	c3                   	ret
505100:	8b 44 24 08          	mov    0x8(%esp),%eax
505104:	53                   	push   %ebx
505105:	8b 5c 24 08          	mov    0x8(%esp),%ebx
505109:	56                   	push   %esi
50510a:	57                   	push   %edi
50510b:	8b 73 14             	mov    0x14(%ebx),%esi
50510e:	3d 01 10 00 00       	cmp    $0x1001,%eax
505113:	0f 8f 1c 01 00 00    	jg     0x505235
505119:	0f 84 a5 00 00 00    	je     0x5051c4
50511f:	48                   	dec    %eax
505120:	83 f8 0c             	cmp    $0xc,%eax
505123:	0f 87 a3 02 00 00    	ja     0x5053cc
505129:	0f b6 80 fc 54 50 00 	movzbl 0x5054fc(%eax),%eax
505130:	ff 24 85 e4 54 50 00 	jmp    *0x5054e4(,%eax,4)
505137:	ff 76 14             	push   0x14(%esi)
50513a:	8b 7c 24 20          	mov    0x20(%esp),%edi
50513e:	57                   	push   %edi
50513f:	e8 3c 0c 00 00       	call   0x505d80
505144:	83 c4 08             	add    $0x8,%esp
505147:	85 c0                	test   %eax,%eax
505149:	0f 84 bc 01 00 00    	je     0x50530b
50514f:	83 7e 24 ff          	cmpl   $0xffffffff,0x24(%esi)
505153:	74 2f                	je     0x505184
505155:	ff 76 18             	push   0x18(%esi)
505158:	e8 63 af fe ff       	call   0x4f00c0
50515d:	57                   	push   %edi
50515e:	8b f0                	mov    %eax,%esi
505160:	e8 5b af fe ff       	call   0x4f00c0
505165:	83 c4 08             	add    $0x8,%esp
505168:	3b f0                	cmp    %eax,%esi
50516a:	0f 84 03 03 00 00    	je     0x505473
505170:	68 fa 01 00 00       	push   $0x1fa
505175:	68 6c a8 62 00       	push   $0x62a86c
50517a:	68 91 00 00 00       	push   $0x91
50517f:	e9 78 01 00 00       	jmp    0x5052fc
505184:	89 7e 18             	mov    %edi,0x18(%esi)
505187:	b8 01 00 00 00       	mov    $0x1,%eax
50518c:	5f                   	pop    %edi
50518d:	5e                   	pop    %esi
50518e:	5b                   	pop    %ebx
50518f:	c3                   	ret
505190:	8b 44 24 1c          	mov    0x1c(%esp),%eax
505194:	8b 4e 18             	mov    0x18(%esi),%ecx
505197:	5f                   	pop    %edi
505198:	5e                   	pop    %esi
505199:	89 08                	mov    %ecx,(%eax)
50519b:	b8 01 00 00 00       	mov    $0x1,%eax
5051a0:	5b                   	pop    %ebx
5051a1:	c3                   	ret
5051a2:	8b 03                	mov    (%ebx),%eax
5051a4:	81 38 90 03 00 00    	cmpl   $0x390,(%eax)
5051aa:	0f 85 c3 02 00 00    	jne    0x505473
5051b0:	68 44 02 00 00       	push   $0x244
5051b5:	68 6c a8 62 00       	push   $0x62a86c
5051ba:	68 94 00 00 00       	push   $0x94
5051bf:	e9 f9 01 00 00       	jmp    0x5053bd
5051c4:	8b 7c 24 18          	mov    0x18(%esp),%edi
5051c8:	8d 47 ff             	lea    -0x1(%edi),%eax
5051cb:	83 f8 05             	cmp    $0x5,%eax
5051ce:	77 51                	ja     0x505221
5051d0:	57                   	push   %edi
5051d1:	ff 76 18             	push   0x18(%esi)
5051d4:	e8 a7 0b 00 00       	call   0x505d80
5051d9:	83 c4 08             	add    $0x8,%esp
5051dc:	85 c0                	test   %eax,%eax
5051de:	0f 84 27 01 00 00    	je     0x50530b
5051e4:	83 ff 06             	cmp    $0x6,%edi
5051e7:	75 06                	jne    0x5051ef
5051e9:	f6 43 10 18          	testb  $0x18,0x10(%ebx)
5051ed:	eb 16                	jmp    0x505205
5051ef:	8b 03                	mov    (%ebx),%eax
5051f1:	81 38 90 03 00 00    	cmpl   $0x390,(%eax)
5051f7:	74 28                	je     0x505221
5051f9:	83 ff 04             	cmp    $0x4,%edi
5051fc:	75 17                	jne    0x505215
5051fe:	f7 43 10 00 03 00 00 	testl  $0x300,0x10(%ebx)
505205:	74 1a                	je     0x505221
505207:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
50520b:	75 08                	jne    0x505215
50520d:	e8 fe 12 01 00       	call   0x516510
505212:	89 46 18             	mov    %eax,0x18(%esi)
505215:	89 7e 14             	mov    %edi,0x14(%esi)
505218:	b8 01 00 00 00       	mov    $0x1,%eax
50521d:	5f                   	pop    %edi
50521e:	5e                   	pop    %esi
50521f:	5b                   	pop    %ebx
505220:	c3                   	ret
505221:	68 ac 01 00 00       	push   $0x1ac
505226:	68 6c a8 62 00       	push   $0x62a86c
50522b:	68 90 00 00 00       	push   $0x90
505230:	e9 88 01 00 00       	jmp    0x5053bd
505235:	8d 88 fe ef ff ff    	lea    -0x1002(%eax),%ecx
50523b:	83 f9 0b             	cmp    $0xb,%ecx
50523e:	0f 87 88 01 00 00    	ja     0x5053cc
505244:	ff 24 8d 0c 55 50 00 	jmp    *0x50550c(,%ecx,4)
50524b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50524f:	8b 4e 14             	mov    0x14(%esi),%ecx
505252:	5f                   	pop    %edi
505253:	5e                   	pop    %esi
505254:	89 08                	mov    %ecx,(%eax)
505256:	b8 01 00 00 00       	mov    $0x1,%eax
50525b:	5b                   	pop    %ebx
50525c:	c3                   	ret
50525d:	83 7e 14 06          	cmpl   $0x6,0x14(%esi)
505261:	74 14                	je     0x505277
505263:	68 b6 01 00 00       	push   $0x1b6
505268:	68 6c a8 62 00       	push   $0x62a86c
50526d:	68 92 00 00 00       	push   $0x92
505272:	e9 46 01 00 00       	jmp    0x5053bd
505277:	3d 07 10 00 00       	cmp    $0x1007,%eax
50527c:	75 12                	jne    0x505290
50527e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
505282:	8b 4e 20             	mov    0x20(%esi),%ecx
505285:	5f                   	pop    %edi
505286:	5e                   	pop    %esi
505287:	89 08                	mov    %ecx,(%eax)
505289:	b8 01 00 00 00       	mov    $0x1,%eax
50528e:	5b                   	pop    %ebx
50528f:	c3                   	ret
505290:	8b 7c 24 18          	mov    0x18(%esp),%edi
505294:	83 ff fd             	cmp    $0xfffffffd,%edi
505297:	0f 8c 2f 01 00 00    	jl     0x5053cc
50529d:	8b 46 24             	mov    0x24(%esi),%eax
5052a0:	83 f8 ff             	cmp    $0xffffffff,%eax
5052a3:	74 34                	je     0x5052d9
5052a5:	83 ff fe             	cmp    $0xfffffffe,%edi
5052a8:	75 1a                	jne    0x5052c4
5052aa:	83 7b 10 10          	cmpl   $0x10,0x10(%ebx)
5052ae:	75 14                	jne    0x5052c4
5052b0:	68 c1 01 00 00       	push   $0x1c1
5052b5:	68 6c a8 62 00       	push   $0x62a86c
5052ba:	68 92 00 00 00       	push   $0x92
5052bf:	e9 f9 00 00 00       	jmp    0x5053bd
5052c4:	83 ff ff             	cmp    $0xffffffff,%edi
5052c7:	75 1c                	jne    0x5052e5
5052c9:	ff 76 18             	push   0x18(%esi)
5052cc:	e8 ef b5 fe ff       	call   0x4f08c0
5052d1:	83 c4 04             	add    $0x4,%esp
5052d4:	39 46 24             	cmp    %eax,0x24(%esi)
5052d7:	7f 14                	jg     0x5052ed
5052d9:	89 7e 20             	mov    %edi,0x20(%esi)
5052dc:	b8 01 00 00 00       	mov    $0x1,%eax
5052e1:	5f                   	pop    %edi
5052e2:	5e                   	pop    %esi
5052e3:	5b                   	pop    %ebx
5052e4:	c3                   	ret
5052e5:	85 ff                	test   %edi,%edi
5052e7:	78 f0                	js     0x5052d9
5052e9:	3b f8                	cmp    %eax,%edi
5052eb:	7d ec                	jge    0x5052d9
5052ed:	68 c7 01 00 00       	push   $0x1c7
5052f2:	68 6c a8 62 00       	push   $0x62a86c
5052f7:	68 a4 00 00 00       	push   $0xa4
5052fc:	68 8f 00 00 00       	push   $0x8f
505301:	6a 04                	push   $0x4
505303:	e8 78 3c fd ff       	call   0x4d8f80
505308:	83 c4 14             	add    $0x14,%esp
50530b:	5f                   	pop    %edi
50530c:	5e                   	pop    %esi
50530d:	33 c0                	xor    %eax,%eax
50530f:	5b                   	pop    %ebx
505310:	c3                   	ret
505311:	8b 44 24 18          	mov    0x18(%esp),%eax
505315:	3d 00 02 00 00       	cmp    $0x200,%eax
50531a:	7d 11                	jge    0x50532d
50531c:	68 d1 01 00 00       	push   $0x1d1
505321:	68 6c a8 62 00       	push   $0x62a86c
505326:	6a 78                	push   $0x78
505328:	e9 90 00 00 00       	jmp    0x5053bd
50532d:	5f                   	pop    %edi
50532e:	89 06                	mov    %eax,(%esi)
505330:	b8 01 00 00 00       	mov    $0x1,%eax
505335:	5e                   	pop    %esi
505336:	5b                   	pop    %ebx
505337:	c3                   	ret
505338:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
50533c:	85 ff                	test   %edi,%edi
50533e:	74 31                	je     0x505371
505340:	57                   	push   %edi
505341:	e8 aa 49 fd ff       	call   0x4d9cf0
505346:	83 c4 04             	add    $0x4,%esp
505349:	85 c0                	test   %eax,%eax
50534b:	74 24                	je     0x505371
50534d:	57                   	push   %edi
50534e:	e8 bd 49 fd ff       	call   0x4d9d10
505353:	83 c4 04             	add    $0x4,%esp
505356:	85 c0                	test   %eax,%eax
505358:	75 17                	jne    0x505371
50535a:	ff 76 04             	push   0x4(%esi)
50535d:	e8 be 48 fd ff       	call   0x4d9c20
505362:	83 c4 04             	add    $0x4,%esp
505365:	89 7e 04             	mov    %edi,0x4(%esi)
505368:	b8 01 00 00 00       	mov    $0x1,%eax
50536d:	5f                   	pop    %edi
50536e:	5e                   	pop    %esi
50536f:	5b                   	pop    %ebx
505370:	c3                   	ret
505371:	68 d9 01 00 00       	push   $0x1d9
505376:	68 6c a8 62 00       	push   $0x62a86c
50537b:	6a 65                	push   $0x65
50537d:	eb 3e                	jmp    0x5053bd
50537f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
505383:	8d 41 fe             	lea    -0x2(%ecx),%eax
505386:	83 f8 03             	cmp    $0x3,%eax
505389:	77 0c                	ja     0x505397
50538b:	5f                   	pop    %edi
50538c:	89 4e 08             	mov    %ecx,0x8(%esi)
50538f:	b8 01 00 00 00       	mov    $0x1,%eax
505394:	5e                   	pop    %esi
505395:	5b                   	pop    %ebx
505396:	c3                   	ret
505397:	68 e2 01 00 00       	push   $0x1e2
50539c:	68 6c a8 62 00       	push   $0x62a86c
5053a1:	68 a5 00 00 00       	push   $0xa5
5053a6:	eb 15                	jmp    0x5053bd
5053a8:	83 7e 14 04          	cmpl   $0x4,0x14(%esi)
5053ac:	74 27                	je     0x5053d5
5053ae:	68 eb 01 00 00       	push   $0x1eb
5053b3:	68 6c a8 62 00       	push   $0x62a86c
5053b8:	68 8d 00 00 00       	push   $0x8d
5053bd:	68 8f 00 00 00       	push   $0x8f
5053c2:	6a 04                	push   $0x4
5053c4:	e8 b7 3b fd ff       	call   0x4d8f80
5053c9:	83 c4 14             	add    $0x14,%esp
5053cc:	5f                   	pop    %edi
5053cd:	5e                   	pop    %esi
5053ce:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
5053d3:	5b                   	pop    %ebx
5053d4:	c3                   	ret
5053d5:	3d 0b 10 00 00       	cmp    $0x100b,%eax
5053da:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5053de:	75 0e                	jne    0x5053ee
5053e0:	8b 4e 18             	mov    0x18(%esi),%ecx
5053e3:	5f                   	pop    %edi
5053e4:	5e                   	pop    %esi
5053e5:	89 08                	mov    %ecx,(%eax)
5053e7:	b8 01 00 00 00       	mov    $0x1,%eax
5053ec:	5b                   	pop    %ebx
5053ed:	c3                   	ret
5053ee:	5f                   	pop    %edi
5053ef:	89 46 18             	mov    %eax,0x18(%esi)
5053f2:	b8 01 00 00 00       	mov    $0x1,%eax
5053f7:	5e                   	pop    %esi
5053f8:	5b                   	pop    %ebx
5053f9:	c3                   	ret
5053fa:	8b 4e 14             	mov    0x14(%esi),%ecx
5053fd:	83 f9 06             	cmp    $0x6,%ecx
505400:	74 16                	je     0x505418
505402:	83 f9 04             	cmp    $0x4,%ecx
505405:	74 11                	je     0x505418
505407:	68 08 02 00 00       	push   $0x208
50540c:	68 6c a8 62 00       	push   $0x62a86c
505411:	68 9c 00 00 00       	push   $0x9c
505416:	eb a5                	jmp    0x5053bd
505418:	3d 08 10 00 00       	cmp    $0x1008,%eax
50541d:	75 19                	jne    0x505438
50541f:	8b 4e 1c             	mov    0x1c(%esi),%ecx
505422:	85 c9                	test   %ecx,%ecx
505424:	75 03                	jne    0x505429
505426:	8b 4e 18             	mov    0x18(%esi),%ecx
505429:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50542d:	5f                   	pop    %edi
50542e:	5e                   	pop    %esi
50542f:	5b                   	pop    %ebx
505430:	89 08                	mov    %ecx,(%eax)
505432:	b8 01 00 00 00       	mov    $0x1,%eax
505437:	c3                   	ret
505438:	83 7e 24 ff          	cmpl   $0xffffffff,0x24(%esi)
50543c:	74 2e                	je     0x50546c
50543e:	ff 76 1c             	push   0x1c(%esi)
505441:	e8 7a ac fe ff       	call   0x4f00c0
505446:	ff 74 24 20          	push   0x20(%esp)
50544a:	8b f0                	mov    %eax,%esi
50544c:	e8 6f ac fe ff       	call   0x4f00c0
505451:	83 c4 08             	add    $0x8,%esp
505454:	3b f0                	cmp    %eax,%esi
505456:	74 1b                	je     0x505473
505458:	68 14 02 00 00       	push   $0x214
50545d:	68 6c a8 62 00       	push   $0x62a86c
505462:	68 98 00 00 00       	push   $0x98
505467:	e9 90 fe ff ff       	jmp    0x5052fc
50546c:	8b 44 24 1c          	mov    0x1c(%esp),%eax
505470:	89 46 1c             	mov    %eax,0x1c(%esi)
505473:	5f                   	pop    %edi
505474:	5e                   	pop    %esi
505475:	b8 01 00 00 00       	mov    $0x1,%eax
50547a:	5b                   	pop    %ebx
50547b:	c3                   	ret
50547c:	83 7e 14 04          	cmpl   $0x4,0x14(%esi)