40a17f:	85 f6                	test   %esi,%esi
40a181:	79 28                	jns    0x40a1ab
40a183:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a188:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a18d:	0f 84 cd 00 00 00    	je     0x40a260
40a193:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a197:	0f 84 c3 00 00 00    	je     0x40a260
40a19d:	56                   	push   %esi
40a19e:	ff 75 fc             	push   -0x4(%ebp)
40a1a1:	ff 70 14             	push   0x14(%eax)
40a1a4:	ff 70 10             	push   0x10(%eax)
40a1a7:	6a 48                	push   $0x48
40a1a9:	eb 92                	jmp    0x40a13d
40a1ab:	8d 47 48             	lea    0x48(%edi),%eax
40a1ae:	50                   	push   %eax
40a1af:	6a 38                	push   $0x38
40a1b1:	8d 8b ac 21 00 00    	lea    0x21ac(%ebx),%ecx
40a1b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a1ba:	5a                   	pop    %edx
40a1bb:	e8 75 e8 ff ff       	call   0x408a35
40a1c0:	8b f0                	mov    %eax,%esi
40a1c2:	85 f6                	test   %esi,%esi
40a1c4:	79 2b                	jns    0x40a1f1
40a1c6:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a1cb:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a1d0:	0f 84 8a 00 00 00    	je     0x40a260
40a1d6:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a1da:	0f 84 80 00 00 00    	je     0x40a260
40a1e0:	56                   	push   %esi
40a1e1:	ff 75 fc             	push   -0x4(%ebp)
40a1e4:	ff 70 14             	push   0x14(%eax)
40a1e7:	ff 70 10             	push   0x10(%eax)
40a1ea:	6a 49                	push   $0x49
40a1ec:	e9 4c ff ff ff       	jmp    0x40a13d
40a1f1:	8d 87 c0 02 00 00    	lea    0x2c0(%edi),%eax
40a1f7:	ba 04 01 00 00       	mov    $0x104,%edx
40a1fc:	50                   	push   %eax
40a1fd:	8d 8b 1c 3d 00 00    	lea    0x3d1c(%ebx),%ecx
40a203:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a206:	e8 2a e8 ff ff       	call   0x408a35
40a20b:	8b f0                	mov    %eax,%esi
40a20d:	85 f6                	test   %esi,%esi
40a20f:	79 23                	jns    0x40a234
40a211:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a216:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a21b:	74 43                	je     0x40a260
40a21d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a221:	74 3d                	je     0x40a260
40a223:	56                   	push   %esi
40a224:	ff 75 fc             	push   -0x4(%ebp)
40a227:	ff 70 14             	push   0x14(%eax)
40a22a:	ff 70 10             	push   0x10(%eax)
40a22d:	6a 4a                	push   $0x4a
40a22f:	e9 09 ff ff ff       	jmp    0x40a13d
40a234:	8d 87 58 0d 00 00    	lea    0xd58(%edi),%eax
40a23a:	50                   	push   %eax
40a23b:	6a 38                	push   $0x38
40a23d:	8d 8b cc 32 00 00    	lea    0x32cc(%ebx),%ecx
40a243:	5a                   	pop    %edx
40a244:	e8 ec e7 ff ff       	call   0x408a35
40a249:	8d 87 c8 0d 00 00    	lea    0xdc8(%edi),%eax
40a24f:	50                   	push   %eax
40a250:	6a 38                	push   $0x38
40a252:	8d 8b 3c 33 00 00    	lea    0x333c(%ebx),%ecx
40a258:	5a                   	pop    %edx
40a259:	e8 d7 e7 ff ff       	call   0x408a35
40a25e:	33 f6                	xor    %esi,%esi
40a260:	85 f6                	test   %esi,%esi
40a262:	79 09                	jns    0x40a26d
40a264:	53                   	push   %ebx
40a265:	e8 d1 da 01 00       	call   0x427d3b
40a26a:	59                   	pop    %ecx
40a26b:	33 db                	xor    %ebx,%ebx
40a26d:	5f                   	pop    %edi
40a26e:	5e                   	pop    %esi
40a26f:	8b c3                	mov    %ebx,%eax
40a271:	5b                   	pop    %ebx
40a272:	c9                   	leave
40a273:	c2 04 00             	ret    $0x4
40a276:	8b ff                	mov    %edi,%edi
40a278:	55                   	push   %ebp
40a279:	8b ec                	mov    %esp,%ebp
40a27b:	51                   	push   %ecx
40a27c:	51                   	push   %ecx
40a27d:	53                   	push   %ebx
40a27e:	56                   	push   %esi
40a27f:	57                   	push   %edi
40a280:	be 9c 9c 00 00       	mov    $0x9c9c,%esi
40a285:	56                   	push   %esi
40a286:	e8 87 da 01 00       	call   0x427d12
40a28b:	8b f8                	mov    %eax,%edi
40a28d:	89 7d f8             	mov    %edi,-0x8(%ebp)
40a290:	59                   	pop    %ecx
40a291:	85 ff                	test   %edi,%edi
40a293:	75 32                	jne    0x40a2c7
40a295:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a29a:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a29f:	0f 84 c4 02 00 00    	je     0x40a569
40a2a5:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a2a9:	0f 84 ba 02 00 00    	je     0x40a569
40a2af:	ff 70 14             	push   0x14(%eax)
40a2b2:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a2b7:	ff 70 10             	push   0x10(%eax)
40a2ba:	6a 4b                	push   $0x4b
40a2bc:	59                   	pop    %ecx
40a2bd:	e8 ee d0 ff ff       	call   0x4073b0
40a2c2:	e9 a2 02 00 00       	jmp    0x40a569
40a2c7:	68 94 9c 00 00       	push   $0x9c94
40a2cc:	8d 47 08             	lea    0x8(%edi),%eax
40a2cf:	6a 00                	push   $0x0
40a2d1:	50                   	push   %eax
40a2d2:	e8 d6 e0 01 00       	call   0x4283ad
40a2d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a2da:	8d 57 2c             	lea    0x2c(%edi),%edx
40a2dd:	89 37                	mov    %esi,(%edi)
40a2df:	83 c4 0c             	add    $0xc,%esp
40a2e2:	c7 47 04 00 00 02 00 	movl   $0x20000,0x4(%edi)
40a2e9:	8b 43 04             	mov    0x4(%ebx),%eax
40a2ec:	89 47 08             	mov    %eax,0x8(%edi)
40a2ef:	8b 43 08             	mov    0x8(%ebx),%eax
40a2f2:	89 47 0c             	mov    %eax,0xc(%edi)
40a2f5:	8b 43 0c             	mov    0xc(%ebx),%eax
40a2f8:	89 47 10             	mov    %eax,0x10(%edi)
40a2fb:	8b 43 10             	mov    0x10(%ebx),%eax
40a2fe:	89 47 14             	mov    %eax,0x14(%edi)
40a301:	8b 43 14             	mov    0x14(%ebx),%eax
40a304:	89 47 18             	mov    %eax,0x18(%edi)
40a307:	8b 43 18             	mov    0x18(%ebx),%eax
40a30a:	89 47 1c             	mov    %eax,0x1c(%edi)
40a30d:	8b 43 1c             	mov    0x1c(%ebx),%eax
40a310:	89 47 20             	mov    %eax,0x20(%edi)
40a313:	8b 43 20             	mov    0x20(%ebx),%eax
40a316:	89 47 24             	mov    %eax,0x24(%edi)
40a319:	8b 43 24             	mov    0x24(%ebx),%eax
40a31c:	89 47 28             	mov    %eax,0x28(%edi)
40a31f:	8d 47 38             	lea    0x38(%edi),%eax
40a322:	8b 4b 28             	mov    0x28(%ebx),%ecx
40a325:	50                   	push   %eax
40a326:	8d 47 30             	lea    0x30(%edi),%eax
40a329:	50                   	push   %eax
40a32a:	e8 94 12 00 00       	call   0x40b5c3
40a32f:	ff 15 48 c2 42 00    	call   *0x42c248
40a335:	0f b7 c0             	movzwl %ax,%eax
40a338:	ba 00 04 00 00       	mov    $0x400,%edx
40a33d:	89 47 40             	mov    %eax,0x40(%edi)
40a340:	8b 43 34             	mov    0x34(%ebx),%eax
40a343:	89 47 44             	mov    %eax,0x44(%edi)
40a346:	8b 43 38             	mov    0x38(%ebx),%eax
40a349:	89 47 48             	mov    %eax,0x48(%edi)
40a34c:	8b 43 3c             	mov    0x3c(%ebx),%eax
40a34f:	83 a7 70 84 00 00 00 	andl   $0x0,0x8470(%edi)
40a356:	f6 47 2c 01          	testb  $0x1,0x2c(%edi)
40a35a:	89 47 4c             	mov    %eax,0x4c(%edi)
40a35d:	8b 43 40             	mov    0x40(%ebx),%eax
40a360:	89 87 94 9c 00 00    	mov    %eax,0x9c94(%edi)
40a366:	8b 43 44             	mov    0x44(%ebx),%eax
40a369:	89 87 98 9c 00 00    	mov    %eax,0x9c98(%edi)
40a36f:	8d 83 a0 09 00 00    	lea    0x9a0(%ebx),%eax
40a375:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a378:	50                   	push   %eax
40a379:	74 3c                	je     0x40a3b7
40a37b:	8d 8f ac 09 00 00    	lea    0x9ac(%edi),%ecx
40a381:	e8 af e6 ff ff       	call   0x408a35
40a386:	8b c8                	mov    %eax,%ecx
40a388:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a38d:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a392:	74 6e                	je     0x40a402
40a394:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a398:	74 68                	je     0x40a402
40a39a:	51                   	push   %ecx
40a39b:	8d 8b a0 09 00 00    	lea    0x9a0(%ebx),%ecx
40a3a1:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a3a6:	51                   	push   %ecx
40a3a7:	ff 70 14             	push   0x14(%eax)
40a3aa:	ff 70 10             	push   0x10(%eax)
40a3ad:	6a 4c                	push   $0x4c
40a3af:	59                   	pop    %ecx
40a3b0:	e8 01 d6 ff ff       	call   0x4079b6
40a3b5:	eb 4b                	jmp    0x40a402
40a3b7:	8d 8f ac 11 00 00    	lea    0x11ac(%edi),%ecx
40a3bd:	e8 73 e6 ff ff       	call   0x408a35
40a3c2:	8b d8                	mov    %eax,%ebx
40a3c4:	85 db                	test   %ebx,%ebx
40a3c6:	79 37                	jns    0x40a3ff
40a3c8:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a3cd:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a3d2:	0f 84 84 01 00 00    	je     0x40a55c
40a3d8:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a3dc:	0f 84 7a 01 00 00    	je     0x40a55c
40a3e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a3e5:	53                   	push   %ebx
40a3e6:	51                   	push   %ecx
40a3e7:	ff 70 14             	push   0x14(%eax)
40a3ea:	ff 70 10             	push   0x10(%eax)
40a3ed:	6a 4d                	push   $0x4d
40a3ef:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a3f4:	59                   	pop    %ecx
40a3f5:	e8 bc d5 ff ff       	call   0x4079b6
40a3fa:	e9 5d 01 00 00       	jmp    0x40a55c
40a3ff:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a402:	8d b3 a0 11 00 00    	lea    0x11a0(%ebx),%esi
40a408:	56                   	push   %esi
40a409:	6a 38                	push   $0x38
40a40b:	8d 8f 64 05 00 00    	lea    0x564(%edi),%ecx
40a411:	5a                   	pop    %edx
40a412:	e8 27 11 00 00       	call   0x40b53e
40a417:	8b d8                	mov    %eax,%ebx
40a419:	85 db                	test   %ebx,%ebx
40a41b:	79 2f                	jns    0x40a44c
40a41d:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a422:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a427:	0f 84 2f 01 00 00    	je     0x40a55c
40a42d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a431:	0f 84 25 01 00 00    	je     0x40a55c
40a437:	53                   	push   %ebx
40a438:	56                   	push   %esi
40a439:	ff 70 14             	push   0x14(%eax)
40a43c:	ff 70 10             	push   0x10(%eax)
40a43f:	6a 4e                	push   $0x4e
40a441:	59                   	pop    %ecx
40a442:	e8 99 e6 ff ff       	call   0x408ae0
40a447:	e9 10 01 00 00       	jmp    0x40a55c
40a44c:	8b 75 08             	mov    0x8(%ebp),%esi
40a44f:	81 c7 a4 07 00 00    	add    $0x7a4,%edi
40a455:	81 c6 98 07 00 00    	add    $0x798,%esi
40a45b:	b9 82 00 00 00       	mov    $0x82,%ecx
40a460:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40a462:	8b 7d f8             	mov    -0x8(%ebp),%edi
40a465:	8b 75 08             	mov    0x8(%ebp),%esi
40a468:	68 04 01 00 00       	push   $0x104
40a46d:	8d 87 58 02 00 00    	lea    0x258(%edi),%eax
40a473:	50                   	push   %eax
40a474:	6a ff                	push   $0xffffffff
40a476:	8d 8e b8 00 00 00    	lea    0xb8(%esi),%ecx
40a47c:	51                   	push   %ecx
40a47d:	6a 00                	push   $0x0
40a47f:	6a 00                	push   $0x0
40a481:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a484:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40a48a:	85 c0                	test   %eax,%eax
40a48c:	75 41                	jne    0x40a4cf
40a48e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a493:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a498:	74 17                	je     0x40a4b1
40a49a:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a49e:	74 11                	je     0x40a4b1
40a4a0:	ff 75 fc             	push   -0x4(%ebp)
40a4a3:	ff 70 14             	push   0x14(%eax)
40a4a6:	ff 70 10             	push   0x10(%eax)
40a4a9:	6a 4f                	push   $0x4f
40a4ab:	59                   	pop    %ecx
40a4ac:	e8 e3 e5 ff ff       	call   0x408a94
40a4b1:	ff 15 18 c2 42 00    	call   *0x42c218
40a4b7:	8b d8                	mov    %eax,%ebx
40a4b9:	85 db                	test   %ebx,%ebx
40a4bb:	0f 8e 9d 00 00 00    	jle    0x40a55e
40a4c1:	0f b7 db             	movzwl %bx,%ebx
40a4c4:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40a4ca:	e9 8d 00 00 00       	jmp    0x40a55c
40a4cf:	6a 38                	push   $0x38
40a4d1:	8d 87 ac 21 00 00    	lea    0x21ac(%edi),%eax
40a4d7:	33 d2                	xor    %edx,%edx
40a4d9:	50                   	push   %eax
40a4da:	6a ff                	push   $0xffffffff
40a4dc:	8d 4e 48             	lea    0x48(%esi),%ecx
40a4df:	88 56 7f             	mov    %dl,0x7f(%esi)
40a4e2:	51                   	push   %ecx
40a4e3:	52                   	push   %edx
40a4e4:	52                   	push   %edx
40a4e5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a4e8:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40a4ee:	85 c0                	test   %eax,%eax
40a4f0:	75 25                	jne    0x40a517
40a4f2:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a4f7:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a4fc:	74 5e                	je     0x40a55c
40a4fe:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a502:	74 58                	je     0x40a55c
40a504:	ff 75 f8             	push   -0x8(%ebp)
40a507:	ff 70 14             	push   0x14(%eax)
40a50a:	ff 70 10             	push   0x10(%eax)
40a50d:	6a 50                	push   $0x50
40a50f:	59                   	pop    %ecx
40a510:	e8 7f e5 ff ff       	call   0x408a94
40a515:	eb 45                	jmp    0x40a55c
40a517:	81 c6 bc 01 00 00    	add    $0x1bc,%esi
40a51d:	8d 8f 1c 3d 00 00    	lea    0x3d1c(%edi),%ecx
40a523:	56                   	push   %esi
40a524:	ba 04 01 00 00       	mov    $0x104,%edx
40a529:	e8 07 e5 ff ff       	call   0x408a35
40a52e:	8b d8                	mov    %eax,%ebx
40a530:	85 db                	test   %ebx,%ebx
40a532:	79 26                	jns    0x40a55a
40a534:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40a53a:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40a540:	74 1a                	je     0x40a55c
40a542:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40a546:	74 14                	je     0x40a55c
40a548:	0f b7 c3             	movzwl %bx,%eax
40a54b:	50                   	push   %eax
40a54c:	56                   	push   %esi
40a54d:	ff 71 14             	push   0x14(%ecx)
40a550:	ff 71 10             	push   0x10(%ecx)
40a553:	6a 51                	push   $0x51
40a555:	e9 95 fe ff ff       	jmp    0x40a3ef
40a55a:	33 db                	xor    %ebx,%ebx
40a55c:	85 db                	test   %ebx,%ebx
40a55e:	79 09                	jns    0x40a569
40a560:	57                   	push   %edi
40a561:	e8 d5 d7 01 00       	call   0x427d3b
40a566:	59                   	pop    %ecx
40a567:	33 ff                	xor    %edi,%edi
40a569:	8b c7                	mov    %edi,%eax
40a56b:	5f                   	pop    %edi
40a56c:	5e                   	pop    %esi
40a56d:	5b                   	pop    %ebx
40a56e:	c9                   	leave
40a56f:	c2 04 00             	ret    $0x4
40a572:	8b ff                	mov    %edi,%edi
40a574:	51                   	push   %ecx
40a575:	8b 81 8c 01 00 00    	mov    0x18c(%ecx),%eax
40a57b:	85 c0                	test   %eax,%eax
40a57d:	75 2c                	jne    0x40a5ab
40a57f:	a1 00 b0 42 00       	mov    0x42b000,%eax
40a584:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40a589:	74 19                	je     0x40a5a4
40a58b:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40a58f:	74 13                	je     0x40a5a4
40a591:	ff 70 14             	push   0x14(%eax)
40a594:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40a599:	ff 70 10             	push   0x10(%eax)
40a59c:	6a 52                	push   $0x52
40a59e:	59                   	pop    %ecx
40a59f:	e8 0c ce ff ff       	call   0x4073b0
40a5a4:	b8 03 80 1b 80       	mov    $0x801b8003,%eax
40a5a9:	59                   	pop    %ecx
40a5aa:	c3                   	ret
40a5ab:	33 c9                	xor    %ecx,%ecx
40a5ad:	39 48 24             	cmp    %ecx,0x24(%eax)
40a5b0:	74 13                	je     0x40a5c5
40a5b2:	39 48 18             	cmp    %ecx,0x18(%eax)
40a5b5:	74 0e                	je     0x40a5c5
40a5b7:	39 48 20             	cmp    %ecx,0x20(%eax)
40a5ba:	74 09                	je     0x40a5c5
40a5bc:	39 48 28             	cmp    %ecx,0x28(%eax)
40a5bf:	74 04                	je     0x40a5c5
40a5c1:	33 c0                	xor    %eax,%eax
40a5c3:	59                   	pop    %ecx
40a5c4:	c3                   	ret
40a5c5:	a1 00 b0 42 00       	mov    0x42b000,%eax