56b040:	3b d1                	cmp    %ecx,%edx
56b042:	7d 05                	jge    0x56b049
56b044:	8b 45 d4             	mov    -0x2c(%ebp),%eax
56b047:	eb 03                	jmp    0x56b04c
56b049:	8b 45 94             	mov    -0x6c(%ebp),%eax
56b04c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
56b04f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56b052:	01 55 c4             	add    %edx,-0x3c(%ebp)
56b055:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
56b058:	29 4d d4             	sub    %ecx,-0x2c(%ebp)
56b05b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
56b05e:	e8 d1 e4 00 00       	call   0x579534
56b063:	8b d0                	mov    %eax,%edx
56b065:	8b 4e 14             	mov    0x14(%esi),%ecx
56b068:	03 d1                	add    %ecx,%edx
56b06a:	8b c7                	mov    %edi,%eax
56b06c:	e8 13 5a 00 00       	call   0x570a84
56b071:	89 45 d0             	mov    %eax,-0x30(%ebp)
56b074:	85 c0                	test   %eax,%eax
56b076:	7d 08                	jge    0x56b080
56b078:	83 c8 ff             	or     $0xffffffff,%eax
56b07b:	e9 91 02 00 00       	jmp    0x56b311
56b080:	8b 55 9c             	mov    -0x64(%ebp),%edx
56b083:	85 d2                	test   %edx,%edx
56b085:	75 14                	jne    0x56b09b
56b087:	8b 4d 08             	mov    0x8(%ebp),%ecx
56b08a:	89 4b 24             	mov    %ecx,0x24(%ebx)
56b08d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
56b090:	01 43 0c             	add    %eax,0xc(%ebx)
56b093:	8b 55 d0             	mov    -0x30(%ebp),%edx
56b096:	89 53 1c             	mov    %edx,0x1c(%ebx)
56b099:	8b 1b                	mov    (%ebx),%ebx
56b09b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
56b09e:	01 4d a0             	add    %ecx,-0x60(%ebp)
56b0a1:	8b 45 d4             	mov    -0x2c(%ebp),%eax
56b0a4:	85 c0                	test   %eax,%eax
56b0a6:	0f 8f f0 fe ff ff    	jg     0x56af9c
56b0ac:	8b 55 c8             	mov    -0x38(%ebp),%edx
56b0af:	01 16                	add    %edx,(%esi)
56b0b1:	ff 45 a4             	incl   -0x5c(%ebp)
56b0b4:	83 c6 2c             	add    $0x2c,%esi
56b0b7:	8b 4d ac             	mov    -0x54(%ebp),%ecx
56b0ba:	8b 41 18             	mov    0x18(%ecx),%eax
56b0bd:	8b 55 a4             	mov    -0x5c(%ebp),%edx
56b0c0:	3b c2                	cmp    %edx,%eax
56b0c2:	0f 8f a2 fd ff ff    	jg     0x56ae6a
56b0c8:	ff 45 b0             	incl   -0x50(%ebp)
56b0cb:	83 45 e8 20          	addl   $0x20,-0x18(%ebp)
56b0cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
56b0d2:	8b 01                	mov    (%ecx),%eax
56b0d4:	8b 55 b0             	mov    -0x50(%ebp),%edx
56b0d7:	3b c2                	cmp    %edx,%eax
56b0d9:	0f 8f 47 fd ff ff    	jg     0x56ae26
56b0df:	33 c9                	xor    %ecx,%ecx
56b0e1:	33 d2                	xor    %edx,%edx
56b0e3:	8b c7                	mov    %edi,%eax
56b0e5:	e8 72 5d 00 00       	call   0x570e5c
56b0ea:	eb 2c                	jmp    0x56b118
56b0ec:	33 c9                	xor    %ecx,%ecx
56b0ee:	ba 7f 00 00 00       	mov    $0x7f,%edx
56b0f3:	8b c7                	mov    %edi,%eax
56b0f5:	e8 62 5d 00 00       	call   0x570e5c
56b0fa:	85 c0                	test   %eax,%eax
56b0fc:	74 1a                	je     0x56b118
56b0fe:	68 c5 fc 69 00       	push   $0x69fcc5
56b103:	68 80 2e 6a 00       	push   $0x6a2e80
56b108:	e8 bf ef 00 00       	call   0x57a0cc
56b10d:	83 c4 08             	add    $0x8,%esp
56b110:	83 c8 ff             	or     $0xffffffff,%eax
56b113:	e9 f9 01 00 00       	jmp    0x56b311
56b118:	8b c7                	mov    %edi,%eax
56b11a:	e8 b5 57 00 00       	call   0x5708d4
56b11f:	8b 55 f8             	mov    -0x8(%ebp),%edx
56b122:	8b 4a 3c             	mov    0x3c(%edx),%ecx
56b125:	89 4d 88             	mov    %ecx,-0x78(%ebp)
56b128:	8b 45 88             	mov    -0x78(%ebp),%eax
56b12b:	8b 55 8c             	mov    -0x74(%ebp),%edx
56b12e:	2b c2                	sub    %edx,%eax
56b130:	89 45 90             	mov    %eax,-0x70(%ebp)
56b133:	e8 14 ee 00 00       	call   0x579f4c
56b138:	83 f8 05             	cmp    $0x5,%eax
56b13b:	7c 1a                	jl     0x56b157
56b13d:	8b 4d a0             	mov    -0x60(%ebp),%ecx
56b140:	51                   	push   %ecx
56b141:	8b 45 90             	mov    -0x70(%ebp),%eax
56b144:	50                   	push   %eax
56b145:	68 d7 fc 69 00       	push   $0x69fcd7
56b14a:	68 80 2e 6a 00       	push   $0x6a2e80
56b14f:	e8 78 ef 00 00       	call   0x57a0cc
56b154:	83 c4 10             	add    $0x10,%esp
56b157:	8b 55 b4             	mov    -0x4c(%ebp),%edx
56b15a:	f6 42 0d 04          	testb  $0x4,0xd(%edx)
56b15e:	74 72                	je     0x56b1d2
56b160:	8b 45 f8             	mov    -0x8(%ebp),%eax
56b163:	e8 00 07 00 00       	call   0x56b868
56b168:	3d 92 ff 00 00       	cmp    $0xff92,%eax
56b16d:	75 63                	jne    0x56b1d2
56b16f:	8b 55 fc             	mov    -0x4(%ebp),%edx
56b172:	8b 45 f8             	mov    -0x8(%ebp),%eax
56b175:	8b 52 68             	mov    0x68(%edx),%edx
56b178:	e8 bb ab 00 00       	call   0x575d38
56b17d:	89 45 c0             	mov    %eax,-0x40(%ebp)
56b180:	85 c0                	test   %eax,%eax
56b182:	75 1a                	jne    0x56b19e
56b184:	68 f0 fc 69 00       	push   $0x69fcf0
56b189:	68 80 2e 6a 00       	push   $0x6a2e80
56b18e:	e8 39 ef 00 00       	call   0x57a0cc
56b193:	83 c4 08             	add    $0x8,%esp
56b196:	83 c8 ff             	or     $0xffffffff,%eax
56b199:	e9 73 01 00 00       	jmp    0x56b311
56b19e:	8b 55 c0             	mov    -0x40(%ebp),%edx
56b1a1:	66 81 3a 92 ff       	cmpw   $0xff92,(%edx)
56b1a6:	74 22                	je     0x56b1ca
56b1a8:	8b 45 c0             	mov    -0x40(%ebp),%eax
56b1ab:	e8 78 ae 00 00       	call   0x576028
56b1b0:	68 11 fd 69 00       	push   $0x69fd11
56b1b5:	68 80 2e 6a 00       	push   $0x6a2e80
56b1ba:	e8 0d ef 00 00       	call   0x57a0cc
56b1bf:	83 c4 08             	add    $0x8,%esp
56b1c2:	83 c8 ff             	or     $0xffffffff,%eax
56b1c5:	e9 47 01 00 00       	jmp    0x56b311
56b1ca:	8b 45 c0             	mov    -0x40(%ebp),%eax
56b1cd:	e8 56 ae 00 00       	call   0x576028
56b1d2:	e8 75 ed 00 00       	call   0x579f4c
56b1d7:	48                   	dec    %eax
56b1d8:	7c 19                	jl     0x56b1f3
56b1da:	8b 55 f4             	mov    -0xc(%ebp),%edx
56b1dd:	8b 4a 3c             	mov    0x3c(%edx),%ecx
56b1e0:	51                   	push   %ecx
56b1e1:	68 2d fd 69 00       	push   $0x69fd2d
56b1e6:	68 80 2e 6a 00       	push   $0x6a2e80
56b1eb:	e8 dc ee 00 00       	call   0x57a0cc
56b1f0:	83 c4 0c             	add    $0xc,%esp
56b1f3:	8b 45 9c             	mov    -0x64(%ebp),%eax
56b1f6:	85 c0                	test   %eax,%eax
56b1f8:	0f 85 fa 00 00 00    	jne    0x56b2f8
56b1fe:	8b 55 bc             	mov    -0x44(%ebp),%edx
56b201:	8b 45 14             	mov    0x14(%ebp),%eax
56b204:	c1 e0 05             	shl    $0x5,%eax
56b207:	8b 4a 24             	mov    0x24(%edx),%ecx
56b20a:	03 c8                	add    %eax,%ecx
56b20c:	89 4d f0             	mov    %ecx,-0x10(%ebp)
56b20f:	8b 55 f0             	mov    -0x10(%ebp),%edx
56b212:	8b 45 10             	mov    0x10(%ebp),%eax
56b215:	8b 4a 18             	mov    0x18(%edx),%ecx
56b218:	8b d0                	mov    %eax,%edx
56b21a:	c1 e0 03             	shl    $0x3,%eax
56b21d:	2b c2                	sub    %edx,%eax
56b21f:	c1 e0 03             	shl    $0x3,%eax
56b222:	03 c8                	add    %eax,%ecx
56b224:	89 4d ec             	mov    %ecx,-0x14(%ebp)
56b227:	33 c9                	xor    %ecx,%ecx
56b229:	89 4d b0             	mov    %ecx,-0x50(%ebp)
56b22c:	8b 45 ec             	mov    -0x14(%ebp),%eax
56b22f:	8b 50 04             	mov    0x4(%eax),%edx
56b232:	89 55 e8             	mov    %edx,-0x18(%ebp)
56b235:	e9 ac 00 00 00       	jmp    0x56b2e6
56b23a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
56b23d:	8b 41 04             	mov    0x4(%ecx),%eax
56b240:	85 c0                	test   %eax,%eax
56b242:	0f 84 97 00 00 00    	je     0x56b2df
56b248:	8b 45 0c             	mov    0xc(%ebp),%eax
56b24b:	8b 55 e8             	mov    -0x18(%ebp),%edx
56b24e:	c1 e0 03             	shl    $0x3,%eax
56b251:	8b 0a                	mov    (%edx),%ecx
56b253:	8d 04 80             	lea    (%eax,%eax,4),%eax
56b256:	03 c8                	add    %eax,%ecx
56b258:	89 4d ac             	mov    %ecx,-0x54(%ebp)
56b25b:	8b 55 ac             	mov    -0x54(%ebp),%edx
56b25e:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56b261:	85 c9                	test   %ecx,%ecx
56b263:	74 7a                	je     0x56b2df
56b265:	33 c0                	xor    %eax,%eax
56b267:	89 45 a4             	mov    %eax,-0x5c(%ebp)
56b26a:	8b 55 ac             	mov    -0x54(%ebp),%edx
56b26d:	8b 72 1c             	mov    0x1c(%edx),%esi
56b270:	eb 60                	jmp    0x56b2d2
56b272:	8b 5e 0c             	mov    0xc(%esi),%ebx
56b275:	85 db                	test   %ebx,%ebx
56b277:	74 53                	je     0x56b2cc
56b279:	8b 43 18             	mov    0x18(%ebx),%eax
56b27c:	85 c0                	test   %eax,%eax
56b27e:	75 15                	jne    0x56b295
56b280:	33 d2                	xor    %edx,%edx
56b282:	33 c0                	xor    %eax,%eax
56b284:	e8 93 d1 00 00       	call   0x57841c
56b289:	89 43 18             	mov    %eax,0x18(%ebx)
56b28c:	85 c0                	test   %eax,%eax
56b28e:	75 05                	jne    0x56b295
56b290:	83 c8 ff             	or     $0xffffffff,%eax
56b293:	eb 7c                	jmp    0x56b311
56b295:	8b 43 1c             	mov    0x1c(%ebx),%eax
56b298:	85 c0                	test   %eax,%eax
56b29a:	7e 1b                	jle    0x56b2b7
56b29c:	8b c8                	mov    %eax,%ecx
56b29e:	8b 53 18             	mov    0x18(%ebx),%edx
56b2a1:	8b 45 f4             	mov    -0xc(%ebp),%eax
56b2a4:	e8 9f c9 00 00       	call   0x577c48
56b2a9:	85 c0                	test   %eax,%eax
56b2ab:	7d 05                	jge    0x56b2b2
56b2ad:	83 c8 ff             	or     $0xffffffff,%eax
56b2b0:	eb 5f                	jmp    0x56b311
56b2b2:	33 d2                	xor    %edx,%edx
56b2b4:	89 53 1c             	mov    %edx,0x1c(%ebx)
56b2b7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56b2ba:	8b 43 10             	mov    0x10(%ebx),%eax
56b2bd:	3b c8                	cmp    %eax,%ecx
56b2bf:	7c 05                	jl     0x56b2c6
56b2c1:	8b 13                	mov    (%ebx),%edx
56b2c3:	89 56 0c             	mov    %edx,0xc(%esi)
56b2c6:	8b 1b                	mov    (%ebx),%ebx
56b2c8:	85 db                	test   %ebx,%ebx
56b2ca:	75 ad                	jne    0x56b279
56b2cc:	ff 45 a4             	incl   -0x5c(%ebp)
56b2cf:	83 c6 2c             	add    $0x2c,%esi
56b2d2:	8b 4d ac             	mov    -0x54(%ebp),%ecx
56b2d5:	8b 41 18             	mov    0x18(%ecx),%eax
56b2d8:	8b 55 a4             	mov    -0x5c(%ebp),%edx
56b2db:	3b c2                	cmp    %edx,%eax
56b2dd:	7f 93                	jg     0x56b272
56b2df:	ff 45 b0             	incl   -0x50(%ebp)
56b2e2:	83 45 e8 20          	addl   $0x20,-0x18(%ebp)
56b2e6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
56b2e9:	8b 01                	mov    (%ecx),%eax
56b2eb:	8b 55 b0             	mov    -0x50(%ebp),%edx
56b2ee:	3b c2                	cmp    %edx,%eax
56b2f0:	0f 8f 44 ff ff ff    	jg     0x56b23a
56b2f6:	eb 17                	jmp    0x56b30f
56b2f8:	8b 55 a0             	mov    -0x60(%ebp),%edx
56b2fb:	8b 45 f4             	mov    -0xc(%ebp),%eax
56b2fe:	e8 b1 d7 00 00       	call   0x578ab4
56b303:	8b 4d a0             	mov    -0x60(%ebp),%ecx
56b306:	3b c1                	cmp    %ecx,%eax
56b308:	74 05                	je     0x56b30f
56b30a:	83 c8 ff             	or     $0xffffffff,%eax
56b30d:	eb 02                	jmp    0x56b311
56b30f:	33 c0                	xor    %eax,%eax
56b311:	5f                   	pop    %edi
56b312:	5e                   	pop    %esi
56b313:	5b                   	pop    %ebx
56b314:	8b e5                	mov    %ebp,%esp
56b316:	5d                   	pop    %ebp
56b317:	c2 10 00             	ret    $0x10
56b31a:	90                   	nop
56b31b:	90                   	nop
56b31c:	53                   	push   %ebx
56b31d:	56                   	push   %esi
56b31e:	57                   	push   %edi
56b31f:	55                   	push   %ebp
56b320:	83 c4 f8             	add    $0xfffffff8,%esp
56b323:	8b f0                	mov    %eax,%esi
56b325:	8b e9                	mov    %ecx,%ebp
56b327:	89 14 24             	mov    %edx,(%esp)
56b32a:	8b 7e 34             	mov    0x34(%esi),%edi
56b32d:	8b 5f 34             	mov    0x34(%edi),%ebx
56b330:	8b 47 18             	mov    0x18(%edi),%eax
56b333:	85 c0                	test   %eax,%eax
56b335:	74 22                	je     0x56b359
56b337:	8b 57 18             	mov    0x18(%edi),%edx
56b33a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56b33d:	85 c9                	test   %ecx,%ecx
56b33f:	7f 0c                	jg     0x56b34d
56b341:	8b 47 18             	mov    0x18(%edi),%eax
56b344:	33 d2                	xor    %edx,%edx
56b346:	e8 dd d9 00 00       	call   0x578d28
56b34b:	eb 09                	jmp    0x56b356
56b34d:	8b 4f 18             	mov    0x18(%edi),%ecx
56b350:	8b 41 18             	mov    0x18(%ecx),%eax
56b353:	0f b6 00             	movzbl (%eax),%eax
56b356:	40                   	inc    %eax
56b357:	75 2f                	jne    0x56b388
56b359:	8b c5                	mov    %ebp,%eax
56b35b:	e8 08 05 00 00       	call   0x56b868
56b360:	83 e8 01             	sub    $0x1,%eax
56b363:	72 23                	jb     0x56b388
56b365:	2d 8f ff 00 00       	sub    $0xff8f,%eax
56b36a:	74 0d                	je     0x56b379
56b36c:	48                   	dec    %eax
56b36d:	83 e8 02             	sub    $0x2,%eax
56b370:	72 16                	jb     0x56b388
56b372:	83 e8 46             	sub    $0x46,%eax
56b375:	74 02                	je     0x56b379
56b377:	eb 07                	jmp    0x56b380
56b379:	33 c0                	xor    %eax,%eax
56b37b:	e9 c1 01 00 00       	jmp    0x56b541
56b380:	83 c8 ff             	or     $0xffffffff,%eax
56b383:	e9 b9 01 00 00       	jmp    0x56b541
56b388:	8b c3                	mov    %ebx,%eax
56b38a:	e8 31 05 00 00       	call   0x56b8c0
56b38f:	89 44 24 04          	mov    %eax,0x4(%esp)
56b393:	85 c0                	test   %eax,%eax
56b395:	74 09                	je     0x56b3a0
56b397:	8b 44 24 04          	mov    0x4(%esp),%eax
56b39b:	e9 a1 01 00 00       	jmp    0x56b541
56b3a0:	8b 46 48             	mov    0x48(%esi),%eax
56b3a3:	85 c0                	test   %eax,%eax
56b3a5:	7c 20                	jl     0x56b3c7
56b3a7:	8b 56 4c             	mov    0x4c(%esi),%edx
56b3aa:	3b c2                	cmp    %edx,%eax
56b3ac:	7f 19                	jg     0x56b3c7
56b3ae:	68 47 fd 69 00       	push   $0x69fd47
56b3b3:	68 80 2e 6a 00       	push   $0x6a2e80
56b3b8:	e8 0f ed 00 00       	call   0x57a0cc
56b3bd:	83 c4 08             	add    $0x8,%esp
56b3c0:	33 c0                	xor    %eax,%eax
56b3c2:	e9 7a 01 00 00       	jmp    0x56b541
56b3c7:	e8 80 eb 00 00       	call   0x579f4c
56b3cc:	48                   	dec    %eax
56b3cd:	0f 8c c6 00 00 00    	jl     0x56b499
56b3d3:	8b 53 64             	mov    0x64(%ebx),%edx
56b3d6:	85 d2                	test   %edx,%edx
56b3d8:	75 17                	jne    0x56b3f1
56b3da:	68 f1 01 00 00       	push   $0x1f1
56b3df:	68 26 fe 69 00       	push   $0x69fe26
56b3e4:	68 1c fe 69 00       	push   $0x69fe1c
56b3e9:	e8 52 f7 fe ff       	call   0x55ab40
56b3ee:	83 c4 0c             	add    $0xc,%esp
56b3f1:	8b 4b 24             	mov    0x24(%ebx),%ecx
56b3f4:	51                   	push   %ecx
56b3f5:	8b 43 64             	mov    0x64(%ebx),%eax
56b3f8:	85 c0                	test   %eax,%eax
56b3fa:	75 17                	jne    0x56b413
56b3fc:	68 f1 01 00 00       	push   $0x1f1
56b401:	68 10 fe 69 00       	push   $0x69fe10
56b406:	68 06 fe 69 00       	push   $0x69fe06
56b40b:	e8 30 f7 fe ff       	call   0x55ab40
56b410:	83 c4 0c             	add    $0xc,%esp
56b413:	8b 53 20             	mov    0x20(%ebx),%edx
56b416:	52                   	push   %edx
56b417:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b41a:	85 c9                	test   %ecx,%ecx
56b41c:	75 17                	jne    0x56b435
56b41e:	68 f1 01 00 00       	push   $0x1f1
56b423:	68 fa fd 69 00       	push   $0x69fdfa
56b428:	68 f0 fd 69 00       	push   $0x69fdf0
56b42d:	e8 0e f7 fe ff       	call   0x55ab40
56b432:	83 c4 0c             	add    $0xc,%esp
56b435:	8b 43 1c             	mov    0x1c(%ebx),%eax
56b438:	50                   	push   %eax
56b439:	8b 53 64             	mov    0x64(%ebx),%edx
56b43c:	85 d2                	test   %edx,%edx
56b43e:	75 17                	jne    0x56b457
56b440:	68 f0 01 00 00       	push   $0x1f0
56b445:	68 e4 fd 69 00       	push   $0x69fde4
56b44a:	68 da fd 69 00       	push   $0x69fdda
56b44f:	e8 ec f6 fe ff       	call   0x55ab40
56b454:	83 c4 0c             	add    $0xc,%esp
56b457:	8b 4b 18             	mov    0x18(%ebx),%ecx
56b45a:	51                   	push   %ecx
56b45b:	8b 43 64             	mov    0x64(%ebx),%eax