438160:	85 c0                	test   %eax,%eax
438162:	78 10                	js     0x438174
438164:	3d e4 00 00 00       	cmp    $0xe4,%eax
438169:	73 09                	jae    0x438174
43816b:	8b 04 c5 d0 38 44 00 	mov    0x4438d0(,%eax,8),%eax
438172:	5d                   	pop    %ebp
438173:	c3                   	ret
438174:	33 c0                	xor    %eax,%eax
438176:	5d                   	pop    %ebp
438177:	c3                   	ret
438178:	8b ff                	mov    %edi,%edi
43817a:	55                   	push   %ebp
43817b:	8b ec                	mov    %esp,%ebp
43817d:	53                   	push   %ebx
43817e:	56                   	push   %esi
43817f:	ba 40 80 00 00       	mov    $0x8040,%edx
438184:	33 f6                	xor    %esi,%esi
438186:	57                   	push   %edi
438187:	8b 7d 08             	mov    0x8(%ebp),%edi
43818a:	8b c7                	mov    %edi,%eax
43818c:	23 c2                	and    %edx,%eax
43818e:	8d 4a c0             	lea    -0x40(%edx),%ecx
438191:	66 3b c1             	cmp    %cx,%ax
438194:	75 07                	jne    0x43819d
438196:	bb 00 0c 00 00       	mov    $0xc00,%ebx
43819b:	eb 19                	jmp    0x4381b6
43819d:	66 83 f8 40          	cmp    $0x40,%ax
4381a1:	75 07                	jne    0x4381aa
4381a3:	bb 00 08 00 00       	mov    $0x800,%ebx
4381a8:	eb 0c                	jmp    0x4381b6
4381aa:	bb 00 04 00 00       	mov    $0x400,%ebx
4381af:	66 3b c2             	cmp    %dx,%ax
4381b2:	74 02                	je     0x4381b6
4381b4:	8b de                	mov    %esi,%ebx
4381b6:	8b c7                	mov    %edi,%eax
4381b8:	b9 00 60 00 00       	mov    $0x6000,%ecx
4381bd:	23 c1                	and    %ecx,%eax
4381bf:	74 25                	je     0x4381e6
4381c1:	3d 00 20 00 00       	cmp    $0x2000,%eax
4381c6:	74 19                	je     0x4381e1
4381c8:	3d 00 40 00 00       	cmp    $0x4000,%eax
4381cd:	74 0b                	je     0x4381da
4381cf:	3b c1                	cmp    %ecx,%eax
4381d1:	75 13                	jne    0x4381e6
4381d3:	be 00 03 00 00       	mov    $0x300,%esi
4381d8:	eb 0c                	jmp    0x4381e6
4381da:	be 00 02 00 00       	mov    $0x200,%esi
4381df:	eb 05                	jmp    0x4381e6
4381e1:	be 00 01 00 00       	mov    $0x100,%esi
4381e6:	8b d7                	mov    %edi,%edx
4381e8:	b9 00 04 00 00       	mov    $0x400,%ecx
4381ed:	c1 ea 02             	shr    $0x2,%edx
4381f0:	8b c7                	mov    %edi,%eax
4381f2:	25 00 08 00 00       	and    $0x800,%eax
4381f7:	23 d1                	and    %ecx,%edx
4381f9:	0b d0                	or     %eax,%edx
4381fb:	8b c7                	mov    %edi,%eax
4381fd:	23 c1                	and    %ecx,%eax
4381ff:	c1 ea 02             	shr    $0x2,%edx
438202:	0b c2                	or     %edx,%eax
438204:	8b cf                	mov    %edi,%ecx
438206:	c1 e8 02             	shr    $0x2,%eax
438209:	81 e1 00 02 00 00    	and    $0x200,%ecx
43820f:	0b c1                	or     %ecx,%eax
438211:	81 e7 80 01 00 00    	and    $0x180,%edi
438217:	c1 e8 03             	shr    $0x3,%eax
43821a:	0b c7                	or     %edi,%eax
43821c:	c1 e8 03             	shr    $0x3,%eax
43821f:	0b c3                	or     %ebx,%eax
438221:	5f                   	pop    %edi
438222:	0b c6                	or     %esi,%eax
438224:	5e                   	pop    %esi
438225:	5b                   	pop    %ebx
438226:	5d                   	pop    %ebp
438227:	c3                   	ret
438228:	8b ff                	mov    %edi,%edi
43822a:	55                   	push   %ebp
43822b:	8b ec                	mov    %esp,%ebp
43822d:	51                   	push   %ecx
43822e:	53                   	push   %ebx
43822f:	56                   	push   %esi
438230:	57                   	push   %edi
438231:	8b 7d 08             	mov    0x8(%ebp),%edi
438234:	ba 00 10 00 00       	mov    $0x1000,%edx
438239:	0f b7 c7             	movzwl %di,%eax
43823c:	8b d8                	mov    %eax,%ebx
43823e:	89 55 fc             	mov    %edx,-0x4(%ebp)
438241:	23 da                	and    %edx,%ebx
438243:	8b c8                	mov    %eax,%ecx
438245:	c1 e3 02             	shl    $0x2,%ebx
438248:	ba 00 02 00 00       	mov    $0x200,%edx
43824d:	6a 00                	push   $0x0
43824f:	5e                   	pop    %esi
438250:	81 e1 00 03 00 00    	and    $0x300,%ecx
438256:	74 09                	je     0x438261
438258:	3b ca                	cmp    %edx,%ecx
43825a:	74 0c                	je     0x438268
43825c:	89 75 fc             	mov    %esi,-0x4(%ebp)
43825f:	eb 07                	jmp    0x438268
438261:	c7 45 fc 00 20 00 00 	movl   $0x2000,-0x4(%ebp)
438268:	b9 00 0c 00 00       	mov    $0xc00,%ecx
43826d:	23 c1                	and    %ecx,%eax
43826f:	74 22                	je     0x438293
438271:	3d 00 04 00 00       	cmp    $0x400,%eax
438276:	74 16                	je     0x43828e
438278:	3d 00 08 00 00       	cmp    $0x800,%eax
43827d:	74 0b                	je     0x43828a
43827f:	3b c1                	cmp    %ecx,%eax
438281:	75 10                	jne    0x438293
438283:	be 00 03 00 00       	mov    $0x300,%esi
438288:	eb 09                	jmp    0x438293
43828a:	8b f2                	mov    %edx,%esi
43828c:	eb 05                	jmp    0x438293
43828e:	be 00 01 00 00       	mov    $0x100,%esi
438293:	8b d7                	mov    %edi,%edx
438295:	8b c7                	mov    %edi,%eax
438297:	83 e0 10             	and    $0x10,%eax
43829a:	c1 ea 02             	shr    $0x2,%edx
43829d:	83 e2 08             	and    $0x8,%edx
4382a0:	8b cf                	mov    %edi,%ecx
4382a2:	0b d0                	or     %eax,%edx
4382a4:	83 e1 02             	and    $0x2,%ecx
4382a7:	8b c7                	mov    %edi,%eax
4382a9:	c1 ea 02             	shr    $0x2,%edx
4382ac:	83 e0 08             	and    $0x8,%eax
4382af:	c1 e1 03             	shl    $0x3,%ecx
4382b2:	0b d0                	or     %eax,%edx
4382b4:	8b c7                	mov    %edi,%eax
4382b6:	83 e0 04             	and    $0x4,%eax
4382b9:	d1 ea                	shr    $1,%edx
4382bb:	0b c1                	or     %ecx,%eax
4382bd:	83 e7 01             	and    $0x1,%edi
4382c0:	03 c0                	add    %eax,%eax
4382c2:	c1 e7 04             	shl    $0x4,%edi
4382c5:	0b c2                	or     %edx,%eax
4382c7:	0b c7                	or     %edi,%eax
4382c9:	0b c3                	or     %ebx,%eax
4382cb:	0b 45 fc             	or     -0x4(%ebp),%eax
4382ce:	5f                   	pop    %edi
4382cf:	0b c6                	or     %esi,%eax
4382d1:	5e                   	pop    %esi
4382d2:	5b                   	pop    %ebx
4382d3:	c9                   	leave
4382d4:	c3                   	ret
4382d5:	8b ff                	mov    %edi,%edi
4382d7:	55                   	push   %ebp
4382d8:	8b ec                	mov    %esp,%ebp
4382da:	8b 4d 08             	mov    0x8(%ebp),%ecx
4382dd:	8b c1                	mov    %ecx,%eax
4382df:	53                   	push   %ebx
4382e0:	56                   	push   %esi
4382e1:	8b f1                	mov    %ecx,%esi
4382e3:	c1 e8 02             	shr    $0x2,%eax
4382e6:	81 e6 ff ff 3f c0    	and    $0xc03fffff,%esi
4382ec:	0b f0                	or     %eax,%esi
4382ee:	b8 00 0c 00 00       	mov    $0xc00,%eax
4382f3:	57                   	push   %edi
4382f4:	23 c8                	and    %eax,%ecx
4382f6:	c1 ee 16             	shr    $0x16,%esi
4382f9:	33 ff                	xor    %edi,%edi
4382fb:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
438301:	74 1c                	je     0x43831f
438303:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
438309:	74 0f                	je     0x43831a
43830b:	3b c8                	cmp    %eax,%ecx
43830d:	74 04                	je     0x438313
43830f:	8b df                	mov    %edi,%ebx
438311:	eb 11                	jmp    0x438324
438313:	bb 00 80 00 00       	mov    $0x8000,%ebx
438318:	eb 0a                	jmp    0x438324
43831a:	6a 40                	push   $0x40
43831c:	5b                   	pop    %ebx
43831d:	eb 05                	jmp    0x438324
43831f:	bb 40 80 00 00       	mov    $0x8040,%ebx
438324:	8b c6                	mov    %esi,%eax
438326:	b9 00 03 00 00       	mov    $0x300,%ecx
43832b:	23 c1                	and    %ecx,%eax
43832d:	74 25                	je     0x438354
43832f:	3d 00 01 00 00       	cmp    $0x100,%eax
438334:	74 19                	je     0x43834f
438336:	3d 00 02 00 00       	cmp    $0x200,%eax
43833b:	74 0b                	je     0x438348
43833d:	3b c1                	cmp    %ecx,%eax
43833f:	75 13                	jne    0x438354
438341:	bf 00 60 00 00       	mov    $0x6000,%edi
438346:	eb 0c                	jmp    0x438354
438348:	bf 00 40 00 00       	mov    $0x4000,%edi
43834d:	eb 05                	jmp    0x438354
43834f:	bf 00 20 00 00       	mov    $0x2000,%edi
438354:	8b d6                	mov    %esi,%edx
438356:	8b c6                	mov    %esi,%eax
438358:	83 e0 02             	and    $0x2,%eax
43835b:	83 e2 01             	and    $0x1,%edx
43835e:	c1 e2 02             	shl    $0x2,%edx
438361:	8b ce                	mov    %esi,%ecx
438363:	0b d0                	or     %eax,%edx
438365:	83 e1 08             	and    $0x8,%ecx
438368:	8b c6                	mov    %esi,%eax
43836a:	c1 e2 02             	shl    $0x2,%edx
43836d:	83 e0 04             	and    $0x4,%eax
438370:	83 e6 30             	and    $0x30,%esi
438373:	0b c2                	or     %edx,%eax
438375:	c1 e0 02             	shl    $0x2,%eax
438378:	0b c1                	or     %ecx,%eax
43837a:	c1 e0 03             	shl    $0x3,%eax
43837d:	0b c6                	or     %esi,%eax
43837f:	c1 e0 03             	shl    $0x3,%eax
438382:	0b c3                	or     %ebx,%eax
438384:	0b c7                	or     %edi,%eax
438386:	5f                   	pop    %edi
438387:	5e                   	pop    %esi
438388:	5b                   	pop    %ebx
438389:	5d                   	pop    %ebp
43838a:	c3                   	ret
43838b:	8b ff                	mov    %edi,%edi
43838d:	55                   	push   %ebp
43838e:	8b ec                	mov    %esp,%ebp
438390:	51                   	push   %ecx
438391:	8b 4d 08             	mov    0x8(%ebp),%ecx
438394:	ba 00 03 00 00       	mov    $0x300,%edx
438399:	53                   	push   %ebx
43839a:	56                   	push   %esi
43839b:	8b f1                	mov    %ecx,%esi
43839d:	8b c1                	mov    %ecx,%eax
43839f:	c1 ee 02             	shr    $0x2,%esi
4383a2:	25 00 00 c0 00       	and    $0xc00000,%eax
4383a7:	81 e6 00 c0 0f 00    	and    $0xfc000,%esi
4383ad:	bb 00 10 00 00       	mov    $0x1000,%ebx
4383b2:	0b f0                	or     %eax,%esi
4383b4:	8b c1                	mov    %ecx,%eax
4383b6:	57                   	push   %edi
4383b7:	c1 e8 02             	shr    $0x2,%eax
4383ba:	23 c3                	and    %ebx,%eax
4383bc:	c1 ee 0e             	shr    $0xe,%esi
4383bf:	89 45 fc             	mov    %eax,-0x4(%ebp)
4383c2:	6a 00                	push   $0x0
4383c4:	5f                   	pop    %edi
4383c5:	81 e1 00 30 00 00    	and    $0x3000,%ecx
4383cb:	74 0f                	je     0x4383dc
4383cd:	3b cb                	cmp    %ebx,%ecx
4383cf:	74 04                	je     0x4383d5
4383d1:	8b df                	mov    %edi,%ebx
4383d3:	eb 09                	jmp    0x4383de
4383d5:	bb 00 02 00 00       	mov    $0x200,%ebx
4383da:	eb 02                	jmp    0x4383de
4383dc:	8b da                	mov    %edx,%ebx
4383de:	8b c6                	mov    %esi,%eax
4383e0:	23 c2                	and    %edx,%eax
4383e2:	74 25                	je     0x438409
4383e4:	3d 00 01 00 00       	cmp    $0x100,%eax
4383e9:	74 19                	je     0x438404
4383eb:	3d 00 02 00 00       	cmp    $0x200,%eax
4383f0:	74 0b                	je     0x4383fd
4383f2:	3b c2                	cmp    %edx,%eax
4383f4:	75 13                	jne    0x438409
4383f6:	bf 00 0c 00 00       	mov    $0xc00,%edi
4383fb:	eb 0c                	jmp    0x438409
4383fd:	bf 00 08 00 00       	mov    $0x800,%edi
438402:	eb 05                	jmp    0x438409
438404:	bf 00 04 00 00       	mov    $0x400,%edi
438409:	8b d6                	mov    %esi,%edx
43840b:	8b c6                	mov    %esi,%eax
43840d:	83 e0 02             	and    $0x2,%eax
438410:	83 e2 01             	and    $0x1,%edx
438413:	c1 e2 02             	shl    $0x2,%edx
438416:	8b ce                	mov    %esi,%ecx
438418:	0b d0                	or     %eax,%edx
43841a:	c1 e9 04             	shr    $0x4,%ecx
43841d:	8b c6                	mov    %esi,%eax
43841f:	c1 e2 02             	shl    $0x2,%edx
438422:	83 e0 04             	and    $0x4,%eax
438425:	d1 ee                	shr    $1,%esi
438427:	0b c2                	or     %edx,%eax
438429:	83 e1 03             	and    $0x3,%ecx
43842c:	03 c0                	add    %eax,%eax
43842e:	83 e6 04             	and    $0x4,%esi
438431:	0b c1                	or     %ecx,%eax
438433:	0b c6                	or     %esi,%eax
438435:	0b 45 fc             	or     -0x4(%ebp),%eax
438438:	0b c3                	or     %ebx,%eax
43843a:	0b c7                	or     %edi,%eax
43843c:	5f                   	pop    %edi
43843d:	5e                   	pop    %esi
43843e:	5b                   	pop    %ebx
43843f:	c9                   	leave
438440:	c3                   	ret
438441:	8b ff                	mov    %edi,%edi
438443:	55                   	push   %ebp
438444:	8b ec                	mov    %esp,%ebp
438446:	8b 4d 08             	mov    0x8(%ebp),%ecx
438449:	ba 00 03 00 00       	mov    $0x300,%edx
43844e:	8b c1                	mov    %ecx,%eax
438450:	c1 e9 16             	shr    $0x16,%ecx
438453:	c1 e8 0e             	shr    $0xe,%eax
438456:	23 ca                	and    %edx,%ecx
438458:	23 c2                	and    %edx,%eax
43845a:	3b c1                	cmp    %ecx,%eax
43845c:	74 03                	je     0x438461
43845e:	83 c8 ff             	or     $0xffffffff,%eax
438461:	5d                   	pop    %ebp
438462:	c3                   	ret
438463:	8b ff                	mov    %edi,%edi
438465:	55                   	push   %ebp
438466:	8b ec                	mov    %esp,%ebp
438468:	83 ec 20             	sub    $0x20,%esp
43846b:	56                   	push   %esi
43846c:	57                   	push   %edi
43846d:	6a 07                	push   $0x7
43846f:	59                   	pop    %ecx
438470:	33 c0                	xor    %eax,%eax
438472:	8d 7d e0             	lea    -0x20(%ebp),%edi
438475:	f3 ab                	rep stos %eax,%es:(%edi)
438477:	d9 75 e0             	fnstenv -0x20(%ebp)
43847a:	d9 65 e0             	fldenv -0x20(%ebp)
43847d:	8b 45 e0             	mov    -0x20(%ebp),%eax
438480:	25 3f 1f 00 00       	and    $0x1f3f,%eax
438485:	50                   	push   %eax
438486:	e8 9d fd ff ff       	call   0x438228
43848b:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
438492:	8b f0                	mov    %eax,%esi
438494:	59                   	pop    %ecx
438495:	7d 04                	jge    0x43849b
438497:	33 c9                	xor    %ecx,%ecx
438499:	eb 0d                	jmp    0x4384a8
43849b:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
43849f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4384a2:	81 e1 c0 ff 00 00    	and    $0xffc0,%ecx
4384a8:	51                   	push   %ecx
4384a9:	e8 ca fc ff ff       	call   0x438178
4384ae:	59                   	pop    %ecx
4384af:	8b d0                	mov    %eax,%edx
4384b1:	8b c8                	mov    %eax,%ecx
4384b3:	83 e2 3f             	and    $0x3f,%edx
4384b6:	81 e1 00 ff ff ff    	and    $0xffffff00,%ecx
4384bc:	c1 e2 02             	shl    $0x2,%edx
4384bf:	0b d1                	or     %ecx,%edx
4384c1:	8b ce                	mov    %esi,%ecx
4384c3:	c1 e2 06             	shl    $0x6,%edx
4384c6:	83 e1 3f             	and    $0x3f,%ecx
4384c9:	0b d1                	or     %ecx,%edx
4384cb:	8b ce                	mov    %esi,%ecx
4384cd:	c1 e2 02             	shl    $0x2,%edx
4384d0:	81 e1 00 03 00 00    	and    $0x300,%ecx
4384d6:	0b d1                	or     %ecx,%edx
4384d8:	c1 e2 0e             	shl    $0xe,%edx
4384db:	0b c2                	or     %edx,%eax
4384dd:	5f                   	pop    %edi
4384de:	0b c6                	or     %esi,%eax
4384e0:	5e                   	pop    %esi
4384e1:	c9                   	leave