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
40fedf:	85 c0                	test   %eax,%eax
40fee1:	75 d7                	jne    0x40feba
40fee3:	56                   	push   %esi
40fee4:	ff 15 00 22 41 00    	call   *0x412200
40feea:	33 c0                	xor    %eax,%eax
40feec:	5f                   	pop    %edi
40feed:	5e                   	pop    %esi
40feee:	c9                   	leave
40feef:	c3                   	ret
40fef0:	8b 85 e0 fe ff ff    	mov    -0x120(%ebp),%eax
40fef6:	eb f4                	jmp    0x40feec
40fef8:	55                   	push   %ebp
40fef9:	8b ec                	mov    %esp,%ebp
40fefb:	83 e4 f8             	and    $0xfffffff8,%esp
40fefe:	83 ec 44             	sub    $0x44,%esp
40ff01:	8b 55 24             	mov    0x24(%ebp),%edx
40ff04:	33 c0                	xor    %eax,%eax
40ff06:	53                   	push   %ebx
40ff07:	40                   	inc    %eax
40ff08:	c7 44 24 20 28 00 00 	movl   $0x28,0x20(%esp)
40ff0f:	00
40ff10:	56                   	push   %esi
40ff11:	8b 75 28             	mov    0x28(%ebp),%esi
40ff14:	8b d9                	mov    %ecx,%ebx
40ff16:	57                   	push   %edi
40ff17:	66 89 44 24 34       	mov    %ax,0x34(%esp)
40ff1c:	33 c9                	xor    %ecx,%ecx
40ff1e:	6a 18                	push   $0x18
40ff20:	58                   	pop    %eax
40ff21:	66 89 44 24 36       	mov    %ax,0x36(%esp)
40ff26:	8b c6                	mov    %esi,%eax
40ff28:	0f af c2             	imul   %edx,%eax
40ff2b:	6a 0e                	push   $0xe
40ff2d:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40ff31:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40ff35:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
40ff39:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40ff3d:	6b c0 03             	imul   $0x3,%eax,%eax
40ff40:	89 54 24 30          	mov    %edx,0x30(%esp)
40ff44:	89 74 24 34          	mov    %esi,0x34(%esp)
40ff48:	c7 44 24 26 36 00 00 	movl   $0x36,0x26(%esp)
40ff4f:	00
40ff50:	89 44 24 40          	mov    %eax,0x40(%esp)
40ff54:	8d 42 01             	lea    0x1(%edx),%eax
40ff57:	6b f8 03             	imul   $0x3,%eax,%edi
40ff5a:	b8 42 4d 00 00       	mov    $0x4d42,%eax
40ff5f:	66 89 44 24 1c       	mov    %ax,0x1c(%esp)
40ff64:	83 e7 fc             	and    $0xfffffffc,%edi
40ff67:	0f af fe             	imul   %esi,%edi
40ff6a:	8d 47 36             	lea    0x36(%edi),%eax
40ff6d:	89 44 24 1e          	mov    %eax,0x1e(%esp)
40ff71:	33 c0                	xor    %eax,%eax
40ff73:	89 44 24 22          	mov    %eax,0x22(%esp)
40ff77:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40ff7b:	50                   	push   %eax
40ff7c:	e8 40 2e ff ff       	call   0x402dc1
40ff81:	6a 28                	push   $0x28
40ff83:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40ff87:	50                   	push   %eax
40ff88:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40ff8c:	e8 30 2e ff ff       	call   0x402dc1
40ff91:	57                   	push   %edi
40ff92:	ff 75 08             	push   0x8(%ebp)
40ff95:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40ff99:	e8 23 2e ff ff       	call   0x402dc1
40ff9e:	8b 4b 04             	mov    0x4(%ebx),%ecx
40ffa1:	8d 44 24 10          	lea    0x10(%esp),%eax
40ffa5:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40ffa9:	8d 44 24 18          	lea    0x18(%esp),%eax
40ffad:	50                   	push   %eax
40ffae:	c7 44 24 1c e4 27 41 	movl   $0x4127e4,0x1c(%esp)
40ffb5:	00
40ffb6:	e8 98 4b ff ff       	call   0x404b53
40ffbb:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40ffbf:	e8 a2 2e ff ff       	call   0x402e66
40ffc4:	8d 4d 14             	lea    0x14(%ebp),%ecx
40ffc7:	e8 55 0d 00 00       	call   0x410d21
40ffcc:	5f                   	pop    %edi
40ffcd:	5e                   	pop    %esi
40ffce:	5b                   	pop    %ebx
40ffcf:	8b e5                	mov    %ebp,%esp
40ffd1:	5d                   	pop    %ebp
40ffd2:	c2 28 00             	ret    $0x28
40ffd5:	56                   	push   %esi
40ffd6:	8b f1                	mov    %ecx,%esi
40ffd8:	51                   	push   %ecx
40ffd9:	8b 4e 08             	mov    0x8(%esi),%ecx
40ffdc:	c7 06 c4 47 41 00    	movl   $0x4147c4,(%esi)
40ffe2:	e8 68 0a 00 00       	call   0x410a4f
40ffe7:	8b 4e 08             	mov    0x8(%esi),%ecx
40ffea:	85 c9                	test   %ecx,%ecx
40ffec:	74 05                	je     0x40fff3
40ffee:	e8 be 09 00 00       	call   0x4109b1
40fff3:	8d 4e 10             	lea    0x10(%esi),%ecx
40fff6:	5e                   	pop    %esi
40fff7:	e9 25 e2 ff ff       	jmp    0x40e221
40fffc:	55                   	push   %ebp
40fffd:	8b ec                	mov    %esp,%ebp
40ffff:	8b 45 08             	mov    0x8(%ebp),%eax
410002:	83 ec 38             	sub    $0x38,%esp
410005:	83 60 08 00          	andl   $0x0,0x8(%eax)
410009:	53                   	push   %ebx
41000a:	56                   	push   %esi
41000b:	57                   	push   %edi
41000c:	6a 05                	push   $0x5
41000e:	59                   	pop    %ecx
41000f:	89 48 0c             	mov    %ecx,0xc(%eax)
410012:	89 48 04             	mov    %ecx,0x4(%eax)
410015:	8b c8                	mov    %eax,%ecx
410017:	e8 b8 14 ff ff       	call   0x4014d4
41001c:	a1 6c 6d 41 00       	mov    0x416d6c,%eax
410021:	85 c0                	test   %eax,%eax
410023:	75 1d                	jne    0x410042
410025:	6a 38                	push   $0x38
410027:	59                   	pop    %ecx
410028:	e8 ae 5a ff ff       	call   0x405adb
41002d:	85 c0                	test   %eax,%eax
41002f:	74 0a                	je     0x41003b
410031:	51                   	push   %ecx
410032:	8b c8                	mov    %eax,%ecx
410034:	e8 59 0c 00 00       	call   0x410c92
410039:	eb 02                	jmp    0x41003d
41003b:	33 c0                	xor    %eax,%eax
41003d:	a3 6c 6d 41 00       	mov    %eax,0x416d6c
410042:	8d 4d c8             	lea    -0x38(%ebp),%ecx
410045:	51                   	push   %ecx
410046:	8b c8                	mov    %eax,%ecx
410048:	e8 b0 09 00 00       	call   0x4109fd
41004d:	33 f6                	xor    %esi,%esi
41004f:	89 75 f0             	mov    %esi,-0x10(%ebp)
410052:	39 75 d0             	cmp    %esi,-0x30(%ebp)
410055:	0f 86 c0 00 00 00    	jbe    0x41011b
41005b:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
41005f:	3b 75 d0             	cmp    -0x30(%ebp),%esi
410062:	0f 92 c3             	setb   %bl
410065:	8a cb                	mov    %bl,%cl
410067:	88 5d fb             	mov    %bl,-0x5(%ebp)
41006a:	e8 bc 57 ff ff       	call   0x40582b
41006f:	8b 7d c8             	mov    -0x38(%ebp),%edi
410072:	8d 4d f4             	lea    -0xc(%ebp),%ecx
410075:	51                   	push   %ecx
410076:	8d 4d ec             	lea    -0x14(%ebp),%ecx
410079:	8b 04 b7             	mov    (%edi,%esi,4),%eax
41007c:	ff 30                	push   (%eax)
41007e:	e8 69 31 ff ff       	call   0x4031ec
410083:	8b c8                	mov    %eax,%ecx
410085:	e8 40 2e ff ff       	call   0x402eca
41008a:	50                   	push   %eax
41008b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41008e:	e8 d1 31 ff ff       	call   0x403264
410093:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410096:	e8 92 59 ff ff       	call   0x405a2d
41009b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41009e:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4100a2:	e8 86 59 ff ff       	call   0x405a2d
4100a7:	8a cb                	mov    %bl,%cl
4100a9:	e8 7d 57 ff ff       	call   0x40582b
4100ae:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100b1:	8a cb                	mov    %bl,%cl
4100b3:	8b 40 08             	mov    0x8(%eax),%eax
4100b6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4100b9:	89 45 dc             	mov    %eax,-0x24(%ebp)
4100bc:	e8 6a 57 ff ff       	call   0x40582b
4100c1:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100c4:	8a 4d fb             	mov    -0x5(%ebp),%cl
4100c7:	8b 58 10             	mov    0x10(%eax),%ebx
4100ca:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4100cd:	e8 59 57 ff ff       	call   0x40582b
4100d2:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100d5:	83 ec 10             	sub    $0x10,%esp
4100d8:	8b f4                	mov    %esp,%esi
4100da:	8b ce                	mov    %esi,%ecx
4100dc:	8b 78 14             	mov    0x14(%eax),%edi
4100df:	8d 45 d8             	lea    -0x28(%ebp),%eax
4100e2:	50                   	push   %eax