40d87a:	53                   	push   %ebx
40d87b:	6a 01                	push   $0x1
40d87d:	33 db                	xor    %ebx,%ebx
40d87f:	56                   	push   %esi
40d880:	c6 05 f1 0c 44 00 01 	movb   $0x1,0x440cf1
40d887:	89 1d f4 0c 44 00    	mov    %ebx,0x440cf4
40d88d:	c6 05 f0 0c 44 00 01 	movb   $0x1,0x440cf0
40d894:	ff 15 8c a2 42 00    	call   *0x42a28c
40d89a:	53                   	push   %ebx
40d89b:	6a 02                	push   $0x2
40d89d:	56                   	push   %esi
40d89e:	e8 58 89 ff ff       	call   0x4061fb
40d8a3:	39 1d 14 0d 44 00    	cmp    %ebx,0x440d14
40d8a9:	75 08                	jne    0x40d8b3
40d8ab:	38 1d 04 0d 44 00    	cmp    %bl,0x440d04
40d8b1:	74 08                	je     0x40d8bb
40d8b3:	39 1d f8 0c 44 00    	cmp    %ebx,0x440cf8
40d8b9:	75 0f                	jne    0x40d8ca
40d8bb:	53                   	push   %ebx
40d8bc:	6a 01                	push   $0x1
40d8be:	68 11 01 00 00       	push   $0x111
40d8c3:	56                   	push   %esi
40d8c4:	ff 15 04 a3 42 00    	call   *0x42a304
40d8ca:	5b                   	pop    %ebx
40d8cb:	c3                   	ret
40d8cc:	ff 74 24 04          	push   0x4(%esp)
40d8d0:	56                   	push   %esi
40d8d1:	e8 fd c8 00 00       	call   0x41a1d3
40d8d6:	59                   	pop    %ecx
40d8d7:	59                   	pop    %ecx
40d8d8:	33 c9                	xor    %ecx,%ecx
40d8da:	66 39 0e             	cmp    %cx,(%esi)
40d8dd:	74 27                	je     0x40d906
40d8df:	8b c6                	mov    %esi,%eax
40d8e1:	0f b7 10             	movzwl (%eax),%edx
40d8e4:	66 83 fa 3a          	cmp    $0x3a,%dx
40d8e8:	74 0c                	je     0x40d8f6
40d8ea:	66 83 fa 5c          	cmp    $0x5c,%dx
40d8ee:	74 06                	je     0x40d8f6
40d8f0:	66 83 fa 2f          	cmp    $0x2f,%dx
40d8f4:	75 06                	jne    0x40d8fc
40d8f6:	6a 25                	push   $0x25
40d8f8:	5a                   	pop    %edx
40d8f9:	66 89 10             	mov    %dx,(%eax)
40d8fc:	41                   	inc    %ecx
40d8fd:	8d 04 4e             	lea    (%esi,%ecx,2),%eax
40d900:	66 83 38 00          	cmpw   $0x0,(%eax)
40d904:	75 db                	jne    0x40d8e1
40d906:	c2 04 00             	ret    $0x4
40d909:	55                   	push   %ebp
40d90a:	8b ec                	mov    %esp,%ebp
40d90c:	b8 08 10 00 00       	mov    $0x1008,%eax
40d911:	e8 ba cb 00 00       	call   0x41a4d0
40d916:	53                   	push   %ebx
40d917:	33 db                	xor    %ebx,%ebx
40d919:	38 1d 38 0d 44 00    	cmp    %bl,0x440d38
40d91f:	74 6d                	je     0x40d98e
40d921:	66 39 1d d8 7c 43 00 	cmp    %bx,0x437cd8
40d928:	74 64                	je     0x40d98e
40d92a:	56                   	push   %esi
40d92b:	68 d8 7c 43 00       	push   $0x437cd8
40d930:	8d b5 f8 ef ff ff    	lea    -0x1008(%ebp),%esi
40d936:	e8 91 ff ff ff       	call   0x40d8cc
40d93b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d93e:	50                   	push   %eax
40d93f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d942:	50                   	push   %eax
40d943:	53                   	push   %ebx
40d944:	68 06 00 02 00       	push   $0x20006
40d949:	53                   	push   %ebx
40d94a:	53                   	push   %ebx
40d94b:	53                   	push   %ebx
40d94c:	68 30 a8 42 00       	push   $0x42a830
40d951:	68 01 00 00 80       	push   $0x80000001
40d956:	ff 15 08 a0 42 00    	call   *0x42a008
40d95c:	5e                   	pop    %esi
40d95d:	85 c0                	test   %eax,%eax
40d95f:	75 2d                	jne    0x40d98e
40d961:	ff 75 08             	push   0x8(%ebp)
40d964:	e8 22 c8 00 00       	call   0x41a18b
40d969:	59                   	pop    %ecx
40d96a:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40d96e:	50                   	push   %eax
40d96f:	ff 75 08             	push   0x8(%ebp)
40d972:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40d978:	6a 01                	push   $0x1
40d97a:	53                   	push   %ebx
40d97b:	50                   	push   %eax
40d97c:	ff 75 fc             	push   -0x4(%ebp)
40d97f:	ff 15 0c a0 42 00    	call   *0x42a00c
40d985:	ff 75 fc             	push   -0x4(%ebp)
40d988:	ff 15 10 a0 42 00    	call   *0x42a010
40d98e:	5b                   	pop    %ebx
40d98f:	c9                   	leave
40d990:	c2 04 00             	ret    $0x4
40d993:	55                   	push   %ebp
40d994:	8b ec                	mov    %esp,%ebp
40d996:	b8 0c 20 00 00       	mov    $0x200c,%eax
40d99b:	e8 30 cb 00 00       	call   0x41a4d0
40d9a0:	80 3d 38 0d 44 00 00 	cmpb   $0x0,0x440d38
40d9a7:	0f 84 8d 00 00 00    	je     0x40da3a
40d9ad:	56                   	push   %esi
40d9ae:	ff 75 08             	push   0x8(%ebp)
40d9b1:	8d b5 f4 df ff ff    	lea    -0x200c(%ebp),%esi
40d9b7:	e8 10 ff ff ff       	call   0x40d8cc
40d9bc:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d9bf:	50                   	push   %eax
40d9c0:	6a 01                	push   $0x1
40d9c2:	6a 00                	push   $0x0
40d9c4:	68 30 a8 42 00       	push   $0x42a830
40d9c9:	68 01 00 00 80       	push   $0x80000001
40d9ce:	ff 15 00 a0 42 00    	call   *0x42a000
40d9d4:	5e                   	pop    %esi
40d9d5:	85 c0                	test   %eax,%eax
40d9d7:	75 61                	jne    0x40da3a
40d9d9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d9dc:	50                   	push   %eax
40d9dd:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40d9e3:	50                   	push   %eax
40d9e4:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d9e7:	50                   	push   %eax
40d9e8:	6a 00                	push   $0x0
40d9ea:	8d 85 f4 df ff ff    	lea    -0x200c(%ebp),%eax
40d9f0:	50                   	push   %eax
40d9f1:	ff 75 f8             	push   -0x8(%ebp)
40d9f4:	c7 45 fc 00 10 00 00 	movl   $0x1000,-0x4(%ebp)
40d9fb:	ff 15 04 a0 42 00    	call   *0x42a004
40da01:	85 c0                	test   %eax,%eax
40da03:	75 2c                	jne    0x40da31
40da05:	d1 6d fc             	shrl   $1,-0x4(%ebp)
40da08:	b8 ff 07 00 00       	mov    $0x7ff,%eax
40da0d:	39 45 fc             	cmp    %eax,-0x4(%ebp)
40da10:	73 03                	jae    0x40da15
40da12:	8b 45 fc             	mov    -0x4(%ebp),%eax
40da15:	ff 75 0c             	push   0xc(%ebp)
40da18:	33 c9                	xor    %ecx,%ecx
40da1a:	66 89 8c 45 f4 ef ff 	mov    %cx,-0x100c(%ebp,%eax,2)
40da21:	ff
40da22:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40da28:	50                   	push   %eax
40da29:	ff 75 08             	push   0x8(%ebp)
40da2c:	e8 ee 2e 00 00       	call   0x41091f
40da31:	ff 75 f8             	push   -0x8(%ebp)
40da34:	ff 15 10 a0 42 00    	call   *0x42a010
40da3a:	c9                   	leave
40da3b:	c2 08 00             	ret    $0x8
40da3e:	55                   	push   %ebp
40da3f:	8b ec                	mov    %esp,%ebp
40da41:	b8 1c 10 00 00       	mov    $0x101c,%eax
40da46:	e8 85 ca 00 00       	call   0x41a4d0
40da4b:	e8 de f6 ff ff       	call   0x40d12e
40da50:	84 c0                	test   %al,%al
40da52:	0f 84 d9 00 00 00    	je     0x40db31
40da58:	57                   	push   %edi
40da59:	6a 05                	push   $0x5
40da5b:	ff 75 08             	push   0x8(%ebp)
40da5e:	ff 15 3c a3 42 00    	call   *0x42a33c
40da64:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40da68:	8b f8                	mov    %eax,%edi
40da6a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40da6d:	85 ff                	test   %edi,%edi
40da6f:	0f 84 bb 00 00 00    	je     0x40db30
40da75:	53                   	push   %ebx
40da76:	8b 1d 04 a3 42 00    	mov    0x42a304,%ebx
40da7c:	56                   	push   %esi
40da7d:	81 7d 08 00 02 00 00 	cmpl   $0x200,0x8(%ebp)
40da84:	0f 8d a4 00 00 00    	jge    0x40db2e
40da8a:	68 00 08 00 00       	push   $0x800
40da8f:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
40da95:	50                   	push   %eax
40da96:	57                   	push   %edi
40da97:	ff 15 ec a2 42 00    	call   *0x42a2ec
40da9d:	68 58 a8 42 00       	push   $0x42a858
40daa2:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
40daa8:	50                   	push   %eax
40daa9:	e8 ea 3f 00 00       	call   0x411a98
40daae:	85 c0                	test   %eax,%eax
40dab0:	75 61                	jne    0x40db13
40dab2:	6a f0                	push   $0xfffffff0
40dab4:	57                   	push   %edi
40dab5:	ff 15 40 a3 42 00    	call   *0x42a340
40dabb:	83 e0 1f             	and    $0x1f,%eax
40dabe:	3c 0e                	cmp    $0xe,%al
40dac0:	75 51                	jne    0x40db13
40dac2:	6a 00                	push   $0x0
40dac4:	6a 00                	push   $0x0
40dac6:	68 73 01 00 00       	push   $0x173
40dacb:	57                   	push   %edi
40dacc:	ff d3                	call   *%ebx
40dace:	8b f0                	mov    %eax,%esi
40dad0:	85 f6                	test   %esi,%esi
40dad2:	74 3f                	je     0x40db13
40dad4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40dad7:	50                   	push   %eax
40dad8:	6a 18                	push   $0x18
40dada:	56                   	push   %esi
40dadb:	ff 15 40 a0 42 00    	call   *0x42a040
40dae1:	ff 75 ec             	push   -0x14(%ebp)
40dae4:	e8 02 f6 ff ff       	call   0x40d0eb
40dae9:	50                   	push   %eax
40daea:	ff 75 e8             	push   -0x18(%ebp)
40daed:	e8 b6 f5 ff ff       	call   0x40d0a8
40daf2:	50                   	push   %eax
40daf3:	56                   	push   %esi
40daf4:	e8 9a bd 00 00       	call   0x419893
40daf9:	50                   	push   %eax
40dafa:	6a 00                	push   $0x0
40dafc:	68 72 01 00 00       	push   $0x172
40db01:	57                   	push   %edi
40db02:	ff d3                	call   *%ebx
40db04:	3b 35 d8 8c 43 00    	cmp    0x438cd8,%esi
40db0a:	74 07                	je     0x40db13
40db0c:	56                   	push   %esi
40db0d:	ff 15 44 a0 42 00    	call   *0x42a044
40db13:	6a 02                	push   $0x2
40db15:	57                   	push   %edi
40db16:	ff 15 3c a3 42 00    	call   *0x42a33c
40db1c:	8b f8                	mov    %eax,%edi
40db1e:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40db21:	74 0b                	je     0x40db2e
40db23:	ff 45 08             	incl   0x8(%ebp)
40db26:	85 ff                	test   %edi,%edi
40db28:	0f 85 4f ff ff ff    	jne    0x40da7d
40db2e:	5e                   	pop    %esi
40db2f:	5b                   	pop    %ebx
40db30:	5f                   	pop    %edi
40db31:	c9                   	leave
40db32:	c2 04 00             	ret    $0x4
40db35:	55                   	push   %ebp
40db36:	8b ec                	mov    %esp,%ebp
40db38:	51                   	push   %ecx
40db39:	53                   	push   %ebx
40db3a:	56                   	push   %esi
40db3b:	8b 75 08             	mov    0x8(%ebp),%esi
40db3e:	57                   	push   %edi
40db3f:	85 f6                	test   %esi,%esi
40db41:	0f 84 a5 00 00 00    	je     0x40dbec
40db47:	0f b7 06             	movzwl (%esi),%eax
40db4a:	66 85 c0             	test   %ax,%ax
40db4d:	0f 84 99 00 00 00    	je     0x40dbec
40db53:	8b 7d 0c             	mov    0xc(%ebp),%edi
40db56:	89 75 fc             	mov    %esi,-0x4(%ebp)
40db59:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
40db5d:	6a 22                	push   $0x22
40db5f:	5a                   	pop    %edx
40db60:	66 3b c2             	cmp    %dx,%ax
40db63:	75 4a                	jne    0x40dbaf
40db65:	8d 4e 02             	lea    0x2(%esi),%ecx
40db68:	66 39 11             	cmp    %dx,(%ecx)
40db6b:	75 21                	jne    0x40db8e
40db6d:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
40db71:	75 14                	jne    0x40db87
40db73:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40db76:	75 0f                	jne    0x40db87
40db78:	0f b7 46 04          	movzwl 0x4(%esi),%eax
40db7c:	66 83 f8 2c          	cmp    $0x2c,%ax
40db80:	74 0c                	je     0x40db8e
40db82:	66 85 c0             	test   %ax,%ax
40db85:	74 07                	je     0x40db8e
40db87:	8b f1                	mov    %ecx,%esi
40db89:	66 89 17             	mov    %dx,(%edi)
40db8c:	eb 33                	jmp    0x40dbc1
40db8e:	8a 5d 0b             	mov    0xb(%ebp),%bl
40db91:	84 db                	test   %bl,%bl
40db93:	74 06                	je     0x40db9b
40db95:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
40db99:	eb 0f                	jmp    0x40dbaa
40db9b:	52                   	push   %edx
40db9c:	51                   	push   %ecx
40db9d:	e8 a7 e8 00 00       	call   0x41c449
40dba2:	59                   	pop    %ecx
40dba3:	85 c0                	test   %eax,%eax
40dba5:	59                   	pop    %ecx
40dba6:	0f 95 45 0b          	setne  0xb(%ebp)
40dbaa:	3a 5d 0b             	cmp    0xb(%ebp),%bl
40dbad:	75 14                	jne    0x40dbc3
40dbaf:	0f b7 06             	movzwl (%esi),%eax
40dbb2:	66 83 f8 2c          	cmp    $0x2c,%ax
40dbb6:	75 06                	jne    0x40dbbe
40dbb8:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
40dbbc:	74 16                	je     0x40dbd4
40dbbe:	66 89 07             	mov    %ax,(%edi)
40dbc1:	47                   	inc    %edi
40dbc2:	47                   	inc    %edi
40dbc3:	46                   	inc    %esi
40dbc4:	46                   	inc    %esi
40dbc5:	0f b7 06             	movzwl (%esi),%eax
40dbc8:	66 85 c0             	test   %ax,%ax
40dbcb:	75 90                	jne    0x40db5d
40dbcd:	33 c0                	xor    %eax,%eax
40dbcf:	66 89 07             	mov    %ax,(%edi)
40dbd2:	eb 14                	jmp    0x40dbe8
40dbd4:	33 c0                	xor    %eax,%eax
40dbd6:	66 89 07             	mov    %ax,(%edi)
40dbd9:	46                   	inc    %esi
40dbda:	46                   	inc    %esi
40dbdb:	0f b7 06             	movzwl (%esi),%eax
40dbde:	50                   	push   %eax
40dbdf:	e8 1e 2d 00 00       	call   0x410902
40dbe4:	84 c0                	test   %al,%al
40dbe6:	75 f1                	jne    0x40dbd9
40dbe8:	8b c6                	mov    %esi,%eax
40dbea:	eb 08                	jmp    0x40dbf4
40dbec:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40dbef:	33 c0                	xor    %eax,%eax
40dbf1:	66 89 01             	mov    %ax,(%ecx)
40dbf4:	5f                   	pop    %edi
40dbf5:	5e                   	pop    %esi
40dbf6:	5b                   	pop    %ebx
40dbf7:	c9                   	leave
40dbf8:	c2 08 00             	ret    $0x8
40dbfb:	53                   	push   %ebx
40dbfc:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40dc00:	6a 20                	push   $0x20
40dc02:	53                   	push   %ebx
40dc03:	e8 41 e8 00 00       	call   0x41c449
40dc08:	59                   	pop    %ecx
40dc09:	59                   	pop    %ecx
40dc0a:	85 c0                	test   %eax,%eax
40dc0c:	74 68                	je     0x40dc76
40dc0e:	66 83 3b 22          	cmpw   $0x22,(%ebx)
40dc12:	75 0c                	jne    0x40dc20
40dc14:	53                   	push   %ebx
40dc15:	e8 82 c3 ff ff       	call   0x409f9c
40dc1a:	66 83 38 22          	cmpw   $0x22,(%eax)
40dc1e:	74 56                	je     0x40dc76
40dc20:	56                   	push   %esi
40dc21:	57                   	push   %edi
40dc22:	53                   	push   %ebx
40dc23:	e8 63 c5 00 00       	call   0x41a18b
40dc28:	8b f8                	mov    %eax,%edi
40dc2a:	33 c9                	xor    %ecx,%ecx
40dc2c:	6a 02                	push   $0x2
40dc2e:	5a                   	pop    %edx
40dc2f:	8d 47 03             	lea    0x3(%edi),%eax
40dc32:	f7 e2                	mul    %edx
40dc34:	0f 90 c1             	seto   %cl
40dc37:	f7 d9                	neg    %ecx
40dc39:	0b c8                	or     %eax,%ecx
40dc3b:	51                   	push   %ecx
40dc3c:	e8 84 be 00 00       	call   0x419ac5
40dc41:	8b f0                	mov    %eax,%esi
40dc43:	8d 46 02             	lea    0x2(%esi),%eax
40dc46:	53                   	push   %ebx
40dc47:	50                   	push   %eax
40dc48:	e8 86 c5 00 00       	call   0x41a1d3
40dc4d:	83 c4 10             	add    $0x10,%esp
40dc50:	6a 22                	push   $0x22
40dc52:	58                   	pop    %eax
40dc53:	ff 74 24 14          	push   0x14(%esp)