40fb71:	33 ff                	xor    %edi,%edi
40fb73:	68 00 10 00 00       	push   $0x1000
40fb78:	50                   	push   %eax
40fb79:	57                   	push   %edi
40fb7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb7d:	8b f1                	mov    %ecx,%esi
40fb7f:	ff 15 d8 21 41 00    	call   *0x4121d8
40fb85:	8b 55 fc             	mov    -0x4(%ebp),%edx
40fb88:	8b d8                	mov    %eax,%ebx
40fb8a:	8d 42 ff             	lea    -0x1(%edx),%eax
40fb8d:	03 c6                	add    %esi,%eax
40fb8f:	8a 08                	mov    (%eax),%cl
40fb91:	f6 d1                	not    %cl
40fb93:	88 0c 1f             	mov    %cl,(%edi,%ebx,1)
40fb96:	47                   	inc    %edi
40fb97:	48                   	dec    %eax
40fb98:	3b fa                	cmp    %edx,%edi
40fb9a:	76 f3                	jbe    0x40fb8f
40fb9c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40fb9f:	50                   	push   %eax
40fba0:	6a 40                	push   $0x40
40fba2:	52                   	push   %edx
40fba3:	53                   	push   %ebx
40fba4:	ff 15 70 21 41 00    	call   *0x412170
40fbaa:	5f                   	pop    %edi
40fbab:	5e                   	pop    %esi
40fbac:	8b c3                	mov    %ebx,%eax
40fbae:	5b                   	pop    %ebx
40fbaf:	c9                   	leave
40fbb0:	c3                   	ret
40fbb1:	55                   	push   %ebp
40fbb2:	8b ec                	mov    %esp,%ebp
40fbb4:	51                   	push   %ecx
40fbb5:	53                   	push   %ebx
40fbb6:	56                   	push   %esi
40fbb7:	57                   	push   %edi
40fbb8:	33 db                	xor    %ebx,%ebx
40fbba:	8b fa                	mov    %edx,%edi
40fbbc:	53                   	push   %ebx
40fbbd:	53                   	push   %ebx
40fbbe:	6a 02                	push   $0x2
40fbc0:	53                   	push   %ebx
40fbc1:	53                   	push   %ebx
40fbc2:	68 00 00 00 40       	push   $0x40000000
40fbc7:	51                   	push   %ecx
40fbc8:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40fbcb:	ff 15 94 20 41 00    	call   *0x412094
40fbd1:	8b f0                	mov    %eax,%esi
40fbd3:	83 fe ff             	cmp    $0xffffffff,%esi
40fbd6:	74 17                	je     0x40fbef
40fbd8:	53                   	push   %ebx
40fbd9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fbdc:	50                   	push   %eax
40fbdd:	ff 75 08             	push   0x8(%ebp)
40fbe0:	57                   	push   %edi
40fbe1:	56                   	push   %esi
40fbe2:	ff 15 90 20 41 00    	call   *0x412090
40fbe8:	56                   	push   %esi
40fbe9:	ff 15 00 22 41 00    	call   *0x412200
40fbef:	5f                   	pop    %edi
40fbf0:	5e                   	pop    %esi
40fbf1:	5b                   	pop    %ebx
40fbf2:	c9                   	leave
40fbf3:	c3                   	ret
40fbf4:	56                   	push   %esi
40fbf5:	e8 a5 fe ff ff       	call   0x40fa9f
40fbfa:	8b f0                	mov    %eax,%esi
40fbfc:	85 f6                	test   %esi,%esi
40fbfe:	75 12                	jne    0x40fc12
40fc00:	50                   	push   %eax
40fc01:	68 3c 47 41 00       	push   $0x41473c
40fc06:	68 44 47 41 00       	push   $0x414744
40fc0b:	50                   	push   %eax
40fc0c:	ff 15 84 22 41 00    	call   *0x412284
40fc12:	8b c6                	mov    %esi,%eax
40fc14:	5e                   	pop    %esi
40fc15:	c3                   	ret
40fc16:	55                   	push   %ebp
40fc17:	8b ec                	mov    %esp,%ebp
40fc19:	51                   	push   %ecx
40fc1a:	8b 45 08             	mov    0x8(%ebp),%eax
40fc1d:	53                   	push   %ebx
40fc1e:	8b d9                	mov    %ecx,%ebx
40fc20:	89 55 fc             	mov    %edx,-0x4(%ebp)
40fc23:	83 23 00             	andl   $0x0,(%ebx)
40fc26:	85 c0                	test   %eax,%eax
40fc28:	74 41                	je     0x40fc6b
40fc2a:	56                   	push   %esi
40fc2b:	8d 70 02             	lea    0x2(%eax),%esi
40fc2e:	57                   	push   %edi
40fc2f:	8b ce                	mov    %esi,%ecx
40fc31:	e8 a5 5e ff ff       	call   0x405adb
40fc36:	8b f8                	mov    %eax,%edi
40fc38:	56                   	push   %esi
40fc39:	8b cf                	mov    %edi,%ecx
40fc3b:	e8 79 5e ff ff       	call   0x405ab9
40fc40:	ff 75 08             	push   0x8(%ebp)
40fc43:	8b 55 fc             	mov    -0x4(%ebp),%edx
40fc46:	8b cf                	mov    %edi,%ecx
40fc48:	e8 4b 5e ff ff       	call   0x405a98
40fc4d:	83 c4 08             	add    $0x8,%esp
40fc50:	8d 4d 08             	lea    0x8(%ebp),%ecx
40fc53:	57                   	push   %edi
40fc54:	e8 b9 37 ff ff       	call   0x403412
40fc59:	50                   	push   %eax
40fc5a:	8b cb                	mov    %ebx,%ecx
40fc5c:	e8 03 36 ff ff       	call   0x403264
40fc61:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fc64:	e8 c4 5d ff ff       	call   0x405a2d
40fc69:	5f                   	pop    %edi
40fc6a:	5e                   	pop    %esi
40fc6b:	8b c3                	mov    %ebx,%eax
40fc6d:	5b                   	pop    %ebx
40fc6e:	c9                   	leave
40fc6f:	c3                   	ret
40fc70:	c3                   	ret
40fc71:	55                   	push   %ebp
40fc72:	8b ec                	mov    %esp,%ebp
40fc74:	51                   	push   %ecx
40fc75:	53                   	push   %ebx
40fc76:	56                   	push   %esi
40fc77:	57                   	push   %edi
40fc78:	68 00 00 40 00       	push   $0x400000
40fc7d:	8b fa                	mov    %edx,%edi
40fc7f:	8b f1                	mov    %ecx,%esi
40fc81:	e8 27 14 ff ff       	call   0x4010ad
40fc86:	59                   	pop    %ecx
40fc87:	8b d8                	mov    %eax,%ebx
40fc89:	33 c0                	xor    %eax,%eax
40fc8b:	50                   	push   %eax
40fc8c:	68 80 00 00 00       	push   $0x80
40fc91:	6a 03                	push   $0x3
40fc93:	50                   	push   %eax
40fc94:	50                   	push   %eax
40fc95:	68 00 00 00 80       	push   $0x80000000
40fc9a:	56                   	push   %esi
40fc9b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fc9e:	ff 15 c4 20 41 00    	call   *0x4120c4
40fca4:	8b f0                	mov    %eax,%esi
40fca6:	6a 00                	push   $0x0
40fca8:	56                   	push   %esi
40fca9:	ff 15 d8 20 41 00    	call   *0x4120d8
40fcaf:	6a 00                	push   $0x0
40fcb1:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40fcb4:	89 07                	mov    %eax,(%edi)
40fcb6:	51                   	push   %ecx
40fcb7:	50                   	push   %eax
40fcb8:	53                   	push   %ebx
40fcb9:	56                   	push   %esi
40fcba:	ff 15 a8 20 41 00    	call   *0x4120a8
40fcc0:	56                   	push   %esi
40fcc1:	ff 15 00 22 41 00    	call   *0x412200
40fcc7:	5f                   	pop    %edi
40fcc8:	5e                   	pop    %esi
40fcc9:	8b c3                	mov    %ebx,%eax
40fccb:	5b                   	pop    %ebx
40fccc:	c9                   	leave
40fccd:	c3                   	ret
40fcce:	8b c1                	mov    %ecx,%eax
40fcd0:	c3                   	ret
40fcd1:	55                   	push   %ebp
40fcd2:	8b ec                	mov    %esp,%ebp
40fcd4:	83 ec 64             	sub    $0x64,%esp
40fcd7:	53                   	push   %ebx
40fcd8:	56                   	push   %esi
40fcd9:	57                   	push   %edi
40fcda:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fcdd:	33 db                	xor    %ebx,%ebx
40fcdf:	50                   	push   %eax
40fce0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40fce3:	ff 15 e8 20 41 00    	call   *0x4120e8
40fce9:	50                   	push   %eax
40fcea:	ff 15 20 22 41 00    	call   *0x412220
40fcf0:	85 c0                	test   %eax,%eax
40fcf2:	0f 84 99 00 00 00    	je     0x40fd91
40fcf8:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40fcfb:	0f 84 80 00 00 00    	je     0x40fd81
40fd01:	6a 40                	push   $0x40
40fd03:	68 00 10 00 00       	push   $0x1000
40fd08:	68 ff 00 00 00       	push   $0xff
40fd0d:	53                   	push   %ebx
40fd0e:	ff 15 d8 21 41 00    	call   *0x4121d8
40fd14:	8b f0                	mov    %eax,%esi
40fd16:	68 04 01 00 00       	push   $0x104
40fd1b:	56                   	push   %esi
40fd1c:	ff 15 90 21 41 00    	call   *0x412190
40fd22:	6a 14                	push   $0x14
40fd24:	68 a0 47 41 00       	push   $0x4147a0
40fd29:	56                   	push   %esi
40fd2a:	ff 15 f4 21 41 00    	call   *0x4121f4
40fd30:	03 c6                	add    %esi,%eax
40fd32:	50                   	push   %eax
40fd33:	e8 f4 12 ff ff       	call   0x40102c
40fd38:	83 c4 0c             	add    $0xc,%esp
40fd3b:	8d 45 a0             	lea    -0x60(%ebp),%eax
40fd3e:	6a 44                	push   $0x44
40fd40:	53                   	push   %ebx
40fd41:	50                   	push   %eax
40fd42:	e8 0b 13 ff ff       	call   0x401052
40fd47:	33 c0                	xor    %eax,%eax
40fd49:	8d 7d ec             	lea    -0x14(%ebp),%edi
40fd4c:	ab                   	stos   %eax,%es:(%edi)
40fd4d:	83 c4 0c             	add    $0xc,%esp
40fd50:	ab                   	stos   %eax,%es:(%edi)
40fd51:	ab                   	stos   %eax,%es:(%edi)
40fd52:	ab                   	stos   %eax,%es:(%edi)
40fd53:	8d 45 ec             	lea    -0x14(%ebp),%eax
40fd56:	50                   	push   %eax
40fd57:	8d 45 a0             	lea    -0x60(%ebp),%eax
40fd5a:	50                   	push   %eax
40fd5b:	53                   	push   %ebx
40fd5c:	53                   	push   %ebx
40fd5d:	68 00 00 00 08       	push   $0x8000000
40fd62:	53                   	push   %ebx
40fd63:	53                   	push   %ebx
40fd64:	53                   	push   %ebx
40fd65:	53                   	push   %ebx
40fd66:	56                   	push   %esi
40fd67:	ff 15 68 21 41 00    	call   *0x412168
40fd6d:	85 c0                	test   %eax,%eax
40fd6f:	74 20                	je     0x40fd91
40fd71:	68 e8 03 00 00       	push   $0x3e8
40fd76:	ff 15 e4 21 41 00    	call   *0x4121e4
40fd7c:	8b 55 f4             	mov    -0xc(%ebp),%edx
40fd7f:	eb 0b                	jmp    0x40fd8c
40fd81:	e8 f0 00 00 00       	call   0x40fe76
40fd86:	85 c0                	test   %eax,%eax
40fd88:	74 07                	je     0x40fd91
40fd8a:	8b d0                	mov    %eax,%edx
40fd8c:	e8 05 00 00 00       	call   0x40fd96
40fd91:	5f                   	pop    %edi
40fd92:	5e                   	pop    %esi
40fd93:	5b                   	pop    %ebx
40fd94:	c9                   	leave
40fd95:	c3                   	ret
40fd96:	55                   	push   %ebp
40fd97:	8b ec                	mov    %esp,%ebp
40fd99:	81 ec 0c 01 00 00    	sub    $0x10c,%esp
40fd9f:	53                   	push   %ebx
40fda0:	56                   	push   %esi
40fda1:	57                   	push   %edi
40fda2:	52                   	push   %edx
40fda3:	6a 00                	push   $0x0
40fda5:	68 ff ff 1f 00       	push   $0x1fffff
40fdaa:	ff 15 58 21 41 00    	call   *0x412158
40fdb0:	8b f8                	mov    %eax,%edi
40fdb2:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fdb5:	ff 15 a4 20 41 00    	call   *0x4120a4
40fdbb:	bb ff 00 00 00       	mov    $0xff,%ebx
40fdc0:	89 85 f4 fe ff ff    	mov    %eax,-0x10c(%ebp)
40fdc6:	53                   	push   %ebx
40fdc7:	e8 e1 12 ff ff       	call   0x4010ad
40fdcc:	59                   	pop    %ecx
40fdcd:	53                   	push   %ebx
40fdce:	8b f0                	mov    %eax,%esi
40fdd0:	56                   	push   %esi
40fdd1:	6a 00                	push   $0x0
40fdd3:	ff 15 14 22 41 00    	call   *0x412214
40fdd9:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40fddf:	56                   	push   %esi
40fde0:	50                   	push   %eax
40fde1:	e8 2e 13 ff ff       	call   0x401114
40fde6:	8b 35 98 21 41 00    	mov    0x412198,%esi
40fdec:	59                   	pop    %ecx
40fded:	59                   	pop    %ecx
40fdee:	6a 40                	push   $0x40
40fdf0:	68 00 30 00 00       	push   $0x3000
40fdf5:	68 00 08 00 00       	push   $0x800
40fdfa:	6a 00                	push   $0x0
40fdfc:	57                   	push   %edi
40fdfd:	ff d6                	call   *%esi
40fdff:	6a 00                	push   $0x0
40fe01:	68 00 08 00 00       	push   $0x800
40fe06:	68 50 61 41 00       	push   $0x416150
40fe0b:	8b d8                	mov    %eax,%ebx
40fe0d:	53                   	push   %ebx
40fe0e:	57                   	push   %edi
40fe0f:	8b 3d 88 21 41 00    	mov    0x412188,%edi
40fe15:	ff d7                	call   *%edi
40fe17:	8d 45 f8             	lea    -0x8(%ebp),%eax
40fe1a:	50                   	push   %eax
40fe1b:	6a 40                	push   $0x40
40fe1d:	68 00 08 00 00       	push   $0x800
40fe22:	53                   	push   %ebx
40fe23:	ff 75 fc             	push   -0x4(%ebp)
40fe26:	ff 15 94 21 41 00    	call   *0x412194
40fe2c:	6a 04                	push   $0x4
40fe2e:	68 00 30 00 00       	push   $0x3000
40fe33:	68 03 01 00 00       	push   $0x103
40fe38:	6a 00                	push   $0x0
40fe3a:	ff 75 fc             	push   -0x4(%ebp)
40fe3d:	ff d6                	call   *%esi
40fe3f:	6a 00                	push   $0x0
40fe41:	8b f0                	mov    %eax,%esi
40fe43:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40fe49:	68 03 01 00 00       	push   $0x103
40fe4e:	50                   	push   %eax
40fe4f:	56                   	push   %esi
40fe50:	ff 75 fc             	push   -0x4(%ebp)
40fe53:	ff d7                	call   *%edi
40fe55:	33 c9                	xor    %ecx,%ecx
40fe57:	8d 83 0e 01 00 00    	lea    0x10e(%ebx),%eax
40fe5d:	51                   	push   %ecx
40fe5e:	51                   	push   %ecx
40fe5f:	56                   	push   %esi
40fe60:	50                   	push   %eax
40fe61:	51                   	push   %ecx
40fe62:	51                   	push   %ecx
40fe63:	ff 75 fc             	push   -0x4(%ebp)
40fe66:	ff 15 9c 21 41 00    	call   *0x41219c
40fe6c:	5f                   	pop    %edi
40fe6d:	5e                   	pop    %esi
40fe6e:	a3 9c 67 41 00       	mov    %eax,0x41679c
40fe73:	5b                   	pop    %ebx
40fe74:	c9                   	leave
40fe75:	c3                   	ret
40fe76:	55                   	push   %ebp
40fe77:	8b ec                	mov    %esp,%ebp
40fe79:	81 ec 28 01 00 00    	sub    $0x128,%esp
40fe7f:	56                   	push   %esi
40fe80:	57                   	push   %edi
40fe81:	6a 00                	push   $0x0
40fe83:	6a 02                	push   $0x2
40fe85:	ff 15 5c 21 41 00    	call   *0x41215c
40fe8b:	bf 28 01 00 00       	mov    $0x128,%edi
40fe90:	8b f0                	mov    %eax,%esi
40fe92:	57                   	push   %edi
40fe93:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40fe99:	6a 00                	push   $0x0
40fe9b:	50                   	push   %eax
40fe9c:	e8 b1 11 ff ff       	call   0x401052
40fea1:	83 c4 0c             	add    $0xc,%esp
40fea4:	89 bd d8 fe ff ff    	mov    %edi,-0x128(%ebp)
40feaa:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40feb0:	50                   	push   %eax
40feb1:	56                   	push   %esi
40feb2:	ff 15 84 21 41 00    	call   *0x412184
40feb8:	eb 25                	jmp    0x40fedf
40feba:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40fec0:	68 b4 47 41 00       	push   $0x4147b4
40fec5:	50                   	push   %eax
40fec6:	e8 1b 12 ff ff       	call   0x4010e6
40fecb:	59                   	pop    %ecx
40fecc:	59                   	pop    %ecx
40fecd:	85 c0                	test   %eax,%eax
40fecf:	74 1f                	je     0x40fef0
40fed1:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40fed7:	50                   	push   %eax
40fed8:	56                   	push   %esi
40fed9:	ff 15 8c 21 41 00    	call   *0x41218c