40f8c6:	6a 02                	push   $0x2
40f8c8:	8d 55 c0             	lea    -0x40(%ebp),%edx
40f8cb:	a1 84 75 4a 00       	mov    0x4a7584,%eax
40f8d0:	e8 9f 6d ff ff       	call   0x406674
40f8d5:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40f8d8:	b2 01                	mov    $0x1,%dl
40f8da:	a1 58 83 40 00       	mov    0x408358,%eax
40f8df:	e8 68 cb ff ff       	call   0x40c44c
40f8e4:	e8 a7 48 ff ff       	call   0x404190
40f8e9:	33 c0                	xor    %eax,%eax
40f8eb:	5a                   	pop    %edx
40f8ec:	59                   	pop    %ecx
40f8ed:	59                   	pop    %ecx
40f8ee:	64 89 10             	mov    %edx,%fs:(%eax)
40f8f1:	68 18 f9 40 00       	push   $0x40f918
40f8f6:	8d 45 c0             	lea    -0x40(%ebp),%eax
40f8f9:	ba 02 00 00 00       	mov    $0x2,%edx
40f8fe:	e8 69 4e ff ff       	call   0x40476c
40f903:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f906:	ba 08 00 00 00       	mov    $0x8,%edx
40f90b:	e8 5c 4e ff ff       	call   0x40476c
40f910:	c3                   	ret
40f911:	e9 9a 47 ff ff       	jmp    0x4040b0
40f916:	eb de                	jmp    0x40f8f6
40f918:	5b                   	pop    %ebx
40f919:	8b e5                	mov    %ebp,%esp
40f91b:	5d                   	pop    %ebp
40f91c:	c3                   	ret
40f91d:	8d 40 00             	lea    0x0(%eax),%eax
40f920:	85 c0                	test   %eax,%eax
40f922:	74 05                	je     0x40f929
40f924:	e8 a3 fd ff ff       	call   0x40f6cc
40f929:	c3                   	ret
40f92a:	8b c0                	mov    %eax,%eax
40f92c:	53                   	push   %ebx
40f92d:	85 c0                	test   %eax,%eax
40f92f:	74 2c                	je     0x40f95d
40f931:	8b d8                	mov    %eax,%ebx
40f933:	81 eb 05 00 02 80    	sub    $0x80020005,%ebx
40f939:	74 07                	je     0x40f942
40f93b:	83 eb 05             	sub    $0x5,%ebx
40f93e:	74 0d                	je     0x40f94d
40f940:	eb 16                	jmp    0x40f958
40f942:	8b c2                	mov    %edx,%eax
40f944:	8b d1                	mov    %ecx,%edx
40f946:	e8 a1 fb ff ff       	call   0x40f4ec
40f94b:	eb 10                	jmp    0x40f95d
40f94d:	8b c2                	mov    %edx,%eax
40f94f:	8b d1                	mov    %ecx,%edx
40f951:	e8 86 fc ff ff       	call   0x40f5dc
40f956:	eb 05                	jmp    0x40f95d
40f958:	e8 6f fd ff ff       	call   0x40f6cc
40f95d:	5b                   	pop    %ebx
40f95e:	c3                   	ret
40f95f:	90                   	nop
40f960:	53                   	push   %ebx
40f961:	56                   	push   %esi
40f962:	8b f2                	mov    %edx,%esi
40f964:	8b d8                	mov    %eax,%ebx
40f966:	e8 15 34 ff ff       	call   0x402d80
40f96b:	8b 15 6c 7e 40 00    	mov    0x407e6c,%edx
40f971:	e8 32 41 ff ff       	call   0x403aa8
40f976:	84 c0                	test   %al,%al
40f978:	74 11                	je     0x40f98b
40f97a:	8b ce                	mov    %esi,%ecx
40f97c:	8b d3                	mov    %ebx,%edx
40f97e:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40f983:	e8 a4 ff ff ff       	call   0x40f92c
40f988:	5e                   	pop    %esi
40f989:	5b                   	pop    %ebx
40f98a:	c3                   	ret
40f98b:	e8 f0 33 ff ff       	call   0x402d80
40f990:	8b 15 28 80 40 00    	mov    0x408028,%edx
40f996:	e8 0d 41 ff ff       	call   0x403aa8
40f99b:	84 c0                	test   %al,%al
40f99d:	74 10                	je     0x40f9af
40f99f:	8b ce                	mov    %esi,%ecx
40f9a1:	8b d3                	mov    %ebx,%edx
40f9a3:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40f9a8:	e8 7f ff ff ff       	call   0x40f92c
40f9ad:	eb 32                	jmp    0x40f9e1
40f9af:	e8 cc 33 ff ff       	call   0x402d80
40f9b4:	8b 15 90 81 40 00    	mov    0x408190,%edx
40f9ba:	e8 e9 40 ff ff       	call   0x403aa8
40f9bf:	84 c0                	test   %al,%al
40f9c1:	74 10                	je     0x40f9d3
40f9c3:	8b ce                	mov    %esi,%ecx
40f9c5:	8b d3                	mov    %ebx,%edx
40f9c7:	b8 05 00 02 80       	mov    $0x80020005,%eax
40f9cc:	e8 5b ff ff ff       	call   0x40f92c
40f9d1:	eb 0e                	jmp    0x40f9e1
40f9d3:	e8 e8 33 ff ff       	call   0x402dc0
40f9d8:	8b d0                	mov    %eax,%edx
40f9da:	8b c2                	mov    %edx,%eax
40f9dc:	e8 af 47 ff ff       	call   0x404190
40f9e1:	5e                   	pop    %esi
40f9e2:	5b                   	pop    %ebx
40f9e3:	c3                   	ret
40f9e4:	55                   	push   %ebp
40f9e5:	8b ec                	mov    %esp,%ebp
40f9e7:	6a 00                	push   $0x0
40f9e9:	33 c0                	xor    %eax,%eax
40f9eb:	55                   	push   %ebp
40f9ec:	68 2e fa 40 00       	push   $0x40fa2e
40f9f1:	64 ff 30             	push   %fs:(%eax)
40f9f4:	64 89 20             	mov    %esp,%fs:(%eax)
40f9f7:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f9fa:	a1 90 73 4a 00       	mov    0x4a7390,%eax
40f9ff:	e8 70 6c ff ff       	call   0x406674
40fa04:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fa07:	b2 01                	mov    $0x1,%dl
40fa09:	a1 34 f4 40 00       	mov    0x40f434,%eax
40fa0e:	e8 fd c9 ff ff       	call   0x40c410
40fa13:	e8 78 47 ff ff       	call   0x404190
40fa18:	33 c0                	xor    %eax,%eax
40fa1a:	5a                   	pop    %edx
40fa1b:	59                   	pop    %ecx
40fa1c:	59                   	pop    %ecx
40fa1d:	64 89 10             	mov    %edx,%fs:(%eax)
40fa20:	68 35 fa 40 00       	push   $0x40fa35
40fa25:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fa28:	e8 1b 4d ff ff       	call   0x404748
40fa2d:	c3                   	ret
40fa2e:	e9 7d 46 ff ff       	jmp    0x4040b0
40fa33:	eb f0                	jmp    0x40fa25
40fa35:	59                   	pop    %ecx
40fa36:	5d                   	pop    %ebp
40fa37:	c3                   	ret
40fa38:	53                   	push   %ebx
40fa39:	8b d8                	mov    %eax,%ebx
40fa3b:	8b c3                	mov    %ebx,%eax
40fa3d:	e8 8e 02 00 00       	call   0x40fcd0
40fa42:	66 c7 03 01 00       	movw   $0x1,(%ebx)
40fa47:	5b                   	pop    %ebx
40fa48:	c3                   	ret
40fa49:	8d 40 00             	lea    0x0(%eax),%eax
40fa4c:	55                   	push   %ebp
40fa4d:	8b ec                	mov    %esp,%ebp
40fa4f:	53                   	push   %ebx
40fa50:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fa53:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40fa59:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40fa5d:	03 14 c1             	add    (%ecx,%eax,8),%edx
40fa60:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fa63:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40fa6a:	0f 9f c2             	setg   %dl
40fa6d:	48                   	dec    %eax
40fa6e:	84 d2                	test   %dl,%dl
40fa70:	74 04                	je     0x40fa76
40fa72:	85 c0                	test   %eax,%eax
40fa74:	7d e3                	jge    0x40fa59
40fa76:	8b c2                	mov    %edx,%eax
40fa78:	5b                   	pop    %ebx
40fa79:	5d                   	pop    %ebp
40fa7a:	c3                   	ret
40fa7b:	90                   	nop
40fa7c:	55                   	push   %ebp
40fa7d:	8b ec                	mov    %esp,%ebp
40fa7f:	53                   	push   %ebx
40fa80:	56                   	push   %esi
40fa81:	b2 01                	mov    $0x1,%dl
40fa83:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fa86:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40fa8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fa90:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40fa97:	8b d9                	mov    %ecx,%ebx
40fa99:	8b 75 08             	mov    0x8(%ebp),%esi
40fa9c:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40faa3:	8b 75 08             	mov    0x8(%ebp),%esi
40faa6:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40faad:	7f 22                	jg     0x40fad1
40faaf:	85 c0                	test   %eax,%eax
40fab1:	75 04                	jne    0x40fab7
40fab3:	33 d2                	xor    %edx,%edx
40fab5:	eb 1a                	jmp    0x40fad1
40fab7:	8b 55 08             	mov    0x8(%ebp),%edx
40faba:	8b 55 08             	mov    0x8(%ebp),%edx
40fabd:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40fac4:	8b 55 08             	mov    0x8(%ebp),%edx
40fac7:	52                   	push   %edx
40fac8:	48                   	dec    %eax
40fac9:	e8 ae ff ff ff       	call   0x40fa7c
40face:	59                   	pop    %ecx
40facf:	8b d0                	mov    %eax,%edx
40fad1:	8b c2                	mov    %edx,%eax
40fad3:	5e                   	pop    %esi
40fad4:	5b                   	pop    %ebx
40fad5:	5d                   	pop    %ebp
40fad6:	c3                   	ret
40fad7:	90                   	nop
40fad8:	55                   	push   %ebp
40fad9:	8b ec                	mov    %esp,%ebp
40fadb:	81 c4 e8 fc ff ff    	add    $0xfffffce8,%esp
40fae1:	53                   	push   %ebx
40fae2:	56                   	push   %esi
40fae3:	57                   	push   %edi
40fae4:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40faea:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40faf0:	f6 40 01 20          	testb  $0x20,0x1(%eax)
40faf4:	75 0a                	jne    0x40fb00
40faf6:	b8 57 00 07 80       	mov    $0x80070057,%eax
40fafb:	e8 20 fe ff ff       	call   0x40f920
40fb00:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb06:	0f b7 00             	movzwl (%eax),%eax
40fb09:	8b d0                	mov    %eax,%edx
40fb0b:	66 81 e2 ff 0f       	and    $0xfff,%dx
40fb10:	66 83 fa 0c          	cmp    $0xc,%dx
40fb14:	0f 85 22 01 00 00    	jne    0x40fc3c
40fb1a:	8b 95 fc fc ff ff    	mov    -0x304(%ebp),%edx
40fb20:	f6 c4 40             	test   $0x40,%ah
40fb23:	74 13                	je     0x40fb38
40fb25:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb2b:	8b 40 08             	mov    0x8(%eax),%eax
40fb2e:	8b 00                	mov    (%eax),%eax
40fb30:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40fb36:	eb 0f                	jmp    0x40fb47
40fb38:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb3e:	8b 40 08             	mov    0x8(%eax),%eax
40fb41:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40fb47:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fb4d:	0f b7 00             	movzwl (%eax),%eax
40fb50:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40fb56:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fb5c:	4b                   	dec    %ebx
40fb5d:	85 db                	test   %ebx,%ebx
40fb5f:	7c 6b                	jl     0x40fbcc
40fb61:	43                   	inc    %ebx
40fb62:	33 ff                	xor    %edi,%edi
40fb64:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40fb6a:	8b c6                	mov    %esi,%eax
40fb6c:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40fb72:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fb78:	83 c0 04             	add    $0x4,%eax
40fb7b:	50                   	push   %eax
40fb7c:	8d 47 01             	lea    0x1(%edi),%eax
40fb7f:	50                   	push   %eax
40fb80:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fb86:	50                   	push   %eax
40fb87:	e8 b4 ef ff ff       	call   0x40eb40
40fb8c:	e8 8f fd ff ff       	call   0x40f920
40fb91:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40fb97:	50                   	push   %eax
40fb98:	8d 47 01             	lea    0x1(%edi),%eax
40fb9b:	50                   	push   %eax
40fb9c:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fba2:	50                   	push   %eax
40fba3:	e8 a0 ef ff ff       	call   0x40eb48
40fba8:	e8 73 fd ff ff       	call   0x40f920
40fbad:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fbb3:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40fbb9:	2b 50 04             	sub    0x4(%eax),%edx
40fbbc:	42                   	inc    %edx
40fbbd:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fbc3:	89 10                	mov    %edx,(%eax)
40fbc5:	47                   	inc    %edi
40fbc6:	83 c6 08             	add    $0x8,%esi
40fbc9:	4b                   	dec    %ebx
40fbca:	75 9e                	jne    0x40fb6a
40fbcc:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fbd2:	4b                   	dec    %ebx
40fbd3:	85 db                	test   %ebx,%ebx
40fbd5:	7c 1a                	jl     0x40fbf1
40fbd7:	43                   	inc    %ebx
40fbd8:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40fbde:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40fbe4:	8b 08                	mov    (%eax),%ecx
40fbe6:	89 0a                	mov    %ecx,(%edx)
40fbe8:	83 c2 04             	add    $0x4,%edx
40fbeb:	83 c0 08             	add    $0x8,%eax
40fbee:	4b                   	dec    %ebx
40fbef:	75 f3                	jne    0x40fbe4
40fbf1:	55                   	push   %ebp
40fbf2:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fbf8:	4b                   	dec    %ebx
40fbf9:	8b c3                	mov    %ebx,%eax
40fbfb:	e8 4c fe ff ff       	call   0x40fa4c
40fc00:	59                   	pop    %ecx
40fc01:	84 c0                	test   %al,%al
40fc03:	74 2a                	je     0x40fc2f
40fc05:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40fc0b:	50                   	push   %eax
40fc0c:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40fc12:	50                   	push   %eax
40fc13:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fc19:	50                   	push   %eax
40fc1a:	e8 31 ef ff ff       	call   0x40eb50
40fc1f:	e8 fc fc ff ff       	call   0x40f920
40fc24:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fc2a:	e8 a1 00 00 00       	call   0x40fcd0
40fc2f:	55                   	push   %ebp
40fc30:	8b c3                	mov    %ebx,%eax
40fc32:	e8 45 fe ff ff       	call   0x40fa7c
40fc37:	59                   	pop    %ecx
40fc38:	84 c0                	test   %al,%al
40fc3a:	75 b5                	jne    0x40fbf1
40fc3c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fc42:	50                   	push   %eax
40fc43:	e8 90 ea ff ff       	call   0x40e6d8
40fc48:	e8 d3 fc ff ff       	call   0x40f920
40fc4d:	5f                   	pop    %edi
40fc4e:	5e                   	pop    %esi
40fc4f:	5b                   	pop    %ebx
40fc50:	8b e5                	mov    %ebp,%esp
40fc52:	5d                   	pop    %ebp
40fc53:	c3                   	ret
40fc54:	53                   	push   %ebx
40fc55:	56                   	push   %esi
40fc56:	51                   	push   %ecx
40fc57:	8b d8                	mov    %eax,%ebx
40fc59:	0f b7 33             	movzwl (%ebx),%esi
40fc5c:	66 83 fe 14          	cmp    $0x14,%si
40fc60:	73 0d                	jae    0x40fc6f
40fc62:	53                   	push   %ebx
40fc63:	e8 70 ea ff ff       	call   0x40e6d8
40fc68:	e8 b3 fc ff ff       	call   0x40f920
40fc6d:	eb 5c                	jmp    0x40fccb
40fc6f:	66 81 fe 00 01       	cmp    $0x100,%si
40fc74:	75 0f                	jne    0x40fc85
40fc76:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40fc7b:	8d 43 08             	lea    0x8(%ebx),%eax
40fc7e:	e8 c5 4a ff ff       	call   0x404748
40fc83:	eb 46                	jmp    0x40fccb
40fc85:	66 81 fe 01 01       	cmp    $0x101,%si
40fc8a:	75 0a                	jne    0x40fc96
40fc8c:	8b c3                	mov    %ebx,%eax
40fc8e:	ff 15 98 b2 4a 00    	call   *0x4ab298
40fc94:	eb 35                	jmp    0x40fccb
40fc96:	66 f7 c6 00 20       	test   $0x2000,%si
40fc9b:	74 09                	je     0x40fca6
40fc9d:	8b c3                	mov    %ebx,%eax
40fc9f:	e8 34 fe ff ff       	call   0x40fad8
40fca4:	eb 25                	jmp    0x40fccb
40fca6:	8b d4                	mov    %esp,%edx
40fca8:	8b c6                	mov    %esi,%eax
40fcaa:	e8 81 4c 00 00       	call   0x414930
40fcaf:	84 c0                	test   %al,%al
40fcb1:	74 0c                	je     0x40fcbf
40fcb3:	8b d3                	mov    %ebx,%edx
40fcb5:	8b 04 24             	mov    (%esp),%eax
40fcb8:	8b 08                	mov    (%eax),%ecx
40fcba:	ff 51 24             	call   *0x24(%ecx)
40fcbd:	eb 0c                	jmp    0x40fccb
40fcbf:	53                   	push   %ebx
40fcc0:	e8 13 ea ff ff       	call   0x40e6d8
40fcc5:	53                   	push   %ebx
40fcc6:	e8 05 ea ff ff       	call   0x40e6d0
40fccb:	5a                   	pop    %edx
40fccc:	5e                   	pop    %esi
40fccd:	5b                   	pop    %ebx
40fcce:	c3                   	ret