4fffce:	0f 84 b1 02 00 00    	je     0x500285
4fffd4:	33 c0                	xor    %eax,%eax
4fffd6:	ba bf ff 00 00       	mov    $0xffbf,%edx
4fffdb:	83 c9 ff             	or     $0xffffffff,%ecx
4fffde:	89 45 d0             	mov    %eax,-0x30(%ebp)
4fffe1:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4fffe4:	85 c0                	test   %eax,%eax
4fffe6:	0f 85 42 01 00 00    	jne    0x50012e
4fffec:	8b 5e 0c             	mov    0xc(%esi),%ebx
4fffef:	83 eb 01             	sub    $0x1,%ebx
4ffff2:	8b 7e 14             	mov    0x14(%esi),%edi
4ffff5:	0f 88 8a 02 00 00    	js     0x500285
4ffffb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
500000:	66 21 57 0a          	and    %dx,0xa(%edi)
500004:	8b 57 14             	mov    0x14(%edi),%edx
500007:	3b d1                	cmp    %ecx,%edx
500009:	74 3c                	je     0x500047
50000b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
50000e:	33 c0                	xor    %eax,%eax
500010:	8b b1 ec 01 00 00    	mov    0x1ec(%ecx),%esi
500016:	85 f6                	test   %esi,%esi
500018:	7e 12                	jle    0x50002c
50001a:	81 c1 f0 01 00 00    	add    $0x1f0,%ecx
500020:	39 11                	cmp    %edx,(%ecx)
500022:	74 36                	je     0x50005a
500024:	40                   	inc    %eax
500025:	83 c1 04             	add    $0x4,%ecx
500028:	3b c6                	cmp    %esi,%eax
50002a:	7c f4                	jl     0x500020
50002c:	0f 57 c0             	xorps  %xmm0,%xmm0
50002f:	66 0f 13 45 c4       	movlpd %xmm0,-0x3c(%ebp)
500034:	8b 55 c8             	mov    -0x38(%ebp),%edx
500037:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
50003a:	23 4d f8             	and    -0x8(%ebp),%ecx
50003d:	23 55 f0             	and    -0x10(%ebp),%edx
500040:	0b ca                	or     %edx,%ecx
500042:	75 2d                	jne    0x500071
500044:	8b 4d d8             	mov    -0x28(%ebp),%ecx
500047:	83 c7 30             	add    $0x30,%edi
50004a:	83 eb 01             	sub    $0x1,%ebx
50004d:	0f 88 32 02 00 00    	js     0x500285
500053:	ba bf ff 00 00       	mov    $0xffbf,%edx
500058:	eb a6                	jmp    0x500000
50005a:	33 c9                	xor    %ecx,%ecx
50005c:	33 d2                	xor    %edx,%edx
50005e:	0f ab c1             	bts    %eax,%ecx
500061:	83 f8 20             	cmp    $0x20,%eax
500064:	0f 43 d1             	cmovae %ecx,%edx
500067:	33 ca                	xor    %edx,%ecx
500069:	83 f8 40             	cmp    $0x40,%eax
50006c:	0f 43 d1             	cmovae %ecx,%edx
50006f:	eb c9                	jmp    0x50003a
500071:	8b 47 14             	mov    0x14(%edi),%eax
500074:	8d 77 0a             	lea    0xa(%edi),%esi
500077:	8b 4f 1c             	mov    0x1c(%edi),%ecx
50007a:	89 45 d8             	mov    %eax,-0x28(%ebp)
50007d:	8b 07                	mov    (%edi),%eax
50007f:	89 4d c8             	mov    %ecx,-0x38(%ebp)
500082:	8b 50 0c             	mov    0xc(%eax),%edx
500085:	b8 01 00 00 00       	mov    $0x1,%eax
50008a:	89 55 e0             	mov    %edx,-0x20(%ebp)
50008d:	89 45 dc             	mov    %eax,-0x24(%ebp)
500090:	85 c0                	test   %eax,%eax
500092:	74 77                	je     0x50010b
500094:	8b 7d d8             	mov    -0x28(%ebp),%edi
500097:	39 7e 0a             	cmp    %edi,0xa(%esi)
50009a:	74 0a                	je     0x5000a6
50009c:	b9 bf ff 00 00       	mov    $0xffbf,%ecx
5000a1:	66 21 0e             	and    %cx,(%esi)
5000a4:	eb 57                	jmp    0x5000fd
5000a6:	39 4e 12             	cmp    %ecx,0x12(%esi)
5000a9:	75 4d                	jne    0x5000f8
5000ab:	83 f9 fe             	cmp    $0xfffffffe,%ecx
5000ae:	75 18                	jne    0x5000c8
5000b0:	8b 46 f6             	mov    -0xa(%esi),%eax
5000b3:	6a ff                	push   $0xffffffff
5000b5:	52                   	push   %edx
5000b6:	ff 70 0c             	push   0xc(%eax)
5000b9:	ff 75 d4             	push   -0x2c(%ebp)
5000bc:	e8 0f 64 02 00       	call   0x5264d0
5000c1:	83 c4 10             	add    $0x10,%esp
5000c4:	85 c0                	test   %eax,%eax
5000c6:	75 30                	jne    0x5000f8
5000c8:	8b 46 f6             	mov    -0xa(%esi),%eax
5000cb:	ff 70 10             	push   0x10(%eax)
5000ce:	e8 dd 34 02 00       	call   0x5235b0
5000d3:	0f be f8             	movsbl %al,%edi
5000d6:	8b 46 f6             	mov    -0xa(%esi),%eax
5000d9:	ff 70 0c             	push   0xc(%eax)
5000dc:	e8 cf 34 02 00       	call   0x5235b0
5000e1:	83 c4 08             	add    $0x8,%esp
5000e4:	0f be c0             	movsbl %al,%eax
5000e7:	85 ff                	test   %edi,%edi
5000e9:	74 04                	je     0x5000ef
5000eb:	3b f8                	cmp    %eax,%edi
5000ed:	75 09                	jne    0x5000f8
5000ef:	66 83 0e 40          	orw    $0x40,(%esi)
5000f3:	8b 45 dc             	mov    -0x24(%ebp),%eax
5000f6:	eb 05                	jmp    0x5000fd
5000f8:	33 c0                	xor    %eax,%eax
5000fa:	89 45 dc             	mov    %eax,-0x24(%ebp)
5000fd:	8b 4d c8             	mov    -0x38(%ebp),%ecx
500100:	83 c6 30             	add    $0x30,%esi
500103:	83 eb 01             	sub    $0x1,%ebx
500106:	8b 55 e0             	mov    -0x20(%ebp),%edx
500109:	79 85                	jns    0x500090
50010b:	8b 55 d0             	mov    -0x30(%ebp),%edx
50010e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
500111:	42                   	inc    %edx
500112:	8b 75 fc             	mov    -0x4(%ebp),%esi
500115:	83 fa 02             	cmp    $0x2,%edx
500118:	89 55 d0             	mov    %edx,-0x30(%ebp)
50011b:	ba bf ff 00 00       	mov    $0xffbf,%edx
500120:	0f 8c be fe ff ff    	jl     0x4fffe4
500126:	85 c0                	test   %eax,%eax
500128:	0f 84 57 01 00 00    	je     0x500285
50012e:	8b 7d fc             	mov    -0x4(%ebp),%edi
500131:	33 db                	xor    %ebx,%ebx
500133:	8b 76 14             	mov    0x14(%esi),%esi
500136:	33 c0                	xor    %eax,%eax
500138:	8b 7f 0c             	mov    0xc(%edi),%edi
50013b:	83 ef 01             	sub    $0x1,%edi
50013e:	78 59                	js     0x500199
500140:	f6 46 0a 40          	testb  $0x40,0xa(%esi)
500144:	74 33                	je     0x500179
500146:	8b 06                	mov    (%esi),%eax
500148:	8b 40 10             	mov    0x10(%eax),%eax
50014b:	85 c0                	test   %eax,%eax
50014d:	74 12                	je     0x500161
50014f:	6a 00                	push   $0x0
500151:	6a 00                	push   $0x0
500153:	50                   	push   %eax
500154:	ff 75 e4             	push   -0x1c(%ebp)
500157:	e8 04 07 00 00       	call   0x500860
50015c:	83 c4 10             	add    $0x10,%esp
50015f:	eb 02                	jmp    0x500163
500161:	33 c0                	xor    %eax,%eax
500163:	50                   	push   %eax
500164:	8b 45 e8             	mov    -0x18(%ebp),%eax
500167:	53                   	push   %ebx
500168:	ff 30                	push   (%eax)
50016a:	e8 11 74 02 00       	call   0x527580
50016f:	8b 0e                	mov    (%esi),%ecx
500171:	8b d8                	mov    %eax,%ebx
500173:	83 c4 0c             	add    $0xc,%esp
500176:	8b 41 0c             	mov    0xc(%ecx),%eax
500179:	83 c6 30             	add    $0x30,%esi
50017c:	83 ef 01             	sub    $0x1,%edi
50017f:	79 bf                	jns    0x500140
500181:	85 c0                	test   %eax,%eax
500183:	74 14                	je     0x500199
500185:	6a 00                	push   $0x0
500187:	6a 00                	push   $0x0
500189:	50                   	push   %eax
50018a:	ff 75 e4             	push   -0x1c(%ebp)
50018d:	e8 ce 06 00 00       	call   0x500860
500192:	83 c4 10             	add    $0x10,%esp
500195:	8b f8                	mov    %eax,%edi
500197:	eb 02                	jmp    0x50019b
500199:	33 ff                	xor    %edi,%edi
50019b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50019e:	6a 00                	push   $0x0
5001a0:	6a 34                	push   $0x34
5001a2:	ff 30                	push   (%eax)
5001a4:	e8 37 12 02 00       	call   0x5213e0
5001a9:	8b f0                	mov    %eax,%esi
5001ab:	83 c4 0c             	add    $0xc,%esp
5001ae:	85 f6                	test   %esi,%esi
5001b0:	0f 84 ad 00 00 00    	je     0x500263
5001b6:	6a 34                	push   $0x34
5001b8:	6a 00                	push   $0x0
5001ba:	56                   	push   %esi
5001bb:	e8 40 38 0e 00       	call   0x5e3a00
5001c0:	83 c8 ff             	or     $0xffffffff,%eax
5001c3:	c6 06 31             	movb   $0x31,(%esi)
5001c6:	83 c4 0c             	add    $0xc,%esp
5001c9:	66 89 46 22          	mov    %ax,0x22(%esi)
5001cd:	85 ff                	test   %edi,%edi
5001cf:	74 0e                	je     0x5001df
5001d1:	89 7e 0c             	mov    %edi,0xc(%esi)
5001d4:	8b 47 04             	mov    0x4(%edi),%eax
5001d7:	25 04 01 20 00       	and    $0x200104,%eax
5001dc:	09 46 04             	or     %eax,0x4(%esi)
5001df:	56                   	push   %esi
5001e0:	e8 db 14 00 00       	call   0x5016c0
5001e5:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5001e8:	83 c4 04             	add    $0x4,%esp
5001eb:	8b 01                	mov    (%ecx),%eax
5001ed:	8b 40 78             	mov    0x78(%eax),%eax
5001f0:	39 46 18             	cmp    %eax,0x18(%esi)
5001f3:	7e 0f                	jle    0x500204
5001f5:	50                   	push   %eax
5001f6:	68 30 90 6b 00       	push   $0x6b9030
5001fb:	51                   	push   %ecx
5001fc:	e8 5f 30 02 00       	call   0x523260
500201:	83 c4 0c             	add    $0xc,%esp
500204:	8b 4d cc             	mov    -0x34(%ebp),%ecx
500207:	6a 03                	push   $0x3
500209:	56                   	push   %esi
50020a:	8b 41 04             	mov    0x4(%ecx),%eax
50020d:	83 e0 01             	and    $0x1,%eax
500210:	09 46 04             	or     %eax,0x4(%esi)
500213:	0f b7 41 24          	movzwl 0x24(%ecx),%eax
500217:	89 5e 14             	mov    %ebx,0x14(%esi)
50021a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
50021d:	53                   	push   %ebx
50021e:	66 89 46 24          	mov    %ax,0x24(%esi)
500222:	e8 e9 01 06 00       	call   0x560410
500227:	8b f0                	mov    %eax,%esi
500229:	56                   	push   %esi
50022a:	53                   	push   %ebx
50022b:	ff 75 08             	push   0x8(%ebp)
50022e:	e8 5d ee ff ff       	call   0x4ff090
500233:	8b 43 14             	mov    0x14(%ebx),%eax
500236:	8d 14 76             	lea    (%esi,%esi,2),%edx
500239:	8b 4d 10             	mov    0x10(%ebp),%ecx
50023c:	03 d2                	add    %edx,%edx
50023e:	8b 75 c0             	mov    -0x40(%ebp),%esi
500241:	83 c4 18             	add    $0x18,%esp
500244:	89 4c d0 10          	mov    %ecx,0x10(%eax,%edx,8)
500248:	8b 4b 14             	mov    0x14(%ebx),%ecx
50024b:	0f b7 44 31 08       	movzwl 0x8(%ecx,%esi,1),%eax
500250:	66 89 44 d1 08       	mov    %ax,0x8(%ecx,%edx,8)
500255:	8b 43 14             	mov    0x14(%ebx),%eax
500258:	fe 44 30 0e          	incb   0xe(%eax,%esi,1)
50025c:	5e                   	pop    %esi
50025d:	5f                   	pop    %edi
50025e:	5b                   	pop    %ebx
50025f:	8b e5                	mov    %ebp,%esp
500261:	5d                   	pop    %ebp
500262:	c3                   	ret
500263:	85 ff                	test   %edi,%edi
500265:	74 0e                	je     0x500275
500267:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50026a:	57                   	push   %edi
50026b:	ff 30                	push   (%eax)
50026d:	e8 3e 65 02 00       	call   0x5267b0
500272:	83 c4 08             	add    $0x8,%esp
500275:	85 db                	test   %ebx,%ebx
500277:	74 0c                	je     0x500285
500279:	53                   	push   %ebx
50027a:	ff 75 e4             	push   -0x1c(%ebp)
50027d:	e8 7e 0d 00 00       	call   0x501000
500282:	83 c4 08             	add    $0x8,%esp
500285:	5e                   	pop    %esi
500286:	5f                   	pop    %edi
500287:	5b                   	pop    %ebx
500288:	8b e5                	mov    %ebp,%esp
50028a:	5d                   	pop    %ebp
50028b:	c3                   	ret
50028c:	cc                   	int3
50028d:	cc                   	int3
50028e:	cc                   	int3
50028f:	cc                   	int3
500290:	55                   	push   %ebp
500291:	8b ec                	mov    %esp,%ebp
500293:	81 ec ac 00 00 00    	sub    $0xac,%esp
500299:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50029e:	33 c5                	xor    %ebp,%eax
5002a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5002a3:	8b 45 14             	mov    0x14(%ebp),%eax
5002a6:	53                   	push   %ebx
5002a7:	56                   	push   %esi
5002a8:	8b 75 08             	mov    0x8(%ebp),%esi
5002ab:	57                   	push   %edi
5002ac:	8b 7d 0c             	mov    0xc(%ebp),%edi
5002af:	6a 34                	push   $0x34
5002b1:	8b 1e                	mov    (%esi),%ebx
5002b3:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
5002b9:	8d 45 94             	lea    -0x6c(%ebp),%eax
5002bc:	6a 00                	push   $0x0
5002be:	50                   	push   %eax
5002bf:	89 bd 58 ff ff ff    	mov    %edi,-0xa8(%ebp)
5002c5:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%ebp)
5002cc:	00 00 00
5002cf:	e8 2c 37 0e 00       	call   0x5e3a00
5002d4:	6a 34                	push   $0x34
5002d6:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
5002dc:	6a 00                	push   $0x0
5002de:	50                   	push   %eax
5002df:	e8 1c 37 0e 00       	call   0x5e3a00
5002e4:	6a 34                	push   $0x34
5002e6:	8d 45 c8             	lea    -0x38(%ebp),%eax
5002e9:	6a 00                	push   $0x0
5002eb:	50                   	push   %eax
5002ec:	e8 0f 37 0e 00       	call   0x5e3a00
5002f1:	8b 47 0c             	mov    0xc(%edi),%eax
5002f4:	83 c4 24             	add    $0x24,%esp
5002f7:	85 c0                	test   %eax,%eax
5002f9:	74 12                	je     0x50030d
5002fb:	6a 00                	push   $0x0
5002fd:	6a 00                	push   $0x0
5002ff:	50                   	push   %eax
500300:	53                   	push   %ebx
500301:	e8 5a 05 00 00       	call   0x500860
500306:	83 c4 10             	add    $0x10,%esp
500309:	8b f8                	mov    %eax,%edi
50030b:	eb 02                	jmp    0x50030f
50030d:	33 ff                	xor    %edi,%edi
50030f:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
500313:	0f 85 b8 00 00 00    	jne    0x5003d1
500319:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
50031f:	8d 45 94             	lea    -0x6c(%ebp),%eax
500322:	89 45 d4             	mov    %eax,-0x2c(%ebp)
500325:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
50032b:	89 45 d8             	mov    %eax,-0x28(%ebp)
50032e:	c6 45 c8 2c          	movb   $0x2c,-0x38(%ebp)
500332:	8b 49 14             	mov    0x14(%ecx),%ecx
500335:	c6 45 94 39          	movb   $0x39,-0x6c(%ebp)
500339:	89 7d a0             	mov    %edi,-0x60(%ebp)
50033c:	8b 41 04             	mov    0x4(%ecx),%eax
50033f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
500342:	c6 85 60 ff ff ff 37 	movb   $0x37,-0xa0(%ebp)
500349:	89 bd 6c ff ff ff    	mov    %edi,-0x94(%ebp)
50034f:	8b 41 18             	mov    0x18(%ecx),%eax
500352:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
500358:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
50035e:	50                   	push   %eax
50035f:	57                   	push   %edi
500360:	56                   	push   %esi
500361:	e8 5a 02 00 00       	call   0x5005c0
500366:	57                   	push   %edi
500367:	8b d0                	mov    %eax,%edx
500369:	e8 e2 79 02 00       	call   0x527d50
50036e:	83 c4 10             	add    $0x10,%esp
500371:	8a 08                	mov    (%eax),%cl
500373:	81 60 04 ff ef ff ff 	andl   $0xffffefff,0x4(%eax)
50037a:	88 48 02             	mov    %cl,0x2(%eax)
50037d:	c6 00 ad             	movb   $0xad,(%eax)
500380:	89 50 1c             	mov    %edx,0x1c(%eax)
500383:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
500389:	85 c0                	test   %eax,%eax
50038b:	74 12                	je     0x50039f
50038d:	ff 75 18             	push   0x18(%ebp)
500390:	8d 4d c8             	lea    -0x38(%ebp),%ecx
500393:	ff 75 10             	push   0x10(%ebp)
500396:	51                   	push   %ecx
500397:	56                   	push   %esi
500398:	ff d0                	call   *%eax
50039a:	83 c4 10             	add    $0x10,%esp
50039d:	eb 14                	jmp    0x5003b3
50039f:	ff 75 10             	push   0x10(%ebp)
5003a2:	83 4f 04 01          	orl    $0x1,0x4(%edi)
5003a6:	8d 45 c8             	lea    -0x38(%ebp),%eax
5003a9:	50                   	push   %eax
5003aa:	56                   	push   %esi
5003ab:	e8 a0 4e 02 00       	call   0x525250
5003b0:	83 c4 0c             	add    $0xc,%esp
5003b3:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
5003b9:	85 c9                	test   %ecx,%ecx