56fec7:	55                   	push   %ebp
56fec8:	e8 b3 53 f7 ff       	call   0x4e5280
56fecd:	8b d0                	mov    %eax,%edx
56fecf:	83 c4 08             	add    $0x8,%esp
56fed2:	85 d2                	test   %edx,%edx
56fed4:	74 34                	je     0x56ff0a
56fed6:	8b 02                	mov    (%edx),%eax
56fed8:	85 c0                	test   %eax,%eax
56feda:	74 2e                	je     0x56ff0a
56fedc:	8b 70 08             	mov    0x8(%eax),%esi
56fedf:	85 f6                	test   %esi,%esi
56fee1:	74 27                	je     0x56ff0a
56fee3:	83 38 02             	cmpl   $0x2,(%eax)
56fee6:	7c 22                	jl     0x56ff0a
56fee8:	0f b6 06             	movzbl (%esi),%eax
56feeb:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
56feef:	c1 e0 08             	shl    $0x8,%eax
56fef2:	0b c8                	or     %eax,%ecx
56fef4:	83 e9 01             	sub    $0x1,%ecx
56fef7:	74 0a                	je     0x56ff03
56fef9:	83 e9 01             	sub    $0x1,%ecx
56fefc:	75 0c                	jne    0x56ff0a
56fefe:	8d 59 10             	lea    0x10(%ecx),%ebx
56ff01:	eb 11                	jmp    0x56ff14
56ff03:	bb 04 00 00 00       	mov    $0x4,%ebx
56ff08:	eb 0a                	jmp    0x56ff14
56ff0a:	33 db                	xor    %ebx,%ebx
56ff0c:	85 d2                	test   %edx,%edx
56ff0e:	0f 84 6f 04 00 00    	je     0x570383
56ff14:	8b 4a 04             	mov    0x4(%edx),%ecx
56ff17:	85 c9                	test   %ecx,%ecx
56ff19:	0f 84 64 04 00 00    	je     0x570383
56ff1f:	8b 01                	mov    (%ecx),%eax
56ff21:	83 e8 00             	sub    $0x0,%eax
56ff24:	0f 84 27 04 00 00    	je     0x570351
56ff2a:	83 e8 01             	sub    $0x1,%eax
56ff2d:	0f 85 50 04 00 00    	jne    0x570383
56ff33:	8b 79 04             	mov    0x4(%ecx),%edi
56ff36:	57                   	push   %edi
56ff37:	89 7c 24 18          	mov    %edi,0x18(%esp)
56ff3b:	e8 80 51 f7 ff       	call   0x4e50c0
56ff40:	83 c4 04             	add    $0x4,%esp
56ff43:	85 c0                	test   %eax,%eax
56ff45:	0f 84 38 04 00 00    	je     0x570383
56ff4b:	57                   	push   %edi
56ff4c:	33 f6                	xor    %esi,%esi
56ff4e:	e8 6d 51 f7 ff       	call   0x4e50c0
56ff53:	48                   	dec    %eax
56ff54:	83 c4 04             	add    $0x4,%esp
56ff57:	85 c0                	test   %eax,%eax
56ff59:	0f 8e 13 03 00 00    	jle    0x570272
56ff5f:	90                   	nop
56ff60:	56                   	push   %esi
56ff61:	57                   	push   %edi
56ff62:	e8 19 53 f7 ff       	call   0x4e5280
56ff67:	46                   	inc    %esi
56ff68:	8b e8                	mov    %eax,%ebp
56ff6a:	56                   	push   %esi
56ff6b:	57                   	push   %edi
56ff6c:	89 74 24 28          	mov    %esi,0x28(%esp)
56ff70:	e8 0b 53 f7 ff       	call   0x4e5280
56ff75:	83 c4 10             	add    $0x10,%esp
56ff78:	8b f0                	mov    %eax,%esi
56ff7a:	85 ed                	test   %ebp,%ebp
56ff7c:	0f 84 01 04 00 00    	je     0x570383
56ff82:	8b 4d 00             	mov    0x0(%ebp),%ecx
56ff85:	83 e9 00             	sub    $0x0,%ecx
56ff88:	74 33                	je     0x56ffbd
56ff8a:	83 e9 01             	sub    $0x1,%ecx
56ff8d:	0f 85 f0 03 00 00    	jne    0x570383
56ff93:	8b 45 04             	mov    0x4(%ebp),%eax
56ff96:	51                   	push   %ecx
56ff97:	53                   	push   %ebx
56ff98:	ff 30                	push   (%eax)
56ff9a:	8d 44 24 3c          	lea    0x3c(%esp),%eax
56ff9e:	50                   	push   %eax
56ff9f:	e8 0c 07 00 00       	call   0x5706b0
56ffa4:	83 c4 10             	add    $0x10,%esp
56ffa7:	85 c0                	test   %eax,%eax
56ffa9:	0f 84 d4 03 00 00    	je     0x570383
56ffaf:	8b 45 04             	mov    0x4(%ebp),%eax
56ffb2:	68 ff 00 00 00       	push   $0xff
56ffb7:	53                   	push   %ebx
56ffb8:	ff 70 04             	push   0x4(%eax)
56ffbb:	eb 24                	jmp    0x56ffe1
56ffbd:	6a 00                	push   $0x0
56ffbf:	53                   	push   %ebx
56ffc0:	ff 75 04             	push   0x4(%ebp)
56ffc3:	8d 44 24 3c          	lea    0x3c(%esp),%eax
56ffc7:	50                   	push   %eax
56ffc8:	e8 e3 06 00 00       	call   0x5706b0
56ffcd:	83 c4 10             	add    $0x10,%esp
56ffd0:	85 c0                	test   %eax,%eax
56ffd2:	0f 84 ab 03 00 00    	je     0x570383
56ffd8:	68 ff 00 00 00       	push   $0xff
56ffdd:	53                   	push   %ebx
56ffde:	ff 75 04             	push   0x4(%ebp)
56ffe1:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56ffe5:	50                   	push   %eax
56ffe6:	e8 c5 06 00 00       	call   0x5706b0
56ffeb:	83 c4 10             	add    $0x10,%esp
56ffee:	85 c0                	test   %eax,%eax
56fff0:	0f 84 8d 03 00 00    	je     0x570383
56fff6:	85 f6                	test   %esi,%esi
56fff8:	0f 84 85 03 00 00    	je     0x570383
56fffe:	8b 06                	mov    (%esi),%eax
570000:	83 e8 00             	sub    $0x0,%eax
570003:	74 33                	je     0x570038
570005:	83 e8 01             	sub    $0x1,%eax
570008:	0f 85 75 03 00 00    	jne    0x570383
57000e:	50                   	push   %eax
57000f:	8b 46 04             	mov    0x4(%esi),%eax
570012:	53                   	push   %ebx
570013:	ff 30                	push   (%eax)
570015:	8d 44 24 4c          	lea    0x4c(%esp),%eax
570019:	50                   	push   %eax
57001a:	e8 91 06 00 00       	call   0x5706b0
57001f:	83 c4 10             	add    $0x10,%esp
570022:	85 c0                	test   %eax,%eax
570024:	0f 84 59 03 00 00    	je     0x570383
57002a:	8b 46 04             	mov    0x4(%esi),%eax
57002d:	68 ff 00 00 00       	push   $0xff
570032:	53                   	push   %ebx
570033:	ff 70 04             	push   0x4(%eax)
570036:	eb 24                	jmp    0x57005c
570038:	6a 00                	push   $0x0
57003a:	53                   	push   %ebx
57003b:	ff 76 04             	push   0x4(%esi)
57003e:	8d 44 24 4c          	lea    0x4c(%esp),%eax
570042:	50                   	push   %eax
570043:	e8 68 06 00 00       	call   0x5706b0
570048:	83 c4 10             	add    $0x10,%esp
57004b:	85 c0                	test   %eax,%eax
57004d:	0f 84 30 03 00 00    	je     0x570383
570053:	68 ff 00 00 00       	push   $0xff
570058:	53                   	push   %ebx
570059:	ff 76 04             	push   0x4(%esi)
57005c:	8d 44 24 5c          	lea    0x5c(%esp),%eax
570060:	50                   	push   %eax
570061:	e8 4a 06 00 00       	call   0x5706b0
570066:	83 c4 10             	add    $0x10,%esp
570069:	85 c0                	test   %eax,%eax
57006b:	0f 84 12 03 00 00    	je     0x570383
570071:	8b f3                	mov    %ebx,%esi
570073:	8d 4c 24 30          	lea    0x30(%esp),%ecx
570077:	8d 54 24 40          	lea    0x40(%esp),%edx
57007b:	83 ee 04             	sub    $0x4,%esi
57007e:	72 11                	jb     0x570091
570080:	8b 01                	mov    (%ecx),%eax
570082:	3b 02                	cmp    (%edx),%eax
570084:	75 12                	jne    0x570098
570086:	83 c1 04             	add    $0x4,%ecx
570089:	83 c2 04             	add    $0x4,%edx
57008c:	83 ee 04             	sub    $0x4,%esi
57008f:	73 ef                	jae    0x570080
570091:	33 ff                	xor    %edi,%edi
570093:	83 fe fc             	cmp    $0xfffffffc,%esi
570096:	74 3b                	je     0x5700d3
570098:	0f b6 39             	movzbl (%ecx),%edi
57009b:	0f b6 02             	movzbl (%edx),%eax
57009e:	2b f8                	sub    %eax,%edi
5700a0:	75 31                	jne    0x5700d3
5700a2:	83 fe fd             	cmp    $0xfffffffd,%esi
5700a5:	74 2c                	je     0x5700d3
5700a7:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
5700ab:	0f b6 42 01          	movzbl 0x1(%edx),%eax
5700af:	2b f8                	sub    %eax,%edi
5700b1:	75 20                	jne    0x5700d3
5700b3:	83 fe fe             	cmp    $0xfffffffe,%esi
5700b6:	74 1b                	je     0x5700d3
5700b8:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
5700bc:	0f b6 42 02          	movzbl 0x2(%edx),%eax
5700c0:	2b f8                	sub    %eax,%edi
5700c2:	75 0f                	jne    0x5700d3
5700c4:	83 fe ff             	cmp    $0xffffffff,%esi
5700c7:	74 0a                	je     0x5700d3
5700c9:	0f b6 79 03          	movzbl 0x3(%ecx),%edi
5700cd:	0f b6 42 03          	movzbl 0x3(%edx),%eax
5700d1:	2b f8                	sub    %eax,%edi
5700d3:	85 ff                	test   %edi,%edi
5700d5:	0f 89 a8 02 00 00    	jns    0x570383
5700db:	8b f3                	mov    %ebx,%esi
5700dd:	8d 4c 24 30          	lea    0x30(%esp),%ecx
5700e1:	8d 54 24 20          	lea    0x20(%esp),%edx
5700e5:	83 ee 04             	sub    $0x4,%esi
5700e8:	72 17                	jb     0x570101
5700ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5700f0:	8b 01                	mov    (%ecx),%eax
5700f2:	3b 02                	cmp    (%edx),%eax
5700f4:	75 10                	jne    0x570106
5700f6:	83 c1 04             	add    $0x4,%ecx
5700f9:	83 c2 04             	add    $0x4,%edx
5700fc:	83 ee 04             	sub    $0x4,%esi
5700ff:	73 ef                	jae    0x5700f0
570101:	83 fe fc             	cmp    $0xfffffffc,%esi
570104:	74 34                	je     0x57013a
570106:	8a 01                	mov    (%ecx),%al
570108:	3a 02                	cmp    (%edx),%al
57010a:	75 27                	jne    0x570133
57010c:	83 fe fd             	cmp    $0xfffffffd,%esi
57010f:	74 29                	je     0x57013a
570111:	8a 41 01             	mov    0x1(%ecx),%al
570114:	3a 42 01             	cmp    0x1(%edx),%al
570117:	75 1a                	jne    0x570133
570119:	83 fe fe             	cmp    $0xfffffffe,%esi
57011c:	74 1c                	je     0x57013a
57011e:	8a 41 02             	mov    0x2(%ecx),%al
570121:	3a 42 02             	cmp    0x2(%edx),%al
570124:	75 0d                	jne    0x570133
570126:	83 fe ff             	cmp    $0xffffffff,%esi
570129:	74 0f                	je     0x57013a
57012b:	8a 41 03             	mov    0x3(%ecx),%al
57012e:	3a 42 03             	cmp    0x3(%edx),%al
570131:	74 07                	je     0x57013a
570133:	1b c0                	sbb    %eax,%eax
570135:	83 c8 01             	or     $0x1,%eax
570138:	eb 02                	jmp    0x57013c
57013a:	33 c0                	xor    %eax,%eax
57013c:	85 c0                	test   %eax,%eax
57013e:	0f 8f 3f 02 00 00    	jg     0x570383
570144:	8b f3                	mov    %ebx,%esi
570146:	8d 4c 24 40          	lea    0x40(%esp),%ecx
57014a:	8d 54 24 50          	lea    0x50(%esp),%edx
57014e:	83 ee 04             	sub    $0x4,%esi
570151:	72 11                	jb     0x570164
570153:	8b 01                	mov    (%ecx),%eax
570155:	3b 02                	cmp    (%edx),%eax
570157:	75 12                	jne    0x57016b
570159:	83 c1 04             	add    $0x4,%ecx
57015c:	83 c2 04             	add    $0x4,%edx
57015f:	83 ee 04             	sub    $0x4,%esi
570162:	73 ef                	jae    0x570153
570164:	33 ff                	xor    %edi,%edi
570166:	83 fe fc             	cmp    $0xfffffffc,%esi
570169:	74 3b                	je     0x5701a6
57016b:	0f b6 39             	movzbl (%ecx),%edi
57016e:	0f b6 02             	movzbl (%edx),%eax
570171:	2b f8                	sub    %eax,%edi
570173:	75 31                	jne    0x5701a6
570175:	83 fe fd             	cmp    $0xfffffffd,%esi
570178:	74 2c                	je     0x5701a6
57017a:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
57017e:	0f b6 42 01          	movzbl 0x1(%edx),%eax
570182:	2b f8                	sub    %eax,%edi
570184:	75 20                	jne    0x5701a6
570186:	83 fe fe             	cmp    $0xfffffffe,%esi
570189:	74 1b                	je     0x5701a6
57018b:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
57018f:	0f b6 42 02          	movzbl 0x2(%edx),%eax
570193:	2b f8                	sub    %eax,%edi
570195:	75 0f                	jne    0x5701a6
570197:	83 fe ff             	cmp    $0xffffffff,%esi
57019a:	74 0a                	je     0x5701a6
57019c:	0f b6 79 03          	movzbl 0x3(%ecx),%edi
5701a0:	0f b6 42 03          	movzbl 0x3(%edx),%eax
5701a4:	2b f8                	sub    %eax,%edi
5701a6:	85 ff                	test   %edi,%edi
5701a8:	0f 8f d5 01 00 00    	jg     0x570383
5701ae:	8d 43 ff             	lea    -0x1(%ebx),%eax
5701b1:	85 c0                	test   %eax,%eax
5701b3:	78 14                	js     0x5701c9
5701b5:	8a 54 04 40          	mov    0x40(%esp,%eax,1),%dl
5701b9:	8d 4a ff             	lea    -0x1(%edx),%ecx
5701bc:	88 4c 04 40          	mov    %cl,0x40(%esp,%eax,1)
5701c0:	84 d2                	test   %dl,%dl
5701c2:	75 05                	jne    0x5701c9
5701c4:	83 e8 01             	sub    $0x1,%eax
5701c7:	79 ec                	jns    0x5701b5
5701c9:	8b f3                	mov    %ebx,%esi
5701cb:	8d 4c 24 20          	lea    0x20(%esp),%ecx
5701cf:	8d 54 24 40          	lea    0x40(%esp),%edx
5701d3:	83 ee 04             	sub    $0x4,%esi
5701d6:	72 11                	jb     0x5701e9
5701d8:	8b 01                	mov    (%ecx),%eax
5701da:	3b 02                	cmp    (%edx),%eax
5701dc:	75 12                	jne    0x5701f0
5701de:	83 c1 04             	add    $0x4,%ecx
5701e1:	83 c2 04             	add    $0x4,%edx
5701e4:	83 ee 04             	sub    $0x4,%esi
5701e7:	73 ef                	jae    0x5701d8
5701e9:	33 ff                	xor    %edi,%edi
5701eb:	83 fe fc             	cmp    $0xfffffffc,%esi
5701ee:	74 3b                	je     0x57022b
5701f0:	0f b6 39             	movzbl (%ecx),%edi
5701f3:	0f b6 02             	movzbl (%edx),%eax
5701f6:	2b f8                	sub    %eax,%edi
5701f8:	75 31                	jne    0x57022b
5701fa:	83 fe fd             	cmp    $0xfffffffd,%esi
5701fd:	74 2c                	je     0x57022b
5701ff:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
570203:	0f b6 42 01          	movzbl 0x1(%edx),%eax
570207:	2b f8                	sub    %eax,%edi
570209:	75 20                	jne    0x57022b
57020b:	83 fe fe             	cmp    $0xfffffffe,%esi
57020e:	74 1b                	je     0x57022b
570210:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
570214:	0f b6 42 02          	movzbl 0x2(%edx),%eax
570218:	2b f8                	sub    %eax,%edi
57021a:	75 0f                	jne    0x57022b
57021c:	83 fe ff             	cmp    $0xffffffff,%esi
57021f:	74 0a                	je     0x57022b
570221:	0f b6 79 03          	movzbl 0x3(%ecx),%edi
570225:	0f b6 42 03          	movzbl 0x3(%edx),%eax
570229:	2b f8                	sub    %eax,%edi
57022b:	85 ff                	test   %edi,%edi
57022d:	0f 89 50 01 00 00    	jns    0x570383
570233:	83 7d 00 01          	cmpl   $0x1,0x0(%ebp)
570237:	75 1b                	jne    0x570254
570239:	53                   	push   %ebx
57023a:	8d 44 24 24          	lea    0x24(%esp),%eax
57023e:	50                   	push   %eax
57023f:	8d 44 24 38          	lea    0x38(%esp),%eax
570243:	50                   	push   %eax
570244:	e8 67 0f 00 00       	call   0x5711b0
570249:	83 c4 0c             	add    $0xc,%esp
57024c:	85 c0                	test   %eax,%eax
57024e:	0f 89 2f 01 00 00    	jns    0x570383
570254:	8b 7c 24 14          	mov    0x14(%esp),%edi
570258:	57                   	push   %edi
570259:	e8 62 4e f7 ff       	call   0x4e50c0
57025e:	8b 74 24 1c          	mov    0x1c(%esp),%esi
570262:	48                   	dec    %eax
570263:	83 c4 04             	add    $0x4,%esp
570266:	3b f0                	cmp    %eax,%esi
570268:	0f 8c f2 fc ff ff    	jl     0x56ff60
57026e:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
570272:	57                   	push   %edi
570273:	e8 48 4e f7 ff       	call   0x4e50c0
570278:	48                   	dec    %eax
570279:	50                   	push   %eax
57027a:	57                   	push   %edi
57027b:	e8 00 50 f7 ff       	call   0x4e5280
570280:	8b f0                	mov    %eax,%esi
570282:	83 c4 0c             	add    $0xc,%esp
570285:	85 f6                	test   %esi,%esi
570287:	0f 84 c4 00 00 00    	je     0x570351
57028d:	83 3e 01             	cmpl   $0x1,(%esi)
570290:	0f 85 bb 00 00 00    	jne    0x570351
570296:	8b 46 04             	mov    0x4(%esi),%eax
570299:	6a 00                	push   $0x0
57029b:	53                   	push   %ebx
57029c:	ff 30                	push   (%eax)
57029e:	8d 44 24 3c          	lea    0x3c(%esp),%eax
5702a2:	50                   	push   %eax
5702a3:	e8 08 04 00 00       	call   0x5706b0
5702a8:	83 c4 10             	add    $0x10,%esp
5702ab:	85 c0                	test   %eax,%eax
5702ad:	0f 84 d0 00 00 00    	je     0x570383
5702b3:	8b 46 04             	mov    0x4(%esi),%eax
5702b6:	68 ff 00 00 00       	push   $0xff