4afe5a:	85 ff                	test   %edi,%edi
4afe5c:	7e 2c                	jle    0x4afe8a
4afe5e:	66 90                	xchg   %ax,%ax
4afe60:	3b f5                	cmp    %ebp,%esi
4afe62:	7d 26                	jge    0x4afe8a
4afe64:	6a 20                	push   $0x20
4afe66:	51                   	push   %ecx
4afe67:	52                   	push   %edx
4afe68:	ff 74 24 24          	push   0x24(%esp)
4afe6c:	ff 74 24 24          	push   0x24(%esp)
4afe70:	e8 0b f8 ff ff       	call   0x4af680
4afe75:	83 c4 14             	add    $0x14,%esp
4afe78:	85 c0                	test   %eax,%eax
4afe7a:	74 79                	je     0x4afef5
4afe7c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4afe80:	4f                   	dec    %edi
4afe81:	8b 54 24 1c          	mov    0x1c(%esp),%edx
4afe85:	46                   	inc    %esi
4afe86:	85 ff                	test   %edi,%edi
4afe88:	7f d6                	jg     0x4afe60
4afe8a:	8a 03                	mov    (%ebx),%al
4afe8c:	84 c0                	test   %al,%al
4afe8e:	74 2e                	je     0x4afebe
4afe90:	3b f5                	cmp    %ebp,%esi
4afe92:	7d 2a                	jge    0x4afebe
4afe94:	0f be c0             	movsbl %al,%eax
4afe97:	50                   	push   %eax
4afe98:	51                   	push   %ecx
4afe99:	52                   	push   %edx
4afe9a:	ff 74 24 24          	push   0x24(%esp)
4afe9e:	ff 74 24 24          	push   0x24(%esp)
4afea2:	e8 d9 f7 ff ff       	call   0x4af680
4afea7:	83 c4 14             	add    $0x14,%esp
4afeaa:	43                   	inc    %ebx
4afeab:	85 c0                	test   %eax,%eax
4afead:	74 46                	je     0x4afef5
4afeaf:	8a 03                	mov    (%ebx),%al
4afeb1:	46                   	inc    %esi
4afeb2:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4afeb6:	8b 54 24 1c          	mov    0x1c(%esp),%edx
4afeba:	84 c0                	test   %al,%al
4afebc:	75 d2                	jne    0x4afe90
4afebe:	85 ff                	test   %edi,%edi
4afec0:	79 29                	jns    0x4afeeb
4afec2:	8b 5c 24 20          	mov    0x20(%esp),%ebx
4afec6:	3b f5                	cmp    %ebp,%esi
4afec8:	7d 21                	jge    0x4afeeb
4afeca:	6a 20                	push   $0x20
4afecc:	53                   	push   %ebx
4afecd:	ff 74 24 24          	push   0x24(%esp)
4afed1:	ff 74 24 24          	push   0x24(%esp)
4afed5:	ff 74 24 24          	push   0x24(%esp)
4afed9:	e8 a2 f7 ff ff       	call   0x4af680
4afede:	83 c4 14             	add    $0x14,%esp
4afee1:	85 c0                	test   %eax,%eax
4afee3:	74 10                	je     0x4afef5
4afee5:	46                   	inc    %esi
4afee6:	83 c7 01             	add    $0x1,%edi
4afee9:	78 db                	js     0x4afec6
4afeeb:	5f                   	pop    %edi
4afeec:	5e                   	pop    %esi
4afeed:	5d                   	pop    %ebp
4afeee:	b8 01 00 00 00       	mov    $0x1,%eax
4afef3:	5b                   	pop    %ebx
4afef4:	c3                   	ret
4afef5:	5f                   	pop    %edi
4afef6:	5e                   	pop    %esi
4afef7:	5d                   	pop    %ebp
4afef8:	33 c0                	xor    %eax,%eax
4afefa:	5b                   	pop    %ebx
4afefb:	c3                   	ret
4afefc:	cc                   	int3
4afefd:	cc                   	int3
4afefe:	cc                   	int3
4afeff:	cc                   	int3
4aff00:	56                   	push   %esi
4aff01:	8b 74 24 08          	mov    0x8(%esp),%esi
4aff05:	57                   	push   %edi
4aff06:	8b 4e 14             	mov    0x14(%esi),%ecx
4aff09:	03 4e 18             	add    0x18(%esi),%ecx
4aff0c:	8b 06                	mov    (%esi),%eax
4aff0e:	8b 7c 88 fc          	mov    -0x4(%eax,%ecx,4),%edi
4aff12:	c7 44 88 fc 00 00 00 	movl   $0x0,-0x4(%eax,%ecx,4)
4aff19:	00
4aff1a:	8b 46 14             	mov    0x14(%esi),%eax
4aff1d:	85 c0                	test   %eax,%eax
4aff1f:	75 35                	jne    0x4aff56
4aff21:	8b 46 18             	mov    0x18(%esi),%eax
4aff24:	68 6b 01 00 00       	push   $0x16b
4aff29:	68 4c 9c 6a 00       	push   $0x6a9c4c
4aff2e:	c1 e0 02             	shl    $0x2,%eax
4aff31:	50                   	push   %eax
4aff32:	ff 36                	push   (%esi)
4aff34:	e8 e7 02 ff ff       	call   0x4a0220
4aff39:	8b c8                	mov    %eax,%ecx
4aff3b:	83 c4 10             	add    $0x10,%esp
4aff3e:	85 c9                	test   %ecx,%ecx
4aff40:	75 06                	jne    0x4aff48
4aff42:	ff 46 5c             	incl   0x5c(%esi)
4aff45:	5f                   	pop    %edi
4aff46:	5e                   	pop    %esi
4aff47:	c3                   	ret
4aff48:	ff 46 34             	incl   0x34(%esi)
4aff4b:	d1 6e 10             	shrl   $1,0x10(%esi)
4aff4e:	d1 6e 18             	shrl   $1,0x18(%esi)
4aff51:	8b 46 18             	mov    0x18(%esi),%eax
4aff54:	89 0e                	mov    %ecx,(%esi)
4aff56:	ff 4e 0c             	decl   0xc(%esi)
4aff59:	48                   	dec    %eax
4aff5a:	ff 46 30             	incl   0x30(%esi)
4aff5d:	8b c8                	mov    %eax,%ecx
4aff5f:	89 46 14             	mov    %eax,0x14(%esi)
4aff62:	8b 06                	mov    (%esi),%eax
4aff64:	8d 04 88             	lea    (%eax,%ecx,4),%eax
4aff67:	8b 08                	mov    (%eax),%ecx
4aff69:	85 c9                	test   %ecx,%ecx
4aff6b:	75 05                	jne    0x4aff72
4aff6d:	89 38                	mov    %edi,(%eax)
4aff6f:	5f                   	pop    %edi
4aff70:	5e                   	pop    %esi
4aff71:	c3                   	ret
4aff72:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
4aff76:	8d 41 04             	lea    0x4(%ecx),%eax
4aff79:	74 10                	je     0x4aff8b
4aff7b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4aff80:	8b 08                	mov    (%eax),%ecx
4aff82:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
4aff86:	8d 41 04             	lea    0x4(%ecx),%eax
4aff89:	75 f5                	jne    0x4aff80
4aff8b:	89 79 04             	mov    %edi,0x4(%ecx)
4aff8e:	5f                   	pop    %edi
4aff8f:	5e                   	pop    %esi
4aff90:	c3                   	ret
4aff91:	cc                   	int3
4aff92:	cc                   	int3
4aff93:	cc                   	int3
4aff94:	cc                   	int3
4aff95:	cc                   	int3
4aff96:	cc                   	int3
4aff97:	cc                   	int3
4aff98:	cc                   	int3
4aff99:	cc                   	int3
4aff9a:	cc                   	int3
4aff9b:	cc                   	int3
4aff9c:	cc                   	int3
4aff9d:	cc                   	int3
4aff9e:	cc                   	int3
4aff9f:	cc                   	int3
4affa0:	8b 44 24 04          	mov    0x4(%esp),%eax
4affa4:	85 c0                	test   %eax,%eax
4affa6:	74 57                	je     0x4affff
4affa8:	57                   	push   %edi
4affa9:	8b 78 0c             	mov    0xc(%eax),%edi
4affac:	83 ef 01             	sub    $0x1,%edi
4affaf:	78 4d                	js     0x4afffe
4affb1:	53                   	push   %ebx
4affb2:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4affb6:	55                   	push   %ebp
4affb7:	8b 6c 24 20          	mov    0x20(%esp),%ebp
4affbb:	56                   	push   %esi
4affbc:	0f 1f 40 00          	nopl   0x0(%eax)
4affc0:	8b 00                	mov    (%eax),%eax
4affc2:	8b 04 b8             	mov    (%eax,%edi,4),%eax
4affc5:	85 c0                	test   %eax,%eax
4affc7:	74 29                	je     0x4afff2
4affc9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4affd0:	8b 70 04             	mov    0x4(%eax),%esi
4affd3:	85 db                	test   %ebx,%ebx
4affd5:	74 0c                	je     0x4affe3
4affd7:	55                   	push   %ebp
4affd8:	ff 30                	push   (%eax)
4affda:	ff 54 24 28          	call   *0x28(%esp)
4affde:	83 c4 08             	add    $0x8,%esp
4affe1:	eb 09                	jmp    0x4affec
4affe3:	ff 30                	push   (%eax)
4affe5:	ff 54 24 20          	call   *0x20(%esp)
4affe9:	83 c4 04             	add    $0x4,%esp
4affec:	8b c6                	mov    %esi,%eax
4affee:	85 f6                	test   %esi,%esi
4afff0:	75 de                	jne    0x4affd0
4afff2:	83 ef 01             	sub    $0x1,%edi
4afff5:	8b 44 24 14          	mov    0x14(%esp),%eax
4afff9:	79 c5                	jns    0x4affc0
4afffb:	5e                   	pop    %esi
4afffc:	5d                   	pop    %ebp
4afffd:	5b                   	pop    %ebx
4afffe:	5f                   	pop    %edi
4affff:	c3                   	ret
4b0000:	53                   	push   %ebx
4b0001:	55                   	push   %ebp
4b0002:	56                   	push   %esi
4b0003:	8b 74 24 10          	mov    0x10(%esp),%esi
4b0007:	57                   	push   %edi
4b0008:	8b 6e 14             	mov    0x14(%esi),%ebp
4b000b:	8b 16                	mov    (%esi),%edx
4b000d:	ff 46 0c             	incl   0xc(%esi)
4b0010:	8d 0c aa             	lea    (%edx,%ebp,4),%ecx
4b0013:	ff 46 28             	incl   0x28(%esi)
4b0016:	8d 45 01             	lea    0x1(%ebp),%eax
4b0019:	89 46 14             	mov    %eax,0x14(%esi)
4b001c:	8b 46 18             	mov    0x18(%esi),%eax
4b001f:	03 c5                	add    %ebp,%eax
4b0021:	8d 1c 82             	lea    (%edx,%eax,4),%ebx
4b0024:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
4b002a:	8b 39                	mov    (%ecx),%edi
4b002c:	8b 46 10             	mov    0x10(%esi),%eax
4b002f:	89 44 24 14          	mov    %eax,0x14(%esp)
4b0033:	85 ff                	test   %edi,%edi
4b0035:	74 28                	je     0x4b005f
4b0037:	8b 47 08             	mov    0x8(%edi),%eax
4b003a:	33 d2                	xor    %edx,%edx
4b003c:	f7 74 24 14          	divl   0x14(%esp)
4b0040:	3b d5                	cmp    %ebp,%edx
4b0042:	74 10                	je     0x4b0054
4b0044:	8b 01                	mov    (%ecx),%eax
4b0046:	8b 40 04             	mov    0x4(%eax),%eax
4b0049:	89 01                	mov    %eax,(%ecx)
4b004b:	8b 03                	mov    (%ebx),%eax
4b004d:	89 47 04             	mov    %eax,0x4(%edi)
4b0050:	89 3b                	mov    %edi,(%ebx)
4b0052:	eb 05                	jmp    0x4b0059
4b0054:	8b 09                	mov    (%ecx),%ecx
4b0056:	83 c1 04             	add    $0x4,%ecx
4b0059:	8b 39                	mov    (%ecx),%edi
4b005b:	85 ff                	test   %edi,%edi
4b005d:	75 d8                	jne    0x4b0037
4b005f:	8b 46 14             	mov    0x14(%esi),%eax
4b0062:	3b 46 18             	cmp    0x18(%esi),%eax
4b0065:	72 5c                	jb     0x4b00c3
4b0067:	8b 5e 10             	mov    0x10(%esi),%ebx
4b006a:	03 db                	add    %ebx,%ebx
4b006c:	68 50 01 00 00       	push   $0x150
4b0071:	68 4c 9c 6a 00       	push   $0x6a9c4c
4b0076:	8d 04 9d 00 00 00 00 	lea    0x0(,%ebx,4),%eax
4b007d:	50                   	push   %eax
4b007e:	ff 36                	push   (%esi)
4b0080:	e8 9b 01 ff ff       	call   0x4a0220
4b0085:	8b d0                	mov    %eax,%edx
4b0087:	83 c4 10             	add    $0x10,%esp
4b008a:	85 d2                	test   %edx,%edx
4b008c:	75 0e                	jne    0x4b009c
4b008e:	ff 46 5c             	incl   0x5c(%esi)
4b0091:	ff 4e 0c             	decl   0xc(%esi)
4b0094:	5f                   	pop    %edi
4b0095:	89 46 14             	mov    %eax,0x14(%esi)
4b0098:	5e                   	pop    %esi
4b0099:	5d                   	pop    %ebp
4b009a:	5b                   	pop    %ebx
4b009b:	c3                   	ret
4b009c:	8b 46 10             	mov    0x10(%esi),%eax
4b009f:	3b c3                	cmp    %ebx,%eax
4b00a1:	73 0b                	jae    0x4b00ae
4b00a3:	8b cb                	mov    %ebx,%ecx
4b00a5:	8d 3c 82             	lea    (%edx,%eax,4),%edi
4b00a8:	2b c8                	sub    %eax,%ecx
4b00aa:	33 c0                	xor    %eax,%eax
4b00ac:	f3 ab                	rep stos %eax,%es:(%edi)
4b00ae:	8b 46 10             	mov    0x10(%esi),%eax
4b00b1:	ff 46 2c             	incl   0x2c(%esi)
4b00b4:	89 46 18             	mov    %eax,0x18(%esi)
4b00b7:	89 5e 10             	mov    %ebx,0x10(%esi)
4b00ba:	89 16                	mov    %edx,(%esi)
4b00bc:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4b00c3:	5f                   	pop    %edi
4b00c4:	5e                   	pop    %esi
4b00c5:	5d                   	pop    %ebp
4b00c6:	5b                   	pop    %ebx
4b00c7:	c3                   	ret
4b00c8:	cc                   	int3
4b00c9:	cc                   	int3
4b00ca:	cc                   	int3
4b00cb:	cc                   	int3
4b00cc:	cc                   	int3
4b00cd:	cc                   	int3
4b00ce:	cc                   	int3
4b00cf:	cc                   	int3
4b00d0:	53                   	push   %ebx
4b00d1:	55                   	push   %ebp
4b00d2:	56                   	push   %esi
4b00d3:	57                   	push   %edi
4b00d4:	8b 7c 24 14          	mov    0x14(%esp),%edi
4b00d8:	ff 74 24 18          	push   0x18(%esp)
4b00dc:	8b 47 08             	mov    0x8(%edi),%eax
4b00df:	ff d0                	call   *%eax
4b00e1:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4b00e5:	8b e8                	mov    %eax,%ebp
4b00e7:	ff 47 38             	incl   0x38(%edi)
4b00ea:	33 d2                	xor    %edx,%edx
4b00ec:	83 c4 04             	add    $0x4,%esp
4b00ef:	89 29                	mov    %ebp,(%ecx)
4b00f1:	f7 77 18             	divl   0x18(%edi)
4b00f4:	3b 57 14             	cmp    0x14(%edi),%edx
4b00f7:	73 07                	jae    0x4b0100
4b00f9:	8b c5                	mov    %ebp,%eax
4b00fb:	33 d2                	xor    %edx,%edx
4b00fd:	f7 77 10             	divl   0x10(%edi)
4b0100:	8b 07                	mov    (%edi),%eax
4b0102:	8b 34 90             	mov    (%eax,%edx,4),%esi
4b0105:	8d 1c 90             	lea    (%eax,%edx,4),%ebx
4b0108:	8b 4f 04             	mov    0x4(%edi),%ecx
4b010b:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4b010f:	85 f6                	test   %esi,%esi
4b0111:	74 29                	je     0x4b013c
4b0113:	ff 47 58             	incl   0x58(%edi)
4b0116:	39 6e 08             	cmp    %ebp,0x8(%esi)
4b0119:	75 16                	jne    0x4b0131
4b011b:	ff 74 24 18          	push   0x18(%esp)
4b011f:	ff 47 3c             	incl   0x3c(%edi)
4b0122:	ff 36                	push   (%esi)
4b0124:	ff d1                	call   *%ecx
4b0126:	83 c4 08             	add    $0x8,%esp
4b0129:	85 c0                	test   %eax,%eax
4b012b:	74 0f                	je     0x4b013c
4b012d:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4b0131:	83 c6 04             	add    $0x4,%esi
4b0134:	8b de                	mov    %esi,%ebx
4b0136:	8b 36                	mov    (%esi),%esi
4b0138:	85 f6                	test   %esi,%esi
4b013a:	75 d7                	jne    0x4b0113
4b013c:	5f                   	pop    %edi
4b013d:	5e                   	pop    %esi
4b013e:	5d                   	pop    %ebp
4b013f:	8b c3                	mov    %ebx,%eax
4b0141:	5b                   	pop    %ebx
4b0142:	c3                   	ret
4b0143:	cc                   	int3
4b0144:	cc                   	int3
4b0145:	cc                   	int3
4b0146:	cc                   	int3
4b0147:	cc                   	int3
4b0148:	cc                   	int3
4b0149:	cc                   	int3
4b014a:	cc                   	int3
4b014b:	cc                   	int3
4b014c:	cc                   	int3
4b014d:	cc                   	int3
4b014e:	cc                   	int3
4b014f:	cc                   	int3
4b0150:	56                   	push   %esi
4b0151:	8b 74 24 08          	mov    0x8(%esp),%esi
4b0155:	8d 44 24 08          	lea    0x8(%esp),%eax
4b0159:	50                   	push   %eax
4b015a:	ff 74 24 10          	push   0x10(%esp)
4b015e:	56                   	push   %esi
4b015f:	c7 46 5c 00 00 00 00 	movl   $0x0,0x5c(%esi)
4b0166:	e8 65 ff ff ff       	call   0x4b00d0
4b016b:	8b d0                	mov    %eax,%edx
4b016d:	83 c4 0c             	add    $0xc,%esp
4b0170:	8b 0a                	mov    (%edx),%ecx
4b0172:	85 c9                	test   %ecx,%ecx