ac6f57:	74 ed                	je     0xac6f46
ac6f59:	5f                   	pop    %edi
ac6f5a:	5e                   	pop    %esi
ac6f5b:	85 c9                	test   %ecx,%ecx
ac6f5d:	79 05                	jns    0xac6f64
ac6f5f:	83 c8 ff             	or     $0xffffffff,%eax
ac6f62:	5d                   	pop    %ebp
ac6f63:	c3                   	ret
ac6f64:	33 c0                	xor    %eax,%eax
ac6f66:	85 c9                	test   %ecx,%ecx
ac6f68:	0f 9f c0             	setg   %al
ac6f6b:	5d                   	pop    %ebp
ac6f6c:	c3                   	ret
ac6f6d:	cc                   	int3
ac6f6e:	cc                   	int3
ac6f6f:	cc                   	int3
ac6f70:	cc                   	int3
ac6f71:	cc                   	int3
ac6f72:	cc                   	int3
ac6f73:	cc                   	int3
ac6f74:	cc                   	int3
ac6f75:	cc                   	int3
ac6f76:	cc                   	int3
ac6f77:	cc                   	int3
ac6f78:	cc                   	int3
ac6f79:	cc                   	int3
ac6f7a:	cc                   	int3
ac6f7b:	cc                   	int3
ac6f7c:	cc                   	int3
ac6f7d:	8b ff                	mov    %edi,%edi
ac6f7f:	55                   	push   %ebp
ac6f80:	8b ec                	mov    %esp,%ebp
ac6f82:	8b 45 08             	mov    0x8(%ebp),%eax
ac6f85:	99                   	cltd
ac6f86:	33 c2                	xor    %edx,%eax
ac6f88:	2b c2                	sub    %edx,%eax
ac6f8a:	5d                   	pop    %ebp
ac6f8b:	c3                   	ret
ac6f8c:	cc                   	int3
ac6f8d:	cc                   	int3
ac6f8e:	cc                   	int3
ac6f8f:	8b ff                	mov    %edi,%edi
ac6f91:	55                   	push   %ebp
ac6f92:	8b ec                	mov    %esp,%ebp
ac6f94:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
ac6f98:	75 04                	jne    0xac6f9e
ac6f9a:	33 c0                	xor    %eax,%eax
ac6f9c:	5d                   	pop    %ebp
ac6f9d:	c3                   	ret
ac6f9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
ac6fa1:	57                   	push   %edi
ac6fa2:	33 ff                	xor    %edi,%edi
ac6fa4:	8d 51 02             	lea    0x2(%ecx),%edx
ac6fa7:	66 8b 01             	mov    (%ecx),%ax
ac6faa:	83 c1 02             	add    $0x2,%ecx
ac6fad:	66 3b c7             	cmp    %di,%ax
ac6fb0:	75 f5                	jne    0xac6fa7
ac6fb2:	2b ca                	sub    %edx,%ecx
ac6fb4:	d1 f9                	sar    $1,%ecx
ac6fb6:	53                   	push   %ebx
ac6fb7:	8d 59 01             	lea    0x1(%ecx),%ebx
ac6fba:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
ac6fbd:	50                   	push   %eax
ac6fbe:	e8 f0 dc 94 ff       	call   0x414cb3
ac6fc3:	8b f8                	mov    %eax,%edi
ac6fc5:	59                   	pop    %ecx
ac6fc6:	85 ff                	test   %edi,%edi
ac6fc8:	75 04                	jne    0xac6fce
ac6fca:	5b                   	pop    %ebx
ac6fcb:	5f                   	pop    %edi
ac6fcc:	5d                   	pop    %ebp
ac6fcd:	c3                   	ret
ac6fce:	ff 75 08             	push   0x8(%ebp)
ac6fd1:	53                   	push   %ebx
ac6fd2:	57                   	push   %edi
ac6fd3:	e8 93 b6 94 ff       	call   0x41266b
ac6fd8:	83 c4 0c             	add    $0xc,%esp
ac6fdb:	85 c0                	test   %eax,%eax
ac6fdd:	75 04                	jne    0xac6fe3
ac6fdf:	8b c7                	mov    %edi,%eax
ac6fe1:	eb e7                	jmp    0xac6fca
ac6fe3:	33 c0                	xor    %eax,%eax
ac6fe5:	50                   	push   %eax
ac6fe6:	50                   	push   %eax
ac6fe7:	50                   	push   %eax
ac6fe8:	50                   	push   %eax
ac6fe9:	50                   	push   %eax
ac6fea:	e8 69 f4 96 ff       	call   0x436458
ac6fef:	cc                   	int3
ac6ff0:	cc                   	int3
ac6ff1:	cc                   	int3
ac6ff2:	cc                   	int3
ac6ff3:	cc                   	int3
ac6ff4:	cc                   	int3
ac6ff5:	cc                   	int3
ac6ff6:	cc                   	int3
ac6ff7:	cc                   	int3
ac6ff8:	cc                   	int3
ac6ff9:	cc                   	int3
ac6ffa:	cc                   	int3
ac6ffb:	cc                   	int3
ac6ffc:	cc                   	int3
ac6ffd:	cc                   	int3
ac6ffe:	cc                   	int3
ac6fff:	cc                   	int3
ac7000:	cc                   	int3
ac7001:	cc                   	int3
ac7002:	cc                   	int3
ac7003:	cc                   	int3
ac7004:	cc                   	int3
ac7005:	cc                   	int3
ac7006:	cc                   	int3
ac7007:	cc                   	int3
ac7008:	ff 15 ac 38 d8 00    	call   *0xd838ac
ac700e:	a3 58 19 d8 00       	mov    %eax,0xd81958
ac7013:	ff 15 6c 35 d8 00    	call   *0xd8356c
ac7019:	a3 5c 19 d8 00       	mov    %eax,0xd8195c
ac701e:	b0 01                	mov    $0x1,%al
ac7020:	c3                   	ret
ac7021:	cc                   	int3
ac7022:	cc                   	int3
ac7023:	cc                   	int3
ac7024:	cc                   	int3
ac7025:	cc                   	int3
ac7026:	cc                   	int3
ac7027:	b0 01                	mov    $0x1,%al
ac7029:	c3                   	ret
ac702a:	b8 4c 19 d8 00       	mov    $0xd8194c,%eax
ac702f:	c3                   	ret
ac7030:	b8 50 19 d8 00       	mov    $0xd81950,%eax
ac7035:	c3                   	ret
ac7036:	b8 54 19 d8 00       	mov    $0xd81954,%eax
ac703b:	c3                   	ret
ac703c:	b8 58 19 d8 00       	mov    $0xd81958,%eax
ac7041:	c3                   	ret
ac7042:	b8 60 19 d8 00       	mov    $0xd81960,%eax
ac7047:	c3                   	ret
ac7048:	b8 5c 19 d8 00       	mov    $0xd8195c,%eax
ac704d:	c3                   	ret
ac704e:	b8 64 19 d8 00       	mov    $0xd81964,%eax
ac7053:	c3                   	ret
ac7054:	8b ff                	mov    %edi,%edi
ac7056:	55                   	push   %ebp
ac7057:	8b ec                	mov    %esp,%ebp
ac7059:	8b 45 08             	mov    0x8(%ebp),%eax
ac705c:	56                   	push   %esi
ac705d:	85 c0                	test   %eax,%eax
ac705f:	75 13                	jne    0xac7074
ac7061:	e8 09 78 97 ff       	call   0x43e86f
ac7066:	6a 16                	push   $0x16
ac7068:	5e                   	pop    %esi
ac7069:	89 30                	mov    %esi,(%eax)
ac706b:	e8 88 82 95 ff       	call   0x41f2f8
ac7070:	8b c6                	mov    %esi,%eax
ac7072:	eb 0e                	jmp    0xac7082
ac7074:	8b 0d 60 19 d8 00    	mov    0xd81960,%ecx
ac707a:	85 c9                	test   %ecx,%ecx
ac707c:	74 e3                	je     0xac7061
ac707e:	89 08                	mov    %ecx,(%eax)
ac7080:	33 c0                	xor    %eax,%eax
ac7082:	5e                   	pop    %esi
ac7083:	5d                   	pop    %ebp
ac7084:	c3                   	ret
ac7085:	cc                   	int3
ac7086:	cc                   	int3
ac7087:	cc                   	int3
ac7088:	cc                   	int3
ac7089:	cc                   	int3
ac708a:	cc                   	int3
ac708b:	cc                   	int3
ac708c:	cc                   	int3
ac708d:	cc                   	int3
ac708e:	cc                   	int3
ac708f:	cc                   	int3
ac7090:	cc                   	int3
ac7091:	8b ff                	mov    %edi,%edi
ac7093:	55                   	push   %ebp
ac7094:	8b ec                	mov    %esp,%ebp
ac7096:	8b 45 08             	mov    0x8(%ebp),%eax
ac7099:	56                   	push   %esi
ac709a:	85 c0                	test   %eax,%eax
ac709c:	75 13                	jne    0xac70b1
ac709e:	e8 cc 77 97 ff       	call   0x43e86f
ac70a3:	6a 16                	push   $0x16
ac70a5:	5e                   	pop    %esi
ac70a6:	89 30                	mov    %esi,(%eax)
ac70a8:	e8 4b 82 95 ff       	call   0x41f2f8
ac70ad:	8b c6                	mov    %esi,%eax
ac70af:	eb 0e                	jmp    0xac70bf
ac70b1:	8b 0d 64 19 d8 00    	mov    0xd81964,%ecx
ac70b7:	85 c9                	test   %ecx,%ecx
ac70b9:	74 e3                	je     0xac709e
ac70bb:	89 08                	mov    %ecx,(%eax)
ac70bd:	33 c0                	xor    %eax,%eax
ac70bf:	5e                   	pop    %esi
ac70c0:	5d                   	pop    %ebp
ac70c1:	c3                   	ret
ac70c2:	cc                   	int3
ac70c3:	cc                   	int3
ac70c4:	cc                   	int3
ac70c5:	cc                   	int3
ac70c6:	cc                   	int3
ac70c7:	cc                   	int3
ac70c8:	cc                   	int3
ac70c9:	cc                   	int3
ac70ca:	cc                   	int3
ac70cb:	cc                   	int3
ac70cc:	cc                   	int3
ac70cd:	cc                   	int3
ac70ce:	8b ff                	mov    %edi,%edi
ac70d0:	55                   	push   %ebp
ac70d1:	8b ec                	mov    %esp,%ebp
ac70d3:	8b 45 08             	mov    0x8(%ebp),%eax
ac70d6:	33 c9                	xor    %ecx,%ecx
ac70d8:	53                   	push   %ebx
ac70d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
ac70dc:	56                   	push   %esi
ac70dd:	8b f3                	mov    %ebx,%esi
ac70df:	57                   	push   %edi
ac70e0:	38 4d 18             	cmp    %cl,0x18(%ebp)
ac70e3:	74 09                	je     0xac70ee
ac70e5:	41                   	inc    %ecx
ac70e6:	c6 03 2d             	movb   $0x2d,(%ebx)
ac70e9:	8d 73 01             	lea    0x1(%ebx),%esi
ac70ec:	f7 d8                	neg    %eax
ac70ee:	8b fe                	mov    %esi,%edi
ac70f0:	33 d2                	xor    %edx,%edx
ac70f2:	f7 75 14             	divl   0x14(%ebp)
ac70f5:	83 fa 09             	cmp    $0x9,%edx
ac70f8:	76 05                	jbe    0xac70ff
ac70fa:	80 c2 57             	add    $0x57,%dl
ac70fd:	eb 03                	jmp    0xac7102
ac70ff:	80 c2 30             	add    $0x30,%dl
ac7102:	88 16                	mov    %dl,(%esi)
ac7104:	46                   	inc    %esi
ac7105:	41                   	inc    %ecx
ac7106:	85 c0                	test   %eax,%eax
ac7108:	74 05                	je     0xac710f
ac710a:	3b 4d 10             	cmp    0x10(%ebp),%ecx
ac710d:	72 e1                	jb     0xac70f0
ac710f:	3b 4d 10             	cmp    0x10(%ebp),%ecx
ac7112:	72 16                	jb     0xac712a
ac7114:	c6 03 00             	movb   $0x0,(%ebx)
ac7117:	e8 53 77 97 ff       	call   0x43e86f
ac711c:	6a 22                	push   $0x22
ac711e:	5e                   	pop    %esi
ac711f:	89 30                	mov    %esi,(%eax)
ac7121:	e8 d2 81 95 ff       	call   0x41f2f8
ac7126:	8b c6                	mov    %esi,%eax
ac7128:	eb 14                	jmp    0xac713e
ac712a:	c6 06 00             	movb   $0x0,(%esi)
ac712d:	4e                   	dec    %esi
ac712e:	8a 07                	mov    (%edi),%al
ac7130:	8a 0e                	mov    (%esi),%cl
ac7132:	88 06                	mov    %al,(%esi)
ac7134:	4e                   	dec    %esi
ac7135:	88 0f                	mov    %cl,(%edi)
ac7137:	47                   	inc    %edi
ac7138:	3b fe                	cmp    %esi,%edi
ac713a:	72 f2                	jb     0xac712e
ac713c:	33 c0                	xor    %eax,%eax
ac713e:	5f                   	pop    %edi
ac713f:	5e                   	pop    %esi
ac7140:	5b                   	pop    %ebx
ac7141:	5d                   	pop    %ebp
ac7142:	c3                   	ret
ac7143:	cc                   	int3
ac7144:	cc                   	int3
ac7145:	cc                   	int3
ac7146:	cc                   	int3
ac7147:	cc                   	int3
ac7148:	cc                   	int3
ac7149:	cc                   	int3
ac714a:	cc                   	int3
ac714b:	cc                   	int3
ac714c:	cc                   	int3
ac714d:	cc                   	int3
ac714e:	cc                   	int3
ac714f:	cc                   	int3
ac7150:	cc                   	int3
ac7151:	cc                   	int3
ac7152:	cc                   	int3
ac7153:	cc                   	int3
ac7154:	cc                   	int3
ac7155:	cc                   	int3
ac7156:	cc                   	int3
ac7157:	cc                   	int3
ac7158:	cc                   	int3
ac7159:	cc                   	int3
ac715a:	cc                   	int3
ac715b:	cc                   	int3
ac715c:	cc                   	int3
ac715d:	cc                   	int3
ac715e:	cc                   	int3
ac715f:	cc                   	int3
ac7160:	8b ff                	mov    %edi,%edi
ac7162:	55                   	push   %ebp
ac7163:	8b ec                	mov    %esp,%ebp
ac7165:	8b 45 0c             	mov    0xc(%ebp),%eax
ac7168:	8b 4d 08             	mov    0x8(%ebp),%ecx
ac716b:	53                   	push   %ebx
ac716c:	56                   	push   %esi
ac716d:	33 db                	xor    %ebx,%ebx
ac716f:	8b f0                	mov    %eax,%esi
ac7171:	57                   	push   %edi
ac7172:	38 5d 18             	cmp    %bl,0x18(%ebp)
ac7175:	74 0c                	je     0xac7183
ac7177:	6a 2d                	push   $0x2d
ac7179:	5a                   	pop    %edx
ac717a:	43                   	inc    %ebx
ac717b:	66 89 10             	mov    %dx,(%eax)
ac717e:	8d 70 02             	lea    0x2(%eax),%esi
ac7181:	f7 d9                	neg    %ecx
ac7183:	8b fe                	mov    %esi,%edi
ac7185:	8b c1                	mov    %ecx,%eax
ac7187:	33 d2                	xor    %edx,%edx
ac7189:	f7 75 14             	divl   0x14(%ebp)
ac718c:	8b c8                	mov    %eax,%ecx
ac718e:	8d 42 57             	lea    0x57(%edx),%eax
ac7191:	83 fa 09             	cmp    $0x9,%edx
ac7194:	77 03                	ja     0xac7199
ac7196:	8d 42 30             	lea    0x30(%edx),%eax
ac7199:	66 89 06             	mov    %ax,(%esi)
ac719c:	83 c6 02             	add    $0x2,%esi
ac719f:	43                   	inc    %ebx
ac71a0:	85 c9                	test   %ecx,%ecx
ac71a2:	74 05                	je     0xac71a9
ac71a4:	3b 5d 10             	cmp    0x10(%ebp),%ebx
ac71a7:	72 dc                	jb     0xac7185
ac71a9:	3b 5d 10             	cmp    0x10(%ebp),%ebx
ac71ac:	72 1b                	jb     0xac71c9
ac71ae:	8b 45 0c             	mov    0xc(%ebp),%eax
ac71b1:	33 c9                	xor    %ecx,%ecx
ac71b3:	66 89 08             	mov    %cx,(%eax)
ac71b6:	e8 b4 76 97 ff       	call   0x43e86f
ac71bb:	6a 22                	push   $0x22
ac71bd:	5e                   	pop    %esi
ac71be:	89 30                	mov    %esi,(%eax)
ac71c0:	e8 33 81 95 ff       	call   0x41f2f8
ac71c5:	8b c6                	mov    %esi,%eax
ac71c7:	eb 20                	jmp    0xac71e9
ac71c9:	33 c0                	xor    %eax,%eax
ac71cb:	66 89 06             	mov    %ax,(%esi)
ac71ce:	83 ee 02             	sub    $0x2,%esi
ac71d1:	66 8b 07             	mov    (%edi),%ax
ac71d4:	0f b7 0e             	movzwl (%esi),%ecx
ac71d7:	66 89 06             	mov    %ax,(%esi)
ac71da:	83 ee 02             	sub    $0x2,%esi
ac71dd:	66 89 0f             	mov    %cx,(%edi)
ac71e0:	83 c7 02             	add    $0x2,%edi