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
4182d4:	8b 45 08             	mov    0x8(%ebp),%eax
4182d7:	8b 48 20             	mov    0x20(%eax),%ecx
4182da:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4182dd:	85 c9                	test   %ecx,%ecx
4182df:	74 2e                	je     0x41830f
4182e1:	f7 47 5c 00 08 00 00 	testl  $0x800,0x5c(%edi)
4182e8:	74 10                	je     0x4182fa
4182ea:	ff 75 fc             	push   -0x4(%ebp)
4182ed:	8b 4f 70             	mov    0x70(%edi),%ecx
4182f0:	e8 ff af 00 00       	call   0x4232f4
4182f5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4182f8:	eb 02                	jmp    0x4182fc
4182fa:	8a c3                	mov    %bl,%al
4182fc:	51                   	push   %ecx
4182fd:	0f b6 c0             	movzbl %al,%eax
418300:	50                   	push   %eax
418301:	e8 23 c2 fe ff       	call   0x404529
418306:	59                   	pop    %ecx
418307:	59                   	pop    %ecx
418308:	84 c0                	test   %al,%al
41830a:	75 25                	jne    0x418331
41830c:	8b 45 08             	mov    0x8(%ebp),%eax
41830f:	8b 40 18             	mov    0x18(%eax),%eax
418312:	89 45 f8             	mov    %eax,-0x8(%ebp)
418315:	85 c0                	test   %eax,%eax
418317:	74 1d                	je     0x418336
418319:	0f b6 d3             	movzbl %bl,%edx
41831c:	33 c0                	xor    %eax,%eax
41831e:	8b ca                	mov    %edx,%ecx
418320:	40                   	inc    %eax
418321:	83 e1 07             	and    $0x7,%ecx
418324:	c1 ea 03             	shr    $0x3,%edx
418327:	d3 e0                	shl    %cl,%eax
418329:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41832c:	84 04 0a             	test   %al,(%edx,%ecx,1)
41832f:	74 05                	je     0x418336
418331:	33 c9                	xor    %ecx,%ecx
418333:	41                   	inc    %ecx
418334:	eb 02                	jmp    0x418338
418336:	33 c9                	xor    %ecx,%ecx
418338:	8b 45 08             	mov    0x8(%ebp),%eax
41833b:	8b 40 08             	mov    0x8(%eax),%eax
41833e:	83 e0 01             	and    $0x1,%eax
418341:	3b c8                	cmp    %eax,%ecx
418343:	75 04                	jne    0x418349
418345:	32 c0                	xor    %al,%al
418347:	eb 04                	jmp    0x41834d
418349:	89 37                	mov    %esi,(%edi)
41834b:	b0 01                	mov    $0x1,%al
41834d:	5f                   	pop    %edi
41834e:	5e                   	pop    %esi
41834f:	5b                   	pop    %ebx
418350:	c9                   	leave
418351:	c2 04 00             	ret    $0x4
418354:	55                   	push   %ebp
418355:	8b ec                	mov    %esp,%ebp
418357:	83 ec 0c             	sub    $0xc,%esp
41835a:	53                   	push   %ebx
41835b:	56                   	push   %esi
41835c:	57                   	push   %edi
41835d:	8b f9                	mov    %ecx,%edi
41835f:	b9 00 01 00 00       	mov    $0x100,%ecx
418364:	89 7d f8             	mov    %edi,-0x8(%ebp)
418367:	8b 07                	mov    (%edi),%eax
418369:	0f b7 18             	movzwl (%eax),%ebx
41836c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41836f:	85 4f 5c             	test   %ecx,0x5c(%edi)
418372:	74 14                	je     0x418388
418374:	8b 47 70             	mov    0x70(%edi),%eax
418377:	53                   	push   %ebx
418378:	8b 48 04             	mov    0x4(%eax),%ecx
41837b:	8b 01                	mov    (%ecx),%eax
41837d:	ff 50 20             	call   *0x20(%eax)
418380:	0f b7 d8             	movzwl %ax,%ebx
418383:	8b 07                	mov    (%edi),%eax
418385:	89 5d fc             	mov    %ebx,-0x4(%ebp)
418388:	8d 70 02             	lea    0x2(%eax),%esi
41838b:	8b 45 08             	mov    0x8(%ebp),%eax
41838e:	8b 48 14             	mov    0x14(%eax),%ecx
418391:	85 c9                	test   %ecx,%ecx
418393:	74 22                	je     0x4183b7
418395:	51                   	push   %ecx
418396:	ff 77 50             	push   0x50(%edi)
418399:	8d 45 f4             	lea    -0xc(%ebp),%eax
41839c:	ff 37                	push   (%edi)
41839e:	50                   	push   %eax
41839f:	e8 f3 bf fe ff       	call   0x404397
4183a4:	8b 0f                	mov    (%edi),%ecx
4183a6:	83 c4 10             	add    $0x10,%esp
4183a9:	39 08                	cmp    %ecx,(%eax)
4183ab:	74 07                	je     0x4183b4
4183ad:	8b 30                	mov    (%eax),%esi
4183af:	e9 d1 00 00 00       	jmp    0x418485
4183b4:	8b 45 08             	mov    0x8(%ebp),%eax
4183b7:	8b 48 20             	mov    0x20(%eax),%ecx
4183ba:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4183bd:	85 c9                	test   %ecx,%ecx
4183bf:	74 34                	je     0x4183f5
4183c1:	f7 47 5c 00 08 00 00 	testl  $0x800,0x5c(%edi)
4183c8:	74 11                	je     0x4183db
4183ca:	8b 4f 70             	mov    0x70(%edi),%ecx
4183cd:	53                   	push   %ebx
4183ce:	e8 72 af 00 00       	call   0x423345
4183d3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4183d6:	0f b7 c0             	movzwl %ax,%eax
4183d9:	eb 03                	jmp    0x4183de
4183db:	0f b7 c3             	movzwl %bx,%eax
4183de:	51                   	push   %ecx
4183df:	0f b7 c0             	movzwl %ax,%eax
4183e2:	50                   	push   %eax
4183e3:	e8 77 c1 fe ff       	call   0x40455f
4183e8:	59                   	pop    %ecx
4183e9:	59                   	pop    %ecx
4183ea:	84 c0                	test   %al,%al
4183ec:	0f 85 93 00 00 00    	jne    0x418485
4183f2:	8b 45 08             	mov    0x8(%ebp),%eax
4183f5:	b9 00 01 00 00       	mov    $0x100,%ecx
4183fa:	66 3b d9             	cmp    %cx,%bx
4183fd:	73 20                	jae    0x41841f
4183ff:	8b 78 18             	mov    0x18(%eax),%edi
418402:	85 ff                	test   %edi,%edi
418404:	74 15                	je     0x41841b
418406:	0f b7 d3             	movzwl %bx,%edx
418409:	33 c0                	xor    %eax,%eax
41840b:	8b ca                	mov    %edx,%ecx
41840d:	40                   	inc    %eax
41840e:	83 e1 07             	and    $0x7,%ecx
418411:	c1 ea 03             	shr    $0x3,%edx
418414:	d3 e0                	shl    %cl,%eax
418416:	84 04 3a             	test   %al,(%edx,%edi,1)
418419:	75 6a                	jne    0x418485
41841b:	33 db                	xor    %ebx,%ebx
41841d:	eb 69                	jmp    0x418488
41841f:	8b 50 1c             	mov    0x1c(%eax),%edx
418422:	33 db                	xor    %ebx,%ebx
418424:	85 d2                	test   %edx,%edx
418426:	74 27                	je     0x41844f
418428:	8b 4a 08             	mov    0x8(%edx),%ecx
41842b:	8b 42 04             	mov    0x4(%edx),%eax
41842e:	88 5d f4             	mov    %bl,-0xc(%ebp)
418431:	ff 75 f4             	push   -0xc(%ebp)
418434:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
418437:	8d 45 fc             	lea    -0x4(%ebp),%eax
41843a:	50                   	push   %eax
41843b:	57                   	push   %edi
41843c:	51                   	push   %ecx
41843d:	e8 29 b7 fe ff       	call   0x403b6b
418442:	83 c4 10             	add    $0x10,%esp
418445:	3b c7                	cmp    %edi,%eax
418447:	75 3c                	jne    0x418485
418449:	8b 7d f8             	mov    -0x8(%ebp),%edi
41844c:	8b 45 08             	mov    0x8(%ebp),%eax
41844f:	0f b7 48 24          	movzwl 0x24(%eax),%ecx
418453:	66 85 c9             	test   %cx,%cx
418456:	74 13                	je     0x41846b
418458:	51                   	push   %ecx
418459:	ff 75 fc             	push   -0x4(%ebp)
41845c:	8b 4f 70             	mov    0x70(%edi),%ecx
41845f:	e8 07 9c 00 00       	call   0x42206b
418464:	84 c0                	test   %al,%al
418466:	75 1d                	jne    0x418485
418468:	8b 45 08             	mov    0x8(%ebp),%eax
41846b:	39 58 28             	cmp    %ebx,0x28(%eax)
41846e:	74 18                	je     0x418488
418470:	ff 77 70             	push   0x70(%edi)
418473:	ff 70 28             	push   0x28(%eax)
418476:	ff 75 fc             	push   -0x4(%ebp)
418479:	e8 83 bf fe ff       	call   0x404401
41847e:	83 c4 0c             	add    $0xc,%esp
418481:	84 c0                	test   %al,%al
418483:	74 03                	je     0x418488
418485:	33 db                	xor    %ebx,%ebx
418487:	43                   	inc    %ebx
418488:	8b 45 08             	mov    0x8(%ebp),%eax
41848b:	8b 40 08             	mov    0x8(%eax),%eax