437fbc:	50                   	push   %eax
437fbd:	e8 14 ba fe ff       	call   0x4239d6
437fc2:	8b 0b                	mov    (%ebx),%ecx
437fc4:	8b c1                	mov    %ecx,%eax
437fc6:	83 e1 3f             	and    $0x3f,%ecx
437fc9:	c1 f8 06             	sar    $0x6,%eax
437fcc:	6b c9 38             	imul   $0x38,%ecx,%ecx
437fcf:	8b 04 85 c0 6d 45 00 	mov    0x456dc0(,%eax,4),%eax
437fd6:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
437fdb:	ff 33                	push   (%ebx)
437fdd:	e8 ee b2 ff ff       	call   0x4332d0
437fe2:	59                   	pop    %ecx
437fe3:	e9 15 fe ff ff       	jmp    0x437dfd
437fe8:	8b 0b                	mov    (%ebx),%ecx
437fea:	8b c1                	mov    %ecx,%eax
437fec:	c1 f8 06             	sar    $0x6,%eax
437fef:	83 e1 3f             	and    $0x3f,%ecx
437ff2:	6b c9 38             	imul   $0x38,%ecx,%ecx
437ff5:	8b 04 85 c0 6d 45 00 	mov    0x456dc0(,%eax,4),%eax
437ffc:	89 54 08 18          	mov    %edx,0x18(%eax,%ecx,1)
438000:	33 c0                	xor    %eax,%eax
438002:	5f                   	pop    %edi
438003:	5e                   	pop    %esi
438004:	5b                   	pop    %ebx
438005:	c9                   	leave
438006:	c3                   	ret
438007:	8b ff                	mov    %edi,%edi
438009:	55                   	push   %ebp
43800a:	8b ec                	mov    %esp,%ebp
43800c:	6a 01                	push   $0x1
43800e:	ff 75 08             	push   0x8(%ebp)
438011:	ff 75 18             	push   0x18(%ebp)
438014:	ff 75 14             	push   0x14(%ebp)
438017:	ff 75 10             	push   0x10(%ebp)
43801a:	ff 75 0c             	push   0xc(%ebp)
43801d:	e8 d1 f6 ff ff       	call   0x4376f3
438022:	83 c4 18             	add    $0x18,%esp
438025:	5d                   	pop    %ebp
438026:	c3                   	ret
438027:	8b ff                	mov    %edi,%edi
438029:	55                   	push   %ebp
43802a:	8b ec                	mov    %esp,%ebp
43802c:	51                   	push   %ecx
43802d:	e8 49 1b 00 00       	call   0x439b7b
438032:	85 c0                	test   %eax,%eax
438034:	74 1c                	je     0x438052
438036:	8d 45 fc             	lea    -0x4(%ebp),%eax
438039:	50                   	push   %eax
43803a:	8d 45 08             	lea    0x8(%ebp),%eax
43803d:	6a 01                	push   $0x1
43803f:	50                   	push   %eax
438040:	e8 72 1b 00 00       	call   0x439bb7
438045:	83 c4 0c             	add    $0xc,%esp
438048:	85 c0                	test   %eax,%eax
43804a:	74 06                	je     0x438052
43804c:	66 8b 45 08          	mov    0x8(%ebp),%ax
438050:	c9                   	leave
438051:	c3                   	ret
438052:	b8 ff ff 00 00       	mov    $0xffff,%eax
438057:	c9                   	leave
438058:	c3                   	ret
438059:	8b ff                	mov    %edi,%edi
43805b:	55                   	push   %ebp
43805c:	8b ec                	mov    %esp,%ebp
43805e:	53                   	push   %ebx
43805f:	56                   	push   %esi
438060:	57                   	push   %edi
438061:	33 ff                	xor    %edi,%edi
438063:	bb e3 00 00 00       	mov    $0xe3,%ebx
438068:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
43806b:	99                   	cltd
43806c:	2b c2                	sub    %edx,%eax
43806e:	8b f0                	mov    %eax,%esi
438070:	d1 fe                	sar    $1,%esi
438072:	6a 55                	push   $0x55
438074:	ff 34 f5 f0 49 44 00 	push   0x4449f0(,%esi,8)
43807b:	ff 75 08             	push   0x8(%ebp)
43807e:	e8 eb e3 fe ff       	call   0x42646e
438083:	83 c4 0c             	add    $0xc,%esp
438086:	85 c0                	test   %eax,%eax
438088:	74 13                	je     0x43809d
43808a:	79 05                	jns    0x438091
43808c:	8d 5e ff             	lea    -0x1(%esi),%ebx
43808f:	eb 03                	jmp    0x438094
438091:	8d 7e 01             	lea    0x1(%esi),%edi
438094:	3b fb                	cmp    %ebx,%edi
438096:	7e d0                	jle    0x438068
438098:	83 c8 ff             	or     $0xffffffff,%eax
43809b:	eb 07                	jmp    0x4380a4
43809d:	8b 04 f5 f4 49 44 00 	mov    0x4449f4(,%esi,8),%eax
4380a4:	5f                   	pop    %edi
4380a5:	5e                   	pop    %esi
4380a6:	5b                   	pop    %ebx
4380a7:	5d                   	pop    %ebp
4380a8:	c3                   	ret
4380a9:	8b ff                	mov    %edi,%edi
4380ab:	55                   	push   %ebp
4380ac:	8b ec                	mov    %esp,%ebp
4380ae:	8b 4d 08             	mov    0x8(%ebp),%ecx
4380b1:	53                   	push   %ebx
4380b2:	56                   	push   %esi
4380b3:	57                   	push   %edi
4380b4:	85 c9                	test   %ecx,%ecx
4380b6:	74 4b                	je     0x438103
4380b8:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4380be:	74 43                	je     0x438103
4380c0:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4380c6:	74 3b                	je     0x438103
4380c8:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4380cc:	8b 75 10             	mov    0x10(%ebp),%esi
4380cf:	75 04                	jne    0x4380d5
4380d1:	85 f6                	test   %esi,%esi
4380d3:	7f 2e                	jg     0x438103
4380d5:	85 f6                	test   %esi,%esi
4380d7:	78 2a                	js     0x438103
4380d9:	33 ff                	xor    %edi,%edi
4380db:	bb e3 00 00 00       	mov    $0xe3,%ebx
4380e0:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4380e3:	99                   	cltd
4380e4:	2b c2                	sub    %edx,%eax
4380e6:	8b d1                	mov    %ecx,%edx
4380e8:	d1 f8                	sar    $1,%eax
4380ea:	2b 14 c5 d0 38 44 00 	sub    0x4438d0(,%eax,8),%edx
4380f1:	74 17                	je     0x43810a
4380f3:	85 d2                	test   %edx,%edx
4380f5:	79 05                	jns    0x4380fc
4380f7:	8d 58 ff             	lea    -0x1(%eax),%ebx
4380fa:	eb 03                	jmp    0x4380ff
4380fc:	8d 78 01             	lea    0x1(%eax),%edi
4380ff:	3b fb                	cmp    %ebx,%edi
438101:	7e dd                	jle    0x4380e0
438103:	33 c0                	xor    %eax,%eax
438105:	5f                   	pop    %edi
438106:	5e                   	pop    %esi
438107:	5b                   	pop    %ebx
438108:	5d                   	pop    %ebp
438109:	c3                   	ret
43810a:	85 c0                	test   %eax,%eax
43810c:	78 f5                	js     0x438103
43810e:	8b 1c c5 d4 38 44 00 	mov    0x4438d4(,%eax,8),%ebx
438115:	6a 55                	push   $0x55
438117:	53                   	push   %ebx
438118:	e8 be f3 fe ff       	call   0x4274db
43811d:	8b f8                	mov    %eax,%edi
43811f:	59                   	pop    %ecx
438120:	59                   	pop    %ecx
438121:	85 f6                	test   %esi,%esi
438123:	7e 15                	jle    0x43813a
438125:	3b fe                	cmp    %esi,%edi
438127:	7d da                	jge    0x438103
438129:	53                   	push   %ebx
43812a:	56                   	push   %esi
43812b:	ff 75 0c             	push   0xc(%ebp)
43812e:	e8 33 b7 fe ff       	call   0x423866
438133:	83 c4 0c             	add    $0xc,%esp
438136:	85 c0                	test   %eax,%eax
438138:	75 05                	jne    0x43813f
43813a:	8d 47 01             	lea    0x1(%edi),%eax
43813d:	eb c6                	jmp    0x438105
43813f:	33 c0                	xor    %eax,%eax
438141:	50                   	push   %eax
438142:	50                   	push   %eax
438143:	50                   	push   %eax
438144:	50                   	push   %eax
438145:	50                   	push   %eax
438146:	e8 65 78 fe ff       	call   0x41f9b0
43814b:	cc                   	int3
43814c:	8b ff                	mov    %edi,%edi
43814e:	55                   	push   %ebp
43814f:	8b ec                	mov    %esp,%ebp
438151:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
438155:	74 1d                	je     0x438174
438157:	ff 75 08             	push   0x8(%ebp)
43815a:	e8 fa fe ff ff       	call   0x438059
43815f:	59                   	pop    %ecx
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