40e090:	8b 4a 68             	mov    0x68(%edx),%ecx
40e093:	ff 72 44             	push   0x44(%edx)
40e096:	51                   	push   %ecx
40e097:	8b 01                	mov    (%ecx),%eax
40e099:	8b 58 24             	mov    0x24(%eax),%ebx
40e09c:	8b cb                	mov    %ebx,%ecx
40e09e:	ff 15 28 63 41 00    	call   *0x416328
40e0a4:	ff d3                	call   *%ebx
40e0a6:	8d 4c 24 38          	lea    0x38(%esp),%ecx
40e0aa:	8b d8                	mov    %eax,%ebx
40e0ac:	e8 3e 89 ff ff       	call   0x4069ef
40e0b1:	85 db                	test   %ebx,%ebx
40e0b3:	79 10                	jns    0x40e0c5
40e0b5:	53                   	push   %ebx
40e0b6:	68 48 3d 40 00       	push   $0x403d48
40e0bb:	68 59 03 00 00       	push   $0x359
40e0c0:	e9 42 04 00 00       	jmp    0x40e507
40e0c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e0c8:	6a 01                	push   $0x1
40e0ca:	e8 6c 2a 00 00       	call   0x410b3b
40e0cf:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e0d2:	6a 01                	push   $0x1
40e0d4:	e8 50 06 00 00       	call   0x40e729
40e0d9:	e9 55 03 00 00       	jmp    0x40e433
40e0de:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e0e1:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40e0e5:	51                   	push   %ecx
40e0e6:	8d 4b 64             	lea    0x64(%ebx),%ecx
40e0e9:	e8 55 0b 00 00       	call   0x40ec43
40e0ee:	6a 08                	push   $0x8
40e0f0:	6a 08                	push   $0x8
40e0f2:	ff 15 e0 60 41 00    	call   *0x4160e0
40e0f8:	50                   	push   %eax
40e0f9:	ff 15 dc 60 41 00    	call   *0x4160dc
40e0ff:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40e103:	85 c0                	test   %eax,%eax
40e105:	75 15                	jne    0x40e11c
40e107:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40e10c:	50                   	push   %eax
40e10d:	68 48 3d 40 00       	push   $0x403d48
40e112:	68 73 03 00 00       	push   $0x373
40e117:	e9 74 fd ff ff       	jmp    0x40de90
40e11c:	8d 4b 64             	lea    0x64(%ebx),%ecx
40e11f:	e8 bd b7 ff ff       	call   0x4098e1
40e124:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40e128:	89 01                	mov    %eax,(%ecx)
40e12a:	85 c0                	test   %eax,%eax
40e12c:	75 15                	jne    0x40e143
40e12e:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
40e133:	50                   	push   %eax
40e134:	68 48 3d 40 00       	push   $0x403d48
40e139:	68 79 03 00 00       	push   $0x379
40e13e:	e9 4d fd ff ff       	jmp    0x40de90
40e143:	8b 53 04             	mov    0x4(%ebx),%edx
40e146:	85 d2                	test   %edx,%edx
40e148:	75 15                	jne    0x40e15f
40e14a:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40e14f:	50                   	push   %eax
40e150:	68 48 3d 40 00       	push   $0x403d48
40e155:	68 80 03 00 00       	push   $0x380
40e15a:	e9 31 fd ff ff       	jmp    0x40de90
40e15f:	8b 02                	mov    (%edx),%eax
40e161:	83 c1 04             	add    $0x4,%ecx
40e164:	51                   	push   %ecx
40e165:	52                   	push   %edx
40e166:	8b 58 10             	mov    0x10(%eax),%ebx
40e169:	8b cb                	mov    %ebx,%ecx
40e16b:	ff 15 28 63 41 00    	call   *0x416328
40e171:	ff d3                	call   *%ebx
40e173:	8b d8                	mov    %eax,%ebx
40e175:	85 db                	test   %ebx,%ebx
40e177:	79 10                	jns    0x40e189
40e179:	53                   	push   %ebx
40e17a:	68 48 3d 40 00       	push   $0x403d48
40e17f:	68 84 03 00 00       	push   $0x384
40e184:	e9 3f fd ff ff       	jmp    0x40dec8
40e189:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
40e18d:	33 c0                	xor    %eax,%eax
40e18f:	50                   	push   %eax
40e190:	50                   	push   %eax
40e191:	53                   	push   %ebx
40e192:	68 40 ea 40 00       	push   $0x40ea40
40e197:	50                   	push   %eax
40e198:	50                   	push   %eax
40e199:	ff 15 f0 60 41 00    	call   *0x4160f0
40e19f:	85 c0                	test   %eax,%eax
40e1a1:	75 57                	jne    0x40e1fa
40e1a3:	39 03                	cmp    %eax,(%ebx)
40e1a5:	74 0b                	je     0x40e1b2
40e1a7:	ff 33                	push   (%ebx)
40e1a9:	ff 15 b8 61 41 00    	call   *0x4161b8
40e1af:	83 23 00             	andl   $0x0,(%ebx)
40e1b2:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40e1b6:	74 0d                	je     0x40e1c5
40e1b8:	ff 73 04             	push   0x4(%ebx)
40e1bb:	ff 15 b8 61 41 00    	call   *0x4161b8
40e1c1:	83 63 04 00          	andl   $0x0,0x4(%ebx)
40e1c5:	53                   	push   %ebx
40e1c6:	6a 00                	push   $0x0
40e1c8:	ff 15 e0 60 41 00    	call   *0x4160e0
40e1ce:	50                   	push   %eax
40e1cf:	ff 15 e4 60 41 00    	call   *0x4160e4
40e1d5:	ff 15 68 61 41 00    	call   *0x416168
40e1db:	8b d8                	mov    %eax,%ebx
40e1dd:	85 db                	test   %ebx,%ebx
40e1df:	7e 09                	jle    0x40e1ea
40e1e1:	0f b7 db             	movzwl %bx,%ebx
40e1e4:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40e1ea:	53                   	push   %ebx
40e1eb:	68 48 3d 40 00       	push   $0x403d48
40e1f0:	68 9f 03 00 00       	push   $0x39f
40e1f5:	e9 ce fc ff ff       	jmp    0x40dec8
40e1fa:	50                   	push   %eax
40e1fb:	ff 15 b4 60 41 00    	call   *0x4160b4
40e201:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e204:	56                   	push   %esi
40e205:	8b 41 04             	mov    0x4(%ecx),%eax
40e208:	50                   	push   %eax
40e209:	8b 08                	mov    (%eax),%ecx
40e20b:	8b 59 1c             	mov    0x1c(%ecx),%ebx
40e20e:	8b cb                	mov    %ebx,%ecx
40e210:	ff 15 28 63 41 00    	call   *0x416328
40e216:	ff d3                	call   *%ebx
40e218:	8b d8                	mov    %eax,%ebx
40e21a:	85 db                	test   %ebx,%ebx
40e21c:	0f 89 11 02 00 00    	jns    0x40e433
40e222:	53                   	push   %ebx
40e223:	68 48 3d 40 00       	push   $0x403d48
40e228:	68 ab 03 00 00       	push   $0x3ab
40e22d:	e9 96 fc ff ff       	jmp    0x40dec8
40e232:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e235:	e8 d8 f9 ff ff       	call   0x40dc12
40e23a:	e9 f4 01 00 00       	jmp    0x40e433
40e23f:	68 e8 3c 40 00       	push   $0x403ce8
40e244:	68 99 01 00 00       	push   $0x199
40e249:	68 f8 2a 40 00       	push   $0x402af8
40e24e:	e8 ca 2c 00 00       	call   0x410f1d
40e253:	8b 45 08             	mov    0x8(%ebp),%eax
40e256:	8b 48 04             	mov    0x4(%eax),%ecx
40e259:	85 c9                	test   %ecx,%ecx
40e25b:	75 15                	jne    0x40e272
40e25d:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40e262:	50                   	push   %eax
40e263:	68 48 3d 40 00       	push   $0x403d48
40e268:	68 a3 01 00 00       	push   $0x1a3
40e26d:	e9 1e fc ff ff       	jmp    0x40de90
40e272:	8b 01                	mov    (%ecx),%eax
40e274:	8d 54 24 30          	lea    0x30(%esp),%edx
40e278:	52                   	push   %edx
40e279:	51                   	push   %ecx
40e27a:	8b 58 24             	mov    0x24(%eax),%ebx
40e27d:	8b cb                	mov    %ebx,%ecx
40e27f:	ff 15 28 63 41 00    	call   *0x416328
40e285:	ff d3                	call   *%ebx
40e287:	8b d8                	mov    %eax,%ebx
40e289:	85 db                	test   %ebx,%ebx
40e28b:	79 1d                	jns    0x40e2aa
40e28d:	53                   	push   %ebx
40e28e:	68 48 3d 40 00       	push   $0x403d48
40e293:	68 a9 01 00 00       	push   $0x1a9
40e298:	68 e8 3c 40 00       	push   $0x403ce8
40e29d:	51                   	push   %ecx
40e29e:	e8 2f 2d 00 00       	call   0x410fd2
40e2a3:	8b c7                	mov    %edi,%eax
40e2a5:	e9 8d 01 00 00       	jmp    0x40e437
40e2aa:	ff 74 24 30          	push   0x30(%esp)
40e2ae:	bb e8 3c 40 00       	mov    $0x403ce8,%ebx
40e2b3:	68 ae 01 00 00       	push   $0x1ae
40e2b8:	53                   	push   %ebx
40e2b9:	51                   	push   %ecx
40e2ba:	e8 c7 2b 00 00       	call   0x410e86
40e2bf:	8b 44 24 30          	mov    0x30(%esp),%eax
40e2c3:	83 e8 04             	sub    $0x4,%eax
40e2c6:	74 36                	je     0x40e2fe
40e2c8:	83 e8 01             	sub    $0x1,%eax
40e2cb:	0f 85 52 01 00 00    	jne    0x40e423
40e2d1:	53                   	push   %ebx
40e2d2:	68 90 02 00 00       	push   $0x290
40e2d7:	68 f8 2a 40 00       	push   $0x402af8
40e2dc:	e8 3c 2c 00 00       	call   0x410f1d
40e2e1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e2e4:	e8 29 f9 ff ff       	call   0x40dc12
40e2e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e2ec:	6a 00                	push   $0x0
40e2ee:	e8 36 04 00 00       	call   0x40e729
40e2f3:	53                   	push   %ebx
40e2f4:	68 99 02 00 00       	push   $0x299
40e2f9:	e9 1b 01 00 00       	jmp    0x40e419
40e2fe:	53                   	push   %ebx
40e2ff:	68 c9 01 00 00       	push   $0x1c9
40e304:	68 f8 2a 40 00       	push   $0x402af8
40e309:	e8 0f 2c 00 00       	call   0x410f1d
40e30e:	8b 45 08             	mov    0x8(%ebp),%eax
40e311:	8b 48 04             	mov    0x4(%eax),%ecx
40e314:	85 c9                	test   %ecx,%ecx
40e316:	75 15                	jne    0x40e32d
40e318:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40e31d:	50                   	push   %eax
40e31e:	68 48 3d 40 00       	push   $0x403d48
40e323:	68 d1 01 00 00       	push   $0x1d1
40e328:	e9 63 fb ff ff       	jmp    0x40de90
40e32d:	8b 01                	mov    (%ecx),%eax
40e32f:	8d 54 24 14          	lea    0x14(%esp),%edx
40e333:	52                   	push   %edx
40e334:	51                   	push   %ecx
40e335:	8b 58 14             	mov    0x14(%eax),%ebx
40e338:	8b cb                	mov    %ebx,%ecx
40e33a:	ff 15 28 63 41 00    	call   *0x416328
40e340:	ff d3                	call   *%ebx
40e342:	8b d8                	mov    %eax,%ebx
40e344:	85 db                	test   %ebx,%ebx
40e346:	79 10                	jns    0x40e358
40e348:	53                   	push   %ebx
40e349:	68 48 3d 40 00       	push   $0x403d48
40e34e:	68 d7 01 00 00       	push   $0x1d7
40e353:	e9 40 ff ff ff       	jmp    0x40e298
40e358:	8b 45 08             	mov    0x8(%ebp),%eax
40e35b:	8d 54 24 1c          	lea    0x1c(%esp),%edx
40e35f:	52                   	push   %edx
40e360:	8b 40 04             	mov    0x4(%eax),%eax
40e363:	50                   	push   %eax
40e364:	8b 08                	mov    (%eax),%ecx
40e366:	8b 59 18             	mov    0x18(%ecx),%ebx
40e369:	8b cb                	mov    %ebx,%ecx
40e36b:	ff 15 28 63 41 00    	call   *0x416328
40e371:	ff d3                	call   *%ebx
40e373:	8b d8                	mov    %eax,%ebx
40e375:	85 db                	test   %ebx,%ebx
40e377:	79 10                	jns    0x40e389
40e379:	53                   	push   %ebx
40e37a:	68 48 3d 40 00       	push   $0x403d48
40e37f:	68 de 01 00 00       	push   $0x1de
40e384:	e9 0f ff ff ff       	jmp    0x40e298
40e389:	39 7c 24 14          	cmp    %edi,0x14(%esp)
40e38d:	0f 84 ff 00 00 00    	je     0x40e492
40e393:	8b 45 08             	mov    0x8(%ebp),%eax
40e396:	8d 54 24 18          	lea    0x18(%esp),%edx
40e39a:	52                   	push   %edx
40e39b:	8b 40 04             	mov    0x4(%eax),%eax
40e39e:	50                   	push   %eax
40e39f:	8b 08                	mov    (%eax),%ecx
40e3a1:	8b 59 30             	mov    0x30(%ecx),%ebx
40e3a4:	8b cb                	mov    %ebx,%ecx
40e3a6:	ff 15 28 63 41 00    	call   *0x416328
40e3ac:	ff d3                	call   *%ebx
40e3ae:	8b d8                	mov    %eax,%ebx
40e3b0:	85 db                	test   %ebx,%ebx
40e3b2:	79 10                	jns    0x40e3c4
40e3b4:	53                   	push   %ebx
40e3b5:	68 48 3d 40 00       	push   $0x403d48
40e3ba:	68 f0 01 00 00       	push   $0x1f0
40e3bf:	e9 d4 fe ff ff       	jmp    0x40e298
40e3c4:	39 7c 24 18          	cmp    %edi,0x18(%esp)
40e3c8:	75 44                	jne    0x40e40e
40e3ca:	33 c0                	xor    %eax,%eax
40e3cc:	50                   	push   %eax
40e3cd:	50                   	push   %eax
40e3ce:	ff 75 08             	push   0x8(%ebp)
40e3d1:	68 e0 e7 40 00       	push   $0x40e7e0
40e3d6:	50                   	push   %eax
40e3d7:	50                   	push   %eax
40e3d8:	ff 15 f0 60 41 00    	call   *0x4160f0
40e3de:	85 c0                	test   %eax,%eax
40e3e0:	75 25                	jne    0x40e407
40e3e2:	ff 15 68 61 41 00    	call   *0x416168
40e3e8:	8b d8                	mov    %eax,%ebx
40e3ea:	85 db                	test   %ebx,%ebx
40e3ec:	7e 09                	jle    0x40e3f7
40e3ee:	0f b7 db             	movzwl %bx,%ebx
40e3f1:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40e3f7:	53                   	push   %ebx
40e3f8:	68 48 3d 40 00       	push   $0x403d48
40e3fd:	68 0b 02 00 00       	push   $0x20b
40e402:	e9 91 fe ff ff       	jmp    0x40e298
40e407:	50                   	push   %eax
40e408:	ff 15 b4 60 41 00    	call   *0x4160b4
40e40e:	bb e8 3c 40 00       	mov    $0x403ce8,%ebx
40e413:	53                   	push   %ebx
40e414:	68 8b 02 00 00       	push   $0x28b
40e419:	68 68 2c 40 00       	push   $0x402c68
40e41e:	e8 fa 2a 00 00       	call   0x410f1d
40e423:	53                   	push   %ebx
40e424:	68 a6 02 00 00       	push   $0x2a6
40e429:	68 68 2c 40 00       	push   $0x402c68
40e42e:	e8 ea 2a 00 00       	call   0x410f1d
40e433:	33 db                	xor    %ebx,%ebx
40e435:	8b c3                	mov    %ebx,%eax
40e437:	85 db                	test   %ebx,%ebx
40e439:	79 18                	jns    0x40e453
40e43b:	85 c0                	test   %eax,%eax
40e43d:	74 0a                	je     0x40e449
40e43f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e442:	6a 11                	push   $0x11
40e444:	e8 f2 26 00 00       	call   0x410b3b
40e449:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e44c:	6a 01                	push   $0x1
40e44e:	e8 d6 02 00 00       	call   0x40e729
40e453:	ff 74 24 3c          	push   0x3c(%esp)
40e457:	ff 15 b8 61 41 00    	call   *0x4161b8
40e45d:	56                   	push   %esi
40e45e:	ff 15 b8 61 41 00    	call   *0x4161b8
40e464:	ff 74 24 24          	push   0x24(%esp)
40e468:	ff 15 b8 61 41 00    	call   *0x4161b8
40e46e:	ff 74 24 28          	push   0x28(%esp)
40e472:	ff 15 b8 61 41 00    	call   *0x4161b8
40e478:	6a 00                	push   $0x0
40e47a:	ff 15 b8 61 41 00    	call   *0x4161b8
40e480:	57                   	push   %edi
40e481:	ff 15 b8 61 41 00    	call   *0x4161b8
40e487:	5f                   	pop    %edi
40e488:	5e                   	pop    %esi
40e489:	8b c3                	mov    %ebx,%eax
40e48b:	5b                   	pop    %ebx
40e48c:	8b e5                	mov    %ebp,%esp
40e48e:	5d                   	pop    %ebp
40e48f:	c2 24 00             	ret    $0x24
40e492:	39 7c 24 1c          	cmp    %edi,0x1c(%esp)
40e496:	0f 84 72 ff ff ff    	je     0x40e40e
40e49c:	8b 45 08             	mov    0x8(%ebp),%eax
40e49f:	8d 54 24 20          	lea    0x20(%esp),%edx
40e4a3:	52                   	push   %edx
40e4a4:	8b 40 04             	mov    0x4(%eax),%eax
40e4a7:	50                   	push   %eax
40e4a8:	8b 08                	mov    (%eax),%ecx
40e4aa:	8b 59 2c             	mov    0x2c(%ecx),%ebx
40e4ad:	8b cb                	mov    %ebx,%ecx
40e4af:	ff 15 28 63 41 00    	call   *0x416328
40e4b5:	ff d3                	call   *%ebx
40e4b7:	8b d8                	mov    %eax,%ebx
40e4b9:	85 db                	test   %ebx,%ebx
40e4bb:	79 10                	jns    0x40e4cd
40e4bd:	53                   	push   %ebx
40e4be:	68 48 3d 40 00       	push   $0x403d48
40e4c3:	68 1b 02 00 00       	push   $0x21b
40e4c8:	e9 cb fd ff ff       	jmp    0x40e298
40e4cd:	39 7c 24 20          	cmp    %edi,0x20(%esp)
40e4d1:	0f 84 37 ff ff ff    	je     0x40e40e
40e4d7:	8b 45 08             	mov    0x8(%ebp),%eax
40e4da:	83 ec 0c             	sub    $0xc,%esp
40e4dd:	21 7c 24 40          	and    %edi,0x40(%esp)
40e4e1:	83 c0 68             	add    $0x68,%eax
40e4e4:	8b c8                	mov    %eax,%ecx
40e4e6:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e4ea:	e8 dc 06 00 00       	call   0x40ebcb
40e4ef:	8b d8                	mov    %eax,%ebx
40e4f1:	85 db                	test   %ebx,%ebx
40e4f3:	79 25                	jns    0x40e51a
40e4f5:	51                   	push   %ecx
40e4f6:	51                   	push   %ecx
40e4f7:	e8 13 29 00 00       	call   0x410e0f