416f31:	8b ff                	mov    %edi,%edi
416f33:	55                   	push   %ebp
416f34:	8b ec                	mov    %esp,%ebp
416f36:	8a 45 10             	mov    0x10(%ebp),%al
416f39:	53                   	push   %ebx
416f3a:	56                   	push   %esi
416f3b:	57                   	push   %edi
416f3c:	3c 01                	cmp    $0x1,%al
416f3e:	74 32                	je     0x416f72
416f40:	3c 02                	cmp    $0x2,%al
416f42:	74 2e                	je     0x416f72
416f44:	8b 4d 08             	mov    0x8(%ebp),%ecx
416f47:	33 f6                	xor    %esi,%esi
416f49:	8b 45 0c             	mov    0xc(%ebp),%eax
416f4c:	33 d2                	xor    %edx,%edx
416f4e:	33 db                	xor    %ebx,%ebx
416f50:	2b c1                	sub    %ecx,%eax
416f52:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
416f55:	1b ff                	sbb    %edi,%edi
416f57:	f7 d7                	not    %edi
416f59:	23 f8                	and    %eax,%edi
416f5b:	74 11                	je     0x416f6e
416f5d:	80 39 0a             	cmpb   $0xa,(%ecx)
416f60:	75 06                	jne    0x416f68
416f62:	83 c6 01             	add    $0x1,%esi
416f65:	83 d2 00             	adc    $0x0,%edx
416f68:	41                   	inc    %ecx
416f69:	43                   	inc    %ebx
416f6a:	3b df                	cmp    %edi,%ebx
416f6c:	75 ef                	jne    0x416f5d
416f6e:	8b c6                	mov    %esi,%eax
416f70:	eb 38                	jmp    0x416faa
416f72:	8b 75 08             	mov    0x8(%ebp),%esi
416f75:	33 c9                	xor    %ecx,%ecx
416f77:	8b 45 0c             	mov    0xc(%ebp),%eax
416f7a:	33 d2                	xor    %edx,%edx
416f7c:	2b c6                	sub    %esi,%eax
416f7e:	33 db                	xor    %ebx,%ebx
416f80:	40                   	inc    %eax
416f81:	d1 e8                	shr    $1,%eax
416f83:	39 75 0c             	cmp    %esi,0xc(%ebp)
416f86:	1b ff                	sbb    %edi,%edi
416f88:	f7 d7                	not    %edi
416f8a:	23 f8                	and    %eax,%edi
416f8c:	74 14                	je     0x416fa2
416f8e:	66 83 3e 0a          	cmpw   $0xa,(%esi)
416f92:	75 06                	jne    0x416f9a
416f94:	83 c1 01             	add    $0x1,%ecx
416f97:	83 d2 00             	adc    $0x0,%edx
416f9a:	83 c6 02             	add    $0x2,%esi
416f9d:	43                   	inc    %ebx
416f9e:	3b df                	cmp    %edi,%ebx
416fa0:	75 ec                	jne    0x416f8e
416fa2:	0f a4 ca 01          	shld   $0x1,%ecx,%edx
416fa6:	03 c9                	add    %ecx,%ecx
416fa8:	8b c1                	mov    %ecx,%eax
416faa:	5f                   	pop    %edi
416fab:	5e                   	pop    %esi
416fac:	5b                   	pop    %ebx
416fad:	5d                   	pop    %ebp
416fae:	c3                   	ret
416faf:	8b ff                	mov    %edi,%edi
416fb1:	55                   	push   %ebp
416fb2:	8b ec                	mov    %esp,%ebp
416fb4:	5d                   	pop    %ebp
416fb5:	e9 24 fa ff ff       	jmp    0x4169de
416fba:	8b ff                	mov    %edi,%edi
416fbc:	55                   	push   %ebp
416fbd:	8b ec                	mov    %esp,%ebp
416fbf:	5d                   	pop    %ebp
416fc0:	e9 99 fa ff ff       	jmp    0x416a5e
416fc5:	8b ff                	mov    %edi,%edi
416fc7:	55                   	push   %ebp
416fc8:	8b ec                	mov    %esp,%ebp
416fca:	ff 75 0c             	push   0xc(%ebp)
416fcd:	e8 bc df ff ff       	call   0x414f8e
416fd2:	8b 45 0c             	mov    0xc(%ebp),%eax
416fd5:	59                   	pop    %ecx
416fd6:	8b 40 0c             	mov    0xc(%eax),%eax
416fd9:	90                   	nop
416fda:	a8 06                	test   $0x6,%al
416fdc:	75 1c                	jne    0x416ffa
416fde:	e8 18 7e ff ff       	call   0x40edfb
416fe3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
416fe9:	8b 45 0c             	mov    0xc(%ebp),%eax
416fec:	6a 10                	push   $0x10
416fee:	59                   	pop    %ecx
416fef:	83 c0 0c             	add    $0xc,%eax
416ff2:	f0 09 08             	lock or %ecx,(%eax)
416ff5:	83 c8 ff             	or     $0xffffffff,%eax
416ff8:	5d                   	pop    %ebp
416ff9:	c3                   	ret
416ffa:	8b 45 0c             	mov    0xc(%ebp),%eax
416ffd:	8b 40 0c             	mov    0xc(%eax),%eax
417000:	90                   	nop
417001:	c1 e8 0c             	shr    $0xc,%eax
417004:	a8 01                	test   $0x1,%al
417006:	74 0d                	je     0x417015
417008:	e8 ee 7d ff ff       	call   0x40edfb
41700d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
417013:	eb d4                	jmp    0x416fe9
417015:	8b 45 0c             	mov    0xc(%ebp),%eax
417018:	8b 40 0c             	mov    0xc(%eax),%eax
41701b:	90                   	nop
41701c:	a8 01                	test   $0x1,%al
41701e:	74 28                	je     0x417048
417020:	ff 75 0c             	push   0xc(%ebp)
417023:	e8 59 01 00 00       	call   0x417181
417028:	59                   	pop    %ecx
417029:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41702c:	83 61 08 00          	andl   $0x0,0x8(%ecx)
417030:	84 c0                	test   %al,%al
417032:	8b 45 0c             	mov    0xc(%ebp),%eax
417035:	74 b5                	je     0x416fec
417037:	8b 48 04             	mov    0x4(%eax),%ecx
41703a:	89 08                	mov    %ecx,(%eax)
41703c:	8b 45 0c             	mov    0xc(%ebp),%eax
41703f:	6a fe                	push   $0xfffffffe
417041:	59                   	pop    %ecx
417042:	83 c0 0c             	add    $0xc,%eax
417045:	f0 21 08             	lock and %ecx,(%eax)
417048:	8b 45 0c             	mov    0xc(%ebp),%eax
41704b:	6a 02                	push   $0x2
41704d:	59                   	pop    %ecx
41704e:	83 c0 0c             	add    $0xc,%eax
417051:	f0 09 08             	lock or %ecx,(%eax)
417054:	8b 45 0c             	mov    0xc(%ebp),%eax
417057:	6a f7                	push   $0xfffffff7
417059:	59                   	pop    %ecx
41705a:	83 c0 0c             	add    $0xc,%eax
41705d:	f0 21 08             	lock and %ecx,(%eax)
417060:	8b 45 0c             	mov    0xc(%ebp),%eax
417063:	83 60 08 00          	andl   $0x0,0x8(%eax)
417067:	8b 45 0c             	mov    0xc(%ebp),%eax
41706a:	8b 40 0c             	mov    0xc(%eax),%eax
41706d:	90                   	nop
41706e:	a9 c0 04 00 00       	test   $0x4c0,%eax
417073:	75 16                	jne    0x41708b
417075:	ff 75 0c             	push   0xc(%ebp)
417078:	e8 4d df ff ff       	call   0x414fca
41707d:	59                   	pop    %ecx
41707e:	84 c0                	test   %al,%al
417080:	75 09                	jne    0x41708b
417082:	ff 75 0c             	push   0xc(%ebp)
417085:	e8 de 0c 00 00       	call   0x417d68
41708a:	59                   	pop    %ecx
41708b:	53                   	push   %ebx
41708c:	ff 75 0c             	push   0xc(%ebp)
41708f:	8b 5d 08             	mov    0x8(%ebp),%ebx
417092:	53                   	push   %ebx
417093:	e8 1d 00 00 00       	call   0x4170b5
417098:	59                   	pop    %ecx
417099:	59                   	pop    %ecx
41709a:	84 c0                	test   %al,%al
41709c:	75 11                	jne    0x4170af
41709e:	8b 45 0c             	mov    0xc(%ebp),%eax
4170a1:	6a 10                	push   $0x10
4170a3:	59                   	pop    %ecx
4170a4:	83 c0 0c             	add    $0xc,%eax
4170a7:	f0 09 08             	lock or %ecx,(%eax)
4170aa:	83 c8 ff             	or     $0xffffffff,%eax
4170ad:	eb 03                	jmp    0x4170b2
4170af:	0f b6 c3             	movzbl %bl,%eax
4170b2:	5b                   	pop    %ebx
4170b3:	5d                   	pop    %ebp
4170b4:	c3                   	ret
4170b5:	8b ff                	mov    %edi,%edi
4170b7:	55                   	push   %ebp
4170b8:	8b ec                	mov    %esp,%ebp
4170ba:	56                   	push   %esi
4170bb:	57                   	push   %edi
4170bc:	ff 75 0c             	push   0xc(%ebp)
4170bf:	e8 ca de ff ff       	call   0x414f8e
4170c4:	59                   	pop    %ecx
4170c5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4170c8:	8b d0                	mov    %eax,%edx
4170ca:	8b 49 0c             	mov    0xc(%ecx),%ecx
4170cd:	90                   	nop
4170ce:	f6 c1 c0             	test   $0xc0,%cl
4170d1:	0f 84 90 00 00 00    	je     0x417167
4170d7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4170da:	33 ff                	xor    %edi,%edi
4170dc:	8b 41 04             	mov    0x4(%ecx),%eax
4170df:	8b 31                	mov    (%ecx),%esi
4170e1:	2b f0                	sub    %eax,%esi
4170e3:	40                   	inc    %eax
4170e4:	89 01                	mov    %eax,(%ecx)
4170e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4170e9:	8b 48 18             	mov    0x18(%eax),%ecx
4170ec:	49                   	dec    %ecx
4170ed:	89 48 08             	mov    %ecx,0x8(%eax)
4170f0:	85 f6                	test   %esi,%esi
4170f2:	7e 24                	jle    0x417118
4170f4:	8b 45 0c             	mov    0xc(%ebp),%eax
4170f7:	56                   	push   %esi
4170f8:	ff 70 04             	push   0x4(%eax)
4170fb:	52                   	push   %edx
4170fc:	e8 7c f4 ff ff       	call   0x41657d
417101:	83 c4 0c             	add    $0xc,%esp
417104:	8b f8                	mov    %eax,%edi
417106:	8b 45 0c             	mov    0xc(%ebp),%eax
417109:	3b fe                	cmp    %esi,%edi
41710b:	8b 48 04             	mov    0x4(%eax),%ecx
41710e:	8a 45 08             	mov    0x8(%ebp),%al
417111:	88 01                	mov    %al,(%ecx)
417113:	0f 94 c0             	sete   %al
417116:	eb 65                	jmp    0x41717d
417118:	83 fa ff             	cmp    $0xffffffff,%edx
41711b:	74 1b                	je     0x417138
41711d:	83 fa fe             	cmp    $0xfffffffe,%edx
417120:	74 16                	je     0x417138
417122:	8b c2                	mov    %edx,%eax
417124:	8b ca                	mov    %edx,%ecx
417126:	83 e0 3f             	and    $0x3f,%eax
417129:	c1 f9 06             	sar    $0x6,%ecx
41712c:	6b c0 38             	imul   $0x38,%eax,%eax
41712f:	03 04 8d c0 4a 43 00 	add    0x434ac0(,%ecx,4),%eax
417136:	eb 05                	jmp    0x41713d
417138:	b8 90 31 43 00       	mov    $0x433190,%eax
41713d:	f6 40 28 20          	testb  $0x20,0x28(%eax)
417141:	74 c3                	je     0x417106
417143:	6a 02                	push   $0x2
417145:	57                   	push   %edi
417146:	57                   	push   %edi
417147:	52                   	push   %edx
417148:	e8 e5 0b 00 00       	call   0x417d32
41714d:	23 c2                	and    %edx,%eax
41714f:	83 c4 10             	add    $0x10,%esp
417152:	83 f8 ff             	cmp    $0xffffffff,%eax
417155:	75 af                	jne    0x417106
417157:	8b 45 0c             	mov    0xc(%ebp),%eax
41715a:	6a 10                	push   $0x10
41715c:	59                   	pop    %ecx
41715d:	83 c0 0c             	add    $0xc,%eax
417160:	f0 09 08             	lock or %ecx,(%eax)
417163:	b0 01                	mov    $0x1,%al
417165:	eb 16                	jmp    0x41717d
417167:	6a 01                	push   $0x1
417169:	8d 45 08             	lea    0x8(%ebp),%eax
41716c:	50                   	push   %eax
41716d:	52                   	push   %edx
41716e:	e8 0a f4 ff ff       	call   0x41657d
417173:	83 c4 0c             	add    $0xc,%esp
417176:	48                   	dec    %eax
417177:	f7 d8                	neg    %eax
417179:	1a c0                	sbb    %al,%al
41717b:	fe c0                	inc    %al
41717d:	5f                   	pop    %edi
41717e:	5e                   	pop    %esi
41717f:	5d                   	pop    %ebp
417180:	c3                   	ret
417181:	8b ff                	mov    %edi,%edi
417183:	55                   	push   %ebp
417184:	8b ec                	mov    %esp,%ebp
417186:	8b 45 08             	mov    0x8(%ebp),%eax
417189:	83 ec 10             	sub    $0x10,%esp
41718c:	8b 40 0c             	mov    0xc(%eax),%eax
41718f:	90                   	nop
417190:	c1 e8 03             	shr    $0x3,%eax
417193:	a8 01                	test   $0x1,%al
417195:	74 04                	je     0x41719b
417197:	b0 01                	mov    $0x1,%al
417199:	c9                   	leave
41719a:	c3                   	ret
41719b:	8b 45 08             	mov    0x8(%ebp),%eax
41719e:	53                   	push   %ebx
41719f:	56                   	push   %esi
4171a0:	8b 40 0c             	mov    0xc(%eax),%eax
4171a3:	90                   	nop
4171a4:	a8 c0                	test   $0xc0,%al
4171a6:	8b 45 08             	mov    0x8(%ebp),%eax
4171a9:	74 07                	je     0x4171b2
4171ab:	8b 08                	mov    (%eax),%ecx
4171ad:	3b 48 04             	cmp    0x4(%eax),%ecx
4171b0:	74 4e                	je     0x417200
4171b2:	8b 40 10             	mov    0x10(%eax),%eax
4171b5:	90                   	nop
4171b6:	50                   	push   %eax
4171b7:	e8 3a 46 00 00       	call   0x41b7f6
4171bc:	8b f0                	mov    %eax,%esi
4171be:	59                   	pop    %ecx
4171bf:	83 fe ff             	cmp    $0xffffffff,%esi
4171c2:	74 3c                	je     0x417200
4171c4:	33 db                	xor    %ebx,%ebx
4171c6:	8d 45 f8             	lea    -0x8(%ebp),%eax
4171c9:	43                   	inc    %ebx
4171ca:	53                   	push   %ebx
4171cb:	50                   	push   %eax
4171cc:	6a 00                	push   $0x0
4171ce:	6a 00                	push   $0x0
4171d0:	56                   	push   %esi
4171d1:	ff 15 08 41 42 00    	call   *0x424108
4171d7:	85 c0                	test   %eax,%eax
4171d9:	74 25                	je     0x417200
4171db:	8d 45 f0             	lea    -0x10(%ebp),%eax
4171de:	50                   	push   %eax
4171df:	56                   	push   %esi
4171e0:	ff 15 04 41 42 00    	call   *0x424104
4171e6:	85 c0                	test   %eax,%eax
4171e8:	74 16                	je     0x417200
4171ea:	8b 45 f8             	mov    -0x8(%ebp),%eax
4171ed:	3b 45 f0             	cmp    -0x10(%ebp),%eax
4171f0:	75 08                	jne    0x4171fa
4171f2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4171f5:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4171f8:	74 02                	je     0x4171fc
4171fa:	32 db                	xor    %bl,%bl
4171fc:	8a c3                	mov    %bl,%al
4171fe:	eb 02                	jmp    0x417202
417200:	32 c0                	xor    %al,%al
417202:	5e                   	pop    %esi
417203:	5b                   	pop    %ebx
417204:	c9                   	leave
417205:	c3                   	ret
417206:	8b ff                	mov    %edi,%edi
417208:	55                   	push   %ebp
417209:	8b ec                	mov    %esp,%ebp
41720b:	5d                   	pop    %ebp
41720c:	e9 b4 fd ff ff       	jmp    0x416fc5
417211:	8b ff                	mov    %edi,%edi
417213:	55                   	push   %ebp
417214:	8b ec                	mov    %esp,%ebp
417216:	83 ec 1c             	sub    $0x1c,%esp
417219:	8b 45 08             	mov    0x8(%ebp),%eax
41721c:	8b c8                	mov    %eax,%ecx
41721e:	53                   	push   %ebx
41721f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
417222:	83 e0 3f             	and    $0x3f,%eax
417225:	c1 f9 06             	sar    $0x6,%ecx
417228:	56                   	push   %esi
417229:	57                   	push   %edi
41722a:	6b f8 38             	imul   $0x38,%eax,%edi
41722d:	8b 04 8d c0 4a 43 00 	mov    0x434ac0(,%ecx,4),%eax
417234:	89 4d f0             	mov    %ecx,-0x10(%ebp)
417237:	8b 4c 38 18          	mov    0x18(%eax,%edi,1),%ecx
41723b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41723e:	8b 4d 10             	mov    0x10(%ebp),%ecx
417241:	85 c9                	test   %ecx,%ecx
417243:	74 0c                	je     0x417251
417245:	80 3b 0a             	cmpb   $0xa,(%ebx)
417248:	75 07                	jne    0x417251
41724a:	80 4c 38 28 04       	orb    $0x4,0x28(%eax,%edi,1)
41724f:	eb 05                	jmp    0x417256
417251:	80 64 38 28 fb       	andb   $0xfb,0x28(%eax,%edi,1)
417256:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
417259:	8b d3                	mov    %ebx,%edx
41725b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41725e:	8b f3                	mov    %ebx,%esi
417260:	3b d8                	cmp    %eax,%ebx
417262:	0f 83 f4 00 00 00    	jae    0x41735c