46b1e4:	8b de                	mov    %esi,%ebx
46b1e6:	eb 10                	jmp    0x46b1f8
46b1e8:	8b 57 0c             	mov    0xc(%edi),%edx
46b1eb:	8b 5f 08             	mov    0x8(%edi),%ebx
46b1ee:	2b d1                	sub    %ecx,%edx
46b1f0:	2b d9                	sub    %ecx,%ebx
46b1f2:	c1 fa 05             	sar    $0x5,%edx
46b1f5:	c1 fb 05             	sar    $0x5,%ebx
46b1f8:	b8 ff ff ff 07       	mov    $0x7ffffff,%eax
46b1fd:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b200:	2b c3                	sub    %ebx,%eax
46b202:	33 db                	xor    %ebx,%ebx
46b204:	43                   	inc    %ebx
46b205:	3b c3                	cmp    %ebx,%eax
46b207:	0f 82 f9 01 00 00    	jb     0x46b406
46b20d:	85 c9                	test   %ecx,%ecx
46b20f:	75 04                	jne    0x46b215
46b211:	8b c6                	mov    %esi,%eax
46b213:	eb 08                	jmp    0x46b21d
46b215:	8b 47 08             	mov    0x8(%edi),%eax
46b218:	2b c1                	sub    %ecx,%eax
46b21a:	c1 f8 05             	sar    $0x5,%eax
46b21d:	40                   	inc    %eax
46b21e:	3b d0                	cmp    %eax,%edx
46b220:	0f 83 e9 00 00 00    	jae    0x46b30f
46b226:	8b c2                	mov    %edx,%eax
46b228:	d1 e8                	shr    $1,%eax
46b22a:	29 45 ec             	sub    %eax,-0x14(%ebp)
46b22d:	03 c2                	add    %edx,%eax
46b22f:	39 55 ec             	cmp    %edx,-0x14(%ebp)
46b232:	1b d2                	sbb    %edx,%edx
46b234:	f7 d2                	not    %edx
46b236:	23 d0                	and    %eax,%edx
46b238:	89 55 e4             	mov    %edx,-0x1c(%ebp)
46b23b:	85 c9                	test   %ecx,%ecx
46b23d:	75 04                	jne    0x46b243
46b23f:	8b c6                	mov    %esi,%eax
46b241:	eb 08                	jmp    0x46b24b
46b243:	8b 47 08             	mov    0x8(%edi),%eax
46b246:	2b c1                	sub    %ecx,%eax
46b248:	c1 f8 05             	sar    $0x5,%eax
46b24b:	40                   	inc    %eax
46b24c:	3b d0                	cmp    %eax,%edx
46b24e:	73 14                	jae    0x46b264
46b250:	85 c9                	test   %ecx,%ecx
46b252:	75 04                	jne    0x46b258
46b254:	8b d6                	mov    %esi,%edx
46b256:	eb 08                	jmp    0x46b260
46b258:	8b 57 08             	mov    0x8(%edi),%edx
46b25b:	2b d1                	sub    %ecx,%edx
46b25d:	c1 fa 05             	sar    $0x5,%edx
46b260:	42                   	inc    %edx
46b261:	89 55 e4             	mov    %edx,-0x1c(%ebp)
46b264:	52                   	push   %edx
46b265:	e8 0d ff ff ff       	call   0x46b177
46b26a:	88 5d fc             	mov    %bl,-0x4(%ebp)
46b26d:	ff 75 e0             	push   -0x20(%ebp)
46b270:	8b 55 08             	mov    0x8(%ebp),%edx
46b273:	ff 75 e0             	push   -0x20(%ebp)
46b276:	89 45 e8             	mov    %eax,-0x18(%ebp)
46b279:	51                   	push   %ecx
46b27a:	8b 4f 04             	mov    0x4(%edi),%ecx
46b27d:	50                   	push   %eax
46b27e:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b281:	e8 5f 02 00 00       	call   0x46b4e5
46b286:	8b d3                	mov    %ebx,%edx
46b288:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b28b:	8d 48 20             	lea    0x20(%eax),%ecx
46b28e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46b291:	ff 75 e0             	push   -0x20(%ebp)
46b294:	ff 75 e0             	push   -0x20(%ebp)
46b297:	51                   	push   %ecx
46b298:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46b29b:	51                   	push   %ecx
46b29c:	8b c8                	mov    %eax,%ecx
46b29e:	e8 86 01 00 00       	call   0x46b429
46b2a3:	ff 75 e0             	push   -0x20(%ebp)
46b2a6:	8b 45 e0             	mov    -0x20(%ebp),%eax
46b2a9:	ff 75 e0             	push   -0x20(%ebp)
46b2ac:	8b 57 08             	mov    0x8(%edi),%edx
46b2af:	51                   	push   %ecx
46b2b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
46b2b3:	50                   	push   %eax
46b2b4:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b2b7:	e8 29 02 00 00       	call   0x46b4e5
46b2bc:	8b 5f 04             	mov    0x4(%edi),%ebx
46b2bf:	85 db                	test   %ebx,%ebx
46b2c1:	74 2b                	je     0x46b2ee
46b2c3:	8b 47 08             	mov    0x8(%edi),%eax
46b2c6:	8b f0                	mov    %eax,%esi
46b2c8:	2b f3                	sub    %ebx,%esi
46b2ca:	89 45 e0             	mov    %eax,-0x20(%ebp)
46b2cd:	c1 fe 05             	sar    $0x5,%esi
46b2d0:	3b d8                	cmp    %eax,%ebx
46b2d2:	74 12                	je     0x46b2e6
46b2d4:	8b cb                	mov    %ebx,%ecx
46b2d6:	e8 8a 2b fb ff       	call   0x41de65
46b2db:	83 c3 20             	add    $0x20,%ebx
46b2de:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
46b2e1:	75 f1                	jne    0x46b2d4
46b2e3:	8b 5f 04             	mov    0x4(%edi),%ebx
46b2e6:	53                   	push   %ebx
46b2e7:	ff 15 10 74 4a 00    	call   *0x4a7410
46b2ed:	59                   	pop    %ecx
46b2ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46b2f1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
46b2f4:	c1 e0 05             	shl    $0x5,%eax
46b2f7:	03 c1                	add    %ecx,%eax
46b2f9:	89 4f 04             	mov    %ecx,0x4(%edi)
46b2fc:	89 47 0c             	mov    %eax,0xc(%edi)
46b2ff:	8d 46 01             	lea    0x1(%esi),%eax
46b302:	c1 e0 05             	shl    $0x5,%eax
46b305:	03 c1                	add    %ecx,%eax
46b307:	89 47 08             	mov    %eax,0x8(%edi)
46b30a:	e9 e7 00 00 00       	jmp    0x46b3f6
46b30f:	8b 57 08             	mov    0x8(%edi),%edx
46b312:	8b c2                	mov    %edx,%eax
46b314:	8b 4d 08             	mov    0x8(%ebp),%ecx
46b317:	2b c1                	sub    %ecx,%eax
46b319:	ff 75 e0             	push   -0x20(%ebp)
46b31c:	c1 f8 05             	sar    $0x5,%eax
46b31f:	ff 75 e0             	push   -0x20(%ebp)
46b322:	51                   	push   %ecx
46b323:	3b c3                	cmp    %ebx,%eax
46b325:	73 78                	jae    0x46b39f
46b327:	8d 41 20             	lea    0x20(%ecx),%eax
46b32a:	50                   	push   %eax
46b32b:	e8 b5 01 00 00       	call   0x46b4e5
46b330:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
46b334:	8b 4f 08             	mov    0x8(%edi),%ecx
46b337:	8b c1                	mov    %ecx,%eax
46b339:	ff 75 e0             	push   -0x20(%ebp)
46b33c:	2b 45 08             	sub    0x8(%ebp),%eax
46b33f:	ff 75 e0             	push   -0x20(%ebp)
46b342:	c1 f8 05             	sar    $0x5,%eax
46b345:	2b d8                	sub    %eax,%ebx
46b347:	8d 45 c0             	lea    -0x40(%ebp),%eax
46b34a:	51                   	push   %ecx
46b34b:	50                   	push   %eax
46b34c:	8b d3                	mov    %ebx,%edx
46b34e:	e8 d6 00 00 00       	call   0x46b429
46b353:	89 75 fc             	mov    %esi,-0x4(%ebp)
46b356:	8b 5f 08             	mov    0x8(%edi),%ebx
46b359:	8b 75 08             	mov    0x8(%ebp),%esi
46b35c:	8d 43 20             	lea    0x20(%ebx),%eax
46b35f:	89 47 08             	mov    %eax,0x8(%edi)
46b362:	eb 1a                	jmp    0x46b37e
46b364:	8d 45 c0             	lea    -0x40(%ebp),%eax
46b367:	8b ce                	mov    %esi,%ecx
46b369:	50                   	push   %eax
46b36a:	e8 21 2b fb ff       	call   0x41de90
46b36f:	8d 45 d0             	lea    -0x30(%ebp),%eax
46b372:	50                   	push   %eax
46b373:	8d 4e 10             	lea    0x10(%esi),%ecx
46b376:	e8 15 2b fb ff       	call   0x41de90
46b37b:	83 c6 20             	add    $0x20,%esi
46b37e:	3b f3                	cmp    %ebx,%esi
46b380:	75 e2                	jne    0x46b364
46b382:	eb 72                	jmp    0x46b3f6
46b384:	8b 45 e0             	mov    -0x20(%ebp),%eax
46b387:	8b 40 08             	mov    0x8(%eax),%eax
46b38a:	83 c0 20             	add    $0x20,%eax
46b38d:	50                   	push   %eax
46b38e:	8b 45 08             	mov    0x8(%ebp),%eax
46b391:	83 c0 20             	add    $0x20,%eax
46b394:	50                   	push   %eax
46b395:	e8 be fd ff ff       	call   0x46b158
46b39a:	e9 80 00 00 00       	jmp    0x46b41f
46b39f:	8d 5a e0             	lea    -0x20(%edx),%ebx
46b3a2:	52                   	push   %edx
46b3a3:	8b cb                	mov    %ebx,%ecx
46b3a5:	e8 3b 01 00 00       	call   0x46b4e5
46b3aa:	8b 75 08             	mov    0x8(%ebp),%esi
46b3ad:	89 47 08             	mov    %eax,0x8(%edi)
46b3b0:	3b de                	cmp    %esi,%ebx
46b3b2:	74 1f                	je     0x46b3d3
46b3b4:	83 eb 20             	sub    $0x20,%ebx
46b3b7:	53                   	push   %ebx
46b3b8:	8d 4b 20             	lea    0x20(%ebx),%ecx
46b3bb:	e8 d0 2a fb ff       	call   0x41de90
46b3c0:	8d 43 10             	lea    0x10(%ebx),%eax
46b3c3:	50                   	push   %eax
46b3c4:	8d 4b 30             	lea    0x30(%ebx),%ecx
46b3c7:	e8 c4 2a fb ff       	call   0x41de90
46b3cc:	3b de                	cmp    %esi,%ebx
46b3ce:	75 e4                	jne    0x46b3b4
46b3d0:	8b 75 08             	mov    0x8(%ebp),%esi
46b3d3:	8d 7e 20             	lea    0x20(%esi),%edi
46b3d6:	eb 1a                	jmp    0x46b3f2
46b3d8:	8d 45 c0             	lea    -0x40(%ebp),%eax
46b3db:	8b ce                	mov    %esi,%ecx
46b3dd:	50                   	push   %eax
46b3de:	e8 ad 2a fb ff       	call   0x41de90
46b3e3:	8d 45 d0             	lea    -0x30(%ebp),%eax
46b3e6:	50                   	push   %eax
46b3e7:	8d 4e 10             	lea    0x10(%esi),%ecx
46b3ea:	e8 a1 2a fb ff       	call   0x41de90
46b3ef:	83 c6 20             	add    $0x20,%esi
46b3f2:	3b f7                	cmp    %edi,%esi
46b3f4:	75 e2                	jne    0x46b3d8
46b3f6:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46b3f9:	e8 67 2a fb ff       	call   0x41de65
46b3fe:	e8 9e 50 02 00       	call   0x4904a1
46b403:	c2 0c 00             	ret    $0xc
46b406:	e8 27 25 fb ff       	call   0x41d932
46b40b:	ff 75 ec             	push   -0x14(%ebp)
46b40e:	ff 75 e8             	push   -0x18(%ebp)
46b411:	e8 42 fd ff ff       	call   0x46b158
46b416:	51                   	push   %ecx
46b417:	ff 75 e8             	push   -0x18(%ebp)
46b41a:	e8 90 25 fb ff       	call   0x41d9af
46b41f:	33 f6                	xor    %esi,%esi
46b421:	56                   	push   %esi
46b422:	56                   	push   %esi
46b423:	e8 73 50 02 00       	call   0x49049b
46b428:	cc                   	int3
46b429:	6a 0c                	push   $0xc
46b42b:	b8 ff 53 49 00       	mov    $0x4953ff,%eax
46b430:	e8 07 51 02 00       	call   0x49053c
46b435:	8b fa                	mov    %edx,%edi
46b437:	8b f1                	mov    %ecx,%esi
46b439:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46b43c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46b440:	89 75 e8             	mov    %esi,-0x18(%ebp)
46b443:	85 ff                	test   %edi,%edi
46b445:	74 29                	je     0x46b470
46b447:	ff 75 08             	push   0x8(%ebp)
46b44a:	8b ce                	mov    %esi,%ecx
46b44c:	e8 06 f4 ff ff       	call   0x46a857
46b451:	4f                   	dec    %edi
46b452:	83 c6 20             	add    $0x20,%esi
46b455:	89 75 ec             	mov    %esi,-0x14(%ebp)
46b458:	eb e9                	jmp    0x46b443
46b45a:	8b 75 e8             	mov    -0x18(%ebp),%esi
46b45d:	eb 0a                	jmp    0x46b469
46b45f:	8b ce                	mov    %esi,%ecx
46b461:	e8 ff 29 fb ff       	call   0x41de65
46b466:	83 c6 20             	add    $0x20,%esi
46b469:	3b 75 ec             	cmp    -0x14(%ebp),%esi
46b46c:	74 0a                	je     0x46b478
46b46e:	eb ef                	jmp    0x46b45f
46b470:	e8 2c 50 02 00       	call   0x4904a1
46b475:	c2 10 00             	ret    $0x10
46b478:	6a 00                	push   $0x0
46b47a:	6a 00                	push   $0x0
46b47c:	e8 1a 50 02 00       	call   0x49049b
46b481:	cc                   	int3
46b482:	6a 0c                	push   $0xc
46b484:	b8 1a 54 49 00       	mov    $0x49541a,%eax
46b489:	e8 ae 50 02 00       	call   0x49053c
46b48e:	8b f1                	mov    %ecx,%esi
46b490:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46b493:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46b497:	8b 45 08             	mov    0x8(%ebp),%eax
46b49a:	89 75 e8             	mov    %esi,-0x18(%ebp)
46b49d:	3b 45 0c             	cmp    0xc(%ebp),%eax
46b4a0:	74 2f                	je     0x46b4d1
46b4a2:	50                   	push   %eax
46b4a3:	8b ce                	mov    %esi,%ecx
46b4a5:	e8 ad f3 ff ff       	call   0x46a857
46b4aa:	8b 45 08             	mov    0x8(%ebp),%eax
46b4ad:	83 c6 20             	add    $0x20,%esi
46b4b0:	83 c0 20             	add    $0x20,%eax
46b4b3:	89 75 ec             	mov    %esi,-0x14(%ebp)
46b4b6:	89 45 08             	mov    %eax,0x8(%ebp)
46b4b9:	eb e2                	jmp    0x46b49d
46b4bb:	8b 75 e8             	mov    -0x18(%ebp),%esi
46b4be:	eb 0a                	jmp    0x46b4ca
46b4c0:	8b ce                	mov    %esi,%ecx
46b4c2:	e8 9e 29 fb ff       	call   0x41de65
46b4c7:	83 c6 20             	add    $0x20,%esi
46b4ca:	3b 75 ec             	cmp    -0x14(%ebp),%esi
46b4cd:	74 0c                	je     0x46b4db
46b4cf:	eb ef                	jmp    0x46b4c0
46b4d1:	8b c6                	mov    %esi,%eax
46b4d3:	e8 c9 4f 02 00       	call   0x4904a1
46b4d8:	c2 10 00             	ret    $0x10
46b4db:	6a 00                	push   $0x0
46b4dd:	6a 00                	push   $0x0
46b4df:	e8 b7 4f 02 00       	call   0x49049b
46b4e4:	cc                   	int3
46b4e5:	6a 08                	push   $0x8
46b4e7:	b8 35 54 49 00       	mov    $0x495435,%eax
46b4ec:	e8 4b 50 02 00       	call   0x49053c
46b4f1:	8b da                	mov    %edx,%ebx
46b4f3:	8b f9                	mov    %ecx,%edi
46b4f5:	8b 75 08             	mov    0x8(%ebp),%esi
46b4f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46b4fc:	89 75 ec             	mov    %esi,-0x14(%ebp)
46b4ff:	3b fb                	cmp    %ebx,%edi
46b501:	74 29                	je     0x46b52c
46b503:	57                   	push   %edi
46b504:	8b ce                	mov    %esi,%ecx
46b506:	e8 4c f3 ff ff       	call   0x46a857
46b50b:	83 c6 20             	add    $0x20,%esi
46b50e:	83 c7 20             	add    $0x20,%edi
46b511:	89 75 08             	mov    %esi,0x8(%ebp)
46b514:	eb e9                	jmp    0x46b4ff
46b516:	8b 75 ec             	mov    -0x14(%ebp),%esi
46b519:	eb 0a                	jmp    0x46b525
46b51b:	8b ce                	mov    %esi,%ecx
46b51d:	e8 43 29 fb ff       	call   0x41de65
46b522:	83 c6 20             	add    $0x20,%esi
46b525:	3b 75 08             	cmp    0x8(%ebp),%esi
46b528:	74 0c                	je     0x46b536
46b52a:	eb ef                	jmp    0x46b51b
46b52c:	8b c6                	mov    %esi,%eax
46b52e:	e8 6e 4f 02 00       	call   0x4904a1
46b533:	c2 10 00             	ret    $0x10
46b536:	6a 00                	push   $0x0
46b538:	6a 00                	push   $0x0
46b53a:	e8 5c 4f 02 00       	call   0x49049b
46b53f:	cc                   	int3
46b540:	8b 91 88 02 00 00    	mov    0x288(%ecx),%edx
46b546:	85 d2                	test   %edx,%edx
46b548:	75 04                	jne    0x46b54e
46b54a:	33 c0                	xor    %eax,%eax
46b54c:	eb 0b                	jmp    0x46b559
46b54e:	8b 81 8c 02 00 00    	mov    0x28c(%ecx),%eax
46b554:	2b c2                	sub    %edx,%eax
46b556:	c1 f8 03             	sar    $0x3,%eax
46b559:	85 c0                	test   %eax,%eax
46b55b:	0f 95 c0             	setne  %al
46b55e:	c3                   	ret
46b55f:	cc                   	int3
46b560:	b8 e0 59 40 00       	mov    $0x4059e0,%eax
46b565:	c3                   	ret
46b566:	6a 08                	push   $0x8
46b568:	b8 ae 54 49 00       	mov    $0x4954ae,%eax
46b56d:	e8 61 4f 02 00       	call   0x4904d3
46b572:	8b f9                	mov    %ecx,%edi
46b574:	89 7d f0             	mov    %edi,-0x10(%ebp)
46b577:	ff 15 a0 76 4a 00    	call   *0x4a76a0
46b57d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46b581:	8d 4f 40             	lea    0x40(%edi),%ecx
46b584:	c7 07 8c 58 40 00    	movl   $0x40588c,(%edi)
46b58a:	ff 15 20 73 4a 00    	call   *0x4a7320
46b590:	8d b7 9c 00 00 00    	lea    0x9c(%edi),%esi
46b596:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46b59a:	8b ce                	mov    %esi,%ecx
46b59c:	89 75 ec             	mov    %esi,-0x14(%ebp)
46b59f:	ff 15 a0 76 4a 00    	call   *0x4a76a0
46b5a5:	bb c8 57 40 00       	mov    $0x4057c8,%ebx
46b5aa:	89 1e                	mov    %ebx,(%esi)
46b5ac:	8d b7 dc 00 00 00    	lea    0xdc(%edi),%esi
46b5b2:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
46b5b6:	8b ce                	mov    %esi,%ecx
46b5b8:	89 75 ec             	mov    %esi,-0x14(%ebp)
46b5bb:	ff 15 a0 76 4a 00    	call   *0x4a76a0
46b5c1:	89 1e                	mov    %ebx,(%esi)