55e0ef:	cc                   	int3
55e0f0:	55                   	push   %ebp
55e0f1:	8b ec                	mov    %esp,%ebp
55e0f3:	83 ec 4c             	sub    $0x4c,%esp
55e0f6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55e0fb:	33 c5                	xor    %ebp,%eax
55e0fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
55e100:	8b 45 14             	mov    0x14(%ebp),%eax
55e103:	53                   	push   %ebx
55e104:	89 45 d0             	mov    %eax,-0x30(%ebp)
55e107:	33 db                	xor    %ebx,%ebx
55e109:	8b 45 18             	mov    0x18(%ebp),%eax
55e10c:	56                   	push   %esi
55e10d:	89 45 c8             	mov    %eax,-0x38(%ebp)
55e110:	8b 45 20             	mov    0x20(%ebp),%eax
55e113:	57                   	push   %edi
55e114:	8b 7d 08             	mov    0x8(%ebp),%edi
55e117:	89 45 b8             	mov    %eax,-0x48(%ebp)
55e11a:	89 7d b4             	mov    %edi,-0x4c(%ebp)
55e11d:	89 5d dc             	mov    %ebx,-0x24(%ebp)
55e120:	0f b7 4f 42          	movzwl 0x42(%edi),%ecx
55e124:	8b c1                	mov    %ecx,%eax
55e126:	89 5d cc             	mov    %ebx,-0x34(%ebp)
55e129:	83 e0 01             	and    $0x1,%eax
55e12c:	89 5d c0             	mov    %ebx,-0x40(%ebp)
55e12f:	c1 e0 10             	shl    $0x10,%eax
55e132:	81 e1 00 fe 00 00    	and    $0xfe00,%ecx
55e138:	03 c1                	add    %ecx,%eax
55e13a:	8b 4f 44             	mov    0x44(%edi),%ecx
55e13d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
55e140:	8b 47 20             	mov    0x20(%edi),%eax
55e143:	89 4d e0             	mov    %ecx,-0x20(%ebp)
55e146:	8b 00                	mov    (%eax),%eax
55e148:	83 c0 60             	add    $0x60,%eax
55e14b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
55e14e:	39 08                	cmp    %ecx,(%eax)
55e150:	0f 83 a8 02 00 00    	jae    0x55e3fe
55e156:	8b 57 48             	mov    0x48(%edi),%edx
55e159:	8d 73 01             	lea    0x1(%ebx),%esi
55e15c:	83 c0 08             	add    $0x8,%eax
55e15f:	89 55 bc             	mov    %edx,-0x44(%ebp)
55e162:	89 45 d8             	mov    %eax,-0x28(%ebp)
55e165:	8b 10                	mov    (%eax),%edx
55e167:	89 55 c4             	mov    %edx,-0x3c(%ebp)
55e16a:	3b ca                	cmp    %edx,%ecx
55e16c:	76 4f                	jbe    0x55e1bd
55e16e:	6a 01                	push   $0x1
55e170:	8d 46 03             	lea    0x3(%esi),%eax
55e173:	50                   	push   %eax
55e174:	ff 75 c8             	push   -0x38(%ebp)
55e177:	ff 75 d0             	push   -0x30(%ebp)
55e17a:	57                   	push   %edi
55e17b:	e8 20 ff ff ff       	call   0x55e0a0
55e180:	8b d8                	mov    %eax,%ebx
55e182:	83 c4 14             	add    $0x14,%esp
55e185:	85 db                	test   %ebx,%ebx
55e187:	0f 85 a5 01 00 00    	jne    0x55e332
55e18d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
55e190:	83 c8 ff             	or     $0xffffffff,%eax
55e193:	83 fe 01             	cmp    $0x1,%esi
55e196:	0f 44 45 e0          	cmove  -0x20(%ebp),%eax
55e19a:	89 01                	mov    %eax,(%ecx)
55e19c:	38 5f 2b             	cmp    %bl,0x2b(%edi)
55e19f:	75 16                	jne    0x55e1b7
55e1a1:	8b 47 04             	mov    0x4(%edi),%eax
55e1a4:	8d 56 03             	lea    0x3(%esi),%edx
55e1a7:	6a 09                	push   $0x9
55e1a9:	6a 01                	push   $0x1
55e1ab:	52                   	push   %edx
55e1ac:	8b 08                	mov    (%eax),%ecx
55e1ae:	50                   	push   %eax
55e1af:	8b 41 38             	mov    0x38(%ecx),%eax
55e1b2:	ff d0                	call   *%eax
55e1b4:	83 c4 10             	add    $0x10,%esp
55e1b7:	8b 4d e0             	mov    -0x20(%ebp),%ecx
55e1ba:	8b 45 d8             	mov    -0x28(%ebp),%eax
55e1bd:	46                   	inc    %esi
55e1be:	83 c0 04             	add    $0x4,%eax
55e1c1:	89 45 d8             	mov    %eax,-0x28(%ebp)
55e1c4:	83 fe 05             	cmp    $0x5,%esi
55e1c7:	7c 9c                	jl     0x55e165
55e1c9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55e1cc:	39 08                	cmp    %ecx,(%eax)
55e1ce:	0f 83 14 02 00 00    	jae    0x55e3e8
55e1d4:	8b 00                	mov    (%eax),%eax
55e1d6:	8d 4d dc             	lea    -0x24(%ebp),%ecx
55e1d9:	51                   	push   %ecx
55e1da:	50                   	push   %eax
55e1db:	57                   	push   %edi
55e1dc:	e8 ff 0f 00 00       	call   0x55f1e0
55e1e1:	83 c4 0c             	add    $0xc,%esp
55e1e4:	8b d8                	mov    %eax,%ebx
55e1e6:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
55e1ea:	0f 84 f5 01 00 00    	je     0x55e3e5
55e1f0:	6a 01                	push   $0x1
55e1f2:	6a 03                	push   $0x3
55e1f4:	ff 75 c8             	push   -0x38(%ebp)
55e1f7:	ff 75 d0             	push   -0x30(%ebp)
55e1fa:	57                   	push   %edi
55e1fb:	e8 a0 fe ff ff       	call   0x55e0a0
55e200:	8b d8                	mov    %eax,%ebx
55e202:	83 c4 14             	add    $0x14,%esp
55e205:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55e208:	85 db                	test   %ebx,%ebx
55e20a:	0f 85 d8 01 00 00    	jne    0x55e3e8
55e210:	8b 55 1c             	mov    0x1c(%ebp),%edx
55e213:	8b 08                	mov    (%eax),%ecx
55e215:	8b 75 e0             	mov    -0x20(%ebp),%esi
55e218:	c1 fa 02             	sar    $0x2,%edx
55e21b:	83 e2 03             	and    $0x3,%edx
55e21e:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
55e221:	89 70 20             	mov    %esi,0x20(%eax)
55e224:	8b 4f 08             	mov    0x8(%edi),%ecx
55e227:	89 55 1c             	mov    %edx,0x1c(%ebp)
55e22a:	74 16                	je     0x55e242
55e22c:	8b 01                	mov    (%ecx),%eax
55e22e:	52                   	push   %edx
55e22f:	51                   	push   %ecx
55e230:	8b 40 14             	mov    0x14(%eax),%eax
55e233:	ff d0                	call   *%eax
55e235:	8b d8                	mov    %eax,%ebx
55e237:	83 c4 08             	add    $0x8,%esp
55e23a:	85 db                	test   %ebx,%ebx
55e23c:	0f 85 86 01 00 00    	jne    0x55e3c8
55e242:	8b 45 d4             	mov    -0x2c(%ebp),%eax
55e245:	f7 65 bc             	mull   -0x44(%ebp)
55e248:	89 45 f4             	mov    %eax,-0xc(%ebp)
55e24b:	8b 47 04             	mov    0x4(%edi),%eax
55e24e:	89 55 f8             	mov    %edx,-0x8(%ebp)
55e251:	8d 55 e8             	lea    -0x18(%ebp),%edx
55e254:	52                   	push   %edx
55e255:	50                   	push   %eax
55e256:	8b 08                	mov    (%eax),%ecx
55e258:	8b 41 18             	mov    0x18(%ecx),%eax
55e25b:	ff d0                	call   *%eax
55e25d:	8b d8                	mov    %eax,%ebx
55e25f:	83 c4 08             	add    $0x8,%esp
55e262:	85 db                	test   %ebx,%ebx
55e264:	0f 85 5e 01 00 00    	jne    0x55e3c8
55e26a:	8b 45 ec             	mov    -0x14(%ebp),%eax
55e26d:	3b 45 f8             	cmp    -0x8(%ebp),%eax
55e270:	7f 22                	jg     0x55e294
55e272:	7c 08                	jl     0x55e27c
55e274:	8b 45 e8             	mov    -0x18(%ebp),%eax
55e277:	3b 45 f4             	cmp    -0xc(%ebp),%eax
55e27a:	73 18                	jae    0x55e294
55e27c:	8b 47 04             	mov    0x4(%edi),%eax
55e27f:	8b 08                	mov    (%eax),%ecx
55e281:	85 c9                	test   %ecx,%ecx
55e283:	74 0f                	je     0x55e294
55e285:	8d 55 f4             	lea    -0xc(%ebp),%edx
55e288:	52                   	push   %edx
55e289:	6a 05                	push   $0x5
55e28b:	50                   	push   %eax
55e28c:	8b 41 28             	mov    0x28(%ecx),%eax
55e28f:	ff d0                	call   *%eax
55e291:	83 c4 0c             	add    $0xc,%esp
55e294:	8d 45 c0             	lea    -0x40(%ebp),%eax
55e297:	50                   	push   %eax
55e298:	8d 45 cc             	lea    -0x34(%ebp),%eax
55e29b:	50                   	push   %eax
55e29c:	ff 75 dc             	push   -0x24(%ebp)
55e29f:	e8 dc 11 00 00       	call   0x55f480
55e2a4:	83 c4 0c             	add    $0xc,%esp
55e2a7:	85 c0                	test   %eax,%eax
55e2a9:	0f 85 b1 00 00 00    	jne    0x55e360
55e2af:	8b 45 0c             	mov    0xc(%ebp),%eax
55e2b2:	83 b8 10 01 00 00 00 	cmpl   $0x0,0x110(%eax)
55e2b9:	0f 85 8e 00 00 00    	jne    0x55e34d
55e2bf:	8b 4d c0             	mov    -0x40(%ebp),%ecx
55e2c2:	3b 4d c4             	cmp    -0x3c(%ebp),%ecx
55e2c5:	76 cd                	jbe    0x55e294
55e2c7:	3b ce                	cmp    %esi,%ecx
55e2c9:	77 c9                	ja     0x55e294
55e2cb:	8b 45 bc             	mov    -0x44(%ebp),%eax
55e2ce:	39 45 cc             	cmp    %eax,-0x34(%ebp)
55e2d1:	77 c1                	ja     0x55e294
55e2d3:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
55e2d6:	49                   	dec    %ecx
55e2d7:	8b 77 08             	mov    0x8(%edi),%esi
55e2da:	8d 43 18             	lea    0x18(%ebx),%eax
55e2dd:	8b 3e                	mov    (%esi),%edi
55e2df:	f7 e1                	mul    %ecx
55e2e1:	83 c0 38             	add    $0x38,%eax
55e2e4:	83 d2 00             	adc    $0x0,%edx
55e2e7:	52                   	push   %edx
55e2e8:	50                   	push   %eax
55e2e9:	8b 47 08             	mov    0x8(%edi),%eax
55e2ec:	53                   	push   %ebx
55e2ed:	ff 75 b8             	push   -0x48(%ebp)
55e2f0:	56                   	push   %esi
55e2f1:	ff d0                	call   *%eax
55e2f3:	8b 7d b4             	mov    -0x4c(%ebp),%edi
55e2f6:	8b d8                	mov    %eax,%ebx
55e2f8:	83 c4 14             	add    $0x14,%esp
55e2fb:	85 db                	test   %ebx,%ebx
55e2fd:	0f 85 c5 00 00 00    	jne    0x55e3c8
55e303:	8b 45 cc             	mov    -0x34(%ebp),%eax
55e306:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
55e309:	48                   	dec    %eax
55e30a:	8b 4f 04             	mov    0x4(%edi),%ecx
55e30d:	f7 e3                	mul    %ebx
55e30f:	8b 31                	mov    (%ecx),%esi
55e311:	52                   	push   %edx
55e312:	50                   	push   %eax
55e313:	53                   	push   %ebx
55e314:	ff 75 b8             	push   -0x48(%ebp)
55e317:	8b 46 0c             	mov    0xc(%esi),%eax
55e31a:	51                   	push   %ecx
55e31b:	ff d0                	call   *%eax
55e31d:	8b d8                	mov    %eax,%ebx
55e31f:	83 c4 14             	add    $0x14,%esp
55e322:	85 db                	test   %ebx,%ebx
55e324:	0f 85 9e 00 00 00    	jne    0x55e3c8
55e32a:	8b 75 e0             	mov    -0x20(%ebp),%esi
55e32d:	e9 62 ff ff ff       	jmp    0x55e294
55e332:	83 fb 05             	cmp    $0x5,%ebx
55e335:	0f 85 9b 01 00 00    	jne    0x55e4d6
55e33b:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
55e33e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
55e341:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
55e348:	e9 6d fe ff ff       	jmp    0x55e1ba
55e34d:	33 db                	xor    %ebx,%ebx
55e34f:	38 58 51             	cmp    %bl,0x51(%eax)
55e352:	0f 94 c3             	sete   %bl
55e355:	8d 1c 5d 07 00 00 00 	lea    0x7(,%ebx,2),%ebx
55e35c:	85 db                	test   %ebx,%ebx
55e35e:	75 68                	jne    0x55e3c8
55e360:	8b 47 20             	mov    0x20(%edi),%eax
55e363:	8b 00                	mov    (%eax),%eax
55e365:	3b 70 10             	cmp    0x10(%eax),%esi
55e368:	75 3d                	jne    0x55e3a7
55e36a:	8b 47 48             	mov    0x48(%edi),%eax
55e36d:	f7 65 d4             	mull   -0x2c(%ebp)
55e370:	8b 4f 04             	mov    0x4(%edi),%ecx
55e373:	8b f0                	mov    %eax,%esi
55e375:	52                   	push   %edx
55e376:	56                   	push   %esi
55e377:	8b 01                	mov    (%ecx),%eax
55e379:	51                   	push   %ecx
55e37a:	8b 40 10             	mov    0x10(%eax),%eax
55e37d:	ff d0                	call   *%eax
55e37f:	8b d8                	mov    %eax,%ebx
55e381:	83 c4 0c             	add    $0xc,%esp
55e384:	85 db                	test   %ebx,%ebx
55e386:	75 40                	jne    0x55e3c8
55e388:	8b 55 1c             	mov    0x1c(%ebp),%edx
55e38b:	8b 4f 04             	mov    0x4(%edi),%ecx
55e38e:	85 d2                	test   %edx,%edx
55e390:	74 12                	je     0x55e3a4
55e392:	8b 01                	mov    (%ecx),%eax
55e394:	52                   	push   %edx
55e395:	51                   	push   %ecx
55e396:	8b 40 14             	mov    0x14(%eax),%eax
55e399:	ff d0                	call   *%eax
55e39b:	8b d8                	mov    %eax,%ebx
55e39d:	83 c4 08             	add    $0x8,%esp
55e3a0:	85 db                	test   %ebx,%ebx
55e3a2:	75 24                	jne    0x55e3c8
55e3a4:	8b 75 e0             	mov    -0x20(%ebp),%esi
55e3a7:	8b 47 04             	mov    0x4(%edi),%eax
55e3aa:	8b 08                	mov    (%eax),%ecx
55e3ac:	85 c9                	test   %ecx,%ecx
55e3ae:	74 41                	je     0x55e3f1
55e3b0:	6a 00                	push   $0x0
55e3b2:	6a 25                	push   $0x25
55e3b4:	50                   	push   %eax
55e3b5:	8b 41 28             	mov    0x28(%ecx),%eax
55e3b8:	ff d0                	call   *%eax
55e3ba:	8b d8                	mov    %eax,%ebx
55e3bc:	83 c4 0c             	add    $0xc,%esp
55e3bf:	83 fb 0c             	cmp    $0xc,%ebx
55e3c2:	74 2d                	je     0x55e3f1
55e3c4:	85 db                	test   %ebx,%ebx
55e3c6:	74 2b                	je     0x55e3f3
55e3c8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55e3cb:	80 7f 2b 00          	cmpb   $0x0,0x2b(%edi)
55e3cf:	75 17                	jne    0x55e3e8
55e3d1:	8b 47 04             	mov    0x4(%edi),%eax
55e3d4:	6a 09                	push   $0x9
55e3d6:	6a 01                	push   $0x1
55e3d8:	6a 03                	push   $0x3
55e3da:	8b 08                	mov    (%eax),%ecx
55e3dc:	50                   	push   %eax
55e3dd:	8b 41 38             	mov    0x38(%ecx),%eax
55e3e0:	ff d0                	call   *%eax
55e3e2:	83 c4 10             	add    $0x10,%esp
55e3e5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55e3e8:	83 fb 05             	cmp    $0x5,%ebx
55e3eb:	75 0d                	jne    0x55e3fa
55e3ed:	33 db                	xor    %ebx,%ebx
55e3ef:	eb 0d                	jmp    0x55e3fe
55e3f1:	33 db                	xor    %ebx,%ebx
55e3f3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55e3f6:	89 30                	mov    %esi,(%eax)
55e3f8:	eb d1                	jmp    0x55e3cb
55e3fa:	85 db                	test   %ebx,%ebx
55e3fc:	75 78                	jne    0x55e476
55e3fe:	8b 75 10             	mov    0x10(%ebp),%esi
55e401:	85 f6                	test   %esi,%esi
55e403:	74 71                	je     0x55e476
55e405:	8b 00                	mov    (%eax),%eax
55e407:	3b 47 44             	cmp    0x44(%edi),%eax
55e40a:	73 07                	jae    0x55e413
55e40c:	bb 05 00 00 00       	mov    $0x5,%ebx
55e411:	eb 63                	jmp    0x55e476
55e413:	83 fe 02             	cmp    $0x2,%esi
55e416:	7c 5e                	jl     0x55e476
55e418:	8d 45 f0             	lea    -0x10(%ebp),%eax
55e41b:	50                   	push   %eax
55e41c:	6a 04                	push   $0x4
55e41e:	e8 0d d8 f8 ff       	call   0x4ebc30
55e423:	6a 04                	push   $0x4
55e425:	6a 04                	push   $0x4
55e427:	ff 75 c8             	push   -0x38(%ebp)
55e42a:	ff 75 d0             	push   -0x30(%ebp)
55e42d:	57                   	push   %edi
55e42e:	e8 6d fc ff ff       	call   0x55e0a0
55e433:	8b d8                	mov    %eax,%ebx
55e435:	83 c4 1c             	add    $0x1c,%esp
55e438:	85 db                	test   %ebx,%ebx
55e43a:	75 3a                	jne    0x55e476
55e43c:	83 fe 03             	cmp    $0x3,%esi
55e43f:	75 1b                	jne    0x55e45c
55e441:	ff 75 f0             	push   -0x10(%ebp)
55e444:	57                   	push   %edi
55e445:	e8 76 14 00 00       	call   0x55f8c0
55e44a:	8b 47 08             	mov    0x8(%edi),%eax
55e44d:	53                   	push   %ebx
55e44e:	53                   	push   %ebx
55e44f:	50                   	push   %eax
55e450:	8b 08                	mov    (%eax),%ecx
55e452:	8b 41 10             	mov    0x10(%ecx),%eax
55e455:	ff d0                	call   *%eax
55e457:	83 c4 14             	add    $0x14,%esp
55e45a:	8b d8                	mov    %eax,%ebx
55e45c:	80 7f 2b 00          	cmpb   $0x0,0x2b(%edi)
55e460:	75 14                	jne    0x55e476
55e462:	8b 47 04             	mov    0x4(%edi),%eax
55e465:	6a 09                	push   $0x9
55e467:	6a 04                	push   $0x4
55e469:	6a 04                	push   $0x4
55e46b:	8b 08                	mov    (%eax),%ecx
55e46d:	50                   	push   %eax
55e46e:	8b 41 38             	mov    0x38(%ecx),%eax
55e471:	ff d0                	call   *%eax
55e473:	83 c4 10             	add    $0x10,%esp
55e476:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
55e47a:	74 5a                	je     0x55e4d6
55e47c:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810