418310:	83 c4 08             	add    $0x8,%esp
418313:	83 f8 ff             	cmp    $0xffffffff,%eax
418316:	74 09                	je     0x418321
418318:	66 8b c7             	mov    %di,%ax
41831b:	5f                   	pop    %edi
41831c:	5e                   	pop    %esi
41831d:	83 c4 08             	add    $0x8,%esp
418320:	c3                   	ret
418321:	66 0d ff ff          	or     $0xffff,%ax
418325:	5f                   	pop    %edi
418326:	5e                   	pop    %esi
418327:	83 c4 08             	add    $0x8,%esp
41832a:	c3                   	ret
41832b:	8b 46 04             	mov    0x4(%esi),%eax
41832e:	83 c0 fe             	add    $0xfffffffe,%eax
418331:	89 46 04             	mov    %eax,0x4(%esi)
418334:	78 16                	js     0x41834c
418336:	8b 16                	mov    (%esi),%edx
418338:	8b 44 24 14          	mov    0x14(%esp),%eax
41833c:	66 89 02             	mov    %ax,(%edx)
41833f:	8b 0e                	mov    (%esi),%ecx
418341:	83 c1 02             	add    $0x2,%ecx
418344:	89 0e                	mov    %ecx,(%esi)
418346:	5f                   	pop    %edi
418347:	5e                   	pop    %esi
418348:	83 c4 08             	add    $0x8,%esp
41834b:	c3                   	ret
41834c:	8b 44 24 14          	mov    0x14(%esp),%eax
418350:	56                   	push   %esi
418351:	25 ff ff 00 00       	and    $0xffff,%eax
418356:	50                   	push   %eax
418357:	e8 84 09 00 00       	call   0x418ce0
41835c:	83 c4 08             	add    $0x8,%esp
41835f:	5f                   	pop    %edi
418360:	5e                   	pop    %esi
418361:	83 c4 08             	add    $0x8,%esp
418364:	c3                   	ret
418365:	90                   	nop
418366:	90                   	nop
418367:	90                   	nop
418368:	90                   	nop
418369:	90                   	nop
41836a:	90                   	nop
41836b:	90                   	nop
41836c:	90                   	nop
41836d:	90                   	nop
41836e:	90                   	nop
41836f:	90                   	nop
418370:	56                   	push   %esi
418371:	8b 74 24 0c          	mov    0xc(%esp),%esi
418375:	57                   	push   %edi
418376:	56                   	push   %esi
418377:	e8 64 71 ff ff       	call   0x40f4e0
41837c:	8b 44 24 10          	mov    0x10(%esp),%eax
418380:	83 c4 04             	add    $0x4,%esp
418383:	56                   	push   %esi
418384:	50                   	push   %eax
418385:	e8 16 00 00 00       	call   0x4183a0
41838a:	83 c4 08             	add    $0x8,%esp
41838d:	8b f8                	mov    %eax,%edi
41838f:	56                   	push   %esi
418390:	e8 bb 71 ff ff       	call   0x40f550
418395:	83 c4 04             	add    $0x4,%esp
418398:	66 8b c7             	mov    %di,%ax
41839b:	5f                   	pop    %edi
41839c:	5e                   	pop    %esi
41839d:	c3                   	ret
41839e:	90                   	nop
41839f:	90                   	nop
4183a0:	56                   	push   %esi
4183a1:	57                   	push   %edi
4183a2:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4183a6:	66 81 ff ff ff       	cmp    $0xffff,%di
4183ab:	0f 84 05 01 00 00    	je     0x4184b6
4183b1:	8b 74 24 10          	mov    0x10(%esp),%esi
4183b5:	8b 46 0c             	mov    0xc(%esi),%eax
4183b8:	a8 01                	test   $0x1,%al
4183ba:	75 10                	jne    0x4183cc
4183bc:	a8 80                	test   $0x80,%al
4183be:	0f 84 f2 00 00 00    	je     0x4184b6
4183c4:	a8 02                	test   $0x2,%al
4183c6:	0f 85 ea 00 00 00    	jne    0x4184b6
4183cc:	8b 46 08             	mov    0x8(%esi),%eax
4183cf:	85 c0                	test   %eax,%eax
4183d1:	75 09                	jne    0x4183dc
4183d3:	56                   	push   %esi
4183d4:	e8 37 9d ff ff       	call   0x412110
4183d9:	83 c4 04             	add    $0x4,%esp
4183dc:	8b 46 0c             	mov    0xc(%esi),%eax
4183df:	a8 40                	test   $0x40,%al
4183e1:	0f 85 98 00 00 00    	jne    0x41847f
4183e7:	8b 4e 10             	mov    0x10(%esi),%ecx
4183ea:	83 f9 ff             	cmp    $0xffffffff,%ecx
4183ed:	74 17                	je     0x418406
4183ef:	8b d1                	mov    %ecx,%edx
4183f1:	c1 fa 05             	sar    $0x5,%edx
4183f4:	83 e1 1f             	and    $0x1f,%ecx
4183f7:	8b 14 95 a0 89 43 00 	mov    0x4389a0(,%edx,4),%edx
4183fe:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
418401:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
418404:	eb 05                	jmp    0x41840b
418406:	b9 e8 1d 43 00       	mov    $0x431de8,%ecx
41840b:	f6 41 04 80          	testb  $0x80,0x4(%ecx)
41840f:	74 6e                	je     0x41847f
418411:	8d 44 24 0c          	lea    0xc(%esp),%eax
418415:	57                   	push   %edi
418416:	50                   	push   %eax
418417:	e8 84 9d ff ff       	call   0x4121a0
41841c:	83 c4 08             	add    $0x8,%esp
41841f:	83 f8 ff             	cmp    $0xffffffff,%eax
418422:	75 12                	jne    0x418436
418424:	e8 67 52 ff ff       	call   0x40d690
418429:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41842f:	66 0d ff ff          	or     $0xffff,%ax
418433:	5f                   	pop    %edi
418434:	5e                   	pop    %esi
418435:	c3                   	ret
418436:	8b 0e                	mov    (%esi),%ecx
418438:	8b 56 08             	mov    0x8(%esi),%edx
41843b:	3b ca                	cmp    %edx,%ecx
41843d:	75 0b                	jne    0x41844a
41843f:	8b 56 04             	mov    0x4(%esi),%edx
418442:	85 d2                	test   %edx,%edx
418444:	75 70                	jne    0x4184b6
418446:	03 c8                	add    %eax,%ecx
418448:	89 0e                	mov    %ecx,(%esi)
41844a:	83 f8 01             	cmp    $0x1,%eax
41844d:	74 0d                	je     0x41845c
41844f:	8b 16                	mov    (%esi),%edx
418451:	4a                   	dec    %edx
418452:	89 16                	mov    %edx,(%esi)
418454:	8b ca                	mov    %edx,%ecx
418456:	8a 54 24 0d          	mov    0xd(%esp),%dl
41845a:	88 11                	mov    %dl,(%ecx)
41845c:	8b 0e                	mov    (%esi),%ecx
41845e:	8a 54 24 0c          	mov    0xc(%esp),%dl
418462:	49                   	dec    %ecx
418463:	89 0e                	mov    %ecx,(%esi)
418465:	88 11                	mov    %dl,(%ecx)
418467:	8b 4e 04             	mov    0x4(%esi),%ecx
41846a:	03 c8                	add    %eax,%ecx
41846c:	8b 46 0c             	mov    0xc(%esi),%eax
41846f:	24 ef                	and    $0xef,%al
418471:	89 4e 04             	mov    %ecx,0x4(%esi)
418474:	0c 01                	or     $0x1,%al
418476:	89 46 0c             	mov    %eax,0xc(%esi)
418479:	66 8b c7             	mov    %di,%ax
41847c:	5f                   	pop    %edi
41847d:	5e                   	pop    %esi
41847e:	c3                   	ret
41847f:	8b 0e                	mov    (%esi),%ecx
418481:	8b 56 08             	mov    0x8(%esi),%edx
418484:	3b ca                	cmp    %edx,%ecx
418486:	75 0c                	jne    0x418494
418488:	8b 56 04             	mov    0x4(%esi),%edx
41848b:	85 d2                	test   %edx,%edx
41848d:	75 27                	jne    0x4184b6
41848f:	83 c1 02             	add    $0x2,%ecx
418492:	89 0e                	mov    %ecx,(%esi)
418494:	8b 4e 04             	mov    0x4(%esi),%ecx
418497:	24 ef                	and    $0xef,%al
418499:	0c 01                	or     $0x1,%al
41849b:	83 c1 02             	add    $0x2,%ecx
41849e:	89 46 0c             	mov    %eax,0xc(%esi)
4184a1:	8b 06                	mov    (%esi),%eax
4184a3:	83 c0 fe             	add    $0xfffffffe,%eax
4184a6:	89 4e 04             	mov    %ecx,0x4(%esi)
4184a9:	89 06                	mov    %eax,(%esi)
4184ab:	66 89 38             	mov    %di,(%eax)
4184ae:	8b 0e                	mov    (%esi),%ecx
4184b0:	66 8b 01             	mov    (%ecx),%ax
4184b3:	5f                   	pop    %edi
4184b4:	5e                   	pop    %esi
4184b5:	c3                   	ret
4184b6:	5f                   	pop    %edi
4184b7:	66 0d ff ff          	or     $0xffff,%ax
4184bb:	5e                   	pop    %esi
4184bc:	c3                   	ret
4184bd:	90                   	nop
4184be:	90                   	nop
4184bf:	90                   	nop
4184c0:	56                   	push   %esi
4184c1:	8b 74 24 08          	mov    0x8(%esp),%esi
4184c5:	57                   	push   %edi
4184c6:	56                   	push   %esi
4184c7:	e8 14 70 ff ff       	call   0x40f4e0
4184cc:	83 c4 04             	add    $0x4,%esp
4184cf:	56                   	push   %esi
4184d0:	e8 1b 00 00 00       	call   0x4184f0
4184d5:	83 c4 04             	add    $0x4,%esp
4184d8:	8b f8                	mov    %eax,%edi
4184da:	56                   	push   %esi
4184db:	e8 70 70 ff ff       	call   0x40f550
4184e0:	83 c4 04             	add    $0x4,%esp
4184e3:	66 8b c7             	mov    %di,%ax
4184e6:	5f                   	pop    %edi
4184e7:	5e                   	pop    %esi
4184e8:	c3                   	ret
4184e9:	90                   	nop
4184ea:	90                   	nop
4184eb:	90                   	nop
4184ec:	90                   	nop
4184ed:	90                   	nop
4184ee:	90                   	nop
4184ef:	90                   	nop
4184f0:	51                   	push   %ecx
4184f1:	56                   	push   %esi
4184f2:	8b 74 24 0c          	mov    0xc(%esp),%esi
4184f6:	57                   	push   %edi
4184f7:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
4184fb:	0f 85 e9 00 00 00    	jne    0x4185ea
418501:	8b 46 10             	mov    0x10(%esi),%eax
418504:	83 f8 ff             	cmp    $0xffffffff,%eax
418507:	74 17                	je     0x418520
418509:	8b c8                	mov    %eax,%ecx
41850b:	c1 f9 05             	sar    $0x5,%ecx
41850e:	83 e0 1f             	and    $0x1f,%eax
418511:	8d 14 c0             	lea    (%eax,%eax,8),%edx
418514:	8b 04 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%eax
41851b:	8d 04 90             	lea    (%eax,%edx,4),%eax
41851e:	eb 05                	jmp    0x418525
418520:	b8 e8 1d 43 00       	mov    $0x431de8,%eax
418525:	f6 40 04 80          	testb  $0x80,0x4(%eax)
418529:	0f 84 bb 00 00 00    	je     0x4185ea
41852f:	8b 46 04             	mov    0x4(%esi),%eax
418532:	bf 01 00 00 00       	mov    $0x1,%edi
418537:	48                   	dec    %eax
418538:	89 46 04             	mov    %eax,0x4(%esi)
41853b:	78 0b                	js     0x418548
41853d:	8b 0e                	mov    (%esi),%ecx
41853f:	33 c0                	xor    %eax,%eax
418541:	8a 01                	mov    (%ecx),%al
418543:	41                   	inc    %ecx
418544:	89 0e                	mov    %ecx,(%esi)
418546:	eb 09                	jmp    0x418551
418548:	56                   	push   %esi
418549:	e8 e2 01 00 00       	call   0x418730
41854e:	83 c4 04             	add    $0x4,%esp
418551:	83 f8 ff             	cmp    $0xffffffff,%eax
418554:	75 08                	jne    0x41855e
418556:	66 0d ff ff          	or     $0xffff,%ax
41855a:	5f                   	pop    %edi
41855b:	5e                   	pop    %esi
41855c:	59                   	pop    %ecx
41855d:	c3                   	ret
41855e:	8b 0d 48 1b 43 00    	mov    0x431b48,%ecx
418564:	88 44 24 08          	mov    %al,0x8(%esp)
418568:	25 ff 00 00 00       	and    $0xff,%eax
41856d:	f6 44 41 01 80       	testb  $0x80,0x1(%ecx,%eax,2)
418572:	74 42                	je     0x4185b6
418574:	8b 46 04             	mov    0x4(%esi),%eax
418577:	48                   	dec    %eax
418578:	89 46 04             	mov    %eax,0x4(%esi)
41857b:	78 0b                	js     0x418588
41857d:	8b 0e                	mov    (%esi),%ecx
41857f:	33 c0                	xor    %eax,%eax
418581:	8a 01                	mov    (%ecx),%al
418583:	41                   	inc    %ecx
418584:	89 0e                	mov    %ecx,(%esi)
418586:	eb 09                	jmp    0x418591
418588:	56                   	push   %esi
418589:	e8 a2 01 00 00       	call   0x418730
41858e:	83 c4 04             	add    $0x4,%esp
418591:	83 f8 ff             	cmp    $0xffffffff,%eax
418594:	75 17                	jne    0x4185ad
418596:	0f be 54 24 08       	movsbl 0x8(%esp),%edx
41859b:	56                   	push   %esi
41859c:	52                   	push   %edx
41859d:	e8 5e f9 ff ff       	call   0x417f00
4185a2:	83 c4 08             	add    $0x8,%esp
4185a5:	66 0d ff ff          	or     $0xffff,%ax
4185a9:	5f                   	pop    %edi
4185aa:	5e                   	pop    %esi
4185ab:	59                   	pop    %ecx
4185ac:	c3                   	ret
4185ad:	88 44 24 09          	mov    %al,0x9(%esp)
4185b1:	bf 02 00 00 00       	mov    $0x2,%edi
4185b6:	8d 44 24 08          	lea    0x8(%esp),%eax
4185ba:	57                   	push   %edi
4185bb:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4185bf:	50                   	push   %eax
4185c0:	51                   	push   %ecx
4185c1:	e8 6a 09 00 00       	call   0x418f30
4185c6:	83 c4 0c             	add    $0xc,%esp
4185c9:	83 f8 ff             	cmp    $0xffffffff,%eax
4185cc:	75 13                	jne    0x4185e1
4185ce:	e8 bd 50 ff ff       	call   0x40d690
4185d3:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4185d9:	66 0d ff ff          	or     $0xffff,%ax
4185dd:	5f                   	pop    %edi
4185de:	5e                   	pop    %esi
4185df:	59                   	pop    %ecx
4185e0:	c3                   	ret
4185e1:	66 8b 44 24 10       	mov    0x10(%esp),%ax
4185e6:	5f                   	pop    %edi
4185e7:	5e                   	pop    %esi
4185e8:	59                   	pop    %ecx
4185e9:	c3                   	ret
4185ea:	8b 46 04             	mov    0x4(%esi),%eax
4185ed:	83 c0 fe             	add    $0xfffffffe,%eax
4185f0:	89 46 04             	mov    %eax,0x4(%esi)
4185f3:	78 0e                	js     0x418603
4185f5:	8b 0e                	mov    (%esi),%ecx
4185f7:	66 8b 01             	mov    (%ecx),%ax
4185fa:	83 c1 02             	add    $0x2,%ecx
4185fd:	89 0e                	mov    %ecx,(%esi)
4185ff:	5f                   	pop    %edi
418600:	5e                   	pop    %esi
418601:	59                   	pop    %ecx
418602:	c3                   	ret
418603:	56                   	push   %esi
418604:	e8 27 08 00 00       	call   0x418e30
418609:	83 c4 04             	add    $0x4,%esp
41860c:	5f                   	pop    %edi
41860d:	5e                   	pop    %esi
41860e:	59                   	pop    %ecx
41860f:	c3                   	ret
418610:	56                   	push   %esi
418611:	8b f1                	mov    %ecx,%esi
418613:	e8 e8 00 00 00       	call   0x418700
418618:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
41861d:	74 09                	je     0x418628
41861f:	56                   	push   %esi
418620:	e8 18 47 00 00       	call   0x41cd3d
418625:	83 c4 04             	add    $0x4,%esp
418628:	8b c6                	mov    %esi,%eax
41862a:	5e                   	pop    %esi
41862b:	c2 04 00             	ret    $0x4
41862e:	90                   	nop
41862f:	90                   	nop
418630:	53                   	push   %ebx
418631:	56                   	push   %esi
418632:	8b 74 24 0c          	mov    0xc(%esp),%esi
418636:	8b d9                	mov    %ecx,%ebx
418638:	57                   	push   %edi
418639:	83 c9 ff             	or     $0xffffffff,%ecx
41863c:	c7 03 34 cd 42 00    	movl   $0x42cd34,(%ebx)
418642:	8b 3e                	mov    (%esi),%edi
418644:	33 c0                	xor    %eax,%eax
418646:	f2 ae                	repnz scas %es:(%edi),%al
418648:	f7 d1                	not    %ecx
41864a:	51                   	push   %ecx
41864b:	e8 b1 46 00 00       	call   0x41cd01
418650:	8b d0                	mov    %eax,%edx
418652:	83 c4 04             	add    $0x4,%esp
418655:	85 d2                	test   %edx,%edx
418657:	89 53 04             	mov    %edx,0x4(%ebx)
41865a:	74 1f                	je     0x41867b
41865c:	8b 3e                	mov    (%esi),%edi
41865e:	83 c9 ff             	or     $0xffffffff,%ecx