50b130:	56                   	push   %esi
50b131:	8b 74 24 08          	mov    0x8(%esp),%esi
50b135:	85 f6                	test   %esi,%esi
50b137:	75 04                	jne    0x50b13d
50b139:	33 c0                	xor    %eax,%eax
50b13b:	5e                   	pop    %esi
50b13c:	c3                   	ret
50b13d:	f6 46 14 01          	testb  $0x1,0x14(%esi)
50b141:	75 04                	jne    0x50b147
50b143:	8b c6                	mov    %esi,%eax
50b145:	5e                   	pop    %esi
50b146:	c3                   	ret
50b147:	57                   	push   %edi
50b148:	e8 53 f7 ff ff       	call   0x50a8a0
50b14d:	8b f8                	mov    %eax,%edi
50b14f:	85 ff                	test   %edi,%edi
50b151:	75 1a                	jne    0x50b16d
50b153:	6a 1c                	push   $0x1c
50b155:	68 64 ae 62 00       	push   $0x62ae64
50b15a:	6a 0d                	push   $0xd
50b15c:	6a 65                	push   $0x65
50b15e:	6a 08                	push   $0x8
50b160:	e8 1b de fc ff       	call   0x4d8f80
50b165:	83 c4 14             	add    $0x14,%esp
50b168:	33 c0                	xor    %eax,%eax
50b16a:	5f                   	pop    %edi
50b16b:	5e                   	pop    %esi
50b16c:	c3                   	ret
50b16d:	8b 46 14             	mov    0x14(%esi),%eax
50b170:	83 c8 0d             	or     $0xd,%eax
50b173:	89 47 14             	mov    %eax,0x14(%edi)
50b176:	8b 46 0c             	mov    0xc(%esi),%eax
50b179:	85 c0                	test   %eax,%eax
50b17b:	7e 1a                	jle    0x50b197
50b17d:	6a 26                	push   $0x26
50b17f:	68 64 ae 62 00       	push   $0x62ae64
50b184:	50                   	push   %eax
50b185:	ff 76 10             	push   0x10(%esi)
50b188:	e8 e3 6e fd ff       	call   0x4e2070
50b18d:	83 c4 10             	add    $0x10,%esp
50b190:	89 47 10             	mov    %eax,0x10(%edi)
50b193:	85 c0                	test   %eax,%eax
50b195:	74 46                	je     0x50b1dd
50b197:	8b 46 0c             	mov    0xc(%esi),%eax
50b19a:	89 47 0c             	mov    %eax,0xc(%edi)
50b19d:	8b 46 08             	mov    0x8(%esi),%eax
50b1a0:	89 47 08             	mov    %eax,0x8(%edi)
50b1a3:	8b 46 04             	mov    0x4(%esi),%eax
50b1a6:	85 c0                	test   %eax,%eax
50b1a8:	74 17                	je     0x50b1c1
50b1aa:	6a 2c                	push   $0x2c
50b1ac:	68 64 ae 62 00       	push   $0x62ae64
50b1b1:	50                   	push   %eax
50b1b2:	e8 19 6f fd ff       	call   0x4e20d0
50b1b7:	83 c4 0c             	add    $0xc,%esp
50b1ba:	89 47 04             	mov    %eax,0x4(%edi)
50b1bd:	85 c0                	test   %eax,%eax
50b1bf:	74 1c                	je     0x50b1dd
50b1c1:	8b 06                	mov    (%esi),%eax
50b1c3:	85 c0                	test   %eax,%eax
50b1c5:	74 36                	je     0x50b1fd
50b1c7:	6a 2f                	push   $0x2f
50b1c9:	68 64 ae 62 00       	push   $0x62ae64
50b1ce:	50                   	push   %eax
50b1cf:	e8 fc 6e fd ff       	call   0x4e20d0
50b1d4:	83 c4 0c             	add    $0xc,%esp
50b1d7:	89 07                	mov    %eax,(%edi)
50b1d9:	85 c0                	test   %eax,%eax
50b1db:	75 20                	jne    0x50b1fd
50b1dd:	57                   	push   %edi
50b1de:	e8 2d f6 ff ff       	call   0x50a810
50b1e3:	6a 35                	push   $0x35
50b1e5:	68 64 ae 62 00       	push   $0x62ae64
50b1ea:	6a 41                	push   $0x41
50b1ec:	6a 65                	push   $0x65
50b1ee:	6a 08                	push   $0x8
50b1f0:	e8 8b dd fc ff       	call   0x4d8f80
50b1f5:	83 c4 18             	add    $0x18,%esp
50b1f8:	33 c0                	xor    %eax,%eax
50b1fa:	5f                   	pop    %edi
50b1fb:	5e                   	pop    %esi
50b1fc:	c3                   	ret
50b1fd:	8b c7                	mov    %edi,%eax
50b1ff:	5f                   	pop    %edi
50b200:	5e                   	pop    %esi
50b201:	c3                   	ret
50b202:	cc                   	int3
50b203:	cc                   	int3
50b204:	cc                   	int3
50b205:	cc                   	int3
50b206:	cc                   	int3
50b207:	cc                   	int3
50b208:	cc                   	int3
50b209:	cc                   	int3
50b20a:	cc                   	int3
50b20b:	cc                   	int3
50b20c:	cc                   	int3
50b20d:	cc                   	int3
50b20e:	cc                   	int3
50b20f:	cc                   	int3
50b210:	56                   	push   %esi
50b211:	8b 74 24 0c          	mov    0xc(%esp),%esi
50b215:	f7 06 00 03 00 00    	testl  $0x300,(%esi)
50b21b:	75 04                	jne    0x50b221
50b21d:	8b c6                	mov    %esi,%eax
50b21f:	5e                   	pop    %esi
50b220:	c3                   	ret
50b221:	8b 46 10             	mov    0x10(%esi),%eax
50b224:	57                   	push   %edi
50b225:	ff d0                	call   *%eax
50b227:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50b22b:	8b f8                	mov    %eax,%edi
50b22d:	8b 57 04             	mov    0x4(%edi),%edx
50b230:	8b 09                	mov    (%ecx),%ecx
50b232:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
50b235:	85 c0                	test   %eax,%eax
50b237:	75 0a                	jne    0x50b243
50b239:	8b 47 18             	mov    0x18(%edi),%eax
50b23c:	85 c0                	test   %eax,%eax
50b23e:	74 63                	je     0x50b2a3
50b240:	5f                   	pop    %edi
50b241:	5e                   	pop    %esi
50b242:	c3                   	ret
50b243:	f7 06 00 01 00 00    	testl  $0x100,(%esi)
50b249:	50                   	push   %eax
50b24a:	74 07                	je     0x50b253
50b24c:	e8 af 43 fe ff       	call   0x4ef600
50b251:	eb 05                	jmp    0x50b258
50b253:	e8 68 e1 ff ff       	call   0x5093c0
50b258:	8b d0                	mov    %eax,%edx
50b25a:	83 c4 04             	add    $0x4,%esp
50b25d:	89 54 24 10          	mov    %edx,0x10(%esp)
50b261:	8b 47 08             	mov    0x8(%edi),%eax
50b264:	85 c0                	test   %eax,%eax
50b266:	74 19                	je     0x50b281
50b268:	8d 4c 24 10          	lea    0x10(%esp),%ecx
50b26c:	51                   	push   %ecx
50b26d:	ff d0                	call   *%eax
50b26f:	83 c4 04             	add    $0x4,%esp
50b272:	85 c0                	test   %eax,%eax
50b274:	75 07                	jne    0x50b27d
50b276:	68 e2 00 00 00       	push   $0xe2
50b27b:	eb 32                	jmp    0x50b2af
50b27d:	8b 54 24 10          	mov    0x10(%esp),%edx
50b281:	8b 77 10             	mov    0x10(%edi),%esi
50b284:	33 c9                	xor    %ecx,%ecx
50b286:	8b 47 0c             	mov    0xc(%edi),%eax
50b289:	85 f6                	test   %esi,%esi
50b28b:	7e 0f                	jle    0x50b29c
50b28d:	0f 1f 00             	nopl   (%eax)
50b290:	39 10                	cmp    %edx,(%eax)
50b292:	74 36                	je     0x50b2ca
50b294:	41                   	inc    %ecx
50b295:	83 c0 18             	add    $0x18,%eax
50b298:	3b ce                	cmp    %esi,%ecx
50b29a:	7c f4                	jl     0x50b290
50b29c:	8b 47 14             	mov    0x14(%edi),%eax
50b29f:	85 c0                	test   %eax,%eax
50b2a1:	75 24                	jne    0x50b2c7
50b2a3:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
50b2a8:	74 1b                	je     0x50b2c5
50b2aa:	68 fb 00 00 00       	push   $0xfb
50b2af:	68 80 ae 62 00       	push   $0x62ae80
50b2b4:	68 a4 00 00 00       	push   $0xa4
50b2b9:	6a 6e                	push   $0x6e
50b2bb:	6a 0d                	push   $0xd
50b2bd:	e8 be dc fc ff       	call   0x4d8f80
50b2c2:	83 c4 14             	add    $0x14,%esp
50b2c5:	33 c0                	xor    %eax,%eax
50b2c7:	5f                   	pop    %edi
50b2c8:	5e                   	pop    %esi
50b2c9:	c3                   	ret
50b2ca:	5f                   	pop    %edi
50b2cb:	83 c0 04             	add    $0x4,%eax
50b2ce:	5e                   	pop    %esi
50b2cf:	c3                   	ret
50b2d0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50b2d4:	56                   	push   %esi
50b2d5:	83 ce ff             	or     $0xffffffff,%esi
50b2d8:	8a 01                	mov    (%ecx),%al
50b2da:	3c 01                	cmp    $0x1,%al
50b2dc:	74 08                	je     0x50b2e6
50b2de:	3c 06                	cmp    $0x6,%al
50b2e0:	0f 85 8d 00 00 00    	jne    0x50b373
50b2e6:	8b 49 10             	mov    0x10(%ecx),%ecx
50b2e9:	85 c9                	test   %ecx,%ecx
50b2eb:	0f 84 82 00 00 00    	je     0x50b373
50b2f1:	f6 41 04 01          	testb  $0x1,0x4(%ecx)
50b2f5:	74 7c                	je     0x50b373
50b2f7:	8b 44 24 08          	mov    0x8(%esp),%eax
50b2fb:	8b 51 08             	mov    0x8(%ecx),%edx
50b2fe:	57                   	push   %edi
50b2ff:	8b 79 0c             	mov    0xc(%ecx),%edi
50b302:	8b 00                	mov    (%eax),%eax
50b304:	03 d0                	add    %eax,%edx
50b306:	03 f8                	add    %eax,%edi
50b308:	8b 44 24 10          	mov    0x10(%esp),%eax
50b30c:	83 f8 ff             	cmp    $0xffffffff,%eax
50b30f:	74 45                	je     0x50b356
50b311:	85 c0                	test   %eax,%eax
50b313:	74 11                	je     0x50b326
50b315:	83 f8 01             	cmp    $0x1,%eax
50b318:	75 54                	jne    0x50b36e
50b31a:	8b f0                	mov    %eax,%esi
50b31c:	f0 0f c1 32          	lock xadd %esi,(%edx)
50b320:	46                   	inc    %esi
50b321:	5f                   	pop    %edi
50b322:	8b c6                	mov    %esi,%eax
50b324:	5e                   	pop    %esi
50b325:	c3                   	ret
50b326:	be 01 00 00 00       	mov    $0x1,%esi
50b32b:	89 32                	mov    %esi,(%edx)
50b32d:	e8 4e 6c fd ff       	call   0x4e1f80
50b332:	89 07                	mov    %eax,(%edi)
50b334:	85 c0                	test   %eax,%eax
50b336:	75 36                	jne    0x50b36e
50b338:	6a 4f                	push   $0x4f
50b33a:	68 80 ae 62 00       	push   $0x62ae80
50b33f:	6a 41                	push   $0x41
50b341:	68 e9 00 00 00       	push   $0xe9
50b346:	6a 0d                	push   $0xd
50b348:	e8 33 dc fc ff       	call   0x4d8f80
50b34d:	83 c4 14             	add    $0x14,%esp
50b350:	83 c8 ff             	or     $0xffffffff,%eax
50b353:	5f                   	pop    %edi
50b354:	5e                   	pop    %esi
50b355:	c3                   	ret
50b356:	83 ce ff             	or     $0xffffffff,%esi
50b359:	f0 0f c1 32          	lock xadd %esi,(%edx)
50b35d:	83 ee 01             	sub    $0x1,%esi
50b360:	75 0c                	jne    0x50b36e
50b362:	ff 37                	push   (%edi)
50b364:	e8 e7 6b fd ff       	call   0x4e1f50
50b369:	83 c4 04             	add    $0x4,%esp
50b36c:	89 37                	mov    %esi,(%edi)
50b36e:	5f                   	pop    %edi
50b36f:	8b c6                	mov    %esi,%eax
50b371:	5e                   	pop    %esi
50b372:	c3                   	ret
50b373:	33 c0                	xor    %eax,%eax
50b375:	5e                   	pop    %esi
50b376:	c3                   	ret
50b377:	cc                   	int3
50b378:	cc                   	int3
50b379:	cc                   	int3
50b37a:	cc                   	int3
50b37b:	cc                   	int3
50b37c:	cc                   	int3
50b37d:	cc                   	int3
50b37e:	cc                   	int3
50b37f:	cc                   	int3
50b380:	8b 44 24 04          	mov    0x4(%esp),%eax
50b384:	85 c0                	test   %eax,%eax
50b386:	74 48                	je     0x50b3d0
50b388:	8b 08                	mov    (%eax),%ecx
50b38a:	85 c9                	test   %ecx,%ecx
50b38c:	74 42                	je     0x50b3d0
50b38e:	8b 44 24 08          	mov    0x8(%esp),%eax
50b392:	56                   	push   %esi
50b393:	8b 70 10             	mov    0x10(%eax),%esi
50b396:	85 f6                	test   %esi,%esi
50b398:	74 35                	je     0x50b3cf
50b39a:	f6 46 04 02          	testb  $0x2,0x4(%esi)
50b39e:	74 2f                	je     0x50b3cf
50b3a0:	8b 76 14             	mov    0x14(%esi),%esi
50b3a3:	03 f1                	add    %ecx,%esi
50b3a5:	74 28                	je     0x50b3cf
50b3a7:	68 83 00 00 00       	push   $0x83
50b3ac:	68 80 ae 62 00       	push   $0x62ae80
50b3b1:	ff 36                	push   (%esi)
50b3b3:	e8 c8 53 fd ff       	call   0x4e0780
50b3b8:	83 c4 0c             	add    $0xc,%esp
50b3bb:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
50b3c1:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
50b3c8:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
50b3cf:	5e                   	pop    %esi
50b3d0:	c3                   	ret
50b3d1:	cc                   	int3
50b3d2:	cc                   	int3
50b3d3:	cc                   	int3
50b3d4:	cc                   	int3
50b3d5:	cc                   	int3
50b3d6:	cc                   	int3
50b3d7:	cc                   	int3
50b3d8:	cc                   	int3
50b3d9:	cc                   	int3
50b3da:	cc                   	int3
50b3db:	cc                   	int3
50b3dc:	cc                   	int3
50b3dd:	cc                   	int3
50b3de:	cc                   	int3
50b3df:	cc                   	int3
50b3e0:	8b 44 24 04          	mov    0x4(%esp),%eax
50b3e4:	85 c0                	test   %eax,%eax
50b3e6:	74 32                	je     0x50b41a
50b3e8:	8b 08                	mov    (%eax),%ecx
50b3ea:	85 c9                	test   %ecx,%ecx
50b3ec:	74 2c                	je     0x50b41a
50b3ee:	8b 44 24 08          	mov    0x8(%esp),%eax
50b3f2:	8b 40 10             	mov    0x10(%eax),%eax
50b3f5:	85 c0                	test   %eax,%eax
50b3f7:	74 21                	je     0x50b41a
50b3f9:	f6 40 04 02          	testb  $0x2,0x4(%eax)
50b3fd:	74 1b                	je     0x50b41a
50b3ff:	8b 40 14             	mov    0x14(%eax),%eax
50b402:	03 c1                	add    %ecx,%eax
50b404:	74 14                	je     0x50b41a
50b406:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
50b40c:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
50b413:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
50b41a:	c3                   	ret
50b41b:	cc                   	int3
50b41c:	cc                   	int3
50b41d:	cc                   	int3
50b41e:	cc                   	int3
50b41f:	cc                   	int3
50b420:	8b 44 24 0c          	mov    0xc(%esp),%eax
50b424:	56                   	push   %esi
50b425:	85 c0                	test   %eax,%eax
50b427:	74 56                	je     0x50b47f
50b429:	8b 08                	mov    (%eax),%ecx
50b42b:	85 c9                	test   %ecx,%ecx
50b42d:	74 50                	je     0x50b47f
50b42f:	8b 44 24 14          	mov    0x14(%esp),%eax
50b433:	8b 70 10             	mov    0x10(%eax),%esi
50b436:	85 f6                	test   %esi,%esi
50b438:	74 45                	je     0x50b47f
50b43a:	f6 46 04 02          	testb  $0x2,0x4(%esi)
50b43e:	74 3f                	je     0x50b47f
50b440:	8b 76 14             	mov    0x14(%esi),%esi
50b443:	03 f1                	add    %ecx,%esi
50b445:	74 38                	je     0x50b47f
50b447:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
50b44b:	75 32                	jne    0x50b47f
50b44d:	57                   	push   %edi
50b44e:	8b 7c 24 10          	mov    0x10(%esp),%edi
50b452:	85 ff                	test   %edi,%edi
50b454:	74 14                	je     0x50b46a
50b456:	ff 76 04             	push   0x4(%esi)
50b459:	ff 36                	push   (%esi)
50b45b:	ff 37                	push   (%edi)
50b45d:	e8 6e 79 0c 00       	call   0x5d2dd0
50b462:	8b 46 04             	mov    0x4(%esi),%eax
50b465:	83 c4 0c             	add    $0xc,%esp
50b468:	01 07                	add    %eax,(%edi)
50b46a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50b46e:	5f                   	pop    %edi
50b46f:	85 c9                	test   %ecx,%ecx
50b471:	74 05                	je     0x50b478
50b473:	8b 46 04             	mov    0x4(%esi),%eax