40c016:	83 c8 ff             	or     $0xffffffff,%eax
40c019:	eb e8                	jmp    0x40c003
40c01b:	8b ff                	mov    %edi,%edi
40c01d:	55                   	push   %ebp
40c01e:	8b ec                	mov    %esp,%ebp
40c020:	8b 55 0c             	mov    0xc(%ebp),%edx
40c023:	56                   	push   %esi
40c024:	8b 75 10             	mov    0x10(%ebp),%esi
40c027:	8d 04 32             	lea    (%edx,%esi,1),%eax
40c02a:	3b c2                	cmp    %edx,%eax
40c02c:	72 19                	jb     0x40c047
40c02e:	3b 41 0c             	cmp    0xc(%ecx),%eax
40c031:	0f 87 b0 42 01 00    	ja     0x4202e7
40c037:	8b 45 08             	mov    0x8(%ebp),%eax
40c03a:	89 70 04             	mov    %esi,0x4(%eax)
40c03d:	89 10                	mov    %edx,(%eax)
40c03f:	89 48 08             	mov    %ecx,0x8(%eax)
40c042:	5e                   	pop    %esi
40c043:	5d                   	pop    %ebp
40c044:	c2 0c 00             	ret    $0xc
40c047:	e8 87 01 02 00       	call   0x42c1d3
40c04c:	8b ff                	mov    %edi,%edi
40c04e:	55                   	push   %ebp
40c04f:	8b ec                	mov    %esp,%ebp
40c051:	8b 09                	mov    (%ecx),%ecx
40c053:	8b 55 0c             	mov    0xc(%ebp),%edx
40c056:	03 d1                	add    %ecx,%edx
40c058:	3b d1                	cmp    %ecx,%edx
40c05a:	72 09                	jb     0x40c065
40c05c:	8b 45 08             	mov    0x8(%ebp),%eax
40c05f:	89 10                	mov    %edx,(%eax)
40c061:	5d                   	pop    %ebp
40c062:	c2 08 00             	ret    $0x8
40c065:	e8 69 01 02 00       	call   0x42c1d3
40c06a:	cc                   	int3
40c06b:	cc                   	int3
40c06c:	cc                   	int3
40c06d:	cc                   	int3
40c06e:	cc                   	int3
40c06f:	cc                   	int3
40c070:	6a 0c                	push   $0xc
40c072:	b8 28 e2 41 00       	mov    $0x41e228,%eax
40c077:	e8 92 ed 00 00       	call   0x41ae0e
40c07c:	33 db                	xor    %ebx,%ebx
40c07e:	53                   	push   %ebx
40c07f:	53                   	push   %ebx
40c080:	ff 15 58 a0 43 00    	call   *0x43a058
40c086:	8b f0                	mov    %eax,%esi
40c088:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c08b:	8b 7d 08             	mov    0x8(%ebp),%edi
40c08e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c091:	8b 47 0c             	mov    0xc(%edi),%eax
40c094:	89 45 e8             	mov    %eax,-0x18(%ebp)
40c097:	a1 80 8d 43 00       	mov    0x438d80,%eax
40c09c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c09f:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
40c0a3:	0f 85 65 42 01 00    	jne    0x42030e
40c0a9:	6a ff                	push   $0xffffffff
40c0ab:	6a 00                	push   $0x0
40c0ad:	8d 45 e8             	lea    -0x18(%ebp),%eax
40c0b0:	50                   	push   %eax
40c0b1:	6a 02                	push   $0x2
40c0b3:	ff 15 fc a2 43 00    	call   *0x43a2fc
40c0b9:	83 e8 00             	sub    $0x0,%eax
40c0bc:	0f 84 3d 42 01 00    	je     0x4202ff
40c0c2:	83 e8 01             	sub    $0x1,%eax
40c0c5:	75 1d                	jne    0x40c0e4
40c0c7:	51                   	push   %ecx
40c0c8:	8d 47 24             	lea    0x24(%edi),%eax
40c0cb:	50                   	push   %eax
40c0cc:	e8 c2 01 00 00       	call   0x40c293
40c0d1:	ff 35 74 8d 43 00    	push   0x438d74
40c0d7:	83 25 38 8a 43 00 00 	andl   $0x0,0x438a38
40c0de:	ff 15 b0 a2 43 00    	call   *0x43a2b0
40c0e4:	85 db                	test   %ebx,%ebx
40c0e6:	79 b7                	jns    0x40c09f
40c0e8:	e9 21 42 01 00       	jmp    0x42030e
40c0ed:	6a 14                	push   $0x14
40c0ef:	b8 53 e2 41 00       	mov    $0x41e253,%eax
40c0f4:	e8 15 ed 00 00       	call   0x41ae0e
40c0f9:	8b da                	mov    %edx,%ebx
40c0fb:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40c0fe:	8b c1                	mov    %ecx,%eax
40c100:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c103:	33 d2                	xor    %edx,%edx
40c105:	89 55 f0             	mov    %edx,-0x10(%ebp)
40c108:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c10b:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c10e:	51                   	push   %ecx
40c10f:	68 80 4e 40 00       	push   $0x404e80
40c114:	6a 01                	push   $0x1
40c116:	52                   	push   %edx
40c117:	50                   	push   %eax
40c118:	ff 15 48 a0 43 00    	call   *0x43a048
40c11e:	8b f8                	mov    %eax,%edi
40c120:	89 7d e8             	mov    %edi,-0x18(%ebp)
40c123:	85 ff                	test   %edi,%edi
40c125:	78 47                	js     0x40c16e
40c127:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c12a:	ff 75 08             	push   0x8(%ebp)
40c12d:	68 1c 57 40 00       	push   $0x40571c
40c132:	8b 08                	mov    (%eax),%ecx
40c134:	50                   	push   %eax
40c135:	8b 31                	mov    (%ecx),%esi
40c137:	8b ce                	mov    %esi,%ecx
40c139:	ff 15 20 a5 43 00    	call   *0x43a520
40c13f:	ff d6                	call   *%esi
40c141:	8b f8                	mov    %eax,%edi
40c143:	85 ff                	test   %edi,%edi
40c145:	0f 89 8c 00 00 00    	jns    0x40c1d7
40c14b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c14e:	ff 75 0c             	push   0xc(%ebp)
40c151:	68 2c 57 40 00       	push   $0x40572c
40c156:	8b 08                	mov    (%eax),%ecx
40c158:	50                   	push   %eax
40c159:	8b 31                	mov    (%ecx),%esi
40c15b:	8b ce                	mov    %esi,%ecx
40c15d:	ff 15 20 a5 43 00    	call   *0x43a520
40c163:	ff d6                	call   *%esi
40c165:	8b f8                	mov    %eax,%edi
40c167:	89 7d e8             	mov    %edi,-0x18(%ebp)
40c16a:	85 ff                	test   %edi,%edi
40c16c:	79 69                	jns    0x40c1d7
40c16e:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40c172:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40c175:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c179:	e8 5f 0f 01 00       	call   0x41d0dd
40c17e:	50                   	push   %eax
40c17f:	ff 75 e4             	push   -0x1c(%ebp)
40c182:	ff 15 40 a0 43 00    	call   *0x43a040
40c188:	68 0b 0c 00 c0       	push   $0xc0000c0b
40c18d:	8b d3                	mov    %ebx,%edx
40c18f:	8b cf                	mov    %edi,%ecx
40c191:	e8 2c 3f 02 00       	call   0x4300c2
40c196:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c199:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c19c:	85 c0                	test   %eax,%eax
40c19e:	75 07                	jne    0x40c1a7
40c1a0:	c7 45 e4 cc 3f 40 00 	movl   $0x403fcc,-0x1c(%ebp)
40c1a7:	8d 45 e8             	lea    -0x18(%ebp),%eax
40c1aa:	50                   	push   %eax
40c1ab:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40c1ae:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40c1b1:	e8 f2 38 02 00       	call   0x42faa8
40c1b6:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40c1ba:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c1bd:	85 c0                	test   %eax,%eax
40c1bf:	74 16                	je     0x40c1d7
40c1c1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40c1c4:	8d 55 e0             	lea    -0x20(%ebp),%edx
40c1c7:	a1 64 a0 43 00       	mov    0x43a064,%eax
40c1cc:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c1cf:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c1d2:	e8 8d f4 00 00       	call   0x41b664
40c1d7:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40c1de:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c1e1:	85 c0                	test   %eax,%eax
40c1e3:	74 10                	je     0x40c1f5
40c1e5:	8b 08                	mov    (%eax),%ecx
40c1e7:	50                   	push   %eax
40c1e8:	8b 71 08             	mov    0x8(%ecx),%esi
40c1eb:	8b ce                	mov    %esi,%ecx
40c1ed:	ff 15 20 a5 43 00    	call   *0x43a520
40c1f3:	ff d6                	call   *%esi
40c1f5:	8b c7                	mov    %edi,%eax
40c1f7:	e8 e0 eb 00 00       	call   0x41addc
40c1fc:	c2 08 00             	ret    $0x8
40c1ff:	8b ff                	mov    %edi,%edi
40c201:	55                   	push   %ebp
40c202:	8b ec                	mov    %esp,%ebp
40c204:	6a ff                	push   $0xffffffff
40c206:	68 6e e2 41 00       	push   $0x41e26e
40c20b:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c211:	50                   	push   %eax
40c212:	56                   	push   %esi
40c213:	a1 08 85 43 00       	mov    0x438508,%eax
40c218:	33 c5                	xor    %ebp,%eax
40c21a:	50                   	push   %eax
40c21b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c21e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c224:	8b 09                	mov    (%ecx),%ecx
40c226:	85 c9                	test   %ecx,%ecx
40c228:	74 10                	je     0x40c23a
40c22a:	8b 01                	mov    (%ecx),%eax
40c22c:	51                   	push   %ecx
40c22d:	8b 70 08             	mov    0x8(%eax),%esi
40c230:	8b ce                	mov    %esi,%ecx
40c232:	ff 15 20 a5 43 00    	call   *0x43a520
40c238:	ff d6                	call   *%esi
40c23a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c23d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c244:	59                   	pop    %ecx
40c245:	5e                   	pop    %esi
40c246:	c9                   	leave
40c247:	c3                   	ret
40c248:	8b ff                	mov    %edi,%edi
40c24a:	55                   	push   %ebp
40c24b:	8b ec                	mov    %esp,%ebp
40c24d:	6a ff                	push   $0xffffffff
40c24f:	68 6e e2 41 00       	push   $0x41e26e
40c254:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c25a:	50                   	push   %eax
40c25b:	56                   	push   %esi
40c25c:	a1 08 85 43 00       	mov    0x438508,%eax
40c261:	33 c5                	xor    %ebp,%eax
40c263:	50                   	push   %eax
40c264:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c267:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c26d:	8b 09                	mov    (%ecx),%ecx
40c26f:	85 c9                	test   %ecx,%ecx
40c271:	75 0e                	jne    0x40c281
40c273:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c276:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c27d:	59                   	pop    %ecx
40c27e:	5e                   	pop    %esi
40c27f:	c9                   	leave
40c280:	c3                   	ret
40c281:	8b 01                	mov    (%ecx),%eax
40c283:	51                   	push   %ecx
40c284:	8b 70 08             	mov    0x8(%eax),%esi
40c287:	8b ce                	mov    %esi,%ecx
40c289:	ff 15 20 a5 43 00    	call   *0x43a520
40c28f:	ff d6                	call   *%esi
40c291:	eb e0                	jmp    0x40c273
40c293:	6a 08                	push   $0x8
40c295:	b8 99 e2 41 00       	mov    $0x41e299,%eax
40c29a:	e8 6f eb 00 00       	call   0x41ae0e
40c29f:	8b 3d 38 8a 43 00    	mov    0x438a38,%edi
40c2a5:	33 c0                	xor    %eax,%eax
40c2a7:	8b 35 00 8f 43 00    	mov    0x438f00,%esi
40c2ad:	39 47 7c             	cmp    %eax,0x7c(%edi)
40c2b0:	0f 85 cc 00 00 00    	jne    0x40c382
40c2b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c2b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c2bc:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c2bf:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c2c2:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c2c6:	8b 57 04             	mov    0x4(%edi),%edx
40c2c9:	8d 4f 54             	lea    0x54(%edi),%ecx
40c2cc:	50                   	push   %eax
40c2cd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c2d0:	50                   	push   %eax
40c2d1:	e8 17 fe ff ff       	call   0x40c0ed
40c2d6:	89 87 80 00 00 00    	mov    %eax,0x80(%edi)
40c2dc:	85 c0                	test   %eax,%eax
40c2de:	0f 88 87 00 00 00    	js     0x40c36b
40c2e4:	ff 75 f0             	push   -0x10(%ebp)
40c2e7:	8b 45 08             	mov    0x8(%ebp),%eax
40c2ea:	8b d6                	mov    %esi,%edx
40c2ec:	ff 75 ec             	push   -0x14(%ebp)
40c2ef:	ff 77 04             	push   0x4(%edi)
40c2f2:	8b 48 04             	mov    0x4(%eax),%ecx
40c2f5:	e8 6c b2 00 00       	call   0x417566
40c2fa:	89 87 80 00 00 00    	mov    %eax,0x80(%edi)
40c300:	85 c0                	test   %eax,%eax
40c302:	78 67                	js     0x40c36b
40c304:	ff 75 ec             	push   -0x14(%ebp)
40c307:	8d 5f 70             	lea    0x70(%edi),%ebx
40c30a:	8b cb                	mov    %ebx,%ecx
40c30c:	e8 a8 00 00 00       	call   0x40c3b9
40c311:	ff 75 f0             	push   -0x10(%ebp)
40c314:	8d 4f 64             	lea    0x64(%edi),%ecx
40c317:	e8 9d 00 00 00       	call   0x40c3b9
40c31c:	8b 4f 64             	mov    0x64(%edi),%ecx
40c31f:	85 c9                	test   %ecx,%ecx
40c321:	74 6d                	je     0x40c390
40c323:	8b 31                	mov    (%ecx),%esi
40c325:	8d 47 78             	lea    0x78(%edi),%eax
40c328:	50                   	push   %eax
40c329:	68 60 3f 40 00       	push   $0x403f60
40c32e:	51                   	push   %ecx
40c32f:	8b 0e                	mov    (%esi),%ecx
40c331:	ff 15 20 a5 43 00    	call   *0x43a520
40c337:	ff 16                	call   *(%esi)
40c339:	8b 4f 64             	mov    0x64(%edi),%ecx
40c33c:	8d 47 68             	lea    0x68(%edi),%eax
40c33f:	50                   	push   %eax
40c340:	68 40 3f 40 00       	push   $0x403f40
40c345:	51                   	push   %ecx
40c346:	8b 31                	mov    (%ecx),%esi
40c348:	8b 0e                	mov    (%esi),%ecx
40c34a:	ff 15 20 a5 43 00    	call   *0x43a520
40c350:	ff 16                	call   *(%esi)
40c352:	8b 4f 64             	mov    0x64(%edi),%ecx
40c355:	8d 47 6c             	lea    0x6c(%edi),%eax
40c358:	50                   	push   %eax
40c359:	68 50 3f 40 00       	push   $0x403f50
40c35e:	8b 31                	mov    (%ecx),%esi
40c360:	51                   	push   %ecx
40c361:	8b 0e                	mov    (%esi),%ecx
40c363:	ff 15 20 a5 43 00    	call   *0x43a520
40c369:	ff 16                	call   *(%esi)
40c36b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c36e:	c7 47 7c 01 00 00 00 	movl   $0x1,0x7c(%edi)
40c375:	e8 85 fe ff ff       	call   0x40c1ff
40c37a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40c37d:	e8 c6 fe ff ff       	call   0x40c248
40c382:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
40c388:	e8 4f ea 00 00       	call   0x41addc
40c38d:	c2 08 00             	ret    $0x8
40c390:	8b 0b                	mov    (%ebx),%ecx
40c392:	85 c9                	test   %ecx,%ecx
40c394:	74 d5                	je     0x40c36b
40c396:	8b 31                	mov    (%ecx),%esi
40c398:	8d 47 78             	lea    0x78(%edi),%eax
40c39b:	50                   	push   %eax
40c39c:	68 60 3f 40 00       	push   $0x403f60
40c3a1:	51                   	push   %ecx
40c3a2:	8b 0e                	mov    (%esi),%ecx
40c3a4:	ff 15 20 a5 43 00    	call   *0x43a520
40c3aa:	ff 16                	call   *(%esi)
40c3ac:	8b 0b                	mov    (%ebx),%ecx
40c3ae:	8d 47 74             	lea    0x74(%edi),%eax
40c3b1:	50                   	push   %eax
40c3b2:	68 d0 3e 40 00       	push   $0x403ed0
40c3b7:	eb a5                	jmp    0x40c35e
40c3b9:	8b ff                	mov    %edi,%edi
40c3bb:	55                   	push   %ebp
40c3bc:	8b ec                	mov    %esp,%ebp
40c3be:	53                   	push   %ebx
40c3bf:	56                   	push   %esi
40c3c0:	57                   	push   %edi
40c3c1:	8b 7d 08             	mov    0x8(%ebp),%edi
40c3c4:	8b d9                	mov    %ecx,%ebx
40c3c6:	85 ff                	test   %edi,%edi
40c3c8:	74 10                	je     0x40c3da
40c3ca:	8b 07                	mov    (%edi),%eax
40c3cc:	57                   	push   %edi
40c3cd:	8b 70 04             	mov    0x4(%eax),%esi
40c3d0:	8b ce                	mov    %esi,%ecx
40c3d2:	ff 15 20 a5 43 00    	call   *0x43a520
40c3d8:	ff d6                	call   *%esi
40c3da:	8b 03                	mov    (%ebx),%eax
40c3dc:	85 c0                	test   %eax,%eax
40c3de:	0f 85 3c 3f 01 00    	jne    0x420320
40c3e4:	89 3b                	mov    %edi,(%ebx)
40c3e6:	8b c7                	mov    %edi,%eax
40c3e8:	5f                   	pop    %edi
40c3e9:	5e                   	pop    %esi
40c3ea:	5b                   	pop    %ebx
40c3eb:	5d                   	pop    %ebp
40c3ec:	c2 04 00             	ret    $0x4
40c3ef:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40c3f3:	8d 51 10             	lea    0x10(%ecx),%edx
40c3f6:	83 62 0c 00          	andl   $0x0,0xc(%edx)
40c3fa:	8d 42 04             	lea    0x4(%edx),%eax
40c3fd:	89 00                	mov    %eax,(%eax)
40c3ff:	89 02                	mov    %eax,(%edx)
40c401:	8b c1                	mov    %ecx,%eax
40c403:	89 52 08             	mov    %edx,0x8(%edx)