40a089:	33 f6                	xor    %esi,%esi
40a08b:	89 75 fc             	mov    %esi,-0x4(%ebp)
40a08e:	8b 45 08             	mov    0x8(%ebp),%eax
40a091:	8b 08                	mov    (%eax),%ecx
40a093:	50                   	push   %eax
40a094:	ff 51 04             	call   *0x4(%ecx)
40a097:	8b 3d 3c 10 40 00    	mov    0x40103c,%edi
40a09d:	68 2c 7b 40 00       	push   $0x407b2c
40a0a2:	68 38 7b 40 00       	push   $0x407b38
40a0a7:	89 75 e8             	mov    %esi,-0x18(%ebp)
40a0aa:	89 75 d8             	mov    %esi,-0x28(%ebp)
40a0ad:	89 75 c8             	mov    %esi,-0x38(%ebp)
40a0b0:	89 75 b8             	mov    %esi,-0x48(%ebp)
40a0b3:	ff d7                	call   *%edi
40a0b5:	8b 1d 64 10 40 00    	mov    0x401064,%ebx
40a0bb:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a0be:	52                   	push   %edx
40a0bf:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a0c2:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a0c9:	ff d3                	call   *%ebx
40a0cb:	8b d0                	mov    %eax,%edx
40a0cd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a0d0:	ff 15 88 11 40 00    	call   *0x401188
40a0d6:	50                   	push   %eax
40a0d7:	56                   	push   %esi
40a0d8:	ff 15 b8 10 40 00    	call   *0x4010b8
40a0de:	8b f0                	mov    %eax,%esi
40a0e0:	f7 de                	neg    %esi
40a0e2:	1b f6                	sbb    %esi,%esi
40a0e4:	46                   	inc    %esi
40a0e5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a0e8:	f7 de                	neg    %esi
40a0ea:	ff 15 a8 11 40 00    	call   *0x4011a8
40a0f0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a0f3:	ff 15 14 10 40 00    	call   *0x401014
40a0f9:	66 85 f6             	test   %si,%si
40a0fc:	74 3b                	je     0x40a139
40a0fe:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a101:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a104:	c7 45 c0 40 7b 40 00 	movl   $0x407b40,-0x40(%ebp)
40a10b:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a112:	ff 15 74 11 40 00    	call   *0x401174
40a118:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a11b:	50                   	push   %eax
40a11c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a11f:	51                   	push   %ecx
40a120:	ff 15 58 10 40 00    	call   *0x401058
40a126:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a129:	52                   	push   %edx
40a12a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a12d:	50                   	push   %eax
40a12e:	6a 02                	push   $0x2
40a130:	ff 15 28 10 40 00    	call   *0x401028
40a136:	83 c4 0c             	add    $0xc,%esp
40a139:	68 2c 7b 40 00       	push   $0x407b2c
40a13e:	68 38 7b 40 00       	push   $0x407b38
40a143:	ff d7                	call   *%edi
40a145:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a148:	51                   	push   %ecx
40a149:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a14c:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a153:	ff d3                	call   *%ebx
40a155:	8b d0                	mov    %eax,%edx
40a157:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a15a:	ff 15 88 11 40 00    	call   *0x401188
40a160:	50                   	push   %eax
40a161:	6a 00                	push   $0x0
40a163:	ff 15 b8 10 40 00    	call   *0x4010b8
40a169:	8b f0                	mov    %eax,%esi
40a16b:	f7 de                	neg    %esi
40a16d:	1b f6                	sbb    %esi,%esi
40a16f:	46                   	inc    %esi
40a170:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a173:	f7 de                	neg    %esi
40a175:	ff 15 a8 11 40 00    	call   *0x4011a8
40a17b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a17e:	ff 15 14 10 40 00    	call   *0x401014
40a184:	66 85 f6             	test   %si,%si
40a187:	74 3b                	je     0x40a1c4
40a189:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a18c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a18f:	c7 45 c0 60 7b 40 00 	movl   $0x407b60,-0x40(%ebp)
40a196:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a19d:	ff 15 74 11 40 00    	call   *0x401174
40a1a3:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a1a6:	52                   	push   %edx
40a1a7:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a1aa:	50                   	push   %eax
40a1ab:	ff 15 58 10 40 00    	call   *0x401058
40a1b1:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a1b4:	51                   	push   %ecx
40a1b5:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a1b8:	52                   	push   %edx
40a1b9:	6a 02                	push   $0x2
40a1bb:	ff 15 28 10 40 00    	call   *0x401028
40a1c1:	83 c4 0c             	add    $0xc,%esp
40a1c4:	68 2c 7b 40 00       	push   $0x407b2c
40a1c9:	68 38 7b 40 00       	push   $0x407b38
40a1ce:	ff d7                	call   *%edi
40a1d0:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a1d3:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a1d6:	50                   	push   %eax
40a1d7:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a1de:	ff d3                	call   *%ebx
40a1e0:	8b d0                	mov    %eax,%edx
40a1e2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a1e5:	ff 15 88 11 40 00    	call   *0x401188
40a1eb:	50                   	push   %eax
40a1ec:	6a 00                	push   $0x0
40a1ee:	ff 15 b8 10 40 00    	call   *0x4010b8
40a1f4:	8b f0                	mov    %eax,%esi
40a1f6:	f7 de                	neg    %esi
40a1f8:	1b f6                	sbb    %esi,%esi
40a1fa:	46                   	inc    %esi
40a1fb:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a1fe:	f7 de                	neg    %esi
40a200:	ff 15 a8 11 40 00    	call   *0x4011a8
40a206:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a209:	ff 15 14 10 40 00    	call   *0x401014
40a20f:	66 85 f6             	test   %si,%si
40a212:	74 3b                	je     0x40a24f
40a214:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a217:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a21a:	c7 45 c0 80 7b 40 00 	movl   $0x407b80,-0x40(%ebp)
40a221:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a228:	ff 15 74 11 40 00    	call   *0x401174
40a22e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a231:	51                   	push   %ecx
40a232:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a235:	52                   	push   %edx
40a236:	ff 15 58 10 40 00    	call   *0x401058
40a23c:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a23f:	50                   	push   %eax
40a240:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a243:	51                   	push   %ecx
40a244:	6a 02                	push   $0x2
40a246:	ff 15 28 10 40 00    	call   *0x401028
40a24c:	83 c4 0c             	add    $0xc,%esp
40a24f:	68 2c 7b 40 00       	push   $0x407b2c
40a254:	68 38 7b 40 00       	push   $0x407b38
40a259:	ff d7                	call   *%edi
40a25b:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a25e:	52                   	push   %edx
40a25f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a262:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a269:	ff d3                	call   *%ebx
40a26b:	8b d0                	mov    %eax,%edx
40a26d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a270:	ff 15 88 11 40 00    	call   *0x401188
40a276:	50                   	push   %eax
40a277:	6a 00                	push   $0x0
40a279:	ff 15 b8 10 40 00    	call   *0x4010b8
40a27f:	8b f0                	mov    %eax,%esi
40a281:	f7 de                	neg    %esi
40a283:	1b f6                	sbb    %esi,%esi
40a285:	46                   	inc    %esi
40a286:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a289:	f7 de                	neg    %esi
40a28b:	ff 15 a8 11 40 00    	call   *0x4011a8
40a291:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a294:	ff 15 14 10 40 00    	call   *0x401014
40a29a:	66 85 f6             	test   %si,%si
40a29d:	74 3b                	je     0x40a2da
40a29f:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a2a2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a2a5:	c7 45 c0 a4 7b 40 00 	movl   $0x407ba4,-0x40(%ebp)
40a2ac:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a2b3:	ff 15 74 11 40 00    	call   *0x401174
40a2b9:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a2bc:	50                   	push   %eax
40a2bd:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a2c0:	51                   	push   %ecx
40a2c1:	ff 15 58 10 40 00    	call   *0x401058
40a2c7:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a2ca:	52                   	push   %edx
40a2cb:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a2ce:	50                   	push   %eax
40a2cf:	6a 02                	push   $0x2
40a2d1:	ff 15 28 10 40 00    	call   *0x401028
40a2d7:	83 c4 0c             	add    $0xc,%esp
40a2da:	68 2c 7b 40 00       	push   $0x407b2c
40a2df:	68 38 7b 40 00       	push   $0x407b38
40a2e4:	ff d7                	call   *%edi
40a2e6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a2e9:	51                   	push   %ecx
40a2ea:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a2ed:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a2f4:	ff d3                	call   *%ebx
40a2f6:	8b d0                	mov    %eax,%edx
40a2f8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a2fb:	ff 15 88 11 40 00    	call   *0x401188
40a301:	50                   	push   %eax
40a302:	6a 00                	push   $0x0
40a304:	ff 15 b8 10 40 00    	call   *0x4010b8
40a30a:	8b f0                	mov    %eax,%esi
40a30c:	f7 de                	neg    %esi
40a30e:	1b f6                	sbb    %esi,%esi
40a310:	46                   	inc    %esi
40a311:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a314:	f7 de                	neg    %esi
40a316:	ff 15 a8 11 40 00    	call   *0x4011a8
40a31c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a31f:	ff 15 14 10 40 00    	call   *0x401014
40a325:	66 85 f6             	test   %si,%si
40a328:	74 3b                	je     0x40a365
40a32a:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a32d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a330:	c7 45 c0 bc 7b 40 00 	movl   $0x407bbc,-0x40(%ebp)
40a337:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a33e:	ff 15 74 11 40 00    	call   *0x401174
40a344:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a347:	52                   	push   %edx
40a348:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a34b:	50                   	push   %eax
40a34c:	ff 15 58 10 40 00    	call   *0x401058
40a352:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a355:	51                   	push   %ecx
40a356:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a359:	52                   	push   %edx
40a35a:	6a 02                	push   $0x2
40a35c:	ff 15 28 10 40 00    	call   *0x401028
40a362:	83 c4 0c             	add    $0xc,%esp
40a365:	68 2c 7b 40 00       	push   $0x407b2c
40a36a:	68 38 7b 40 00       	push   $0x407b38
40a36f:	ff d7                	call   *%edi
40a371:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a374:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a377:	50                   	push   %eax
40a378:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a37f:	ff d3                	call   *%ebx
40a381:	8b d0                	mov    %eax,%edx
40a383:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a386:	ff 15 88 11 40 00    	call   *0x401188
40a38c:	50                   	push   %eax
40a38d:	6a 00                	push   $0x0
40a38f:	ff 15 b8 10 40 00    	call   *0x4010b8
40a395:	8b f0                	mov    %eax,%esi
40a397:	f7 de                	neg    %esi
40a399:	1b f6                	sbb    %esi,%esi
40a39b:	46                   	inc    %esi
40a39c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a39f:	f7 de                	neg    %esi
40a3a1:	ff 15 a8 11 40 00    	call   *0x4011a8
40a3a7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3aa:	ff 15 14 10 40 00    	call   *0x401014
40a3b0:	66 85 f6             	test   %si,%si
40a3b3:	74 3b                	je     0x40a3f0
40a3b5:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a3b8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3bb:	c7 45 c0 dc 7b 40 00 	movl   $0x407bdc,-0x40(%ebp)
40a3c2:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a3c9:	ff 15 74 11 40 00    	call   *0x401174
40a3cf:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3d2:	51                   	push   %ecx
40a3d3:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a3d6:	52                   	push   %edx
40a3d7:	ff 15 58 10 40 00    	call   *0x401058
40a3dd:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a3e0:	50                   	push   %eax
40a3e1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a3e4:	51                   	push   %ecx
40a3e5:	6a 02                	push   $0x2
40a3e7:	ff 15 28 10 40 00    	call   *0x401028
40a3ed:	83 c4 0c             	add    $0xc,%esp
40a3f0:	68 2c 7b 40 00       	push   $0x407b2c
40a3f5:	68 38 7b 40 00       	push   $0x407b38
40a3fa:	ff d7                	call   *%edi
40a3fc:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a3ff:	52                   	push   %edx
40a400:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a403:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a40a:	ff d3                	call   *%ebx
40a40c:	8b d0                	mov    %eax,%edx
40a40e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a411:	ff 15 88 11 40 00    	call   *0x401188
40a417:	50                   	push   %eax
40a418:	6a 00                	push   $0x0
40a41a:	ff 15 b8 10 40 00    	call   *0x4010b8
40a420:	8b f0                	mov    %eax,%esi
40a422:	f7 de                	neg    %esi
40a424:	1b f6                	sbb    %esi,%esi
40a426:	46                   	inc    %esi
40a427:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a42a:	f7 de                	neg    %esi
40a42c:	ff 15 a8 11 40 00    	call   *0x4011a8
40a432:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a435:	ff 15 14 10 40 00    	call   *0x401014
40a43b:	66 85 f6             	test   %si,%si
40a43e:	74 3b                	je     0x40a47b
40a440:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a443:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a446:	c7 45 c0 00 7c 40 00 	movl   $0x407c00,-0x40(%ebp)
40a44d:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a454:	ff 15 74 11 40 00    	call   *0x401174
40a45a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a45d:	50                   	push   %eax
40a45e:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a461:	51                   	push   %ecx
40a462:	ff 15 58 10 40 00    	call   *0x401058
40a468:	8d 55 c8             	lea    -0x38(%ebp),%edx
40a46b:	52                   	push   %edx
40a46c:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a46f:	50                   	push   %eax
40a470:	6a 02                	push   $0x2
40a472:	ff 15 28 10 40 00    	call   *0x401028
40a478:	83 c4 0c             	add    $0xc,%esp
40a47b:	68 2c 7b 40 00       	push   $0x407b2c
40a480:	68 38 7b 40 00       	push   $0x407b38
40a485:	ff d7                	call   *%edi
40a487:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a48a:	51                   	push   %ecx
40a48b:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a48e:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40a495:	ff d3                	call   *%ebx
40a497:	8b d0                	mov    %eax,%edx
40a499:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a49c:	ff 15 88 11 40 00    	call   *0x401188
40a4a2:	50                   	push   %eax
40a4a3:	6a 00                	push   $0x0
40a4a5:	ff 15 b8 10 40 00    	call   *0x4010b8
40a4ab:	8b f0                	mov    %eax,%esi
40a4ad:	f7 de                	neg    %esi
40a4af:	1b f6                	sbb    %esi,%esi
40a4b1:	46                   	inc    %esi
40a4b2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a4b5:	f7 de                	neg    %esi
40a4b7:	ff 15 a8 11 40 00    	call   *0x4011a8
40a4bd:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a4c0:	ff 15 14 10 40 00    	call   *0x401014
40a4c6:	66 85 f6             	test   %si,%si
40a4c9:	74 3b                	je     0x40a506
40a4cb:	8d 55 b8             	lea    -0x48(%ebp),%edx
40a4ce:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a4d1:	c7 45 c0 48 7a 40 00 	movl   $0x407a48,-0x40(%ebp)
40a4d8:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
40a4df:	ff 15 74 11 40 00    	call   *0x401174
40a4e5:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a4e8:	52                   	push   %edx
40a4e9:	8d 45 c8             	lea    -0x38(%ebp),%eax
40a4ec:	50                   	push   %eax
40a4ed:	ff 15 58 10 40 00    	call   *0x401058
40a4f3:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a4f6:	51                   	push   %ecx
40a4f7:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a4fa:	52                   	push   %edx
40a4fb:	6a 02                	push   $0x2
40a4fd:	ff 15 28 10 40 00    	call   *0x401028
40a503:	83 c4 0c             	add    $0xc,%esp
40a506:	68 2c 7b 40 00       	push   $0x407b2c
40a50b:	68 38 7b 40 00       	push   $0x407b38