46b039:	ff 15 44 d6 48 00    	call   *0x48d644
46b03f:	6a 34                	push   $0x34
46b041:	89 45 0c             	mov    %eax,0xc(%ebp)
46b044:	33 ff                	xor    %edi,%edi
46b046:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b049:	57                   	push   %edi
46b04a:	50                   	push   %eax
46b04b:	e8 00 5d fb ff       	call   0x420d50
46b050:	8b 45 08             	mov    0x8(%ebp),%eax
46b053:	8b 75 f8             	mov    -0x8(%ebp),%esi
46b056:	83 c4 0c             	add    $0xc,%esp
46b059:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
46b05f:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
46b065:	50                   	push   %eax
46b066:	6a ff                	push   $0xffffffff
46b068:	68 53 10 00 00       	push   $0x1053
46b06d:	ff 76 34             	push   0x34(%esi)
46b070:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
46b077:	00 00 00
46b07a:	ff 15 70 d6 48 00    	call   *0x48d670
46b080:	89 45 a0             	mov    %eax,-0x60(%ebp)
46b083:	83 f8 ff             	cmp    $0xffffffff,%eax
46b086:	0f 84 49 01 00 00    	je     0x46b1d5
46b08c:	f6 45 0c 04          	testb  $0x4,0xc(%ebp)
46b090:	74 45                	je     0x46b0d7
46b092:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
46b096:	74 3f                	je     0x46b0d7
46b098:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b09b:	50                   	push   %eax
46b09c:	57                   	push   %edi
46b09d:	68 4b 10 00 00       	push   $0x104b
46b0a2:	ff 76 34             	push   0x34(%esi)
46b0a5:	c7 45 9c 08 00 00 00 	movl   $0x8,-0x64(%ebp)
46b0ac:	c7 45 ac 00 f0 00 00 	movl   $0xf000,-0x54(%ebp)
46b0b3:	ff 15 70 d6 48 00    	call   *0x48d670
46b0b9:	85 c0                	test   %eax,%eax
46b0bb:	0f 84 14 01 00 00    	je     0x46b1d5
46b0c1:	8b 45 a8             	mov    -0x58(%ebp),%eax
46b0c4:	c1 e8 0c             	shr    $0xc,%eax
46b0c7:	48                   	dec    %eax
46b0c8:	f7 d8                	neg    %eax
46b0ca:	1b c0                	sbb    %eax,%eax
46b0cc:	83 e0 fd             	and    $0xfffffffd,%eax
46b0cf:	83 c0 04             	add    $0x4,%eax
46b0d2:	e9 fc 00 00 00       	jmp    0x46b1d3
46b0d7:	68 00 20 00 00       	push   $0x2000
46b0dc:	e8 09 44 fb ff       	call   0x41f4ea
46b0e1:	8b d8                	mov    %eax,%ebx
46b0e3:	59                   	pop    %ecx
46b0e4:	8b d3                	mov    %ebx,%edx
46b0e6:	33 c9                	xor    %ecx,%ecx
46b0e8:	66 3b 8e 94 00 00 00 	cmp    0x94(%esi),%cx
46b0ef:	89 55 10             	mov    %edx,0x10(%ebp)
46b0f2:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
46b0f9:	c7 45 b4 ff 0f 00 00 	movl   $0xfff,-0x4c(%ebp)
46b100:	8b c7                	mov    %edi,%eax
46b102:	eb 53                	jmp    0x46b157
46b104:	ff 15 70 d6 48 00    	call   *0x48d670
46b10a:	ff 75 10             	push   0x10(%ebp)
46b10d:	e8 c9 5b fb ff       	call   0x420cdb
46b112:	59                   	pop    %ecx
46b113:	b9 fe 0f 00 00       	mov    $0xffe,%ecx
46b118:	2b c8                	sub    %eax,%ecx
46b11a:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
46b11d:	85 c9                	test   %ecx,%ecx
46b11f:	0f 8e 97 fb ff ff    	jle    0x46acbc
46b125:	53                   	push   %ebx
46b126:	e8 b0 5b fb ff       	call   0x420cdb
46b12b:	59                   	pop    %ecx
46b12c:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
46b12f:	66 a1 3c 16 4c 00    	mov    0x4c163c,%ax
46b135:	66 89 01             	mov    %ax,(%ecx)
46b138:	33 c0                	xor    %eax,%eax
46b13a:	51                   	push   %ecx
46b13b:	66 89 41 02          	mov    %ax,0x2(%ecx)
46b13f:	ff 15 44 d5 48 00    	call   *0x48d544
46b145:	0f bf 8e 94 00 00 00 	movswl 0x94(%esi),%ecx
46b14c:	8b d0                	mov    %eax,%edx
46b14e:	89 45 10             	mov    %eax,0x10(%ebp)
46b151:	8b 45 08             	mov    0x8(%ebp),%eax
46b154:	40                   	inc    %eax
46b155:	3b c1                	cmp    %ecx,%eax
46b157:	89 45 08             	mov    %eax,0x8(%ebp)
46b15a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
46b15d:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b160:	50                   	push   %eax
46b161:	57                   	push   %edi
46b162:	68 4b 10 00 00       	push   $0x104b
46b167:	ff 76 34             	push   0x34(%esi)
46b16a:	89 55 b0             	mov    %edx,-0x50(%ebp)
46b16d:	7c 95                	jl     0x46b104
46b16f:	ff 15 70 d6 48 00    	call   *0x48d670
46b175:	e9 42 fb ff ff       	jmp    0x46acbc
46b17a:	6a 02                	push   $0x2
46b17c:	6a ff                	push   $0xffffffff
46b17e:	68 0c 10 00 00       	push   $0x100c
46b183:	56                   	push   %esi
46b184:	8b 35 70 d6 48 00    	mov    0x48d670,%esi
46b18a:	ff d6                	call   *%esi
46b18c:	6a 34                	push   $0x34
46b18e:	89 03                	mov    %eax,(%ebx)
46b190:	33 ff                	xor    %edi,%edi
46b192:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b195:	57                   	push   %edi
46b196:	50                   	push   %eax
46b197:	e8 b4 5b fb ff       	call   0x420d50
46b19c:	8b 03                	mov    (%ebx),%eax
46b19e:	83 c4 0c             	add    $0xc,%esp
46b1a1:	89 45 a0             	mov    %eax,-0x60(%ebp)
46b1a4:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b1a7:	50                   	push   %eax
46b1a8:	57                   	push   %edi
46b1a9:	68 4b 10 00 00       	push   $0x104b
46b1ae:	ff 75 0c             	push   0xc(%ebp)
46b1b1:	c7 45 9c 04 00 00 00 	movl   $0x4,-0x64(%ebp)
46b1b8:	ff d6                	call   *%esi
46b1ba:	f7 d8                	neg    %eax
46b1bc:	1b c0                	sbb    %eax,%eax
46b1be:	23 45 bc             	and    -0x44(%ebp),%eax
46b1c1:	eb 10                	jmp    0x46b1d3
46b1c3:	33 ff                	xor    %edi,%edi
46b1c5:	57                   	push   %edi
46b1c6:	57                   	push   %edi
46b1c7:	68 00 04 00 00       	push   $0x400
46b1cc:	56                   	push   %esi
46b1cd:	ff 15 70 d6 48 00    	call   *0x48d670
46b1d3:	89 03                	mov    %eax,(%ebx)
46b1d5:	33 c0                	xor    %eax,%eax
46b1d7:	5f                   	pop    %edi
46b1d8:	5e                   	pop    %esi
46b1d9:	5b                   	pop    %ebx
46b1da:	c9                   	leave
46b1db:	c2 0c 00             	ret    $0xc
46b1de:	55                   	push   %ebp
46b1df:	8b ec                	mov    %esp,%ebp
46b1e1:	83 ec 18             	sub    $0x18,%esp
46b1e4:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b1e7:	50                   	push   %eax
46b1e8:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b1eb:	50                   	push   %eax
46b1ec:	ff 75 08             	push   0x8(%ebp)
46b1ef:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46b1f4:	e8 05 22 fa ff       	call   0x40d3fe
46b1f9:	84 c0                	test   %al,%al
46b1fb:	75 04                	jne    0x46b201
46b1fd:	33 c0                	xor    %eax,%eax
46b1ff:	eb 71                	jmp    0x46b272
46b201:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46b204:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b209:	56                   	push   %esi
46b20a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46b20d:	33 f6                	xor    %esi,%esi
46b20f:	8b 00                	mov    (%eax),%eax
46b211:	8b 08                	mov    (%eax),%ecx
46b213:	8b 45 14             	mov    0x14(%ebp),%eax
46b216:	2b c6                	sub    %esi,%eax
46b218:	74 43                	je     0x46b25d
46b21a:	48                   	dec    %eax
46b21b:	74 38                	je     0x46b255
46b21d:	48                   	dec    %eax
46b21e:	75 4f                	jne    0x46b26f
46b220:	8d 45 e8             	lea    -0x18(%ebp),%eax
46b223:	50                   	push   %eax
46b224:	ff 75 10             	push   0x10(%ebp)
46b227:	ff 75 0c             	push   0xc(%ebp)
46b22a:	51                   	push   %ecx
46b22b:	ff 15 70 d6 48 00    	call   *0x48d670
46b231:	8b 55 18             	mov    0x18(%ebp),%edx
46b234:	8b 4d e8             	mov    -0x18(%ebp),%ecx
46b237:	89 0a                	mov    %ecx,(%edx)
46b239:	8b 55 1c             	mov    0x1c(%ebp),%edx
46b23c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46b23f:	89 0a                	mov    %ecx,(%edx)
46b241:	8b 55 20             	mov    0x20(%ebp),%edx
46b244:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46b247:	89 0a                	mov    %ecx,(%edx)
46b249:	8b 4d 24             	mov    0x24(%ebp),%ecx
46b24c:	8b f0                	mov    %eax,%esi
46b24e:	8b 45 f4             	mov    -0xc(%ebp),%eax
46b251:	89 01                	mov    %eax,(%ecx)
46b253:	eb 1a                	jmp    0x46b26f
46b255:	ff 75 28             	push   0x28(%ebp)
46b258:	ff 75 10             	push   0x10(%ebp)
46b25b:	eb 06                	jmp    0x46b263
46b25d:	ff 75 1c             	push   0x1c(%ebp)
46b260:	ff 75 18             	push   0x18(%ebp)
46b263:	ff 75 0c             	push   0xc(%ebp)
46b266:	51                   	push   %ecx
46b267:	ff 15 70 d6 48 00    	call   *0x48d670
46b26d:	8b f0                	mov    %eax,%esi
46b26f:	8b c6                	mov    %esi,%eax
46b271:	5e                   	pop    %esi
46b272:	c9                   	leave
46b273:	c2 24 00             	ret    $0x24
46b276:	55                   	push   %ebp
46b277:	8b ec                	mov    %esp,%ebp
46b279:	51                   	push   %ecx
46b27a:	51                   	push   %ecx
46b27b:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b27e:	50                   	push   %eax
46b27f:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b282:	50                   	push   %eax
46b283:	ff 75 08             	push   0x8(%ebp)
46b286:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46b28b:	e8 6e 21 fa ff       	call   0x40d3fe
46b290:	84 c0                	test   %al,%al
46b292:	75 04                	jne    0x46b298
46b294:	33 c0                	xor    %eax,%eax
46b296:	eb 3d                	jmp    0x46b2d5
46b298:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b29d:	56                   	push   %esi
46b29e:	8b 75 fc             	mov    -0x4(%ebp),%esi
46b2a1:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46b2a4:	8b 08                	mov    (%eax),%ecx
46b2a6:	80 b9 90 00 00 00 13 	cmpb   $0x13,0x90(%ecx)
46b2ad:	74 04                	je     0x46b2b3
46b2af:	33 c0                	xor    %eax,%eax
46b2b1:	eb 21                	jmp    0x46b2d4
46b2b3:	ff 75 0c             	push   0xc(%ebp)
46b2b6:	83 c1 24             	add    $0x24,%ecx
46b2b9:	e8 2f bc f9 ff       	call   0x406eed
46b2be:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b2c3:	8b 04 b0             	mov    (%eax,%esi,4),%eax
46b2c6:	8b 08                	mov    (%eax),%ecx
46b2c8:	8a 45 10             	mov    0x10(%ebp),%al
46b2cb:	88 81 98 00 00 00    	mov    %al,0x98(%ecx)
46b2d1:	33 c0                	xor    %eax,%eax
46b2d3:	40                   	inc    %eax
46b2d4:	5e                   	pop    %esi
46b2d5:	c9                   	leave
46b2d6:	c2 0c 00             	ret    $0xc
46b2d9:	55                   	push   %ebp
46b2da:	8b ec                	mov    %esp,%ebp
46b2dc:	51                   	push   %ecx
46b2dd:	51                   	push   %ecx
46b2de:	56                   	push   %esi
46b2df:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b2e2:	50                   	push   %eax
46b2e3:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b2e6:	50                   	push   %eax
46b2e7:	ff 75 08             	push   0x8(%ebp)
46b2ea:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46b2ef:	e8 0a 21 fa ff       	call   0x40d3fe
46b2f4:	84 c0                	test   %al,%al
46b2f6:	74 31                	je     0x46b329
46b2f8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46b2fb:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b300:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46b303:	8b 08                	mov    (%eax),%ecx
46b305:	80 b9 90 00 00 00 15 	cmpb   $0x15,0x90(%ecx)
46b30c:	75 1b                	jne    0x46b329
46b30e:	8d 45 0c             	lea    0xc(%ebp),%eax
46b311:	50                   	push   %eax
46b312:	83 c1 70             	add    $0x70,%ecx
46b315:	e8 94 29 fa ff       	call   0x40dcae
46b31a:	6a 00                	push   $0x0
46b31c:	ff 75 08             	push   0x8(%ebp)
46b31f:	e8 3e 2d 00 00       	call   0x46e062
46b324:	0f b6 f0             	movzbl %al,%esi
46b327:	eb 02                	jmp    0x46b32b
46b329:	33 f6                	xor    %esi,%esi
46b32b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
46b32e:	e8 ed 78 fa ff       	call   0x412c20
46b333:	8b c6                	mov    %esi,%eax
46b335:	5e                   	pop    %esi
46b336:	c9                   	leave
46b337:	c2 14 00             	ret    $0x14
46b33a:	55                   	push   %ebp
46b33b:	8b ec                	mov    %esp,%ebp
46b33d:	83 ec 0c             	sub    $0xc,%esp
46b340:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b343:	53                   	push   %ebx
46b344:	56                   	push   %esi
46b345:	57                   	push   %edi
46b346:	50                   	push   %eax
46b347:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b34a:	50                   	push   %eax
46b34b:	ff 75 08             	push   0x8(%ebp)
46b34e:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46b353:	e8 a6 20 fa ff       	call   0x40d3fe
46b358:	84 c0                	test   %al,%al
46b35a:	75 07                	jne    0x46b363
46b35c:	33 c0                	xor    %eax,%eax
46b35e:	e9 da 01 00 00       	jmp    0x46b53d
46b363:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46b366:	a1 88 16 4c 00       	mov    0x4c1688,%eax
46b36b:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46b36e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46b371:	8b 00                	mov    (%eax),%eax
46b373:	89 45 fc             	mov    %eax,-0x4(%ebp)
46b376:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b37b:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46b37e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
46b381:	8b 38                	mov    (%eax),%edi
46b383:	8b 37                	mov    (%edi),%esi
46b385:	8a 9f 90 00 00 00    	mov    0x90(%edi),%bl
46b38b:	89 75 f8             	mov    %esi,-0x8(%ebp)
46b38e:	88 5d 0b             	mov    %bl,0xb(%ebp)
46b391:	e8 a7 f3 fa ff       	call   0x41a73d
46b396:	83 7f 48 00          	cmpl   $0x0,0x48(%edi)
46b39a:	7c 08                	jl     0x46b3a4
46b39c:	ff 77 48             	push   0x48(%edi)
46b39f:	e8 9a 1d 00 00       	call   0x46d13e
46b3a4:	0f b6 c3             	movzbl %bl,%eax
46b3a7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46b3aa:	83 f8 12             	cmp    $0x12,%eax
46b3ad:	0f 8f d5 00 00 00    	jg     0x46b488
46b3b3:	0f 84 8c 00 00 00    	je     0x46b445
46b3b9:	85 c0                	test   %eax,%eax
46b3bb:	74 78                	je     0x46b435
46b3bd:	7e 9d                	jle    0x46b35c
46b3bf:	83 f8 04             	cmp    $0x4,%eax
46b3c2:	0f 8e 06 01 00 00    	jle    0x46b4ce
46b3c8:	83 f8 08             	cmp    $0x8,%eax
46b3cb:	74 48                	je     0x46b415
46b3cd:	83 f8 10             	cmp    $0x10,%eax
46b3d0:	74 2d                	je     0x46b3ff
46b3d2:	83 f8 11             	cmp    $0x11,%eax
46b3d5:	75 85                	jne    0x46b35c
46b3d7:	8b 45 0c             	mov    0xc(%ebp),%eax
46b3da:	85 c0                	test   %eax,%eax
46b3dc:	0f 88 7a ff ff ff    	js     0x46b35c
46b3e2:	6a 01                	push   $0x1
46b3e4:	50                   	push   %eax
46b3e5:	89 47 48             	mov    %eax,0x48(%edi)
46b3e8:	e8 63 fc fa ff       	call   0x41b050
46b3ed:	6a 01                	push   $0x1
46b3ef:	6a 00                	push   $0x0
46b3f1:	ff 77 34             	push   0x34(%edi)
46b3f4:	ff 15 40 d6 48 00    	call   *0x48d640
46b3fa:	e9 27 01 00 00       	jmp    0x46b526
46b3ff:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46b403:	0f 8c 53 ff ff ff    	jl     0x46b35c
46b409:	ff 75 0c             	push   0xc(%ebp)
46b40c:	6a 00                	push   $0x0
46b40e:	68 1d 11 00 00       	push   $0x111d
46b413:	eb 14                	jmp    0x46b429
46b415:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
46b419:	0f 8c 3d ff ff ff    	jl     0x46b35c
46b41f:	ff 75 0c             	push   0xc(%ebp)
46b422:	6a 00                	push   $0x0
46b424:	68 01 20 00 00       	push   $0x2001
46b429:	56                   	push   %esi
46b42a:	ff 15 70 d6 48 00    	call   *0x48d670
46b430:	e9 f1 00 00 00       	jmp    0x46b526
46b435:	8b 45 0c             	mov    0xc(%ebp),%eax
46b438:	85 c0                	test   %eax,%eax
46b43a:	0f 89 b0 00 00 00    	jns    0x46b4f0
46b440:	e9 17 ff ff ff       	jmp    0x46b35c
46b445:	8b 45 0c             	mov    0xc(%ebp),%eax