56a008:	53                   	push   %ebx
56a009:	8b 5c 24 08          	mov    0x8(%esp),%ebx
56a00d:	56                   	push   %esi
56a00e:	57                   	push   %edi
56a00f:	8b 7c 24 14          	mov    0x14(%esp),%edi
56a013:	8b f7                	mov    %edi,%esi
56a015:	f7 c2 00 80 00 00    	test   $0x8000,%edx
56a01b:	74 1d                	je     0x56a03a
56a01d:	3b f9                	cmp    %ecx,%edi
56a01f:	76 15                	jbe    0x56a036
56a021:	8a 03                	mov    (%ebx),%al
56a023:	84 c0                	test   %al,%al
56a025:	74 5d                	je     0x56a084
56a027:	f6 c2 10             	test   $0x10,%dl
56a02a:	74 04                	je     0x56a030
56a02c:	3c 2e                	cmp    $0x2e,%al
56a02e:	74 54                	je     0x56a084
56a030:	4e                   	dec    %esi
56a031:	43                   	inc    %ebx
56a032:	3b f1                	cmp    %ecx,%esi
56a034:	77 eb                	ja     0x56a021
56a036:	3b f1                	cmp    %ecx,%esi
56a038:	74 0a                	je     0x56a044
56a03a:	8b 5c 24 10          	mov    0x10(%esp),%ebx
56a03e:	8b f7                	mov    %edi,%esi
56a040:	3b f9                	cmp    %ecx,%edi
56a042:	75 40                	jne    0x56a084
56a044:	85 f6                	test   %esi,%esi
56a046:	74 33                	je     0x56a07b
56a048:	8b 7c 24 18          	mov    0x18(%esp),%edi
56a04c:	2b df                	sub    %edi,%ebx
56a04e:	66 90                	xchg   %ax,%ax
56a050:	8a 0c 3b             	mov    (%ebx,%edi,1),%cl
56a053:	8a 17                	mov    (%edi),%dl
56a055:	84 c9                	test   %cl,%cl
56a057:	74 2b                	je     0x56a084
56a059:	3a ca                	cmp    %dl,%cl
56a05b:	74 18                	je     0x56a075
56a05d:	8d 41 bf             	lea    -0x41(%ecx),%eax
56a060:	3c 19                	cmp    $0x19,%al
56a062:	77 03                	ja     0x56a067
56a064:	80 c1 20             	add    $0x20,%cl
56a067:	8d 42 bf             	lea    -0x41(%edx),%eax
56a06a:	3c 19                	cmp    $0x19,%al
56a06c:	77 03                	ja     0x56a071
56a06e:	80 c2 20             	add    $0x20,%dl
56a071:	3a ca                	cmp    %dl,%cl
56a073:	75 0f                	jne    0x56a084
56a075:	47                   	inc    %edi
56a076:	83 ee 01             	sub    $0x1,%esi
56a079:	75 d5                	jne    0x56a050
56a07b:	5f                   	pop    %edi
56a07c:	5e                   	pop    %esi
56a07d:	b8 01 00 00 00       	mov    $0x1,%eax
56a082:	5b                   	pop    %ebx
56a083:	c3                   	ret
56a084:	5f                   	pop    %edi
56a085:	5e                   	pop    %esi
56a086:	33 c0                	xor    %eax,%eax
56a088:	5b                   	pop    %ebx
56a089:	c3                   	ret
56a08a:	cc                   	int3
56a08b:	cc                   	int3
56a08c:	cc                   	int3
56a08d:	cc                   	int3
56a08e:	cc                   	int3
56a08f:	cc                   	int3
56a090:	b8 08 00 00 00       	mov    $0x8,%eax
56a095:	e8 16 77 06 00       	call   0x5d17b0
56a09a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56a09e:	53                   	push   %ebx
56a09f:	55                   	push   %ebp
56a0a0:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56a0a4:	56                   	push   %esi
56a0a5:	8b 74 24 24          	mov    0x24(%esp),%esi
56a0a9:	57                   	push   %edi
56a0aa:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
56a0ae:	83 fe 01             	cmp    $0x1,%esi
56a0b1:	76 06                	jbe    0x56a0b9
56a0b3:	80 7d 00 2e          	cmpb   $0x2e,0x0(%ebp)
56a0b7:	74 18                	je     0x56a0d1
56a0b9:	50                   	push   %eax
56a0ba:	ff 74 24 24          	push   0x24(%esp)
56a0be:	57                   	push   %edi
56a0bf:	e8 4c 05 00 00       	call   0x56a610
56a0c4:	8b d8                	mov    %eax,%ebx
56a0c6:	83 c4 0c             	add    $0xc,%esp
56a0c9:	85 db                	test   %ebx,%ebx
56a0cb:	75 1c                	jne    0x56a0e9
56a0cd:	8b 44 24 2c          	mov    0x2c(%esp),%eax
56a0d1:	50                   	push   %eax
56a0d2:	56                   	push   %esi
56a0d3:	55                   	push   %ebp
56a0d4:	ff 74 24 2c          	push   0x2c(%esp)
56a0d8:	57                   	push   %edi
56a0d9:	e8 22 ff ff ff       	call   0x56a000
56a0de:	83 c4 14             	add    $0x14,%esp
56a0e1:	5f                   	pop    %edi
56a0e2:	5e                   	pop    %esi
56a0e3:	5d                   	pop    %ebp
56a0e4:	5b                   	pop    %ebx
56a0e5:	83 c4 08             	add    $0x8,%esp
56a0e8:	c3                   	ret
56a0e9:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56a0ed:	8b c7                	mov    %edi,%eax
56a0ef:	2b c3                	sub    %ebx,%eax
56a0f1:	49                   	dec    %ecx
56a0f2:	03 c1                	add    %ecx,%eax
56a0f4:	8d 4b 01             	lea    0x1(%ebx),%ecx
56a0f7:	2b df                	sub    %edi,%ebx
56a0f9:	89 44 24 14          	mov    %eax,0x14(%esp)
56a0fd:	03 c3                	add    %ebx,%eax
56a0ff:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56a103:	3b f0                	cmp    %eax,%esi
56a105:	73 0a                	jae    0x56a111
56a107:	5f                   	pop    %edi
56a108:	5e                   	pop    %esi
56a109:	5d                   	pop    %ebp
56a10a:	33 c0                	xor    %eax,%eax
56a10c:	5b                   	pop    %ebx
56a10d:	83 c4 08             	add    $0x8,%esp
56a110:	c3                   	ret
56a111:	ff 74 24 2c          	push   0x2c(%esp)
56a115:	53                   	push   %ebx
56a116:	55                   	push   %ebp
56a117:	53                   	push   %ebx
56a118:	57                   	push   %edi
56a119:	e8 e2 fe ff ff       	call   0x56a000
56a11e:	83 c4 14             	add    $0x14,%esp
56a121:	85 c0                	test   %eax,%eax
56a123:	74 e2                	je     0x56a107
56a125:	ff 74 24 2c          	push   0x2c(%esp)
56a129:	8b 44 24 18          	mov    0x18(%esp),%eax
56a12d:	8d 34 2b             	lea    (%ebx,%ebp,1),%esi
56a130:	50                   	push   %eax
56a131:	ff 74 24 18          	push   0x18(%esp)
56a135:	8b fd                	mov    %ebp,%edi
56a137:	2b f8                	sub    %eax,%edi
56a139:	03 7c 24 34          	add    0x34(%esp),%edi
56a13d:	50                   	push   %eax
56a13e:	57                   	push   %edi
56a13f:	e8 bc fe ff ff       	call   0x56a000
56a144:	83 c4 14             	add    $0x14,%esp
56a147:	85 c0                	test   %eax,%eax
56a149:	74 bc                	je     0x56a107
56a14b:	85 db                	test   %ebx,%ebx
56a14d:	75 19                	jne    0x56a168
56a14f:	8b 44 24 10          	mov    0x10(%esp),%eax
56a153:	80 38 2e             	cmpb   $0x2e,(%eax)
56a156:	75 10                	jne    0x56a168
56a158:	3b f7                	cmp    %edi,%esi
56a15a:	74 ab                	je     0x56a107
56a15c:	f6 44 24 2c 08       	testb  $0x8,0x2c(%esp)
56a161:	74 20                	je     0x56a183
56a163:	8d 4b 01             	lea    0x1(%ebx),%ecx
56a166:	eb 1d                	jmp    0x56a185
56a168:	83 7c 24 28 04       	cmpl   $0x4,0x28(%esp)
56a16d:	72 14                	jb     0x56a183
56a16f:	6a 04                	push   $0x4
56a171:	68 d8 85 65 00       	push   $0x6585d8
56a176:	55                   	push   %ebp
56a177:	e8 dd b7 07 00       	call   0x5e5959
56a17c:	83 c4 0c             	add    $0xc,%esp
56a17f:	85 c0                	test   %eax,%eax
56a181:	74 84                	je     0x56a107
56a183:	33 c9                	xor    %ecx,%ecx
56a185:	8d 46 01             	lea    0x1(%esi),%eax
56a188:	3b f8                	cmp    %eax,%edi
56a18a:	75 05                	jne    0x56a191
56a18c:	80 3e 2a             	cmpb   $0x2a,(%esi)
56a18f:	74 37                	je     0x56a1c8
56a191:	3b f7                	cmp    %edi,%esi
56a193:	74 33                	je     0x56a1c8
56a195:	8a 06                	mov    (%esi),%al
56a197:	3c 30                	cmp    $0x30,%al
56a199:	72 04                	jb     0x56a19f
56a19b:	3c 39                	cmp    $0x39,%al
56a19d:	76 24                	jbe    0x56a1c3
56a19f:	3c 41                	cmp    $0x41,%al
56a1a1:	72 04                	jb     0x56a1a7
56a1a3:	3c 5a                	cmp    $0x5a,%al
56a1a5:	76 1c                	jbe    0x56a1c3
56a1a7:	3c 61                	cmp    $0x61,%al
56a1a9:	72 04                	jb     0x56a1af
56a1ab:	3c 7a                	cmp    $0x7a,%al
56a1ad:	76 14                	jbe    0x56a1c3
56a1af:	3c 2d                	cmp    $0x2d,%al
56a1b1:	74 10                	je     0x56a1c3
56a1b3:	85 c9                	test   %ecx,%ecx
56a1b5:	0f 84 4c ff ff ff    	je     0x56a107
56a1bb:	3c 2e                	cmp    $0x2e,%al
56a1bd:	0f 85 44 ff ff ff    	jne    0x56a107
56a1c3:	46                   	inc    %esi
56a1c4:	3b f7                	cmp    %edi,%esi
56a1c6:	75 cd                	jne    0x56a195
56a1c8:	5f                   	pop    %edi
56a1c9:	5e                   	pop    %esi
56a1ca:	5d                   	pop    %ebp
56a1cb:	b8 01 00 00 00       	mov    $0x1,%eax
56a1d0:	5b                   	pop    %ebx
56a1d1:	83 c4 08             	add    $0x8,%esp
56a1d4:	c3                   	ret
56a1d5:	cc                   	int3
56a1d6:	cc                   	int3
56a1d7:	cc                   	int3
56a1d8:	cc                   	int3
56a1d9:	cc                   	int3
56a1da:	cc                   	int3
56a1db:	cc                   	int3
56a1dc:	cc                   	int3
56a1dd:	cc                   	int3
56a1de:	cc                   	int3
56a1df:	cc                   	int3
56a1e0:	8b 44 24 08          	mov    0x8(%esp),%eax
56a1e4:	56                   	push   %esi
56a1e5:	33 f6                	xor    %esi,%esi
56a1e7:	85 c0                	test   %eax,%eax
56a1e9:	75 02                	jne    0x56a1ed
56a1eb:	5e                   	pop    %esi
56a1ec:	c3                   	ret
56a1ed:	57                   	push   %edi
56a1ee:	6a 00                	push   $0x0
56a1f0:	50                   	push   %eax
56a1f1:	e8 5a f1 f9 ff       	call   0x509350
56a1f6:	8b f8                	mov    %eax,%edi
56a1f8:	83 c4 08             	add    $0x8,%esp
56a1fb:	85 ff                	test   %edi,%edi
56a1fd:	74 0f                	je     0x56a20e
56a1ff:	57                   	push   %edi
56a200:	e8 4b f8 ff ff       	call   0x569a50
56a205:	8b f0                	mov    %eax,%esi
56a207:	83 c4 04             	add    $0x4,%esp
56a20a:	85 f6                	test   %esi,%esi
56a20c:	75 18                	jne    0x56a226
56a20e:	68 96 00 00 00       	push   $0x96
56a213:	68 84 85 65 00       	push   $0x658584
56a218:	6a 41                	push   $0x41
56a21a:	6a 79                	push   $0x79
56a21c:	6a 22                	push   $0x22
56a21e:	e8 5d ed f6 ff       	call   0x4d8f80
56a223:	83 c4 14             	add    $0x14,%esp
56a226:	57                   	push   %edi
56a227:	e8 f4 f9 f6 ff       	call   0x4d9c20
56a22c:	83 c4 04             	add    $0x4,%esp
56a22f:	8b c6                	mov    %esi,%eax
56a231:	5f                   	pop    %edi
56a232:	5e                   	pop    %esi
56a233:	c3                   	ret
56a234:	cc                   	int3
56a235:	cc                   	int3
56a236:	cc                   	int3
56a237:	cc                   	int3
56a238:	cc                   	int3
56a239:	cc                   	int3
56a23a:	cc                   	int3
56a23b:	cc                   	int3
56a23c:	cc                   	int3
56a23d:	cc                   	int3
56a23e:	cc                   	int3
56a23f:	cc                   	int3
56a240:	8b 44 24 08          	mov    0x8(%esp),%eax
56a244:	56                   	push   %esi
56a245:	33 f6                	xor    %esi,%esi
56a247:	85 c0                	test   %eax,%eax
56a249:	75 02                	jne    0x56a24d
56a24b:	5e                   	pop    %esi
56a24c:	c3                   	ret
56a24d:	57                   	push   %edi
56a24e:	6a 00                	push   $0x0
56a250:	50                   	push   %eax
56a251:	e8 8a f2 f9 ff       	call   0x5094e0
56a256:	8b f8                	mov    %eax,%edi
56a258:	83 c4 08             	add    $0x8,%esp
56a25b:	85 ff                	test   %edi,%edi
56a25d:	74 0f                	je     0x56a26e
56a25f:	57                   	push   %edi
56a260:	e8 eb f7 ff ff       	call   0x569a50
56a265:	8b f0                	mov    %eax,%esi
56a267:	83 c4 04             	add    $0x4,%esp
56a26a:	85 f6                	test   %esi,%esi
56a26c:	75 18                	jne    0x56a286
56a26e:	68 a4 00 00 00       	push   $0xa4
56a273:	68 84 85 65 00       	push   $0x658584
56a278:	6a 41                	push   $0x41
56a27a:	6a 78                	push   $0x78
56a27c:	6a 22                	push   $0x22
56a27e:	e8 fd ec f6 ff       	call   0x4d8f80
56a283:	83 c4 14             	add    $0x14,%esp
56a286:	57                   	push   %edi
56a287:	e8 94 f9 f6 ff       	call   0x4d9c20
56a28c:	83 c4 04             	add    $0x4,%esp
56a28f:	8b c6                	mov    %esi,%eax
56a291:	5f                   	pop    %edi
56a292:	5e                   	pop    %esi
56a293:	c3                   	ret
56a294:	cc                   	int3
56a295:	cc                   	int3
56a296:	cc                   	int3
56a297:	cc                   	int3
56a298:	cc                   	int3
56a299:	cc                   	int3
56a29a:	cc                   	int3
56a29b:	cc                   	int3
56a29c:	cc                   	int3
56a29d:	cc                   	int3
56a29e:	cc                   	int3
56a29f:	cc                   	int3
56a2a0:	b8 10 00 00 00       	mov    $0x10,%eax
56a2a5:	e8 06 75 06 00       	call   0x5d17b0
56a2aa:	53                   	push   %ebx
56a2ab:	8d 44 24 04          	lea    0x4(%esp),%eax
56a2af:	50                   	push   %eax
56a2b0:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2b4:	50                   	push   %eax
56a2b5:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2b9:	50                   	push   %eax
56a2ba:	8d 44 24 14          	lea    0x14(%esp),%eax
56a2be:	50                   	push   %eax
56a2bf:	68 9c 5d 60 00       	push   $0x605d9c
56a2c4:	ff 74 24 30          	push   0x30(%esp)
56a2c8:	e8 03 b9 ee ff       	call   0x455bd0
56a2cd:	83 c4 18             	add    $0x18,%esp
56a2d0:	83 f8 04             	cmp    $0x4,%eax
56a2d3:	75 4b                	jne    0x56a320
56a2d5:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56a2d9:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
56a2df:	77 3f                	ja     0x56a320
56a2e1:	8b 54 24 0c          	mov    0xc(%esp),%edx
56a2e5:	81 fa ff 00 00 00    	cmp    $0xff,%edx
56a2eb:	77 33                	ja     0x56a320
56a2ed:	8b 5c 24 10          	mov    0x10(%esp),%ebx
56a2f1:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
56a2f7:	77 27                	ja     0x56a320
56a2f9:	81 7c 24 04 ff 00 00 	cmpl   $0xff,0x4(%esp)
56a300:	00
56a301:	77 1d                	ja     0x56a320
56a303:	8b 44 24 18          	mov    0x18(%esp),%eax
56a307:	88 08                	mov    %cl,(%eax)
56a309:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56a30d:	88 58 02             	mov    %bl,0x2(%eax)
56a310:	88 50 01             	mov    %dl,0x1(%eax)
56a313:	88 48 03             	mov    %cl,0x3(%eax)
56a316:	b8 01 00 00 00       	mov    $0x1,%eax
56a31b:	5b                   	pop    %ebx
56a31c:	83 c4 10             	add    $0x10,%esp
56a31f:	c3                   	ret
56a320:	33 c0                	xor    %eax,%eax
56a322:	5b                   	pop    %ebx
56a323:	83 c4 10             	add    $0x10,%esp
56a326:	c3                   	ret