4096a8:	01 44 24 08          	add    %eax,0x8(%esp)
4096ac:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096b0:	29 d0                	sub    %edx,%eax
4096b2:	89 44 24 0c          	mov    %eax,0xc(%esp)
4096b6:	03 54 24 24          	add    0x24(%esp),%edx
4096ba:	89 54 24 04          	mov    %edx,0x4(%esp)
4096be:	eb 58                	jmp    0x409718
4096c0:	e2 2f                	loop   0x4096f1
4096c2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096c6:	2b 44 24 0c          	sub    0xc(%esp),%eax
4096ca:	29 d0                	sub    %edx,%eax
4096cc:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4096d0:	01 d1                	add    %edx,%ecx
4096d2:	29 4c 24 2c          	sub    %ecx,0x2c(%esp)
4096d6:	01 44 24 04          	add    %eax,0x4(%esp)
4096da:	01 44 24 0c          	add    %eax,0xc(%esp)
4096de:	8b 44 24 28          	mov    0x28(%esp),%eax
4096e2:	29 d0                	sub    %edx,%eax
4096e4:	89 44 24 08          	mov    %eax,0x8(%esp)
4096e8:	03 54 24 20          	add    0x20(%esp),%edx
4096ec:	89 14 24             	mov    %edx,(%esp)
4096ef:	eb 27                	jmp    0x409718
4096f1:	e2 25                	loop   0x409718
4096f3:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4096f7:	29 d0                	sub    %edx,%eax
4096f9:	89 44 24 0c          	mov    %eax,0xc(%esp)
4096fd:	8b 44 24 28          	mov    0x28(%esp),%eax
409701:	29 d0                	sub    %edx,%eax
409703:	89 44 24 08          	mov    %eax,0x8(%esp)
409707:	8b 44 24 24          	mov    0x24(%esp),%eax
40970b:	01 d0                	add    %edx,%eax
40970d:	89 44 24 04          	mov    %eax,0x4(%esp)
409711:	03 54 24 20          	add    0x20(%esp),%edx
409715:	89 14 24             	mov    %edx,(%esp)
409718:	8b 04 24             	mov    (%esp),%eax
40971b:	3b 44 24 08          	cmp    0x8(%esp),%eax
40971f:	7e 04                	jle    0x409725
409721:	89 44 24 08          	mov    %eax,0x8(%esp)
409725:	8b 44 24 04          	mov    0x4(%esp),%eax
409729:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40972d:	7e 04                	jle    0x409733
40972f:	89 44 24 0c          	mov    %eax,0xc(%esp)
409733:	8b 14 24             	mov    (%esp),%edx
409736:	2b 54 24 10          	sub    0x10(%esp),%edx
40973a:	8b 44 24 04          	mov    0x4(%esp),%eax
40973e:	2b 44 24 14          	sub    0x14(%esp),%eax
409742:	09 c2                	or     %eax,%edx
409744:	8b 4c 24 08          	mov    0x8(%esp),%ecx
409748:	2b 0c 24             	sub    (%esp),%ecx
40974b:	2b 4c 24 18          	sub    0x18(%esp),%ecx
40974f:	8b 44 24 0c          	mov    0xc(%esp),%eax
409753:	2b 44 24 04          	sub    0x4(%esp),%eax
409757:	2b 44 24 1c          	sub    0x1c(%esp),%eax
40975b:	09 c8                	or     %ecx,%eax
40975d:	74 0e                	je     0x40976d
40975f:	80 a6 3b 01 00 00 fe 	andb   $0xfe,0x13b(%esi)
409766:	80 8e 3b 01 00 00 02 	orb    $0x2,0x13b(%esi)
40976d:	09 d0                	or     %edx,%eax
40976f:	74 09                	je     0x40977a
409771:	89 e2                	mov    %esp,%edx
409773:	89 f0                	mov    %esi,%eax
409775:	e8 ea 21 00 00       	call   0x40b964
40977a:	f6 86 3b 01 00 00 01 	testb  $0x1,0x13b(%esi)
409781:	74 07                	je     0x40978a
409783:	89 f0                	mov    %esi,%eax
409785:	e8 35 fe ff ff       	call   0x4095bf
40978a:	f6 83 3b 01 00 00 04 	testb  $0x4,0x13b(%ebx)
409791:	74 1c                	je     0x4097af
409793:	83 c5 04             	add    $0x4,%ebp
409796:	4f                   	dec    %edi
409797:	0f 8d 55 fe ff ff    	jge    0x4095f2
40979d:	c1 6c 24 30 08       	shrl   $0x8,0x30(%esp)
4097a2:	0f 85 3c fe ff ff    	jne    0x4095e4
4097a8:	80 a3 3b 01 00 00 fb 	andb   $0xfb,0x13b(%ebx)
4097af:	83 c4 34             	add    $0x34,%esp
4097b2:	5f                   	pop    %edi
4097b3:	5e                   	pop    %esi
4097b4:	5b                   	pop    %ebx
4097b5:	5d                   	pop    %ebp
4097b6:	c3                   	ret
4097b7:	90                   	nop
4097b8:	c7 05 48 61 42 00 48 	movl   $0x409548,0x426148
4097bf:	95 40 00
4097c2:	f6 40 37 04          	testb  $0x4,0x37(%eax)
4097c6:	75 13                	jne    0x4097db
4097c8:	3a 90 3a 01 00 00    	cmp    0x13a(%eax),%dl
4097ce:	74 0b                	je     0x4097db
4097d0:	88 90 3a 01 00 00    	mov    %dl,0x13a(%eax)
4097d6:	e8 6d fd ff ff       	call   0x409548
4097db:	c3                   	ret
4097dc:	53                   	push   %ebx
4097dd:	51                   	push   %ecx
4097de:	8b d8                	mov    %eax,%ebx
4097e0:	8b c3                	mov    %ebx,%eax
4097e2:	e8 d1 ff ff ff       	call   0x4097b8
4097e7:	89 1c 24             	mov    %ebx,(%esp)
4097ea:	8b 04 24             	mov    (%esp),%eax
4097ed:	5a                   	pop    %edx
4097ee:	5b                   	pop    %ebx
4097ef:	c3                   	ret
4097f0:	55                   	push   %ebp
4097f1:	8b ec                	mov    %esp,%ebp
4097f3:	6a 00                	push   $0x0
4097f5:	53                   	push   %ebx
4097f6:	56                   	push   %esi
4097f7:	8b f2                	mov    %edx,%esi
4097f9:	8b d8                	mov    %eax,%ebx
4097fb:	33 c0                	xor    %eax,%eax
4097fd:	55                   	push   %ebp
4097fe:	68 7e 98 40 00       	push   $0x40987e
409803:	64 ff 30             	push   %fs:(%eax)
409806:	64 89 20             	mov    %esp,%fs:(%eax)
409809:	8b 43 4c             	mov    0x4c(%ebx),%eax
40980c:	66 83 78 54 00       	cmpw   $0x0,0x54(%eax)
409811:	74 2d                	je     0x409840
409813:	8b c3                	mov    %ebx,%eax
409815:	e8 e2 29 00 00       	call   0x40c1fc
40981a:	8d 48 01             	lea    0x1(%eax),%ecx
40981d:	8b c6                	mov    %esi,%eax
40981f:	33 d2                	xor    %edx,%edx
409821:	e8 5e 9f ff ff       	call   0x403784
409826:	8b c6                	mov    %esi,%eax
409828:	e8 1f a3 ff ff       	call   0x403b4c
40982d:	50                   	push   %eax
40982e:	6a 00                	push   $0x0
409830:	8b 43 4c             	mov    0x4c(%ebx),%eax
409833:	0f b7 40 54          	movzwl 0x54(%eax),%eax
409837:	50                   	push   %eax
409838:	53                   	push   %ebx
409839:	e8 fe 2c 00 00       	call   0x40c53c
40983e:	eb 28                	jmp    0x409868
409840:	56                   	push   %esi
409841:	8d 55 fc             	lea    -0x4(%ebp),%edx
409844:	8b c3                	mov    %ebx,%eax
409846:	e8 75 46 00 00       	call   0x40dec0
40984b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40984e:	50                   	push   %eax
40984f:	8b c3                	mov    %ebx,%eax
409851:	e8 a6 29 00 00       	call   0x40c1fc
409856:	50                   	push   %eax
409857:	8b c3                	mov    %ebx,%eax
409859:	e8 82 29 00 00       	call   0x40c1e0
40985e:	8b d0                	mov    %eax,%edx
409860:	42                   	inc    %edx
409861:	59                   	pop    %ecx
409862:	58                   	pop    %eax
409863:	e8 ec a2 ff ff       	call   0x403b54
409868:	33 c0                	xor    %eax,%eax
40986a:	5a                   	pop    %edx
40986b:	59                   	pop    %ecx
40986c:	59                   	pop    %ecx
40986d:	64 89 10             	mov    %edx,%fs:(%eax)
409870:	68 85 98 40 00       	push   $0x409885
409875:	8d 45 fc             	lea    -0x4(%ebp),%eax
409878:	e8 17 9e ff ff       	call   0x403694
40987d:	c3                   	ret
40987e:	e9 85 98 ff ff       	jmp    0x403108
409883:	eb f0                	jmp    0x409875
409885:	5e                   	pop    %esi
409886:	5b                   	pop    %ebx
409887:	59                   	pop    %ecx
409888:	5d                   	pop    %ebp
409889:	c3                   	ret
40988a:	8b c0                	mov    %eax,%eax
40988c:	55                   	push   %ebp
40988d:	8b ec                	mov    %esp,%ebp
40988f:	53                   	push   %ebx
409890:	56                   	push   %esi
409891:	57                   	push   %edi
409892:	8b 7d 14             	mov    0x14(%ebp),%edi
409895:	8b 75 10             	mov    0x10(%ebp),%esi
409898:	8b 5d 08             	mov    0x8(%ebp),%ebx
40989b:	8b 83 0e 01 00 00    	mov    0x10e(%ebx),%eax
4098a1:	3b f0                	cmp    %eax,%esi
4098a3:	76 02                	jbe    0x4098a7
4098a5:	8b f0                	mov    %eax,%esi
4098a7:	8b 55 0c             	mov    0xc(%ebp),%edx
4098aa:	8b 83 0a 01 00 00    	mov    0x10a(%ebx),%eax
4098b0:	8b ce                	mov    %esi,%ecx
4098b2:	e8 a9 d1 ff ff       	call   0x406a60
4098b7:	89 07                	mov    %eax,(%edi)
4098b9:	8b 07                	mov    (%edi),%eax
4098bb:	29 83 0e 01 00 00    	sub    %eax,0x10e(%ebx)
4098c1:	8b 73 50             	mov    0x50(%ebx),%esi
4098c4:	8b d3                	mov    %ebx,%edx
4098c6:	8b 86 bc 01 00 00    	mov    0x1bc(%esi),%eax
4098cc:	ff 96 b8 01 00 00    	call   *0x1b8(%esi)
4098d2:	33 c0                	xor    %eax,%eax
4098d4:	5f                   	pop    %edi
4098d5:	5e                   	pop    %esi
4098d6:	5b                   	pop    %ebx
4098d7:	5d                   	pop    %ebp
4098d8:	c2 10 00             	ret    $0x10
4098db:	90                   	nop
4098dc:	55                   	push   %ebp
4098dd:	8b ec                	mov    %esp,%ebp
4098df:	83 c4 f4             	add    $0xfffffff4,%esp
4098e2:	53                   	push   %ebx
4098e3:	8b d8                	mov    %eax,%ebx
4098e5:	89 93 0a 01 00 00    	mov    %edx,0x10a(%ebx)
4098eb:	89 8b 0e 01 00 00    	mov    %ecx,0x10e(%ebx)
4098f1:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4098f4:	33 c0                	xor    %eax,%eax
4098f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4098f9:	b8 8c 98 40 00       	mov    $0x40988c,%eax
4098fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
409901:	33 c0                	xor    %eax,%eax
409903:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
409907:	74 05                	je     0x40990e
409909:	b8 00 80 00 00       	mov    $0x8000,%eax
40990e:	8d 55 f4             	lea    -0xc(%ebp),%edx
409911:	52                   	push   %edx
409912:	33 d2                	xor    %edx,%edx
409914:	8a 55 0c             	mov    0xc(%ebp),%dl
409917:	0f b7 14 55 48 64 42 	movzwl 0x426448(,%edx,2),%edx
40991e:	00
40991f:	0b c2                	or     %edx,%eax
409921:	50                   	push   %eax
409922:	68 49 04 00 00       	push   $0x449
409927:	53                   	push   %ebx
409928:	e8 0f 2c 00 00       	call   0x40c53c
40992d:	33 c0                	xor    %eax,%eax
40992f:	89 83 0a 01 00 00    	mov    %eax,0x10a(%ebx)
409935:	8b 45 f8             	mov    -0x8(%ebp),%eax
409938:	89 83 06 01 00 00    	mov    %eax,0x106(%ebx)
40993e:	85 c0                	test   %eax,%eax
409940:	0f 94 c0             	sete   %al
409943:	5b                   	pop    %ebx
409944:	8b e5                	mov    %ebp,%esp
409946:	5d                   	pop    %ebp
409947:	c2 08 00             	ret    $0x8
40994a:	8b c0                	mov    %eax,%eax
40994c:	55                   	push   %ebp
40994d:	8b ec                	mov    %esp,%ebp
40994f:	51                   	push   %ecx
409950:	53                   	push   %ebx
409951:	56                   	push   %esi
409952:	57                   	push   %edi
409953:	8b d9                	mov    %ecx,%ebx
409955:	8b f2                	mov    %edx,%esi
409957:	8b f8                	mov    %eax,%edi
409959:	8b c6                	mov    %esi,%eax
40995b:	e8 98 11 00 00       	call   0x40aaf8
409960:	89 45 fc             	mov    %eax,-0x4(%ebp)
409963:	53                   	push   %ebx
409964:	8a 45 08             	mov    0x8(%ebp),%al
409967:	50                   	push   %eax
409968:	8b c7                	mov    %edi,%eax
40996a:	83 c9 ff             	or     $0xffffffff,%ecx
40996d:	8b 55 fc             	mov    -0x4(%ebp),%edx
409970:	e8 67 ff ff ff       	call   0x4098dc
409975:	8b d8                	mov    %eax,%ebx
409977:	8b 45 fc             	mov    -0x4(%ebp),%eax
40997a:	e8 91 08 00 00       	call   0x40a210
40997f:	8b c3                	mov    %ebx,%eax
409981:	5f                   	pop    %edi
409982:	5e                   	pop    %esi
409983:	5b                   	pop    %ebx
409984:	59                   	pop    %ecx
409985:	5d                   	pop    %ebp
409986:	c2 04 00             	ret    $0x4
409989:	8d 40 00             	lea    0x0(%eax),%eax
40998c:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
409990:	7c 5e                	jl     0x4099f0
409992:	60                   	pusha
409993:	89 c3                	mov    %eax,%ebx
409995:	89 cd                	mov    %ecx,%ebp
409997:	8b 4b 40             	mov    0x40(%ebx),%ecx
40999a:	e3 53                	jecxz  0x4099ef
40999c:	89 ce                	mov    %ecx,%esi
40999e:	8b 4e 1c             	mov    0x1c(%esi),%ecx
4099a1:	e3 4c                	jecxz  0x4099ef
4099a3:	89 cf                	mov    %ecx,%edi
4099a5:	d1 ef                	shr    $1,%edi
4099a7:	e8 bc b7 ff ff       	call   0x405168
4099ac:	4f                   	dec    %edi
4099ad:	78 31                	js     0x4099e0
4099af:	52                   	push   %edx
4099b0:	53                   	push   %ebx
4099b1:	31 c0                	xor    %eax,%eax
4099b3:	38 05 95 98 42 00    	cmp    %al,0x429895
4099b9:	74 09                	je     0x4099c4
4099bb:	8b 4e 18             	mov    0x18(%esi),%ecx
4099be:	8b 4c f9 04          	mov    0x4(%ecx,%edi,8),%ecx
4099c2:	e3 0b                	jecxz  0x4099cf
4099c4:	8b 46 18             	mov    0x18(%esi),%eax
4099c7:	8b 04 f8             	mov    (%eax,%edi,8),%eax
4099ca:	93                   	xchg   %eax,%ebx
4099cb:	89 e9                	mov    %ebp,%ecx
4099cd:	ff d3                	call   *%ebx
4099cf:	5b                   	pop    %ebx
4099d0:	5a                   	pop    %edx
4099d1:	84 c0                	test   %al,%al
4099d3:	74 d7                	je     0x4099ac
4099d5:	89 d8                	mov    %ebx,%eax
4099d7:	e8 34 08 00 00       	call   0x40a210
4099dc:	61                   	popa
4099dd:	b0 01                	mov    $0x1,%al
4099df:	c3                   	ret
4099e0:	31 c0                	xor    %eax,%eax
4099e2:	40                   	inc    %eax
4099e3:	39 43 04             	cmp    %eax,0x4(%ebx)
4099e6:	74 ed                	je     0x4099d5
4099e8:	89 d8                	mov    %ebx,%eax
4099ea:	e8 21 08 00 00       	call   0x40a210
4099ef:	61                   	popa
4099f0:	31 c0                	xor    %eax,%eax
4099f2:	c3                   	ret
4099f3:	90                   	nop
4099f4:	53                   	push   %ebx
4099f5:	56                   	push   %esi
4099f6:	8b d8                	mov    %eax,%ebx
4099f8:	ba b4 7d 40 00       	mov    $0x407db4,%edx
4099fd:	8b c3                	mov    %ebx,%eax
4099ff:	e8 80 b8 ff ff       	call   0x405284
409a04:	8b f0                	mov    %eax,%esi
409a06:	85 f6                	test   %esi,%esi
409a08:	7c 27                	jl     0x409a31
409a0a:	8b d6                	mov    %esi,%edx
409a0c:	8b c3                	mov    %ebx,%eax
409a0e:	e8 15 b8 ff ff       	call   0x405228
409a13:	8b d6                	mov    %esi,%edx
409a15:	8b c3                	mov    %ebx,%eax
409a17:	e8 0c b8 ff ff       	call   0x405228
409a1c:	ba b4 7d 40 00       	mov    $0x407db4,%edx
409a21:	8b c3                	mov    %ebx,%eax
409a23:	e8 a8 b7 ff ff       	call   0x4051d0
409a28:	33 d2                	xor    %edx,%edx
409a2a:	8b c3                	mov    %ebx,%eax
409a2c:	e8 9f b7 ff ff       	call   0x4051d0
409a31:	5e                   	pop    %esi
409a32:	5b                   	pop    %ebx
409a33:	c3                   	ret
409a34:	c3                   	ret
409a35:	8d 40 00             	lea    0x0(%eax),%eax
409a38:	33 c9                	xor    %ecx,%ecx
409a3a:	e8 c5 39 00 00       	call   0x40d404
409a3f:	c3                   	ret
409a40:	53                   	push   %ebx
409a41:	56                   	push   %esi
409a42:	8b d8                	mov    %eax,%ebx
409a44:	8b 43 40             	mov    0x40(%ebx),%eax
409a47:	85 c0                	test   %eax,%eax
409a49:	74 1f                	je     0x409a6a
409a4b:	e8 34 b8 ff ff       	call   0x405284
409a50:	8b f0                	mov    %eax,%esi
409a52:	85 f6                	test   %esi,%esi
409a54:	7c 14                	jl     0x409a6a
409a56:	8b 43 40             	mov    0x40(%ebx),%eax
409a59:	8b d6                	mov    %esi,%edx