40df81:	56                   	push   %esi
40df82:	50                   	push   %eax
40df83:	ff d7                	call   *%edi
40df85:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40df88:	ff 15 a8 11 40 00    	call   *0x4011a8
40df8e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40df91:	ff 15 ac 11 40 00    	call   *0x4011ac
40df97:	b8 0a 00 00 00       	mov    $0xa,%eax
40df9c:	8d 55 bc             	lea    -0x44(%ebp),%edx
40df9f:	52                   	push   %edx
40dfa0:	89 45 bc             	mov    %eax,-0x44(%ebp)
40dfa3:	89 45 cc             	mov    %eax,-0x34(%ebp)
40dfa6:	8d 45 cc             	lea    -0x34(%ebp),%eax
40dfa9:	50                   	push   %eax
40dfaa:	68 00 00 f0 3f       	push   $0x3ff00000
40dfaf:	53                   	push   %ebx
40dfb0:	68 00 00 f0 3f       	push   $0x3ff00000
40dfb5:	53                   	push   %ebx
40dfb6:	68 00 00 f0 3f       	push   $0x3ff00000
40dfbb:	53                   	push   %ebx
40dfbc:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40dfc1:	68 00 00 f0 3f       	push   $0x3ff00000
40dfc6:	53                   	push   %ebx
40dfc7:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40dfca:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40dfcd:	ff 15 dc 10 40 00    	call   *0x4010dc
40dfd3:	ff 15 9c 10 40 00    	call   *0x40109c
40dfd9:	dc 1d 10 12 40 00    	fcompl 0x401210
40dfdf:	df e0                	fnstsw %ax
40dfe1:	f6 c4 40             	test   $0x40,%ah
40dfe4:	75 07                	jne    0x40dfed
40dfe6:	be 01 00 00 00       	mov    $0x1,%esi
40dfeb:	eb 02                	jmp    0x40dfef
40dfed:	33 f6                	xor    %esi,%esi
40dfef:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40dff2:	51                   	push   %ecx
40dff3:	8d 55 cc             	lea    -0x34(%ebp),%edx
40dff6:	52                   	push   %edx
40dff7:	6a 02                	push   $0x2
40dff9:	ff 15 28 10 40 00    	call   *0x401028
40dfff:	f7 de                	neg    %esi
40e001:	83 c4 0c             	add    $0xc,%esp
40e004:	66 85 f6             	test   %si,%si
40e007:	74 75                	je     0x40e07e
40e009:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40e00f:	75 10                	jne    0x40e021
40e011:	68 38 03 41 00       	push   $0x410338
40e016:	68 c4 7c 40 00       	push   $0x407cc4
40e01b:	ff 15 28 11 40 00    	call   *0x401128
40e021:	8b 35 38 03 41 00    	mov    0x410338,%esi
40e027:	8b 06                	mov    (%esi),%eax
40e029:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e02c:	51                   	push   %ecx
40e02d:	56                   	push   %esi
40e02e:	ff 50 4c             	call   *0x4c(%eax)
40e031:	db e2                	fnclex
40e033:	3b c3                	cmp    %ebx,%eax
40e035:	7d 0b                	jge    0x40e042
40e037:	6a 4c                	push   $0x4c
40e039:	68 b4 7c 40 00       	push   $0x407cb4
40e03e:	56                   	push   %esi
40e03f:	50                   	push   %eax
40e040:	ff d7                	call   *%edi
40e042:	8b 45 dc             	mov    -0x24(%ebp),%eax
40e045:	8b 10                	mov    (%eax),%edx
40e047:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e04a:	51                   	push   %ecx
40e04b:	68 b8 84 40 00       	push   $0x4084b8
40e050:	68 90 84 40 00       	push   $0x408490
40e055:	50                   	push   %eax
40e056:	8b f0                	mov    %eax,%esi
40e058:	ff 52 24             	call   *0x24(%edx)
40e05b:	db e2                	fnclex
40e05d:	3b c3                	cmp    %ebx,%eax
40e05f:	7d 0b                	jge    0x40e06c
40e061:	6a 24                	push   $0x24
40e063:	68 3c 7e 40 00       	push   $0x407e3c
40e068:	56                   	push   %esi
40e069:	50                   	push   %eax
40e06a:	ff d7                	call   *%edi
40e06c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e06f:	ff 15 a8 11 40 00    	call   *0x4011a8
40e075:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e078:	ff 15 ac 11 40 00    	call   *0x4011ac
40e07e:	b8 0a 00 00 00       	mov    $0xa,%eax
40e083:	8d 55 bc             	lea    -0x44(%ebp),%edx
40e086:	52                   	push   %edx
40e087:	89 45 bc             	mov    %eax,-0x44(%ebp)
40e08a:	89 45 cc             	mov    %eax,-0x34(%ebp)
40e08d:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e090:	50                   	push   %eax
40e091:	68 00 00 f0 3f       	push   $0x3ff00000
40e096:	53                   	push   %ebx
40e097:	68 00 00 f0 3f       	push   $0x3ff00000
40e09c:	53                   	push   %ebx
40e09d:	68 00 00 f0 3f       	push   $0x3ff00000
40e0a2:	53                   	push   %ebx
40e0a3:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40e0a8:	68 00 00 f0 3f       	push   $0x3ff00000
40e0ad:	53                   	push   %ebx
40e0ae:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40e0b1:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40e0b4:	ff 15 dc 10 40 00    	call   *0x4010dc
40e0ba:	ff 15 9c 10 40 00    	call   *0x40109c
40e0c0:	dc 1d 10 12 40 00    	fcompl 0x401210
40e0c6:	df e0                	fnstsw %ax
40e0c8:	f6 c4 40             	test   $0x40,%ah
40e0cb:	75 07                	jne    0x40e0d4
40e0cd:	b8 01 00 00 00       	mov    $0x1,%eax
40e0d2:	eb 02                	jmp    0x40e0d6
40e0d4:	33 c0                	xor    %eax,%eax
40e0d6:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40e0d9:	51                   	push   %ecx
40e0da:	8d 55 cc             	lea    -0x34(%ebp),%edx
40e0dd:	52                   	push   %edx
40e0de:	f7 d8                	neg    %eax
40e0e0:	6a 02                	push   $0x2
40e0e2:	66 8b f0             	mov    %ax,%si
40e0e5:	ff 15 28 10 40 00    	call   *0x401028
40e0eb:	83 c4 0c             	add    $0xc,%esp
40e0ee:	66 3b f3             	cmp    %bx,%si
40e0f1:	74 75                	je     0x40e168
40e0f3:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40e0f9:	75 10                	jne    0x40e10b
40e0fb:	68 38 03 41 00       	push   $0x410338
40e100:	68 c4 7c 40 00       	push   $0x407cc4
40e105:	ff 15 28 11 40 00    	call   *0x401128
40e10b:	8b 35 38 03 41 00    	mov    0x410338,%esi
40e111:	8b 06                	mov    (%esi),%eax
40e113:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e116:	51                   	push   %ecx
40e117:	56                   	push   %esi
40e118:	ff 50 4c             	call   *0x4c(%eax)
40e11b:	db e2                	fnclex
40e11d:	3b c3                	cmp    %ebx,%eax
40e11f:	7d 0b                	jge    0x40e12c
40e121:	6a 4c                	push   $0x4c
40e123:	68 b4 7c 40 00       	push   $0x407cb4
40e128:	56                   	push   %esi
40e129:	50                   	push   %eax
40e12a:	ff d7                	call   *%edi
40e12c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40e12f:	8b 10                	mov    (%eax),%edx
40e131:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e134:	51                   	push   %ecx
40e135:	68 f0 84 40 00       	push   $0x4084f0
40e13a:	68 d4 84 40 00       	push   $0x4084d4
40e13f:	50                   	push   %eax
40e140:	8b f0                	mov    %eax,%esi
40e142:	ff 52 24             	call   *0x24(%edx)
40e145:	db e2                	fnclex
40e147:	3b c3                	cmp    %ebx,%eax
40e149:	7d 0b                	jge    0x40e156
40e14b:	6a 24                	push   $0x24
40e14d:	68 3c 7e 40 00       	push   $0x407e3c
40e152:	56                   	push   %esi
40e153:	50                   	push   %eax
40e154:	ff d7                	call   *%edi
40e156:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e159:	ff 15 a8 11 40 00    	call   *0x4011a8
40e15f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e162:	ff 15 ac 11 40 00    	call   *0x4011ac
40e168:	9b                   	fwait
40e169:	68 a0 e1 40 00       	push   $0x40e1a0
40e16e:	eb 26                	jmp    0x40e196
40e170:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e173:	ff 15 a8 11 40 00    	call   *0x4011a8
40e179:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e17c:	ff 15 ac 11 40 00    	call   *0x4011ac
40e182:	8d 55 bc             	lea    -0x44(%ebp),%edx
40e185:	52                   	push   %edx
40e186:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e189:	50                   	push   %eax
40e18a:	6a 02                	push   $0x2
40e18c:	ff 15 28 10 40 00    	call   *0x401028
40e192:	83 c4 0c             	add    $0xc,%esp
40e195:	c3                   	ret
40e196:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40e199:	ff 15 a8 11 40 00    	call   *0x4011a8
40e19f:	c3                   	ret
40e1a0:	8b 45 08             	mov    0x8(%ebp),%eax
40e1a3:	8b 08                	mov    (%eax),%ecx
40e1a5:	50                   	push   %eax
40e1a6:	ff 51 08             	call   *0x8(%ecx)
40e1a9:	66 8b 45 e8          	mov    -0x18(%ebp),%ax
40e1ad:	8b 55 20             	mov    0x20(%ebp),%edx
40e1b0:	66 89 02             	mov    %ax,(%edx)
40e1b3:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e1b6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e1b9:	5f                   	pop    %edi
40e1ba:	5e                   	pop    %esi
40e1bb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e1c2:	5b                   	pop    %ebx
40e1c3:	8b e5                	mov    %ebp,%esp
40e1c5:	5d                   	pop    %ebp
40e1c6:	c2 1c 00             	ret    $0x1c
40e1c9:	90                   	nop
40e1ca:	90                   	nop
40e1cb:	90                   	nop
40e1cc:	90                   	nop
40e1cd:	90                   	nop
40e1ce:	90                   	nop
40e1cf:	90                   	nop
40e1d0:	55                   	push   %ebp
40e1d1:	8b ec                	mov    %esp,%ebp
40e1d3:	83 ec 08             	sub    $0x8,%esp
40e1d6:	68 c6 12 40 00       	push   $0x4012c6
40e1db:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e1e1:	50                   	push   %eax
40e1e2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40e1e9:	81 ec 28 01 00 00    	sub    $0x128,%esp
40e1ef:	53                   	push   %ebx
40e1f0:	56                   	push   %esi
40e1f1:	57                   	push   %edi
40e1f2:	89 65 f8             	mov    %esp,-0x8(%ebp)
40e1f5:	c7 45 fc 90 12 40 00 	movl   $0x401290,-0x4(%ebp)
40e1fc:	33 f6                	xor    %esi,%esi
40e1fe:	68 04 85 40 00       	push   $0x408504
40e203:	68 14 85 40 00       	push   $0x408514
40e208:	89 75 e0             	mov    %esi,-0x20(%ebp)
40e20b:	89 75 d0             	mov    %esi,-0x30(%ebp)
40e20e:	89 75 c0             	mov    %esi,-0x40(%ebp)
40e211:	89 75 bc             	mov    %esi,-0x44(%ebp)
40e214:	89 75 ac             	mov    %esi,-0x54(%ebp)
40e217:	89 75 9c             	mov    %esi,-0x64(%ebp)
40e21a:	89 75 8c             	mov    %esi,-0x74(%ebp)
40e21d:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
40e223:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
40e229:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
40e22f:	89 b5 4c ff ff ff    	mov    %esi,-0xb4(%ebp)
40e235:	89 b5 48 ff ff ff    	mov    %esi,-0xb8(%ebp)
40e23b:	89 b5 44 ff ff ff    	mov    %esi,-0xbc(%ebp)
40e241:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
40e247:	89 b5 24 ff ff ff    	mov    %esi,-0xdc(%ebp)
40e24d:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
40e253:	89 b5 04 ff ff ff    	mov    %esi,-0xfc(%ebp)
40e259:	ff 15 3c 10 40 00    	call   *0x40103c
40e25f:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e265:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40e26b:	50                   	push   %eax
40e26c:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e272:	bb 08 00 00 00       	mov    $0x8,%ebx
40e277:	51                   	push   %ecx
40e278:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e27e:	ff 15 94 11 40 00    	call   *0x401194
40e284:	8d 95 24 ff ff ff    	lea    -0xdc(%ebp),%edx
40e28a:	52                   	push   %edx
40e28b:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
40e291:	50                   	push   %eax
40e292:	c7 85 0c ff ff ff 03 	movl   $0x3,-0xf4(%ebp)
40e299:	00 00 00
40e29c:	c7 85 04 ff ff ff 02 	movl   $0x8002,-0xfc(%ebp)
40e2a3:	80 00 00
40e2a6:	ff 15 64 11 40 00    	call   *0x401164
40e2ac:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e2b2:	51                   	push   %ecx
40e2b3:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e2b9:	52                   	push   %edx
40e2ba:	6a 02                	push   $0x2
40e2bc:	66 8b f8             	mov    %ax,%di
40e2bf:	ff 15 28 10 40 00    	call   *0x401028
40e2c5:	83 c4 0c             	add    $0xc,%esp
40e2c8:	66 3b fe             	cmp    %si,%di
40e2cb:	0f 84 de 00 00 00    	je     0x40e3af
40e2d1:	39 35 38 03 41 00    	cmp    %esi,0x410338
40e2d7:	75 10                	jne    0x40e2e9
40e2d9:	68 38 03 41 00       	push   $0x410338
40e2de:	68 c4 7c 40 00       	push   $0x407cc4
40e2e3:	ff 15 28 11 40 00    	call   *0x401128
40e2e9:	8b 3d 38 03 41 00    	mov    0x410338,%edi
40e2ef:	8b 07                	mov    (%edi),%eax
40e2f1:	8d 8d 44 ff ff ff    	lea    -0xbc(%ebp),%ecx
40e2f7:	51                   	push   %ecx
40e2f8:	57                   	push   %edi
40e2f9:	ff 50 1c             	call   *0x1c(%eax)
40e2fc:	db e2                	fnclex
40e2fe:	3b c6                	cmp    %esi,%eax
40e300:	7d 0f                	jge    0x40e311
40e302:	6a 1c                	push   $0x1c
40e304:	68 b4 7c 40 00       	push   $0x407cb4
40e309:	57                   	push   %edi
40e30a:	50                   	push   %eax
40e30b:	ff 15 48 10 40 00    	call   *0x401048
40e311:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
40e317:	8d bd 48 ff ff ff    	lea    -0xb8(%ebp),%edi
40e31d:	57                   	push   %edi
40e31e:	83 ec 10             	sub    $0x10,%esp
40e321:	b9 0a 00 00 00       	mov    $0xa,%ecx
40e326:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40e32c:	8b fc                	mov    %esp,%edi
40e32e:	89 0f                	mov    %ecx,(%edi)
40e330:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40e336:	89 4f 04             	mov    %ecx,0x4(%edi)
40e339:	c7 85 0c ff ff ff 04 	movl   $0x80020004,-0xf4(%ebp)
40e340:	00 02 80
40e343:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
40e349:	8b 10                	mov    (%eax),%edx
40e34b:	89 4f 08             	mov    %ecx,0x8(%edi)
40e34e:	8b 8d 10 ff ff ff    	mov    -0xf0(%ebp),%ecx
40e354:	50                   	push   %eax
40e355:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
40e35b:	89 4f 0c             	mov    %ecx,0xc(%edi)
40e35e:	ff 52 5c             	call   *0x5c(%edx)
40e361:	db e2                	fnclex
40e363:	3b c6                	cmp    %esi,%eax
40e365:	7d 15                	jge    0x40e37c
40e367:	8b 95 f8 fe ff ff    	mov    -0x108(%ebp),%edx
40e36d:	6a 5c                	push   $0x5c
40e36f:	68 d4 7c 40 00       	push   $0x407cd4
40e374:	52                   	push   %edx
40e375:	50                   	push   %eax
40e376:	ff 15 48 10 40 00    	call   *0x401048
40e37c:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
40e382:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e388:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40e38b:	89 b5 48 ff ff ff    	mov    %esi,-0xb8(%ebp)
40e391:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e397:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e39d:	ff 15 0c 10 40 00    	call   *0x40100c
40e3a3:	8d 8d 44 ff ff ff    	lea    -0xbc(%ebp),%ecx
40e3a9:	ff 15 ac 11 40 00    	call   *0x4011ac
40e3af:	68 04 85 40 00       	push   $0x408504
40e3b4:	68 14 85 40 00       	push   $0x408514
40e3b9:	ff 15 3c 10 40 00    	call   *0x40103c
40e3bf:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e3c5:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40e3cb:	50                   	push   %eax
40e3cc:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e3d2:	51                   	push   %ecx
40e3d3:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e3d9:	ff 15 94 11 40 00    	call   *0x401194
40e3df:	8d 95 24 ff ff ff    	lea    -0xdc(%ebp),%edx
40e3e5:	52                   	push   %edx
40e3e6:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
40e3ec:	50                   	push   %eax
40e3ed:	c7 85 0c ff ff ff 03 	movl   $0x3,-0xf4(%ebp)
40e3f4:	00 00 00
40e3f7:	c7 85 04 ff ff ff 02 	movl   $0x8002,-0xfc(%ebp)
40e3fe:	80 00 00
40e401:	ff 15 64 11 40 00    	call   *0x401164
40e407:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e40d:	51                   	push   %ecx
40e40e:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e414:	52                   	push   %edx
40e415:	6a 02                	push   $0x2
40e417:	66 8b f8             	mov    %ax,%di
40e41a:	ff 15 28 10 40 00    	call   *0x401028
40e420:	83 c4 0c             	add    $0xc,%esp
40e423:	66 3b fe             	cmp    %si,%di
40e426:	0f 84 e1 00 00 00    	je     0x40e50d