417f89:	e8 a8 43 00 00       	call   0x41c336
417f8e:	50                   	push   %eax
417f8f:	8b cf                	mov    %edi,%ecx
417f91:	e8 fb 14 00 00       	call   0x419491
417f96:	ff 75 fc             	push   -0x4(%ebp)
417f99:	8b cf                	mov    %edi,%ecx
417f9b:	53                   	push   %ebx
417f9c:	e8 14 14 00 00       	call   0x4193b5
417fa1:	83 7e 4c 7c          	cmpl   $0x7c,0x4c(%esi)
417fa5:	74 cc                	je     0x417f73
417fa7:	5f                   	pop    %edi
417fa8:	5e                   	pop    %esi
417fa9:	5b                   	pop    %ebx
417faa:	c9                   	leave
417fab:	c3                   	ret
417fac:	55                   	push   %ebp
417fad:	8b ec                	mov    %esp,%ebp
417faf:	51                   	push   %ecx
417fb0:	53                   	push   %ebx
417fb1:	56                   	push   %esi
417fb2:	8b f1                	mov    %ecx,%esi
417fb4:	57                   	push   %edi
417fb5:	8b 5e 28             	mov    0x28(%esi),%ebx
417fb8:	e8 20 e1 ff ff       	call   0x4160dd
417fbd:	84 c0                	test   %al,%al
417fbf:	75 1c                	jne    0x417fdd
417fc1:	83 7e 4c 7c          	cmpl   $0x7c,0x4c(%esi)
417fc5:	75 5a                	jne    0x418021
417fc7:	8d 7e 24             	lea    0x24(%esi),%edi
417fca:	6a 08                	push   $0x8
417fcc:	8b cf                	mov    %edi,%ecx
417fce:	e8 b2 43 00 00       	call   0x41c385
417fd3:	50                   	push   %eax
417fd4:	8b cf                	mov    %edi,%ecx
417fd6:	e8 1b 15 00 00       	call   0x4194f6
417fdb:	eb 03                	jmp    0x417fe0
417fdd:	8d 7e 24             	lea    0x24(%esi),%edi
417fe0:	53                   	push   %ebx
417fe1:	8b cf                	mov    %edi,%ecx
417fe3:	e8 cb e7 ff ff       	call   0x4167b3
417fe8:	89 45 fc             	mov    %eax,-0x4(%ebp)
417feb:	eb 2e                	jmp    0x41801b
417fed:	8b ce                	mov    %esi,%ecx
417fef:	e8 0e 44 00 00       	call   0x41c402
417ff4:	8b ce                	mov    %esi,%ecx
417ff6:	e8 e2 e0 ff ff       	call   0x4160dd
417ffb:	84 c0                	test   %al,%al
417ffd:	75 11                	jne    0x418010
417fff:	6a 08                	push   $0x8
418001:	8b cf                	mov    %edi,%ecx
418003:	e8 7d 43 00 00       	call   0x41c385
418008:	50                   	push   %eax
418009:	8b cf                	mov    %edi,%ecx
41800b:	e8 e6 14 00 00       	call   0x4194f6
418010:	ff 75 fc             	push   -0x4(%ebp)
418013:	8b cf                	mov    %edi,%ecx
418015:	53                   	push   %ebx
418016:	e8 08 14 00 00       	call   0x419423
41801b:	83 7e 4c 7c          	cmpl   $0x7c,0x4c(%esi)
41801f:	74 cc                	je     0x417fed
418021:	5f                   	pop    %edi
418022:	5e                   	pop    %esi
418023:	5b                   	pop    %ebx
418024:	c9                   	leave
418025:	c3                   	ret
418026:	55                   	push   %ebp
418027:	8b ec                	mov    %esp,%ebp
418029:	53                   	push   %ebx
41802a:	56                   	push   %esi
41802b:	57                   	push   %edi
41802c:	ff 75 08             	push   0x8(%ebp)
41802f:	8b f9                	mov    %ecx,%edi
418031:	8d 4f 24             	lea    0x24(%edi),%ecx
418034:	e8 03 e5 ff ff       	call   0x41653c
418039:	8b cf                	mov    %edi,%ecx
41803b:	8b f0                	mov    %eax,%esi
41803d:	e8 f0 fe ff ff       	call   0x417f32
418042:	56                   	push   %esi
418043:	8d 4f 24             	lea    0x24(%edi),%ecx
418046:	e8 46 14 00 00       	call   0x419491
41804b:	89 77 28             	mov    %esi,0x28(%edi)
41804e:	5f                   	pop    %edi
41804f:	5e                   	pop    %esi
418050:	5b                   	pop    %ebx
418051:	5d                   	pop    %ebp
418052:	c2 04 00             	ret    $0x4
418055:	55                   	push   %ebp
418056:	8b ec                	mov    %esp,%ebp
418058:	53                   	push   %ebx
418059:	56                   	push   %esi
41805a:	57                   	push   %edi
41805b:	ff 75 08             	push   0x8(%ebp)
41805e:	8b f9                	mov    %ecx,%edi
418060:	8d 4f 24             	lea    0x24(%edi),%ecx
418063:	e8 8d e5 ff ff       	call   0x4165f5
418068:	8b cf                	mov    %edi,%ecx
41806a:	8b f0                	mov    %eax,%esi
41806c:	e8 3b ff ff ff       	call   0x417fac
418071:	56                   	push   %esi
418072:	8d 4f 24             	lea    0x24(%edi),%ecx
418075:	e8 7c 14 00 00       	call   0x4194f6
41807a:	89 77 28             	mov    %esi,0x28(%edi)
41807d:	5f                   	pop    %edi
41807e:	5e                   	pop    %esi
41807f:	5b                   	pop    %ebx
418080:	5d                   	pop    %ebp
418081:	c2 04 00             	ret    $0x4
418084:	e9 ea cc ff ff       	jmp    0x414d73
418089:	55                   	push   %ebp
41808a:	8b ec                	mov    %esp,%ebp
41808c:	51                   	push   %ecx
41808d:	53                   	push   %ebx
41808e:	56                   	push   %esi
41808f:	57                   	push   %edi
418090:	8b f9                	mov    %ecx,%edi
418092:	ff 47 0c             	incl   0xc(%edi)
418095:	8d 4f 24             	lea    0x24(%edi),%ecx
418098:	ff 77 0c             	push   0xc(%edi)
41809b:	e8 0e e6 ff ff       	call   0x4166ae
4180a0:	8b cf                	mov    %edi,%ecx
4180a2:	8b d8                	mov    %eax,%ebx
4180a4:	e8 89 fe ff ff       	call   0x417f32
4180a9:	53                   	push   %ebx
4180aa:	8d 4f 24             	lea    0x24(%edi),%ecx
4180ad:	e8 df 13 00 00       	call   0x419491
4180b2:	8b cf                	mov    %edi,%ecx
4180b4:	6a 00                	push   $0x0
4180b6:	8b 49 0c             	mov    0xc(%ecx),%ecx
4180b9:	41                   	inc    %ecx
4180ba:	51                   	push   %ecx
4180bb:	8d 4f 14             	lea    0x14(%edi),%ecx
4180be:	e8 0f a8 00 00       	call   0x4228d2
4180c3:	8b 73 14             	mov    0x14(%ebx),%esi
4180c6:	8b d6                	mov    %esi,%edx
4180c8:	8b 4f 14             	mov    0x14(%edi),%ecx
4180cb:	83 e6 1f             	and    $0x1f,%esi
4180ce:	c1 ea 05             	shr    $0x5,%edx
4180d1:	5f                   	pop    %edi
4180d2:	8b 04 91             	mov    (%ecx,%edx,4),%eax
4180d5:	0f ab f0             	bts    %esi,%eax
4180d8:	5e                   	pop    %esi
4180d9:	89 04 91             	mov    %eax,(%ecx,%edx,4)
4180dc:	5b                   	pop    %ebx
4180dd:	c9                   	leave
4180de:	c3                   	ret
4180df:	55                   	push   %ebp
4180e0:	8b ec                	mov    %esp,%ebp
4180e2:	51                   	push   %ecx
4180e3:	53                   	push   %ebx
4180e4:	56                   	push   %esi
4180e5:	57                   	push   %edi
4180e6:	8b f9                	mov    %ecx,%edi
4180e8:	ff 47 0c             	incl   0xc(%edi)
4180eb:	8d 4f 24             	lea    0x24(%edi),%ecx
4180ee:	ff 77 0c             	push   0xc(%edi)
4180f1:	e8 fa e5 ff ff       	call   0x4166f0
4180f6:	8b cf                	mov    %edi,%ecx
4180f8:	8b d8                	mov    %eax,%ebx
4180fa:	e8 ad fe ff ff       	call   0x417fac
4180ff:	53                   	push   %ebx
418100:	8d 4f 24             	lea    0x24(%edi),%ecx
418103:	e8 ee 13 00 00       	call   0x4194f6
418108:	8b cf                	mov    %edi,%ecx
41810a:	6a 00                	push   $0x0
41810c:	8b 49 0c             	mov    0xc(%ecx),%ecx
41810f:	41                   	inc    %ecx
418110:	51                   	push   %ecx
418111:	8d 4f 14             	lea    0x14(%edi),%ecx
418114:	e8 b9 a7 00 00       	call   0x4228d2
418119:	8b 73 14             	mov    0x14(%ebx),%esi
41811c:	8b d6                	mov    %esi,%edx
41811e:	8b 4f 14             	mov    0x14(%edi),%ecx
418121:	83 e6 1f             	and    $0x1f,%esi
418124:	c1 ea 05             	shr    $0x5,%edx
418127:	5f                   	pop    %edi
418128:	8b 04 91             	mov    (%ecx,%edx,4),%eax
41812b:	0f ab f0             	bts    %esi,%eax
41812e:	5e                   	pop    %esi
41812f:	89 04 91             	mov    %eax,(%ecx,%edx,4)
418132:	5b                   	pop    %ebx
418133:	c9                   	leave
418134:	c3                   	ret
418135:	55                   	push   %ebp
418136:	8b ec                	mov    %esp,%ebp
418138:	83 ec 0c             	sub    $0xc,%esp
41813b:	53                   	push   %ebx
41813c:	56                   	push   %esi
41813d:	57                   	push   %edi
41813e:	8b f9                	mov    %ecx,%edi
418140:	b9 00 01 00 00       	mov    $0x100,%ecx
418145:	8b 07                	mov    (%edi),%eax
418147:	0f b7 30             	movzwl (%eax),%esi
41814a:	89 75 f8             	mov    %esi,-0x8(%ebp)
41814d:	85 4f 5c             	test   %ecx,0x5c(%edi)
418150:	74 14                	je     0x418166
418152:	8b 47 70             	mov    0x70(%edi),%eax
418155:	56                   	push   %esi
418156:	8b 48 04             	mov    0x4(%eax),%ecx
418159:	8b 01                	mov    (%ecx),%eax
41815b:	ff 50 20             	call   *0x20(%eax)
41815e:	0f b7 f0             	movzwl %ax,%esi
418161:	8b 07                	mov    (%edi),%eax
418163:	89 75 f8             	mov    %esi,-0x8(%ebp)
418166:	8b 5d 08             	mov    0x8(%ebp),%ebx
418169:	8d 48 02             	lea    0x2(%eax),%ecx
41816c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41816f:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
418173:	74 1d                	je     0x418192
418175:	ff 73 14             	push   0x14(%ebx)
418178:	ff 77 50             	push   0x50(%edi)
41817b:	50                   	push   %eax
41817c:	e8 59 c1 fe ff       	call   0x4042da
418181:	83 c4 0c             	add    $0xc,%esp
418184:	3b 07                	cmp    (%edi),%eax
418186:	74 0a                	je     0x418192
418188:	33 db                	xor    %ebx,%ebx
41818a:	8b c8                	mov    %eax,%ecx
41818c:	43                   	inc    %ebx
41818d:	e9 cc 00 00 00       	jmp    0x41825e
418192:	8b 43 20             	mov    0x20(%ebx),%eax
418195:	89 45 f4             	mov    %eax,-0xc(%ebp)
418198:	85 c0                	test   %eax,%eax
41819a:	74 30                	je     0x4181cc
41819c:	f7 47 5c 00 08 00 00 	testl  $0x800,0x5c(%edi)
4181a3:	74 0e                	je     0x4181b3
4181a5:	8b 4f 70             	mov    0x70(%edi),%ecx
4181a8:	56                   	push   %esi
4181a9:	e8 97 b1 00 00       	call   0x423345
4181ae:	0f b7 c0             	movzwl %ax,%eax
4181b1:	eb 03                	jmp    0x4181b6
4181b3:	0f b7 c6             	movzwl %si,%eax
4181b6:	ff 75 f4             	push   -0xc(%ebp)
4181b9:	0f b7 c0             	movzwl %ax,%eax
4181bc:	50                   	push   %eax
4181bd:	e8 9d c3 fe ff       	call   0x40455f
4181c2:	59                   	pop    %ecx
4181c3:	59                   	pop    %ecx
4181c4:	84 c0                	test   %al,%al
4181c6:	0f 85 8c 00 00 00    	jne    0x418258
4181cc:	b8 00 01 00 00       	mov    $0x100,%eax
4181d1:	66 3b f0             	cmp    %ax,%si
4181d4:	73 20                	jae    0x4181f6
4181d6:	8b 5b 18             	mov    0x18(%ebx),%ebx
4181d9:	85 db                	test   %ebx,%ebx
4181db:	74 15                	je     0x4181f2
4181dd:	0f b7 d6             	movzwl %si,%edx
4181e0:	33 c0                	xor    %eax,%eax
4181e2:	8b ca                	mov    %edx,%ecx
4181e4:	40                   	inc    %eax
4181e5:	83 e1 07             	and    $0x7,%ecx
4181e8:	c1 ea 03             	shr    $0x3,%edx
4181eb:	d3 e0                	shl    %cl,%eax
4181ed:	84 04 1a             	test   %al,(%edx,%ebx,1)
4181f0:	75 66                	jne    0x418258
4181f2:	33 db                	xor    %ebx,%ebx
4181f4:	eb 65                	jmp    0x41825b
4181f6:	8b 43 1c             	mov    0x1c(%ebx),%eax
4181f9:	33 db                	xor    %ebx,%ebx
4181fb:	85 c0                	test   %eax,%eax
4181fd:	74 24                	je     0x418223
4181ff:	8b 48 08             	mov    0x8(%eax),%ecx
418202:	8b 40 04             	mov    0x4(%eax),%eax
418205:	88 5d f4             	mov    %bl,-0xc(%ebp)
418208:	ff 75 f4             	push   -0xc(%ebp)
41820b:	8d 34 41             	lea    (%ecx,%eax,2),%esi
41820e:	8d 45 f8             	lea    -0x8(%ebp),%eax
418211:	50                   	push   %eax
418212:	56                   	push   %esi
418213:	51                   	push   %ecx
418214:	e8 52 b9 fe ff       	call   0x403b6b
418219:	83 c4 10             	add    $0x10,%esp
41821c:	3b c6                	cmp    %esi,%eax
41821e:	75 38                	jne    0x418258
418220:	8b 75 f8             	mov    -0x8(%ebp),%esi
418223:	8b 45 08             	mov    0x8(%ebp),%eax
418226:	0f b7 48 24          	movzwl 0x24(%eax),%ecx
41822a:	66 85 c9             	test   %cx,%cx
41822d:	74 11                	je     0x418240
41822f:	51                   	push   %ecx
418230:	8b 4f 70             	mov    0x70(%edi),%ecx
418233:	56                   	push   %esi
418234:	e8 32 9e 00 00       	call   0x42206b
418239:	84 c0                	test   %al,%al
41823b:	75 1b                	jne    0x418258
41823d:	8b 45 08             	mov    0x8(%ebp),%eax
418240:	39 58 28             	cmp    %ebx,0x28(%eax)
418243:	74 16                	je     0x41825b
418245:	ff 77 70             	push   0x70(%edi)
418248:	ff 70 28             	push   0x28(%eax)
41824b:	56                   	push   %esi
41824c:	e8 b0 c1 fe ff       	call   0x404401
418251:	83 c4 0c             	add    $0xc,%esp
418254:	84 c0                	test   %al,%al
418256:	74 03                	je     0x41825b
418258:	33 db                	xor    %ebx,%ebx
41825a:	43                   	inc    %ebx
41825b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41825e:	8b 45 08             	mov    0x8(%ebp),%eax
418261:	8b 40 08             	mov    0x8(%eax),%eax
418264:	83 e0 01             	and    $0x1,%eax
418267:	3b d8                	cmp    %eax,%ebx
418269:	75 04                	jne    0x41826f
41826b:	32 c0                	xor    %al,%al
41826d:	eb 04                	jmp    0x418273
41826f:	89 0f                	mov    %ecx,(%edi)
418271:	b0 01                	mov    $0x1,%al
418273:	5f                   	pop    %edi
418274:	5e                   	pop    %esi
418275:	5b                   	pop    %ebx
418276:	c9                   	leave
418277:	c2 04 00             	ret    $0x4
41827a:	55                   	push   %ebp
41827b:	8b ec                	mov    %esp,%ebp
41827d:	51                   	push   %ecx
41827e:	51                   	push   %ecx
41827f:	53                   	push   %ebx
418280:	56                   	push   %esi
418281:	57                   	push   %edi
418282:	8b f9                	mov    %ecx,%edi
418284:	f7 47 5c 00 01 00 00 	testl  $0x100,0x5c(%edi)
41828b:	8b 07                	mov    (%edi),%eax
41828d:	8a 18                	mov    (%eax),%bl
41828f:	88 5d fc             	mov    %bl,-0x4(%ebp)
418292:	74 17                	je     0x4182ab
418294:	8b 47 70             	mov    0x70(%edi),%eax
418297:	ff 75 fc             	push   -0x4(%ebp)
41829a:	8b 48 04             	mov    0x4(%eax),%ecx
41829d:	8b 01                	mov    (%ecx),%eax
41829f:	8b 40 10             	mov    0x10(%eax),%eax
4182a2:	ff d0                	call   *%eax
4182a4:	8a d8                	mov    %al,%bl
4182a6:	8b 07                	mov    (%edi),%eax
4182a8:	88 5d fc             	mov    %bl,-0x4(%ebp)
4182ab:	8d 70 01             	lea    0x1(%eax),%esi
4182ae:	8b 45 08             	mov    0x8(%ebp),%eax
4182b1:	8b 48 14             	mov    0x14(%eax),%ecx
4182b4:	85 c9                	test   %ecx,%ecx
4182b6:	74 1f                	je     0x4182d7
4182b8:	51                   	push   %ecx
4182b9:	ff 77 50             	push   0x50(%edi)
4182bc:	8d 45 f8             	lea    -0x8(%ebp),%eax
4182bf:	ff 37                	push   (%edi)
4182c1:	50                   	push   %eax
4182c2:	e8 67 c0 fe ff       	call   0x40432e
4182c7:	8b 0f                	mov    (%edi),%ecx
4182c9:	83 c4 10             	add    $0x10,%esp
4182cc:	39 08                	cmp    %ecx,(%eax)
4182ce:	74 04                	je     0x4182d4
4182d0:	8b 30                	mov    (%eax),%esi
4182d2:	eb 5d                	jmp    0x418331