40963d:	88 45 fb             	mov    %al,-0x5(%ebp)
409640:	a0 8a c6 49 00       	mov    0x49c68a,%al
409645:	88 45 fa             	mov    %al,-0x6(%ebp)
409648:	a1 84 c6 49 00       	mov    0x49c684,%eax
40964d:	89 45 f4             	mov    %eax,-0xc(%ebp)
409650:	a0 88 c6 49 00       	mov    0x49c688,%al
409655:	88 45 f3             	mov    %al,-0xd(%ebp)
409658:	a0 89 c6 49 00       	mov    0x49c689,%al
40965d:	88 45 f2             	mov    %al,-0xe(%ebp)
409660:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
409667:	b8 13 00 00 00       	mov    $0x13,%eax
40966c:	80 f9 00             	cmp    $0x0,%cl
40966f:	75 17                	jne    0x409688
409671:	8b 45 0c             	mov    0xc(%ebp),%eax
409674:	83 f8 02             	cmp    $0x2,%eax
409677:	7d 05                	jge    0x40967e
409679:	b8 02 00 00 00       	mov    $0x2,%eax
40967e:	83 f8 12             	cmp    $0x12,%eax
409681:	7e 05                	jle    0x409688
409683:	b8 12 00 00 00       	mov    $0x12,%eax
409688:	89 45 0c             	mov    %eax,0xc(%ebp)
40968b:	50                   	push   %eax
40968c:	b8 0f 27 00 00       	mov    $0x270f,%eax
409691:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409695:	72 03                	jb     0x40969a
409697:	8b 45 08             	mov    0x8(%ebp),%eax
40969a:	50                   	push   %eax
40969b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40969e:	e8 51 05 00 00       	call   0x409bf4
4096a3:	8b 7d fc             	mov    -0x4(%ebp),%edi
4096a6:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
4096aa:	2d ff 7f 00 00       	sub    $0x7fff,%eax
4096af:	83 f8 02             	cmp    $0x2,%eax
4096b2:	73 1a                	jae    0x4096ce
4096b4:	89 c1                	mov    %eax,%ecx
4096b6:	e8 70 00 00 00       	call   0x40972b
4096bb:	8d b4 49 1c 97 40 00 	lea    0x40971c(%ecx,%ecx,2),%esi
4096c2:	03 75 ec             	add    -0x14(%ebp),%esi
4096c5:	b9 03 00 00 00       	mov    $0x3,%ecx
4096ca:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4096cc:	eb 2d                	jmp    0x4096fb
4096ce:	8d 75 d7             	lea    -0x29(%ebp),%esi
4096d1:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
4096d5:	80 fb 01             	cmp    $0x1,%bl
4096d8:	74 10                	je     0x4096ea
4096da:	80 fb 04             	cmp    $0x4,%bl
4096dd:	77 09                	ja     0x4096e8
4096df:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
4096e3:	3b 45 0c             	cmp    0xc(%ebp),%eax
4096e6:	7e 02                	jle    0x4096ea
4096e8:	b3 00                	mov    $0x0,%bl
4096ea:	8d 1c 9d 08 97 40 00 	lea    0x409708(,%ebx,4),%ebx
4096f1:	03 5d ec             	add    -0x14(%ebp),%ebx
4096f4:	8b 1b                	mov    (%ebx),%ebx
4096f6:	03 5d ec             	add    -0x14(%ebp),%ebx
4096f9:	ff d3                	call   *%ebx
4096fb:	89 f8                	mov    %edi,%eax
4096fd:	2b 45 fc             	sub    -0x4(%ebp),%eax
409700:	5b                   	pop    %ebx
409701:	5e                   	pop    %esi
409702:	5f                   	pop    %edi
409703:	e9 f1 01 00 00       	jmp    0x4098f9
409708:	35 97 40 00 91       	xor    $0x91004097,%eax
40970d:	97                   	xchg   %eax,%edi
40970e:	40                   	inc    %eax
40970f:	00 c8                	add    %cl,%al
409711:	97                   	xchg   %eax,%edi
409712:	40                   	inc    %eax
409713:	00 c8                	add    %cl,%al
409715:	97                   	xchg   %eax,%edi
409716:	40                   	inc    %eax
409717:	00 32                	add    %dh,(%edx)
409719:	98                   	cwtl
40971a:	40                   	inc    %eax
40971b:	00 49 4e             	add    %cl,0x4e(%ecx)
40971e:	46                   	inc    %esi
40971f:	4e                   	dec    %esi
409720:	41                   	inc    %ecx
409721:	4e                   	dec    %esi
409722:	ac                   	lods   %ds:(%esi),%al
409723:	08 c0                	or     %al,%al
409725:	75 03                	jne    0x40972a
409727:	b0 30                	mov    $0x30,%al
409729:	4e                   	dec    %esi
40972a:	c3                   	ret
40972b:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
40972f:	74 03                	je     0x409734
409731:	b0 2d                	mov    $0x2d,%al
409733:	aa                   	stos   %al,%es:(%edi)
409734:	c3                   	ret
409735:	e8 f1 ff ff ff       	call   0x40972b
40973a:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
40973e:	31 d2                	xor    %edx,%edx
409740:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
409743:	7f 1d                	jg     0x409762
409745:	83 f9 fd             	cmp    $0xfffffffd,%ecx
409748:	7c 18                	jl     0x409762
40974a:	09 c9                	or     %ecx,%ecx
40974c:	7f 1a                	jg     0x409768
40974e:	b0 30                	mov    $0x30,%al
409750:	aa                   	stos   %al,%es:(%edi)
409751:	80 3e 00             	cmpb   $0x0,(%esi)
409754:	74 3a                	je     0x409790
409756:	8a 45 fb             	mov    -0x5(%ebp),%al
409759:	aa                   	stos   %al,%es:(%edi)
40975a:	f7 d9                	neg    %ecx
40975c:	b0 30                	mov    $0x30,%al
40975e:	f3 aa                	rep stos %al,%es:(%edi)
409760:	eb 1a                	jmp    0x40977c
409762:	b9 01 00 00 00       	mov    $0x1,%ecx
409767:	42                   	inc    %edx
409768:	ac                   	lods   %ds:(%esi),%al
409769:	08 c0                	or     %al,%al
40976b:	74 17                	je     0x409784
40976d:	aa                   	stos   %al,%es:(%edi)
40976e:	e2 f8                	loop   0x409768
409770:	ac                   	lods   %ds:(%esi),%al
409771:	08 c0                	or     %al,%al
409773:	74 13                	je     0x409788
409775:	88 c4                	mov    %al,%ah
409777:	8a 45 fb             	mov    -0x5(%ebp),%al
40977a:	66 ab                	stos   %ax,%es:(%edi)
40977c:	ac                   	lods   %ds:(%esi),%al
40977d:	08 c0                	or     %al,%al
40977f:	74 07                	je     0x409788
409781:	aa                   	stos   %al,%es:(%edi)
409782:	eb f8                	jmp    0x40977c
409784:	b0 30                	mov    $0x30,%al
409786:	f3 aa                	rep stos %al,%es:(%edi)
409788:	09 d2                	or     %edx,%edx
40978a:	74 04                	je     0x409790
40978c:	31 c0                	xor    %eax,%eax
40978e:	eb 1e                	jmp    0x4097ae
409790:	c3                   	ret
409791:	e8 95 ff ff ff       	call   0x40972b
409796:	e8 87 ff ff ff       	call   0x409722
40979b:	8a 65 fb             	mov    -0x5(%ebp),%ah
40979e:	66 ab                	stos   %ax,%es:(%edi)
4097a0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4097a3:	49                   	dec    %ecx
4097a4:	e8 79 ff ff ff       	call   0x409722
4097a9:	aa                   	stos   %al,%es:(%edi)
4097aa:	e2 f8                	loop   0x4097a4
4097ac:	b4 2b                	mov    $0x2b,%ah
4097ae:	8b 4d 08             	mov    0x8(%ebp),%ecx
4097b1:	83 f9 04             	cmp    $0x4,%ecx
4097b4:	76 02                	jbe    0x4097b8
4097b6:	31 c9                	xor    %ecx,%ecx
4097b8:	b0 45                	mov    $0x45,%al
4097ba:	8a 5d d7             	mov    -0x29(%ebp),%bl
4097bd:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
4097c1:	4a                   	dec    %edx
4097c2:	e8 21 fe ff ff       	call   0x4095e8
4097c7:	c3                   	ret
4097c8:	e8 5e ff ff ff       	call   0x40972b
4097cd:	8b 55 08             	mov    0x8(%ebp),%edx
4097d0:	83 fa 12             	cmp    $0x12,%edx
4097d3:	72 05                	jb     0x4097da
4097d5:	ba 12 00 00 00       	mov    $0x12,%edx
4097da:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
4097de:	09 c9                	or     %ecx,%ecx
4097e0:	7f 05                	jg     0x4097e7
4097e2:	b0 30                	mov    $0x30,%al
4097e4:	aa                   	stos   %al,%es:(%edi)
4097e5:	eb 2a                	jmp    0x409811
4097e7:	31 db                	xor    %ebx,%ebx
4097e9:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
4097ed:	74 0a                	je     0x4097f9
4097ef:	89 c8                	mov    %ecx,%eax
4097f1:	48                   	dec    %eax
4097f2:	b3 03                	mov    $0x3,%bl
4097f4:	f6 f3                	div    %bl
4097f6:	88 e3                	mov    %ah,%bl
4097f8:	43                   	inc    %ebx
4097f9:	e8 24 ff ff ff       	call   0x409722
4097fe:	aa                   	stos   %al,%es:(%edi)
4097ff:	49                   	dec    %ecx
409800:	74 0f                	je     0x409811
409802:	4b                   	dec    %ebx
409803:	75 f4                	jne    0x4097f9
409805:	8a 45 fa             	mov    -0x6(%ebp),%al
409808:	84 c0                	test   %al,%al
40980a:	74 ed                	je     0x4097f9
40980c:	aa                   	stos   %al,%es:(%edi)
40980d:	b3 03                	mov    $0x3,%bl
40980f:	eb e8                	jmp    0x4097f9
409811:	09 d2                	or     %edx,%edx
409813:	74 1c                	je     0x409831
409815:	8a 45 fb             	mov    -0x5(%ebp),%al
409818:	84 c0                	test   %al,%al
40981a:	74 01                	je     0x40981d
40981c:	aa                   	stos   %al,%es:(%edi)
40981d:	e3 09                	jecxz  0x409828
40981f:	b0 30                	mov    $0x30,%al
409821:	aa                   	stos   %al,%es:(%edi)
409822:	4a                   	dec    %edx
409823:	74 0c                	je     0x409831
409825:	41                   	inc    %ecx
409826:	75 f9                	jne    0x409821
409828:	e8 f5 fe ff ff       	call   0x409722
40982d:	aa                   	stos   %al,%es:(%edi)
40982e:	4a                   	dec    %edx
40982f:	75 f7                	jne    0x409828
409831:	c3                   	ret
409832:	31 db                	xor    %ebx,%ebx
409834:	8a 5d f3             	mov    -0xd(%ebp),%bl
409837:	b9 03 00 00 00       	mov    $0x3,%ecx
40983c:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409840:	74 08                	je     0x40984a
409842:	8a 5d f2             	mov    -0xe(%ebp),%bl
409845:	b9 0f 04 00 00       	mov    $0x40f,%ecx
40984a:	38 cb                	cmp    %cl,%bl
40984c:	76 02                	jbe    0x409850
40984e:	88 cb                	mov    %cl,%bl
409850:	00 eb                	add    %ch,%bl
409852:	8d 9c 9b 95 98 40 00 	lea    0x409895(%ebx,%ebx,4),%ebx
409859:	03 5d ec             	add    -0x14(%ebp),%ebx
40985c:	b9 05 00 00 00       	mov    $0x5,%ecx
409861:	8a 03                	mov    (%ebx),%al
409863:	3c 40                	cmp    $0x40,%al
409865:	74 1e                	je     0x409885
409867:	51                   	push   %ecx
409868:	53                   	push   %ebx
409869:	3c 24                	cmp    $0x24,%al
40986b:	74 07                	je     0x409874
40986d:	3c 2a                	cmp    $0x2a,%al
40986f:	74 0a                	je     0x40987b
409871:	aa                   	stos   %al,%es:(%edi)
409872:	eb 0c                	jmp    0x409880
409874:	e8 0d 00 00 00       	call   0x409886
409879:	eb 05                	jmp    0x409880
40987b:	e8 4d ff ff ff       	call   0x4097cd
409880:	5b                   	pop    %ebx
409881:	59                   	pop    %ecx
409882:	43                   	inc    %ebx
409883:	e2 dc                	loop   0x409861
409885:	c3                   	ret
409886:	56                   	push   %esi
409887:	8b 75 f4             	mov    -0xc(%ebp),%esi
40988a:	85 f6                	test   %esi,%esi
40988c:	74 05                	je     0x409893
40988e:	8b 4e fc             	mov    -0x4(%esi),%ecx
409891:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409893:	5e                   	pop    %esi
409894:	c3                   	ret
409895:	24 2a                	and    $0x2a,%al
409897:	40                   	inc    %eax
409898:	40                   	inc    %eax
409899:	40                   	inc    %eax
40989a:	2a 24 40             	sub    (%eax,%eax,2),%ah
40989d:	40                   	inc    %eax
40989e:	40                   	inc    %eax
40989f:	24 20                	and    $0x20,%al
4098a1:	2a 40 40             	sub    0x40(%eax),%al
4098a4:	2a 20                	sub    (%eax),%ah
4098a6:	24 40                	and    $0x40,%al
4098a8:	40                   	inc    %eax
4098a9:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
4098ac:	29 40 2d             	sub    %eax,0x2d(%eax)
4098af:	24 2a                	and    $0x2a,%al
4098b1:	40                   	inc    %eax
4098b2:	40                   	inc    %eax
4098b3:	24 2d                	and    $0x2d,%al
4098b5:	2a 40 40             	sub    0x40(%eax),%al
4098b8:	24 2a                	and    $0x2a,%al
4098ba:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
4098bf:	24 29                	and    $0x29,%al
4098c1:	40                   	inc    %eax
4098c2:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
4098c7:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
4098cd:	24 2d                	and    $0x2d,%al
4098cf:	40                   	inc    %eax
4098d0:	40                   	inc    %eax
4098d1:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
4098d6:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
4098db:	2a 20                	sub    (%eax),%ah
4098dd:	24 2d                	and    $0x2d,%al
4098df:	40                   	inc    %eax
4098e0:	24 20                	and    $0x20,%al
4098e2:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
4098e8:	2a 40 2a             	sub    0x2a(%eax),%al
4098eb:	2d 20 24 40 28       	sub    $0x28402420,%eax
4098f0:	24 20                	and    $0x20,%al
4098f2:	2a 29                	sub    (%ecx),%ch
4098f4:	28 2a                	sub    %ch,(%edx)
4098f6:	20 24 29             	and    %ah,(%ecx,%ebp,1)
4098f9:	8b e5                	mov    %ebp,%esp
4098fb:	5d                   	pop    %ebp
4098fc:	c2 0c 00             	ret    $0xc
4098ff:	90                   	nop
409900:	55                   	push   %ebp
409901:	8b ec                	mov    %esp,%ebp
409903:	83 c4 b8             	add    $0xffffffb8,%esp
409906:	57                   	push   %edi
409907:	56                   	push   %esi
409908:	53                   	push   %ebx
409909:	89 45 fc             	mov    %eax,-0x4(%ebp)
40990c:	89 d7                	mov    %edx,%edi
40990e:	89 cb                	mov    %ecx,%ebx
409910:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
409917:	a0 8b c6 49 00       	mov    0x49c68b,%al
40991c:	88 45 f7             	mov    %al,-0x9(%ebp)
40991f:	a0 8a c6 49 00       	mov    0x49c68a,%al
409924:	88 45 f6             	mov    %al,-0xa(%ebp)
409927:	b9 02 00 00 00       	mov    $0x2,%ecx
40992c:	80 fb 00             	cmp    $0x0,%bl
40992f:	74 0f                	je     0x409940
409931:	8b 07                	mov    (%edi),%eax
409933:	0b 47 04             	or     0x4(%edi),%eax
409936:	74 1a                	je     0x409952
409938:	8b 4f 04             	mov    0x4(%edi),%ecx
40993b:	c1 e9 1f             	shr    $0x1f,%ecx
40993e:	eb 12                	jmp    0x409952
409940:	0f b7 47 08          	movzwl 0x8(%edi),%eax
409944:	0b 07                	or     (%edi),%eax
409946:	0b 47 04             	or     0x4(%edi),%eax
409949:	74 07                	je     0x409952
40994b:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
40994f:	c1 e9 0f             	shr    $0xf,%ecx
409952:	e8 8b 00 00 00       	call   0x4099e2
409957:	74 4c                	je     0x4099a5
409959:	e8 bf 00 00 00       	call   0x409a1d
40995e:	8b 45 f0             	mov    -0x10(%ebp),%eax
409961:	ba 0f 27 00 00       	mov    $0x270f,%edx
409966:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
40996a:	75 0a                	jne    0x409976
40996c:	2b 45 e8             	sub    -0x18(%ebp),%eax
40996f:	89 c2                	mov    %eax,%edx
409971:	b8 12 00 00 00       	mov    $0x12,%eax
409976:	50                   	push   %eax
409977:	52                   	push   %edx
409978:	8d 45 d0             	lea    -0x30(%ebp),%eax
40997b:	89 fa                	mov    %edi,%edx
40997d:	89 d9                	mov    %ebx,%ecx
40997f:	e8 70 02 00 00       	call   0x409bf4
409984:	66 8b 45 d0          	mov    -0x30(%ebp),%ax
409988:	66 3d 00 80          	cmp    $0x8000,%ax
40998c:	74 17                	je     0x4099a5
40998e:	66 3d ff 7f          	cmp    $0x7fff,%ax
409992:	74 11                	je     0x4099a5
409994:	80 fb 00             	cmp    $0x0,%bl
409997:	75 23                	jne    0x4099bc
409999:	66 3d 12 00          	cmp    $0x12,%ax
40999d:	7e 1d                	jle    0x4099bc
40999f:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
4099a3:	75 17                	jne    0x4099bc
4099a5:	6a 00                	push   $0x0
4099a7:	6a 0f                	push   $0xf
4099a9:	6a 00                	push   $0x0
4099ab:	8b 45 fc             	mov    -0x4(%ebp),%eax