402f58:	83 e2 f8             	and    $0xfffffff8,%edx
402f5b:	8d 4c 0a 08          	lea    0x8(%edx,%ecx,1),%ecx
402f5f:	5a                   	pop    %edx
402f60:	df 2c 01             	fildll (%ecx,%eax,1)
402f63:	df 3c 11             	fistpll (%ecx,%edx,1)
402f66:	83 c1 08             	add    $0x8,%ecx
402f69:	7c f5                	jl     0x402f60
402f6b:	df 3a                	fistpll (%edx)
402f6d:	5a                   	pop    %edx
402f6e:	df 3a                	fistpll (%edx)
402f70:	c3                   	ret
402f71:	7e 2e                	jle    0x402fa1
402f73:	39 d0                	cmp    %edx,%eax
402f75:	77 d1                	ja     0x402f48
402f77:	29 ca                	sub    %ecx,%edx
402f79:	39 d0                	cmp    %edx,%eax
402f7b:	8d 14 11             	lea    (%ecx,%edx,1),%edx
402f7e:	76 c8                	jbe    0x402f48
402f80:	83 e9 08             	sub    $0x8,%ecx
402f83:	51                   	push   %ecx
402f84:	df 2c 01             	fildll (%ecx,%eax,1)
402f87:	df 28                	fildll (%eax)
402f89:	01 d1                	add    %edx,%ecx
402f8b:	83 e1 f8             	and    $0xfffffff8,%ecx
402f8e:	29 d1                	sub    %edx,%ecx
402f90:	df 2c 01             	fildll (%ecx,%eax,1)
402f93:	df 3c 11             	fistpll (%ecx,%edx,1)
402f96:	83 e9 08             	sub    $0x8,%ecx
402f99:	7f f5                	jg     0x402f90
402f9b:	59                   	pop    %ecx
402f9c:	df 3a                	fistpll (%edx)
402f9e:	df 3c 11             	fistpll (%ecx,%edx,1)
402fa1:	c3                   	ret
402fa2:	0f b6 08             	movzbl (%eax),%ecx
402fa5:	88 0a                	mov    %cl,(%edx)
402fa7:	c3                   	ret
402fa8:	0f b7 08             	movzwl (%eax),%ecx
402fab:	66 89 0a             	mov    %cx,(%edx)
402fae:	c3                   	ret
402faf:	66 8b 08             	mov    (%eax),%cx
402fb2:	8a 40 02             	mov    0x2(%eax),%al
402fb5:	66 89 0a             	mov    %cx,(%edx)
402fb8:	88 42 02             	mov    %al,0x2(%edx)
402fbb:	c3                   	ret
402fbc:	8b 08                	mov    (%eax),%ecx
402fbe:	89 0a                	mov    %ecx,(%edx)
402fc0:	c3                   	ret
402fc1:	8b 08                	mov    (%eax),%ecx
402fc3:	8a 40 04             	mov    0x4(%eax),%al
402fc6:	89 0a                	mov    %ecx,(%edx)
402fc8:	88 42 04             	mov    %al,0x4(%edx)
402fcb:	c3                   	ret
402fcc:	8b 08                	mov    (%eax),%ecx
402fce:	66 8b 40 04          	mov    0x4(%eax),%ax
402fd2:	89 0a                	mov    %ecx,(%edx)
402fd4:	66 89 42 04          	mov    %ax,0x4(%edx)
402fd8:	c3                   	ret
402fd9:	8b 08                	mov    (%eax),%ecx
402fdb:	8b 40 03             	mov    0x3(%eax),%eax
402fde:	89 0a                	mov    %ecx,(%edx)
402fe0:	89 42 03             	mov    %eax,0x3(%edx)
402fe3:	c3                   	ret
402fe4:	df 28                	fildll (%eax)
402fe6:	df 3a                	fistpll (%edx)
402fe8:	c3                   	ret
402fe9:	8d 40 00             	lea    0x0(%eax),%eax
402fec:	3c 61                	cmp    $0x61,%al
402fee:	72 06                	jb     0x402ff6
402ff0:	3c 7a                	cmp    $0x7a,%al
402ff2:	77 02                	ja     0x402ff6
402ff4:	2c 20                	sub    $0x20,%al
402ff6:	c3                   	ret
402ff7:	90                   	nop
402ff8:	66 a3 20 b0 49 00    	mov    %ax,0x49b020
402ffe:	db e2                	fnclex
403000:	d9 2d 20 b0 49 00    	fldcw  0x49b020
403006:	c3                   	ret
403007:	90                   	nop
403008:	6a 00                	push   $0x0
40300a:	d9 3c 24             	fnstcw (%esp)
40300d:	58                   	pop    %eax
40300e:	c3                   	ret
40300f:	90                   	nop
403010:	55                   	push   %ebp
403011:	8b ec                	mov    %esp,%ebp
403013:	db 6d 08             	fldt   0x8(%ebp)
403016:	d9 ff                	fcos
403018:	9b                   	fwait
403019:	5d                   	pop    %ebp
40301a:	c2 0c 00             	ret    $0xc
40301d:	8d 40 00             	lea    0x0(%eax),%eax
403020:	55                   	push   %ebp
403021:	8b ec                	mov    %esp,%ebp
403023:	db 6d 08             	fldt   0x8(%ebp)
403026:	d9 fe                	fsin
403028:	9b                   	fwait
403029:	5d                   	pop    %ebp
40302a:	c2 0c 00             	ret    $0xc
40302d:	8d 40 00             	lea    0x0(%eax),%eax
403030:	55                   	push   %ebp
403031:	8b ec                	mov    %esp,%ebp
403033:	db 6d 08             	fldt   0x8(%ebp)
403036:	d9 e8                	fld1
403038:	d9 f3                	fpatan
40303a:	9b                   	fwait
40303b:	5d                   	pop    %ebp
40303c:	c2 0c 00             	ret    $0xc
40303f:	90                   	nop
403040:	55                   	push   %ebp
403041:	8b ec                	mov    %esp,%ebp
403043:	db 6d 08             	fldt   0x8(%ebp)
403046:	d9 fa                	fsqrt
403048:	9b                   	fwait
403049:	5d                   	pop    %ebp
40304a:	c2 0c 00             	ret    $0xc
40304d:	8d 40 00             	lea    0x0(%eax),%eax
403050:	83 ec 08             	sub    $0x8,%esp
403053:	df 3c 24             	fistpll (%esp)
403056:	9b                   	fwait
403057:	58                   	pop    %eax
403058:	5a                   	pop    %edx
403059:	c3                   	ret
40305a:	8b c0                	mov    %eax,%eax
40305c:	83 ec 0c             	sub    $0xc,%esp
40305f:	d9 3c 24             	fnstcw (%esp)
403062:	d9 7c 24 02          	fnstcw 0x2(%esp)
403066:	9b                   	fwait
403067:	66 81 4c 24 02 00 0f 	orw    $0xf00,0x2(%esp)
40306e:	d9 6c 24 02          	fldcw  0x2(%esp)
403072:	df 7c 24 04          	fistpll 0x4(%esp)
403076:	9b d9 2c 24          	fldcw  (%esp)
40307a:	59                   	pop    %ecx
40307b:	58                   	pop    %eax
40307c:	5a                   	pop    %edx
40307d:	c3                   	ret
40307e:	8b c0                	mov    %eax,%eax
403080:	83 3d 2c 80 4a 00 00 	cmpl   $0x0,0x4a802c
403087:	74 06                	je     0x40308f
403089:	ff 15 2c 80 4a 00    	call   *0x4a802c
40308f:	b8 d2 00 00 00       	mov    $0xd2,%eax
403094:	e9 a3 16 00 00       	jmp    0x40473c
403099:	c3                   	ret
40309a:	8b c0                	mov    %eax,%eax
40309c:	53                   	push   %ebx
40309d:	0f b7 48 04          	movzwl 0x4(%eax),%ecx
4030a1:	66 81 e9 b1 d7       	sub    $0xd7b1,%cx
4030a6:	74 0f                	je     0x4030b7
4030a8:	49                   	dec    %ecx
4030a9:	66 83 e9 02          	sub    $0x2,%cx
4030ad:	73 0c                	jae    0x4030bb
4030af:	8b da                	mov    %edx,%ebx
4030b1:	ff d3                	call   *%ebx
4030b3:	8b d8                	mov    %eax,%ebx
4030b5:	eb 1b                	jmp    0x4030d2
4030b7:	33 db                	xor    %ebx,%ebx
4030b9:	eb 17                	jmp    0x4030d2
4030bb:	3d 1c 82 4a 00       	cmp    $0x4a821c,%eax
4030c0:	74 07                	je     0x4030c9
4030c2:	3d e8 83 4a 00       	cmp    $0x4a83e8,%eax
4030c7:	75 04                	jne    0x4030cd
4030c9:	33 db                	xor    %ebx,%ebx
4030cb:	eb 05                	jmp    0x4030d2
4030cd:	bb 67 00 00 00       	mov    $0x67,%ebx
4030d2:	85 db                	test   %ebx,%ebx
4030d4:	74 07                	je     0x4030dd
4030d6:	8b c3                	mov    %ebx,%eax
4030d8:	e8 9b fd ff ff       	call   0x402e78
4030dd:	8b c3                	mov    %ebx,%eax
4030df:	5b                   	pop    %ebx
4030e0:	c3                   	ret
4030e1:	8d 40 00             	lea    0x0(%eax),%eax
4030e4:	8b 50 1c             	mov    0x1c(%eax),%edx
4030e7:	e8 b0 ff ff ff       	call   0x40309c
4030ec:	c3                   	ret
4030ed:	8d 40 00             	lea    0x0(%eax),%eax
4030f0:	53                   	push   %ebx
4030f1:	56                   	push   %esi
4030f2:	8b d8                	mov    %eax,%ebx
4030f4:	33 f6                	xor    %esi,%esi
4030f6:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
4030fa:	66 3d b1 d7          	cmp    $0xd7b1,%ax
4030fe:	72 2f                	jb     0x40312f
403100:	66 3d b3 d7          	cmp    $0xd7b3,%ax
403104:	77 29                	ja     0x40312f
403106:	66 25 b2 d7          	and    $0xd7b2,%ax
40310a:	66 3d b2 d7          	cmp    $0xd7b2,%ax
40310e:	75 07                	jne    0x403117
403110:	8b c3                	mov    %ebx,%eax
403112:	ff 53 1c             	call   *0x1c(%ebx)
403115:	8b f0                	mov    %eax,%esi
403117:	85 f6                	test   %esi,%esi
403119:	75 07                	jne    0x403122
40311b:	8b c3                	mov    %ebx,%eax
40311d:	ff 53 24             	call   *0x24(%ebx)
403120:	8b f0                	mov    %eax,%esi
403122:	85 f6                	test   %esi,%esi
403124:	74 1b                	je     0x403141
403126:	8b c6                	mov    %esi,%eax
403128:	e8 4b fd ff ff       	call   0x402e78
40312d:	eb 12                	jmp    0x403141
40312f:	81 fb 50 80 4a 00    	cmp    $0x4a8050,%ebx
403135:	74 0a                	je     0x403141
403137:	b8 67 00 00 00       	mov    $0x67,%eax
40313c:	e8 37 fd ff ff       	call   0x402e78
403141:	8b c6                	mov    %esi,%eax
403143:	5e                   	pop    %esi
403144:	5b                   	pop    %ebx
403145:	c3                   	ret
403146:	8b c0                	mov    %eax,%eax
403148:	53                   	push   %ebx
403149:	0f b6 1a             	movzbl (%edx),%ebx
40314c:	3a cb                	cmp    %bl,%cl
40314e:	76 02                	jbe    0x403152
403150:	8b cb                	mov    %ebx,%ecx
403152:	88 08                	mov    %cl,(%eax)
403154:	42                   	inc    %edx
403155:	40                   	inc    %eax
403156:	0f b6 c9             	movzbl %cl,%ecx
403159:	92                   	xchg   %eax,%edx
40315a:	e8 8d fd ff ff       	call   0x402eec
40315f:	5b                   	pop    %ebx
403160:	c3                   	ret
403161:	8d 40 00             	lea    0x0(%eax),%eax
403164:	53                   	push   %ebx
403165:	56                   	push   %esi
403166:	57                   	push   %edi
403167:	89 c6                	mov    %eax,%esi
403169:	89 d7                	mov    %edx,%edi
40316b:	31 c0                	xor    %eax,%eax
40316d:	31 d2                	xor    %edx,%edx
40316f:	8a 06                	mov    (%esi),%al
403171:	8a 17                	mov    (%edi),%dl
403173:	46                   	inc    %esi
403174:	47                   	inc    %edi
403175:	29 d0                	sub    %edx,%eax
403177:	77 02                	ja     0x40317b
403179:	01 c2                	add    %eax,%edx
40317b:	52                   	push   %edx
40317c:	c1 ea 02             	shr    $0x2,%edx
40317f:	74 26                	je     0x4031a7
403181:	8b 0e                	mov    (%esi),%ecx
403183:	8b 1f                	mov    (%edi),%ebx
403185:	39 d9                	cmp    %ebx,%ecx
403187:	75 44                	jne    0x4031cd
403189:	4a                   	dec    %edx
40318a:	74 15                	je     0x4031a1
40318c:	8b 4e 04             	mov    0x4(%esi),%ecx
40318f:	8b 5f 04             	mov    0x4(%edi),%ebx
403192:	39 d9                	cmp    %ebx,%ecx
403194:	75 37                	jne    0x4031cd
403196:	83 c6 08             	add    $0x8,%esi
403199:	83 c7 08             	add    $0x8,%edi
40319c:	4a                   	dec    %edx
40319d:	75 e2                	jne    0x403181
40319f:	eb 06                	jmp    0x4031a7
4031a1:	83 c6 04             	add    $0x4,%esi
4031a4:	83 c7 04             	add    $0x4,%edi
4031a7:	5a                   	pop    %edx
4031a8:	83 e2 03             	and    $0x3,%edx
4031ab:	74 1c                	je     0x4031c9
4031ad:	8a 0e                	mov    (%esi),%cl
4031af:	3a 0f                	cmp    (%edi),%cl
4031b1:	75 2f                	jne    0x4031e2
4031b3:	4a                   	dec    %edx
4031b4:	74 13                	je     0x4031c9
4031b6:	8a 4e 01             	mov    0x1(%esi),%cl
4031b9:	3a 4f 01             	cmp    0x1(%edi),%cl
4031bc:	75 24                	jne    0x4031e2
4031be:	4a                   	dec    %edx
4031bf:	74 08                	je     0x4031c9
4031c1:	8a 4e 02             	mov    0x2(%esi),%cl
4031c4:	3a 4f 02             	cmp    0x2(%edi),%cl
4031c7:	75 19                	jne    0x4031e2
4031c9:	01 c0                	add    %eax,%eax
4031cb:	eb 15                	jmp    0x4031e2
4031cd:	5a                   	pop    %edx
4031ce:	38 d9                	cmp    %bl,%cl
4031d0:	75 10                	jne    0x4031e2
4031d2:	38 fd                	cmp    %bh,%ch
4031d4:	75 0c                	jne    0x4031e2
4031d6:	c1 e9 10             	shr    $0x10,%ecx
4031d9:	c1 eb 10             	shr    $0x10,%ebx
4031dc:	38 d9                	cmp    %bl,%cl
4031de:	75 02                	jne    0x4031e2
4031e0:	38 fd                	cmp    %bh,%ch
4031e2:	5f                   	pop    %edi
4031e3:	5e                   	pop    %esi
4031e4:	5b                   	pop    %ebx
4031e5:	c3                   	ret
4031e6:	8b c0                	mov    %eax,%eax
4031e8:	53                   	push   %ebx
4031e9:	56                   	push   %esi
4031ea:	51                   	push   %ecx
4031eb:	89 ce                	mov    %ecx,%esi
4031ed:	c1 ee 02             	shr    $0x2,%esi
4031f0:	74 26                	je     0x403218
4031f2:	8b 08                	mov    (%eax),%ecx
4031f4:	8b 1a                	mov    (%edx),%ebx
4031f6:	39 d9                	cmp    %ebx,%ecx
4031f8:	75 45                	jne    0x40323f
4031fa:	4e                   	dec    %esi
4031fb:	74 15                	je     0x403212
4031fd:	8b 48 04             	mov    0x4(%eax),%ecx
403200:	8b 5a 04             	mov    0x4(%edx),%ebx
403203:	39 d9                	cmp    %ebx,%ecx
403205:	75 38                	jne    0x40323f
403207:	83 c0 08             	add    $0x8,%eax
40320a:	83 c2 08             	add    $0x8,%edx
40320d:	4e                   	dec    %esi
40320e:	75 e2                	jne    0x4031f2
403210:	eb 06                	jmp    0x403218
403212:	83 c0 04             	add    $0x4,%eax
403215:	83 c2 04             	add    $0x4,%edx
403218:	5e                   	pop    %esi
403219:	83 e6 03             	and    $0x3,%esi
40321c:	74 36                	je     0x403254
40321e:	8a 08                	mov    (%eax),%cl
403220:	3a 0a                	cmp    (%edx),%cl
403222:	75 30                	jne    0x403254
403224:	4e                   	dec    %esi
403225:	74 13                	je     0x40323a
403227:	8a 48 01             	mov    0x1(%eax),%cl
40322a:	3a 4a 01             	cmp    0x1(%edx),%cl
40322d:	75 25                	jne    0x403254
40322f:	4e                   	dec    %esi
403230:	74 08                	je     0x40323a
403232:	8a 48 02             	mov    0x2(%eax),%cl
403235:	3a 4a 02             	cmp    0x2(%edx),%cl
403238:	75 1a                	jne    0x403254
40323a:	31 c0                	xor    %eax,%eax
40323c:	5e                   	pop    %esi
40323d:	5b                   	pop    %ebx
40323e:	c3                   	ret
40323f:	5e                   	pop    %esi
403240:	38 d9                	cmp    %bl,%cl
403242:	75 10                	jne    0x403254
403244:	38 fd                	cmp    %bh,%ch
403246:	75 0c                	jne    0x403254
403248:	c1 e9 10             	shr    $0x10,%ecx
40324b:	c1 eb 10             	shr    $0x10,%ebx
40324e:	38 d9                	cmp    %bl,%cl
403250:	75 02                	jne    0x403254
403252:	38 fd                	cmp    %bh,%ch
403254:	5e                   	pop    %esi
403255:	5b                   	pop    %ebx
403256:	c3                   	ret
403257:	90                   	nop
403258:	83 fa 20             	cmp    $0x20,%edx
40325b:	88 cd                	mov    %cl,%ch
40325d:	7c 3d                	jl     0x40329c