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
418661:	33 c0                	xor    %eax,%eax
418663:	f2 ae                	repnz scas %es:(%edi),%al
418665:	f7 d1                	not    %ecx
418667:	2b f9                	sub    %ecx,%edi
418669:	8b c1                	mov    %ecx,%eax
41866b:	8b f7                	mov    %edi,%esi
41866d:	8b fa                	mov    %edx,%edi
41866f:	c1 e9 02             	shr    $0x2,%ecx
418672:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
418674:	8b c8                	mov    %eax,%ecx
418676:	83 e1 03             	and    $0x3,%ecx
418679:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
41867b:	5f                   	pop    %edi
41867c:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
418683:	8b c3                	mov    %ebx,%eax
418685:	5e                   	pop    %esi
418686:	5b                   	pop    %ebx
418687:	c2 04 00             	ret    $0x4
41868a:	90                   	nop
41868b:	90                   	nop
41868c:	90                   	nop
41868d:	90                   	nop
41868e:	90                   	nop
41868f:	90                   	nop
418690:	53                   	push   %ebx
418691:	56                   	push   %esi
418692:	8b 74 24 0c          	mov    0xc(%esp),%esi
418696:	8b d9                	mov    %ecx,%ebx
418698:	57                   	push   %edi
418699:	c7 03 34 cd 42 00    	movl   $0x42cd34,(%ebx)
41869f:	8b 46 08             	mov    0x8(%esi),%eax
4186a2:	85 c0                	test   %eax,%eax
4186a4:	89 43 08             	mov    %eax,0x8(%ebx)
4186a7:	74 46                	je     0x4186ef
4186a9:	8b 7e 04             	mov    0x4(%esi),%edi
4186ac:	83 c9 ff             	or     $0xffffffff,%ecx
4186af:	33 c0                	xor    %eax,%eax
4186b1:	f2 ae                	repnz scas %es:(%edi),%al
4186b3:	f7 d1                	not    %ecx
4186b5:	51                   	push   %ecx
4186b6:	e8 46 46 00 00       	call   0x41cd01
4186bb:	8b d0                	mov    %eax,%edx
4186bd:	83 c4 04             	add    $0x4,%esp
4186c0:	85 d2                	test   %edx,%edx
4186c2:	89 53 04             	mov    %edx,0x4(%ebx)
4186c5:	74 2e                	je     0x4186f5
4186c7:	8b 7e 04             	mov    0x4(%esi),%edi
4186ca:	83 c9 ff             	or     $0xffffffff,%ecx
4186cd:	33 c0                	xor    %eax,%eax
4186cf:	f2 ae                	repnz scas %es:(%edi),%al
4186d1:	f7 d1                	not    %ecx
4186d3:	2b f9                	sub    %ecx,%edi
4186d5:	8b c1                	mov    %ecx,%eax
4186d7:	8b f7                	mov    %edi,%esi
4186d9:	8b fa                	mov    %edx,%edi
4186db:	c1 e9 02             	shr    $0x2,%ecx
4186de:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4186e0:	8b c8                	mov    %eax,%ecx
4186e2:	8b c3                	mov    %ebx,%eax
4186e4:	83 e1 03             	and    $0x3,%ecx
4186e7:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4186e9:	5f                   	pop    %edi
4186ea:	5e                   	pop    %esi
4186eb:	5b                   	pop    %ebx
4186ec:	c2 04 00             	ret    $0x4
4186ef:	8b 4e 04             	mov    0x4(%esi),%ecx
4186f2:	89 4b 04             	mov    %ecx,0x4(%ebx)
4186f5:	5f                   	pop    %edi
4186f6:	8b c3                	mov    %ebx,%eax
4186f8:	5e                   	pop    %esi
4186f9:	5b                   	pop    %ebx
4186fa:	c2 04 00             	ret    $0x4
4186fd:	90                   	nop
4186fe:	90                   	nop
4186ff:	90                   	nop
418700:	8b 41 08             	mov    0x8(%ecx),%eax
418703:	c7 01 34 cd 42 00    	movl   $0x42cd34,(%ecx)
418709:	85 c0                	test   %eax,%eax
41870b:	74 0c                	je     0x418719
41870d:	8b 41 04             	mov    0x4(%ecx),%eax
418710:	50                   	push   %eax
418711:	e8 27 46 00 00       	call   0x41cd3d
418716:	83 c4 04             	add    $0x4,%esp
418719:	c3                   	ret
41871a:	90                   	nop
41871b:	90                   	nop
41871c:	90                   	nop
41871d:	90                   	nop
41871e:	90                   	nop
41871f:	90                   	nop
418720:	8b 41 04             	mov    0x4(%ecx),%eax
418723:	85 c0                	test   %eax,%eax
418725:	75 05                	jne    0x41872c
418727:	b8 3c cd 42 00       	mov    $0x42cd3c,%eax
41872c:	c3                   	ret
41872d:	90                   	nop
41872e:	90                   	nop
41872f:	90                   	nop
418730:	56                   	push   %esi
418731:	8b 74 24 08          	mov    0x8(%esp),%esi
418735:	57                   	push   %edi
418736:	8b 46 0c             	mov    0xc(%esi),%eax
418739:	a8 83                	test   $0x83,%al
41873b:	0f 84 d8 00 00 00    	je     0x418819
418741:	a8 40                	test   $0x40,%al
418743:	0f 85 d0 00 00 00    	jne    0x418819
418749:	a8 02                	test   $0x2,%al
41874b:	74 0b                	je     0x418758
41874d:	0c 20                	or     $0x20,%al
41874f:	89 46 0c             	mov    %eax,0xc(%esi)
418752:	83 c8 ff             	or     $0xffffffff,%eax
418755:	5f                   	pop    %edi
418756:	5e                   	pop    %esi
418757:	c3                   	ret
418758:	0c 01                	or     $0x1,%al
41875a:	a9 0c 01 00 00       	test   $0x10c,%eax
41875f:	89 46 0c             	mov    %eax,0xc(%esi)
418762:	75 0b                	jne    0x41876f
418764:	56                   	push   %esi
418765:	e8 a6 99 ff ff       	call   0x412110
41876a:	83 c4 04             	add    $0x4,%esp
41876d:	eb 05                	jmp    0x418774
41876f:	8b 46 08             	mov    0x8(%esi),%eax
418772:	89 06                	mov    %eax,(%esi)
418774:	8b 4e 18             	mov    0x18(%esi),%ecx
418777:	8b 56 08             	mov    0x8(%esi),%edx
41877a:	8b 46 10             	mov    0x10(%esi),%eax
41877d:	51                   	push   %ecx
41877e:	52                   	push   %edx
41877f:	50                   	push   %eax
418780:	e8 2b 09 00 00       	call   0x4190b0
418785:	83 c4 0c             	add    $0xc,%esp
418788:	89 46 04             	mov    %eax,0x4(%esi)
41878b:	85 c0                	test   %eax,%eax
41878d:	74 71                	je     0x418800
41878f:	83 f8 ff             	cmp    $0xffffffff,%eax
418792:	74 6c                	je     0x418800
418794:	8b 56 0c             	mov    0xc(%esi),%edx
418797:	f6 c2 82             	test   $0x82,%dl
41879a:	75 35                	jne    0x4187d1
41879c:	8b 4e 10             	mov    0x10(%esi),%ecx
41879f:	83 f9 ff             	cmp    $0xffffffff,%ecx
4187a2:	74 17                	je     0x4187bb
4187a4:	8b f9                	mov    %ecx,%edi
4187a6:	c1 ff 05             	sar    $0x5,%edi
4187a9:	83 e1 1f             	and    $0x1f,%ecx
4187ac:	8b 3c bd a0 89 43 00 	mov    0x4389a0(,%edi,4),%edi
4187b3:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
4187b6:	8d 0c 8f             	lea    (%edi,%ecx,4),%ecx
4187b9:	eb 05                	jmp    0x4187c0
4187bb:	b9 e8 1d 43 00       	mov    $0x431de8,%ecx
4187c0:	8a 49 04             	mov    0x4(%ecx),%cl
4187c3:	80 e1 82             	and    $0x82,%cl
4187c6:	80 f9 82             	cmp    $0x82,%cl
4187c9:	75 06                	jne    0x4187d1
4187cb:	80 ce 20             	or     $0x20,%dh
4187ce:	89 56 0c             	mov    %edx,0xc(%esi)
4187d1:	81 7e 18 00 02 00 00 	cmpl   $0x200,0x18(%esi)
4187d8:	75 14                	jne    0x4187ee
4187da:	8b 4e 0c             	mov    0xc(%esi),%ecx
4187dd:	f6 c1 08             	test   $0x8,%cl
4187e0:	74 0c                	je     0x4187ee
4187e2:	f6 c5 04             	test   $0x4,%ch
4187e5:	75 07                	jne    0x4187ee
4187e7:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
4187ee:	48                   	dec    %eax
4187ef:	33 d2                	xor    %edx,%edx
4187f1:	89 46 04             	mov    %eax,0x4(%esi)
4187f4:	8b 06                	mov    (%esi),%eax
4187f6:	8a 10                	mov    (%eax),%dl
4187f8:	40                   	inc    %eax
4187f9:	89 06                	mov    %eax,(%esi)
4187fb:	8b c2                	mov    %edx,%eax
4187fd:	5f                   	pop    %edi
4187fe:	5e                   	pop    %esi