43807f:	3b c2                	cmp    %edx,%eax
438081:	76 ef                	jbe    0x438072
438083:	83 c1 02             	add    $0x2,%ecx
438086:	8a 01                	mov    (%ecx),%al
438088:	84 c0                	test   %al,%al
43808a:	75 dd                	jne    0x438069
43808c:	53                   	push   %ebx
43808d:	ff 76 04             	push   0x4(%esi)
438090:	8d 85 fc f8 ff ff    	lea    -0x704(%ebp),%eax
438096:	50                   	push   %eax
438097:	57                   	push   %edi
438098:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
43809e:	50                   	push   %eax
43809f:	6a 01                	push   $0x1
4380a1:	53                   	push   %ebx
4380a2:	e8 03 10 00 00       	call   0x4390aa
4380a7:	53                   	push   %ebx
4380a8:	ff 76 04             	push   0x4(%esi)
4380ab:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
4380b1:	57                   	push   %edi
4380b2:	50                   	push   %eax
4380b3:	57                   	push   %edi
4380b4:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4380ba:	50                   	push   %eax
4380bb:	57                   	push   %edi
4380bc:	ff b6 1c 02 00 00    	push   0x21c(%esi)
4380c2:	53                   	push   %ebx
4380c3:	e8 ae 21 00 00       	call   0x43a276
4380c8:	83 c4 40             	add    $0x40,%esp
4380cb:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
4380d1:	53                   	push   %ebx
4380d2:	ff 76 04             	push   0x4(%esi)
4380d5:	57                   	push   %edi
4380d6:	50                   	push   %eax
4380d7:	57                   	push   %edi
4380d8:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4380de:	50                   	push   %eax
4380df:	68 00 02 00 00       	push   $0x200
4380e4:	ff b6 1c 02 00 00    	push   0x21c(%esi)
4380ea:	53                   	push   %ebx
4380eb:	e8 86 21 00 00       	call   0x43a276
4380f0:	83 c4 24             	add    $0x24,%esp
4380f3:	8b cb                	mov    %ebx,%ecx
4380f5:	0f b7 84 4d fc f8 ff 	movzwl -0x704(%ebp,%ecx,2),%eax
4380fc:	ff
4380fd:	a8 01                	test   $0x1,%al
4380ff:	74 0e                	je     0x43810f
438101:	80 4c 0e 19 10       	orb    $0x10,0x19(%esi,%ecx,1)
438106:	8a 84 0d fc fd ff ff 	mov    -0x204(%ebp,%ecx,1),%al
43810d:	eb 10                	jmp    0x43811f
43810f:	a8 02                	test   $0x2,%al
438111:	74 15                	je     0x438128
438113:	80 4c 0e 19 20       	orb    $0x20,0x19(%esi,%ecx,1)
438118:	8a 84 0d fc fc ff ff 	mov    -0x304(%ebp,%ecx,1),%al
43811f:	88 84 0e 19 01 00 00 	mov    %al,0x119(%esi,%ecx,1)
438126:	eb 07                	jmp    0x43812f
438128:	88 9c 0e 19 01 00 00 	mov    %bl,0x119(%esi,%ecx,1)
43812f:	41                   	inc    %ecx
438130:	3b cf                	cmp    %edi,%ecx
438132:	72 c1                	jb     0x4380f5
438134:	eb 59                	jmp    0x43818f
438136:	6a 9f                	push   $0xffffff9f
438138:	8d 96 19 01 00 00    	lea    0x119(%esi),%edx
43813e:	8b cb                	mov    %ebx,%ecx
438140:	58                   	pop    %eax
438141:	2b c2                	sub    %edx,%eax
438143:	89 85 e0 f8 ff ff    	mov    %eax,-0x720(%ebp)
438149:	03 d1                	add    %ecx,%edx
43814b:	03 c2                	add    %edx,%eax
43814d:	89 85 e4 f8 ff ff    	mov    %eax,-0x71c(%ebp)
438153:	83 c0 20             	add    $0x20,%eax
438156:	83 f8 19             	cmp    $0x19,%eax
438159:	77 0a                	ja     0x438165
43815b:	80 4c 0e 19 10       	orb    $0x10,0x19(%esi,%ecx,1)
438160:	8d 41 20             	lea    0x20(%ecx),%eax
438163:	eb 13                	jmp    0x438178
438165:	83 bd e4 f8 ff ff 19 	cmpl   $0x19,-0x71c(%ebp)
43816c:	77 0e                	ja     0x43817c
43816e:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
438171:	80 48 19 20          	orb    $0x20,0x19(%eax)
438175:	8d 41 e0             	lea    -0x20(%ecx),%eax
438178:	88 02                	mov    %al,(%edx)
43817a:	eb 02                	jmp    0x43817e
43817c:	88 1a                	mov    %bl,(%edx)
43817e:	8b 85 e0 f8 ff ff    	mov    -0x720(%ebp),%eax
438184:	8d 96 19 01 00 00    	lea    0x119(%esi),%edx
43818a:	41                   	inc    %ecx
43818b:	3b cf                	cmp    %edi,%ecx
43818d:	72 ba                	jb     0x438149
43818f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
438192:	5f                   	pop    %edi
438193:	5e                   	pop    %esi
438194:	33 cd                	xor    %ebp,%ecx
438196:	5b                   	pop    %ebx
438197:	e8 9a 5c ff ff       	call   0x42de36
43819c:	8b e5                	mov    %ebp,%esp
43819e:	5d                   	pop    %ebp
43819f:	c3                   	ret
4381a0:	8b ff                	mov    %edi,%edi
4381a2:	55                   	push   %ebp
4381a3:	8b ec                	mov    %esp,%ebp
4381a5:	83 ec 0c             	sub    $0xc,%esp
4381a8:	e8 b1 de ff ff       	call   0x43605e
4381ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
4381b0:	e8 0a 01 00 00       	call   0x4382bf
4381b5:	ff 75 08             	push   0x8(%ebp)
4381b8:	e8 77 fd ff ff       	call   0x437f34
4381bd:	59                   	pop    %ecx
4381be:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4381c1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4381c4:	8b 49 48             	mov    0x48(%ecx),%ecx
4381c7:	3b 41 04             	cmp    0x4(%ecx),%eax
4381ca:	75 04                	jne    0x4381d0
4381cc:	33 c0                	xor    %eax,%eax
4381ce:	eb 53                	jmp    0x438223
4381d0:	53                   	push   %ebx
4381d1:	56                   	push   %esi
4381d2:	57                   	push   %edi
4381d3:	68 20 02 00 00       	push   $0x220
4381d8:	e8 77 cf ff ff       	call   0x435154
4381dd:	8b f8                	mov    %eax,%edi
4381df:	83 cb ff             	or     $0xffffffff,%ebx
4381e2:	59                   	pop    %ecx
4381e3:	85 ff                	test   %edi,%edi
4381e5:	74 2e                	je     0x438215
4381e7:	8b 75 fc             	mov    -0x4(%ebp),%esi
4381ea:	b9 88 00 00 00       	mov    $0x88,%ecx
4381ef:	8b 76 48             	mov    0x48(%esi),%esi
4381f2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4381f4:	8b f8                	mov    %eax,%edi
4381f6:	57                   	push   %edi
4381f7:	ff 75 f4             	push   -0xc(%ebp)
4381fa:	83 27 00             	andl   $0x0,(%edi)
4381fd:	e8 5f 01 00 00       	call   0x438361
438202:	8b f0                	mov    %eax,%esi
438204:	59                   	pop    %ecx
438205:	59                   	pop    %ecx
438206:	3b f3                	cmp    %ebx,%esi
438208:	75 1d                	jne    0x438227
43820a:	e8 27 bc ff ff       	call   0x433e36
43820f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
438215:	8b f3                	mov    %ebx,%esi
438217:	57                   	push   %edi
438218:	e8 fd ce ff ff       	call   0x43511a
43821d:	59                   	pop    %ecx
43821e:	5f                   	pop    %edi
43821f:	8b c6                	mov    %esi,%eax
438221:	5e                   	pop    %esi
438222:	5b                   	pop    %ebx
438223:	8b e5                	mov    %ebp,%esp
438225:	5d                   	pop    %ebp
438226:	c3                   	ret
438227:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
43822b:	75 05                	jne    0x438232
43822d:	e8 9d c7 ff ff       	call   0x4349cf
438232:	8b 45 fc             	mov    -0x4(%ebp),%eax
438235:	8b 40 48             	mov    0x48(%eax),%eax
438238:	f0 0f c1 18          	lock xadd %ebx,(%eax)
43823c:	4b                   	dec    %ebx
43823d:	75 15                	jne    0x438254
43823f:	8b 45 fc             	mov    -0x4(%ebp),%eax
438242:	81 78 48 d0 a4 46 00 	cmpl   $0x46a4d0,0x48(%eax)
438249:	74 09                	je     0x438254
43824b:	ff 70 48             	push   0x48(%eax)
43824e:	e8 c7 ce ff ff       	call   0x43511a
438253:	59                   	pop    %ecx
438254:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
43825a:	8b cf                	mov    %edi,%ecx
43825c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43825f:	33 ff                	xor    %edi,%edi
438261:	89 48 48             	mov    %ecx,0x48(%eax)
438264:	8b 45 fc             	mov    -0x4(%ebp),%eax
438267:	f6 80 50 03 00 00 02 	testb  $0x2,0x350(%eax)
43826e:	75 a7                	jne    0x438217
438270:	f6 05 50 a7 46 00 01 	testb  $0x1,0x46a750
438277:	75 9e                	jne    0x438217
438279:	8d 45 fc             	lea    -0x4(%ebp),%eax
43827c:	89 45 f4             	mov    %eax,-0xc(%ebp)
43827f:	8d 45 f4             	lea    -0xc(%ebp),%eax
438282:	50                   	push   %eax
438283:	6a 05                	push   $0x5
438285:	e8 80 fb ff ff       	call   0x437e0a
43828a:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
43828e:	59                   	pop    %ecx
43828f:	59                   	pop    %ecx
438290:	74 85                	je     0x438217
438292:	a1 f0 a6 46 00       	mov    0x46a6f0,%eax
438297:	a3 1c a1 46 00       	mov    %eax,0x46a11c
43829c:	e9 76 ff ff ff       	jmp    0x438217
4382a1:	80 3d 78 b3 46 00 00 	cmpb   $0x0,0x46b378
4382a8:	75 12                	jne    0x4382bc
4382aa:	6a 01                	push   $0x1
4382ac:	6a fd                	push   $0xfffffffd
4382ae:	e8 ed fe ff ff       	call   0x4381a0
4382b3:	59                   	pop    %ecx
4382b4:	59                   	pop    %ecx
4382b5:	c6 05 78 b3 46 00 01 	movb   $0x1,0x46b378
4382bc:	b0 01                	mov    $0x1,%al
4382be:	c3                   	ret
4382bf:	6a 0c                	push   $0xc
4382c1:	68 60 7e 46 00       	push   $0x467e60
4382c6:	e8 65 65 ff ff       	call   0x42e830
4382cb:	33 f6                	xor    %esi,%esi
4382cd:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4382d0:	e8 89 dd ff ff       	call   0x43605e
4382d5:	8b f8                	mov    %eax,%edi
4382d7:	8b 0d 50 a7 46 00    	mov    0x46a750,%ecx
4382dd:	85 8f 50 03 00 00    	test   %ecx,0x350(%edi)
4382e3:	74 11                	je     0x4382f6
4382e5:	39 77 4c             	cmp    %esi,0x4c(%edi)
4382e8:	74 0c                	je     0x4382f6
4382ea:	8b 77 48             	mov    0x48(%edi),%esi
4382ed:	85 f6                	test   %esi,%esi
4382ef:	75 68                	jne    0x438359
4382f1:	e8 06 cf ff ff       	call   0x4351fc
4382f6:	6a 05                	push   $0x5
4382f8:	e8 39 03 00 00       	call   0x438636
4382fd:	59                   	pop    %ecx
4382fe:	89 75 fc             	mov    %esi,-0x4(%ebp)
438301:	8b 77 48             	mov    0x48(%edi),%esi
438304:	89 75 e4             	mov    %esi,-0x1c(%ebp)
438307:	3b 35 f0 a6 46 00    	cmp    0x46a6f0,%esi
43830d:	74 30                	je     0x43833f
43830f:	85 f6                	test   %esi,%esi
438311:	74 18                	je     0x43832b
438313:	83 c8 ff             	or     $0xffffffff,%eax
438316:	f0 0f c1 06          	lock xadd %eax,(%esi)
43831a:	75 0f                	jne    0x43832b
43831c:	81 fe d0 a4 46 00    	cmp    $0x46a4d0,%esi
438322:	74 07                	je     0x43832b
438324:	56                   	push   %esi
438325:	e8 f0 cd ff ff       	call   0x43511a
43832a:	59                   	pop    %ecx
43832b:	a1 f0 a6 46 00       	mov    0x46a6f0,%eax
438330:	89 47 48             	mov    %eax,0x48(%edi)
438333:	8b 35 f0 a6 46 00    	mov    0x46a6f0,%esi
438339:	89 75 e4             	mov    %esi,-0x1c(%ebp)
43833c:	f0 ff 06             	lock incl (%esi)
43833f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
438346:	e8 05 00 00 00       	call   0x438350
43834b:	eb a0                	jmp    0x4382ed
43834d:	8b 75 e4             	mov    -0x1c(%ebp),%esi
438350:	6a 05                	push   $0x5
438352:	e8 27 03 00 00       	call   0x43867e
438357:	59                   	pop    %ecx
438358:	c3                   	ret
438359:	8b c6                	mov    %esi,%eax
43835b:	e8 16 65 ff ff       	call   0x42e876
438360:	c3                   	ret
438361:	8b ff                	mov    %edi,%edi
438363:	55                   	push   %ebp
438364:	8b ec                	mov    %esp,%ebp
438366:	83 ec 20             	sub    $0x20,%esp
438369:	a1 08 a0 46 00       	mov    0x46a008,%eax
43836e:	33 c5                	xor    %ebp,%eax
438370:	89 45 fc             	mov    %eax,-0x4(%ebp)
438373:	53                   	push   %ebx
438374:	56                   	push   %esi
438375:	ff 75 08             	push   0x8(%ebp)
438378:	8b 75 0c             	mov    0xc(%ebp),%esi
43837b:	e8 b4 fb ff ff       	call   0x437f34
438380:	8b d8                	mov    %eax,%ebx
438382:	59                   	pop    %ecx
438383:	85 db                	test   %ebx,%ebx
438385:	75 0e                	jne    0x438395
438387:	56                   	push   %esi
438388:	e8 1a fc ff ff       	call   0x437fa7
43838d:	59                   	pop    %ecx
43838e:	33 c0                	xor    %eax,%eax
438390:	e9 ad 01 00 00       	jmp    0x438542
438395:	57                   	push   %edi
438396:	33 ff                	xor    %edi,%edi
438398:	8b cf                	mov    %edi,%ecx
43839a:	8b c7                	mov    %edi,%eax
43839c:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
43839f:	39 98 d8 a1 46 00    	cmp    %ebx,0x46a1d8(%eax)
4383a5:	0f 84 ea 00 00 00    	je     0x438495
4383ab:	41                   	inc    %ecx
4383ac:	83 c0 30             	add    $0x30,%eax
4383af:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4383b2:	3d f0 00 00 00       	cmp    $0xf0,%eax
4383b7:	72 e6                	jb     0x43839f
4383b9:	81 fb e8 fd 00 00    	cmp    $0xfde8,%ebx
4383bf:	0f 84 c8 00 00 00    	je     0x43848d
4383c5:	81 fb e9 fd 00 00    	cmp    $0xfde9,%ebx
4383cb:	0f 84 bc 00 00 00    	je     0x43848d
4383d1:	0f b7 c3             	movzwl %bx,%eax
4383d4:	50                   	push   %eax
4383d5:	ff 15 70 b2 44 00    	call   *0x44b270
4383db:	85 c0                	test   %eax,%eax
4383dd:	0f 84 aa 00 00 00    	je     0x43848d
4383e3:	8d 45 e8             	lea    -0x18(%ebp),%eax
4383e6:	50                   	push   %eax
4383e7:	53                   	push   %ebx
4383e8:	ff 15 cc b0 44 00    	call   *0x44b0cc
4383ee:	85 c0                	test   %eax,%eax
4383f0:	0f 84 84 00 00 00    	je     0x43847a
4383f6:	68 01 01 00 00       	push   $0x101
4383fb:	8d 46 18             	lea    0x18(%esi),%eax
4383fe:	57                   	push   %edi
4383ff:	50                   	push   %eax
438400:	e8 6b 72 ff ff       	call   0x42f670
438405:	89 5e 04             	mov    %ebx,0x4(%esi)
438408:	83 c4 0c             	add    $0xc,%esp
43840b:	33 db                	xor    %ebx,%ebx
43840d:	89 be 1c 02 00 00    	mov    %edi,0x21c(%esi)
438413:	43                   	inc    %ebx
438414:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
438417:	76 51                	jbe    0x43846a
438419:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
43841d:	8d 45 ee             	lea    -0x12(%ebp),%eax
438420:	74 21                	je     0x438443
438422:	8a 48 01             	mov    0x1(%eax),%cl
438425:	84 c9                	test   %cl,%cl
438427:	74 1a                	je     0x438443
438429:	0f b6 d1             	movzbl %cl,%edx
43842c:	0f b6 08             	movzbl (%eax),%ecx
43842f:	eb 06                	jmp    0x438437
438431:	80 4c 0e 19 04       	orb    $0x4,0x19(%esi,%ecx,1)
438436:	41                   	inc    %ecx
438437:	3b ca                	cmp    %edx,%ecx
438439:	76 f6                	jbe    0x438431
43843b:	83 c0 02             	add    $0x2,%eax
43843e:	80 38 00             	cmpb   $0x0,(%eax)
438441:	75 df                	jne    0x438422
438443:	8d 46 1a             	lea    0x1a(%esi),%eax
438446:	b9 fe 00 00 00       	mov    $0xfe,%ecx
43844b:	80 08 08             	orb    $0x8,(%eax)
43844e:	40                   	inc    %eax
43844f:	83 e9 01             	sub    $0x1,%ecx
438452:	75 f7                	jne    0x43844b
438454:	ff 76 04             	push   0x4(%esi)
438457:	e8 9a fa ff ff       	call   0x437ef6
43845c:	83 c4 04             	add    $0x4,%esp
43845f:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
438465:	89 5e 08             	mov    %ebx,0x8(%esi)
438468:	eb 03                	jmp    0x43846d
43846a:	89 7e 08             	mov    %edi,0x8(%esi)
43846d:	33 c0                	xor    %eax,%eax
43846f:	8d 7e 0c             	lea    0xc(%esi),%edi
438472:	ab                   	stos   %eax,%es:(%edi)
438473:	ab                   	stos   %eax,%es:(%edi)
438474:	ab                   	stos   %eax,%es:(%edi)
438475:	e9 be 00 00 00       	jmp    0x438538
43847a:	39 3d 74 b3 46 00    	cmp    %edi,0x46b374
438480:	74 0b                	je     0x43848d
438482:	56                   	push   %esi
438483:	e8 1f fb ff ff       	call   0x437fa7
438488:	e9 b1 00 00 00       	jmp    0x43853e
43848d:	83 c8 ff             	or     $0xffffffff,%eax