405f4a:	5b                   	pop    %ebx
405f4b:	5d                   	pop    %ebp
405f4c:	c2 04 00             	ret    $0x4
405f4f:	66 3b c2             	cmp    %dx,%ax
405f52:	7d f3                	jge    0x405f47
405f54:	eb e5                	jmp    0x405f3b
405f56:	57                   	push   %edi
405f57:	8b 3e                	mov    (%esi),%edi
405f59:	85 ff                	test   %edi,%edi
405f5b:	74 1d                	je     0x405f7a
405f5d:	8b 47 0c             	mov    0xc(%edi),%eax
405f60:	ff 08                	decl   (%eax)
405f62:	8b 47 0c             	mov    0xc(%edi),%eax
405f65:	39 18                	cmp    %ebx,(%eax)
405f67:	0f 84 6f 82 03 00    	je     0x43e1dc
405f6d:	57                   	push   %edi
405f6e:	e8 f9 b0 01 00       	call   0x42106c
405f73:	59                   	pop    %ecx
405f74:	6a 3f                	push   $0x3f
405f76:	59                   	pop    %ecx
405f77:	6a 30                	push   $0x30
405f79:	5a                   	pop    %edx
405f7a:	89 1e                	mov    %ebx,(%esi)
405f7c:	5f                   	pop    %edi
405f7d:	eb b0                	jmp    0x405f2f
405f7f:	d9 ee                	fldz
405f81:	dd 1e                	fstpl  (%esi)
405f83:	eb c4                	jmp    0x405f49
405f85:	89 5e 04             	mov    %ebx,0x4(%esi)
405f88:	eb bd                	jmp    0x405f47
405f8a:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
405f8e:	66 83 f8 3f          	cmp    $0x3f,%ax
405f92:	7e 03                	jle    0x405f97
405f94:	32 c0                	xor    %al,%al
405f96:	c3                   	ret
405f97:	66 83 f8 30          	cmp    $0x30,%ax
405f9b:	7c f7                	jl     0x405f94
405f9d:	b0 01                	mov    $0x1,%al
405f9f:	c3                   	ret
405fa0:	55                   	push   %ebp
405fa1:	8b ec                	mov    %esp,%ebp
405fa3:	8b 45 08             	mov    0x8(%ebp),%eax
405fa6:	53                   	push   %ebx
405fa7:	56                   	push   %esi
405fa8:	83 ce ff             	or     $0xffffffff,%esi
405fab:	8b 50 08             	mov    0x8(%eax),%edx
405fae:	57                   	push   %edi
405faf:	85 d2                	test   %edx,%edx
405fb1:	74 14                	je     0x405fc7
405fb3:	8b 58 04             	mov    0x4(%eax),%ebx
405fb6:	8b 4c 93 fc          	mov    -0x4(%ebx,%edx,4),%ecx
405fba:	e8 c0 fe ff ff       	call   0x405e7f
405fbf:	84 c0                	test   %al,%al
405fc1:	0f 84 2b 82 03 00    	je     0x43e1f2
405fc7:	33 f6                	xor    %esi,%esi
405fc9:	5f                   	pop    %edi
405fca:	8b c6                	mov    %esi,%eax
405fcc:	5e                   	pop    %esi
405fcd:	5b                   	pop    %ebx
405fce:	5d                   	pop    %ebp
405fcf:	c2 04 00             	ret    $0x4
405fd2:	55                   	push   %ebp
405fd3:	8b ec                	mov    %esp,%ebp
405fd5:	56                   	push   %esi
405fd6:	57                   	push   %edi
405fd7:	8b 7d 14             	mov    0x14(%ebp),%edi
405fda:	8b cf                	mov    %edi,%ecx
405fdc:	e8 0b 1f 00 00       	call   0x407eec
405fe1:	8b 45 0c             	mov    0xc(%ebp),%eax
405fe4:	8b 00                	mov    (%eax),%eax
405fe6:	8b 4d 08             	mov    0x8(%ebp),%ecx
405fe9:	0f b7 34 41          	movzwl (%ecx,%eax,2),%esi
405fed:	66 83 fe 5a          	cmp    $0x5a,%si
405ff1:	76 1b                	jbe    0x40600e
405ff3:	66 83 fe 61          	cmp    $0x61,%si
405ff7:	72 1d                	jb     0x406016
405ff9:	66 83 fe 7a          	cmp    $0x7a,%si
405ffd:	77 17                	ja     0x406016
405fff:	56                   	push   %esi
406000:	8b cf                	mov    %edi,%ecx
406002:	e8 7d 1a 00 00       	call   0x407a84
406007:	8b 45 0c             	mov    0xc(%ebp),%eax
40600a:	ff 00                	incl   (%eax)
40600c:	eb d6                	jmp    0x405fe4
40600e:	66 83 fe 41          	cmp    $0x41,%si
406012:	73 eb                	jae    0x405fff
406014:	eb dd                	jmp    0x405ff3
406016:	66 83 fe 30          	cmp    $0x30,%si
40601a:	0f 83 9d 00 00 00    	jae    0x4060bd
406020:	66 83 fe 5f          	cmp    $0x5f,%si
406024:	74 d9                	je     0x405fff
406026:	8b cf                	mov    %edi,%ecx
406028:	e8 82 1f 00 00       	call   0x407faf
40602d:	ff 77 04             	push   0x4(%edi)
406030:	ff 37                	push   (%edi)
406032:	ff 15 7c f6 48 00    	call   *0x48f67c
406038:	57                   	push   %edi
406039:	e8 5b 09 00 00       	call   0x406999
40603e:	89 45 0c             	mov    %eax,0xc(%ebp)
406041:	85 c0                	test   %eax,%eax
406043:	78 1d                	js     0x406062
406045:	66 83 fe 20          	cmp    $0x20,%si
406049:	75 2f                	jne    0x40607a
40604b:	6a 00                	push   $0x0
40604d:	8b 75 10             	mov    0x10(%ebp),%esi
406050:	8b ce                	mov    %esi,%ecx
406052:	e8 bb fe ff ff       	call   0x405f12
406057:	8b 45 0c             	mov    0xc(%ebp),%eax
40605a:	89 06                	mov    %eax,(%esi)
40605c:	5f                   	pop    %edi
40605d:	5e                   	pop    %esi
40605e:	5d                   	pop    %ebp
40605f:	c2 10 00             	ret    $0x10
406062:	8b 0d 94 72 4c 00    	mov    0x4c7294,%ecx
406068:	ff 37                	push   (%edi)
40606a:	8b 01                	mov    (%ecx),%eax
40606c:	ff 50 04             	call   *0x4(%eax)
40606f:	89 45 0c             	mov    %eax,0xc(%ebp)
406072:	85 c0                	test   %eax,%eax
406074:	78 32                	js     0x4060a8
406076:	6a 01                	push   $0x1
406078:	eb d3                	jmp    0x40604d
40607a:	66 83 fe 2c          	cmp    $0x2c,%si
40607e:	74 cb                	je     0x40604b
406080:	66 83 fe 29          	cmp    $0x29,%si
406084:	74 c5                	je     0x40604b
406086:	66 83 fe 09          	cmp    $0x9,%si
40608a:	74 bf                	je     0x40604b
40608c:	66 83 fe 3d          	cmp    $0x3d,%si
406090:	74 b9                	je     0x40604b
406092:	66 83 fe 28          	cmp    $0x28,%si
406096:	74 b3                	je     0x40604b
406098:	66 83 fe 5d          	cmp    $0x5d,%si
40609c:	74 ad                	je     0x40604b
40609e:	66 85 f6             	test   %si,%si
4060a1:	74 a8                	je     0x40604b
4060a3:	e9 cc 81 03 00       	jmp    0x43e274
4060a8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4060ab:	6a 34                	push   $0x34
4060ad:	e8 60 fe ff ff       	call   0x405f12
4060b2:	8b 4d 10             	mov    0x10(%ebp),%ecx
4060b5:	57                   	push   %edi
4060b6:	e8 e6 fd ff ff       	call   0x405ea1
4060bb:	eb 9f                	jmp    0x40605c
4060bd:	66 83 fe 39          	cmp    $0x39,%si
4060c1:	0f 86 38 ff ff ff    	jbe    0x405fff
4060c7:	e9 54 ff ff ff       	jmp    0x406020
4060cc:	55                   	push   %ebp
4060cd:	8b ec                	mov    %esp,%ebp
4060cf:	51                   	push   %ecx
4060d0:	51                   	push   %ecx
4060d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060d4:	53                   	push   %ebx
4060d5:	56                   	push   %esi
4060d6:	8b 75 0c             	mov    0xc(%ebp),%esi
4060d9:	57                   	push   %edi
4060da:	6a 30                	push   $0x30
4060dc:	5b                   	pop    %ebx
4060dd:	8b 06                	mov    (%esi),%eax
4060df:	6a 39                	push   $0x39
4060e1:	5a                   	pop    %edx
4060e2:	6a 2e                	push   $0x2e
4060e4:	5f                   	pop    %edi
4060e5:	66 39 3c 41          	cmp    %di,(%ecx,%eax,2)
4060e9:	0f 84 ef 01 00 00    	je     0x4062de
4060ef:	8b 7d 14             	mov    0x14(%ebp),%edi
4060f2:	8b cf                	mov    %edi,%ecx
4060f4:	e8 f3 1d 00 00       	call   0x407eec
4060f9:	8b 16                	mov    (%esi),%edx
4060fb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060fe:	89 55 0c             	mov    %edx,0xc(%ebp)
406101:	66 39 1c 51          	cmp    %bx,(%ecx,%edx,2)
406105:	0f 84 fb 00 00 00    	je     0x406206
40610b:	6a 17                	push   $0x17
40610d:	c6 45 17 00          	movb   $0x0,0x17(%ebp)
406111:	5b                   	pop    %ebx
406112:	8b 06                	mov    (%esi),%eax
406114:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
406118:	89 45 fc             	mov    %eax,-0x4(%ebp)
40611b:	0f b7 c0             	movzwl %ax,%eax
40611e:	83 f8 2e             	cmp    $0x2e,%eax
406121:	0f 84 7a 01 00 00    	je     0x4062a1
406127:	83 f8 2b             	cmp    $0x2b,%eax
40612a:	0f 84 a3 81 03 00    	je     0x43e2d3
406130:	83 f8 2d             	cmp    $0x2d,%eax
406133:	0f 84 9a 81 03 00    	je     0x43e2d3
406139:	83 f8 2f             	cmp    $0x2f,%eax
40613c:	0f 8e a2 00 00 00    	jle    0x4061e4
406142:	83 f8 39             	cmp    $0x39,%eax
406145:	0f 8f 87 00 00 00    	jg     0x4061d2
40614b:	83 e3 ef             	and    $0xffffffef,%ebx
40614e:	83 cb 20             	or     $0x20,%ebx
406151:	8a 45 17             	mov    0x17(%ebp),%al
406154:	f6 c3 20             	test   $0x20,%bl
406157:	74 1c                	je     0x406175
406159:	8b 06                	mov    (%esi),%eax
40615b:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
40615f:	40                   	inc    %eax
406160:	51                   	push   %ecx
406161:	8b cf                	mov    %edi,%ecx
406163:	89 06                	mov    %eax,(%esi)
406165:	e8 1a 19 00 00       	call   0x407a84
40616a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40616d:	83 e3 df             	and    $0xffffffdf,%ebx
406170:	8b 55 0c             	mov    0xc(%ebp),%edx
406173:	eb 9d                	jmp    0x406112
406175:	f6 c3 10             	test   $0x10,%bl
406178:	0f 85 71 01 00 00    	jne    0x4062ef
40617e:	84 c0                	test   %al,%al
406180:	0f 85 2d 01 00 00    	jne    0x4062b3
406186:	ff 37                	push   (%edi)
406188:	e8 46 d6 01 00       	call   0x4237d3
40618d:	59                   	pop    %ecx
40618e:	33 c9                	xor    %ecx,%ecx
406190:	8b f8                	mov    %eax,%edi
406192:	66 83 7d 18 4a       	cmpw   $0x4a,0x18(%ebp)
406197:	8b da                	mov    %edx,%ebx
406199:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40619e:	0f 84 a8 00 00 00    	je     0x40624c
4061a4:	3b d9                	cmp    %ecx,%ebx
4061a6:	0f 8f 6c 01 00 00    	jg     0x406318
4061ac:	7c 08                	jl     0x4061b6
4061ae:	3b f8                	cmp    %eax,%edi
4061b0:	0f 87 62 01 00 00    	ja     0x406318
4061b6:	6a 05                	push   $0x5
4061b8:	8b 75 10             	mov    0x10(%ebp),%esi
4061bb:	8b ce                	mov    %esi,%ecx
4061bd:	e8 50 fd ff ff       	call   0x405f12
4061c2:	89 3e                	mov    %edi,(%esi)
4061c4:	89 5e 04             	mov    %ebx,0x4(%esi)
4061c7:	b0 01                	mov    $0x1,%al
4061c9:	5f                   	pop    %edi
4061ca:	5e                   	pop    %esi
4061cb:	5b                   	pop    %ebx
4061cc:	8b e5                	mov    %ebp,%esp
4061ce:	5d                   	pop    %ebp
4061cf:	c2 14 00             	ret    $0x14
4061d2:	83 f8 45             	cmp    $0x45,%eax
4061d5:	0f 84 c9 80 03 00    	je     0x43e2a4
4061db:	83 f8 65             	cmp    $0x65,%eax
4061de:	0f 84 c0 80 03 00    	je     0x43e2a4
4061e4:	83 e0 df             	and    $0xffffffdf,%eax
4061e7:	83 f8 41             	cmp    $0x41,%eax
4061ea:	7d 10                	jge    0x4061fc
4061ec:	66 83 7d fc 5f       	cmpw   $0x5f,-0x4(%ebp)
4061f1:	0f 85 5a ff ff ff    	jne    0x406151
4061f7:	e9 be 80 03 00       	jmp    0x43e2ba
4061fc:	83 f8 5a             	cmp    $0x5a,%eax
4061ff:	7f eb                	jg     0x4061ec
406201:	e9 b4 80 03 00       	jmp    0x43e2ba
406206:	0f b7 44 51 02       	movzwl 0x2(%ecx,%edx,2),%eax
40620b:	83 f8 78             	cmp    $0x78,%eax
40620e:	74 09                	je     0x406219
406210:	83 f8 58             	cmp    $0x58,%eax
406213:	0f 85 f2 fe ff ff    	jne    0x40610b
406219:	8b 5d 14             	mov    0x14(%ebp),%ebx
40621c:	8d 42 02             	lea    0x2(%edx),%eax
40621f:	89 06                	mov    %eax,(%esi)
406221:	33 ff                	xor    %edi,%edi
406223:	8b 16                	mov    (%esi),%edx
406225:	6a 30                	push   $0x30
406227:	0f b7 04 51          	movzwl (%ecx,%edx,2),%eax
40622b:	59                   	pop    %ecx
40622c:	66 3b c1             	cmp    %cx,%ax
40622f:	72 25                	jb     0x406256
406231:	6a 39                	push   $0x39
406233:	59                   	pop    %ecx
406234:	66 3b c1             	cmp    %cx,%ax
406237:	77 1d                	ja     0x406256
406239:	50                   	push   %eax
40623a:	8d 42 01             	lea    0x1(%edx),%eax
40623d:	8b cb                	mov    %ebx,%ecx
40623f:	89 06                	mov    %eax,(%esi)
406241:	e8 3e 18 00 00       	call   0x407a84
406246:	8b 4d 08             	mov    0x8(%ebp),%ecx
406249:	47                   	inc    %edi
40624a:	eb d7                	jmp    0x406223
40624c:	b8 00 00 00 80       	mov    $0x80000000,%eax
406251:	e9 4e ff ff ff       	jmp    0x4061a4
406256:	83 f8 61             	cmp    $0x61,%eax
406259:	0f 83 29 80 03 00    	jae    0x43e288
40625f:	6a 41                	push   $0x41
406261:	59                   	pop    %ecx
406262:	66 3b c1             	cmp    %cx,%ax
406265:	0f 83 2b 80 03 00    	jae    0x43e296
40626b:	8b 0b                	mov    (%ebx),%ecx
40626d:	8d 55 f8             	lea    -0x8(%ebp),%edx
406270:	6a 10                	push   $0x10
406272:	e8 84 99 01 00       	call   0x41fbfb
406277:	59                   	pop    %ecx
406278:	84 c0                	test   %al,%al
40627a:	74 73                	je     0x4062ef
40627c:	8b 75 10             	mov    0x10(%ebp),%esi
40627f:	8b ce                	mov    %esi,%ecx
406281:	83 ff 08             	cmp    $0x8,%edi
406284:	0f 8f 80 00 00 00    	jg     0x40630a
40628a:	6a 05                	push   $0x5
40628c:	e8 81 fc ff ff       	call   0x405f12
406291:	8b 45 f8             	mov    -0x8(%ebp),%eax
406294:	89 06                	mov    %eax,(%esi)
406296:	8b 45 fc             	mov    -0x4(%ebp),%eax
406299:	89 46 04             	mov    %eax,0x4(%esi)
40629c:	e9 26 ff ff ff       	jmp    0x4061c7
4062a1:	f6 c3 02             	test   $0x2,%bl
4062a4:	74 03                	je     0x4062a9
4062a6:	6a 25                	push   $0x25
4062a8:	5b                   	pop    %ebx
4062a9:	b0 01                	mov    $0x1,%al
4062ab:	88 45 17             	mov    %al,0x17(%ebp)
4062ae:	e9 a1 fe ff ff       	jmp    0x406154
4062b3:	ba 80 fb 48 00       	mov    $0x48fb80,%edx
4062b8:	8b cf                	mov    %edi,%ecx
4062ba:	e8 68 aa 01 00       	call   0x420d27
4062bf:	84 c0                	test   %al,%al
4062c1:	75 4e                	jne    0x406311
4062c3:	8b 75 10             	mov    0x10(%ebp),%esi
4062c6:	8b ce                	mov    %esi,%ecx
4062c8:	6a 20                	push   $0x20
4062ca:	e8 43 fc ff ff       	call   0x405f12
4062cf:	ff 37                	push   (%edi)
4062d1:	e8 a3 dc 01 00       	call   0x423f79
4062d6:	dd 1e                	fstpl  (%esi)
4062d8:	59                   	pop    %ecx
4062d9:	e9 e9 fe ff ff       	jmp    0x4061c7
4062de:	66 83 7d 18 33       	cmpw   $0x33,0x18(%ebp)
4062e3:	75 11                	jne    0x4062f6
4062e5:	0f b7 44 41 02       	movzwl 0x2(%ecx,%eax,2),%eax
4062ea:	66 3b c2             	cmp    %dx,%ax
4062ed:	76 11                	jbe    0x406300
4062ef:	32 c0                	xor    %al,%al
4062f1:	e9 d3 fe ff ff       	jmp    0x4061c9
4062f6:	85 c0                	test   %eax,%eax
4062f8:	0f 85 f1 fd ff ff    	jne    0x4060ef
4062fe:	eb e5                	jmp    0x4062e5
406300:	66 3b c3             	cmp    %bx,%ax
406303:	72 ea                	jb     0x4062ef
406305:	e9 e5 fd ff ff       	jmp    0x4060ef
40630a:	6a 10                	push   $0x10
40630c:	e9 7b ff ff ff       	jmp    0x40628c
406311:	8b 45 0c             	mov    0xc(%ebp),%eax
406314:	89 06                	mov    %eax,(%esi)
406316:	eb d7                	jmp    0x4062ef
406318:	6a 10                	push   $0x10
40631a:	e9 99 fe ff ff       	jmp    0x4061b8
40631f:	55                   	push   %ebp
406320:	8b ec                	mov    %esp,%ebp
406322:	51                   	push   %ecx
406323:	8b 4d 14             	mov    0x14(%ebp),%ecx
406326:	53                   	push   %ebx
406327:	56                   	push   %esi