414fbd:	8b 7d 08             	mov    0x8(%ebp),%edi
414fc0:	85 ff                	test   %edi,%edi
414fc2:	75 0b                	jne    0x414fcf
414fc4:	ff 75 0c             	push   0xc(%ebp)
414fc7:	e8 06 80 ff ff       	call   0x40cfd2
414fcc:	59                   	pop    %ecx
414fcd:	eb 24                	jmp    0x414ff3
414fcf:	56                   	push   %esi
414fd0:	8b 75 0c             	mov    0xc(%ebp),%esi
414fd3:	85 f6                	test   %esi,%esi
414fd5:	75 09                	jne    0x414fe0
414fd7:	57                   	push   %edi
414fd8:	e8 c2 57 ff ff       	call   0x40a79f
414fdd:	59                   	pop    %ecx
414fde:	eb 10                	jmp    0x414ff0
414fe0:	83 fe e0             	cmp    $0xffffffe0,%esi
414fe3:	76 25                	jbe    0x41500a
414fe5:	e8 45 57 ff ff       	call   0x40a72f
414fea:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
414ff0:	33 c0                	xor    %eax,%eax
414ff2:	5e                   	pop    %esi
414ff3:	5f                   	pop    %edi
414ff4:	5d                   	pop    %ebp
414ff5:	c3                   	ret
414ff6:	e8 d9 4f ff ff       	call   0x409fd4
414ffb:	85 c0                	test   %eax,%eax
414ffd:	74 e6                	je     0x414fe5
414fff:	56                   	push   %esi
415000:	e8 40 41 ff ff       	call   0x409145
415005:	59                   	pop    %ecx
415006:	85 c0                	test   %eax,%eax
415008:	74 db                	je     0x414fe5
41500a:	56                   	push   %esi
41500b:	57                   	push   %edi
41500c:	6a 00                	push   $0x0
41500e:	ff 35 3c 25 42 00    	push   0x42253c
415014:	ff 15 0c 90 41 00    	call   *0x41900c
41501a:	85 c0                	test   %eax,%eax
41501c:	74 d8                	je     0x414ff6
41501e:	eb d2                	jmp    0x414ff2
415020:	6a 08                	push   $0x8
415022:	68 28 03 42 00       	push   $0x420328
415027:	e8 74 ee fe ff       	call   0x403ea0
41502c:	83 3d 6c 1a 42 00 01 	cmpl   $0x1,0x421a6c
415033:	7c 5b                	jl     0x415090
415035:	8b 45 08             	mov    0x8(%ebp),%eax
415038:	a8 40                	test   $0x40,%al
41503a:	74 4a                	je     0x415086
41503c:	83 3d 70 19 42 00 00 	cmpl   $0x0,0x421970
415043:	74 41                	je     0x415086
415045:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415049:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41504d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
415054:	eb 3a                	jmp    0x415090
415056:	8b 45 ec             	mov    -0x14(%ebp),%eax
415059:	8b 00                	mov    (%eax),%eax
41505b:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
415061:	74 0b                	je     0x41506e
415063:	81 38 1d 00 00 c0    	cmpl   $0xc000001d,(%eax)
415069:	74 03                	je     0x41506e
41506b:	33 c0                	xor    %eax,%eax
41506d:	c3                   	ret
41506e:	33 c0                	xor    %eax,%eax
415070:	40                   	inc    %eax
415071:	c3                   	ret
415072:	8b 65 e8             	mov    -0x18(%ebp),%esp
415075:	83 25 70 19 42 00 00 	andl   $0x0,0x421970
41507c:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
415080:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
415084:	eb c7                	jmp    0x41504d
415086:	83 e0 bf             	and    $0xffffffbf,%eax
415089:	89 45 08             	mov    %eax,0x8(%ebp)
41508c:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
415090:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415093:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41509a:	59                   	pop    %ecx
41509b:	5f                   	pop    %edi
41509c:	5e                   	pop    %esi
41509d:	5b                   	pop    %ebx
41509e:	c9                   	leave
41509f:	c3                   	ret
4150a0:	8b ff                	mov    %edi,%edi
4150a2:	55                   	push   %ebp
4150a3:	8b ec                	mov    %esp,%ebp
4150a5:	51                   	push   %ecx
4150a6:	dd 7d fc             	fnstsw -0x4(%ebp)
4150a9:	db e2                	fnclex
4150ab:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
4150af:	c9                   	leave
4150b0:	c3                   	ret
4150b1:	8b ff                	mov    %edi,%edi
4150b3:	55                   	push   %ebp
4150b4:	8b ec                	mov    %esp,%ebp
4150b6:	51                   	push   %ecx
4150b7:	51                   	push   %ecx
4150b8:	9b d9 7d fc          	fstcw  -0x4(%ebp)
4150bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4150bf:	8b 45 08             	mov    0x8(%ebp),%eax
4150c2:	f7 d1                	not    %ecx
4150c4:	66 23 4d fc          	and    -0x4(%ebp),%cx
4150c8:	23 45 0c             	and    0xc(%ebp),%eax
4150cb:	66 0b c8             	or     %ax,%cx
4150ce:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
4150d2:	d9 6d f8             	fldcw  -0x8(%ebp)
4150d5:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
4150d9:	c9                   	leave
4150da:	c3                   	ret
4150db:	8b ff                	mov    %edi,%edi
4150dd:	55                   	push   %ebp
4150de:	8b ec                	mov    %esp,%ebp
4150e0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4150e3:	83 ec 0c             	sub    $0xc,%esp
4150e6:	f6 c1 01             	test   $0x1,%cl
4150e9:	74 0a                	je     0x4150f5
4150eb:	db 2d 58 e2 41 00    	fldt   0x41e258
4150f1:	db 5d fc             	fistpl -0x4(%ebp)
4150f4:	9b                   	fwait
4150f5:	f6 c1 08             	test   $0x8,%cl
4150f8:	74 10                	je     0x41510a
4150fa:	9b df e0             	fstsw  %ax
4150fd:	db 2d 58 e2 41 00    	fldt   0x41e258
415103:	dd 5d f4             	fstpl  -0xc(%ebp)
415106:	9b 9b df e0          	fstsw  %ax
41510a:	f6 c1 10             	test   $0x10,%cl
41510d:	74 0a                	je     0x415119
41510f:	db 2d 64 e2 41 00    	fldt   0x41e264
415115:	dd 5d f4             	fstpl  -0xc(%ebp)
415118:	9b                   	fwait
415119:	f6 c1 04             	test   $0x4,%cl
41511c:	74 09                	je     0x415127
41511e:	d9 ee                	fldz
415120:	d9 e8                	fld1
415122:	de f1                	fdivp  %st,%st(1)
415124:	dd d8                	fstp   %st(0)
415126:	9b                   	fwait
415127:	f6 c1 20             	test   $0x20,%cl
41512a:	74 06                	je     0x415132
41512c:	d9 eb                	fldpi
41512e:	dd 5d f4             	fstpl  -0xc(%ebp)
415131:	9b                   	fwait
415132:	c9                   	leave
415133:	c3                   	ret
415134:	8b ff                	mov    %edi,%edi
415136:	55                   	push   %ebp
415137:	8b ec                	mov    %esp,%ebp
415139:	51                   	push   %ecx
41513a:	9b dd 7d fc          	fstsw  -0x4(%ebp)
41513e:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
415142:	c9                   	leave
415143:	c3                   	ret
415144:	8b ff                	mov    %edi,%edi
415146:	55                   	push   %ebp
415147:	8b ec                	mov    %esp,%ebp
415149:	83 ec 24             	sub    $0x24,%esp
41514c:	a1 c0 10 42 00       	mov    0x4210c0,%eax
415151:	33 c5                	xor    %ebp,%eax
415153:	89 45 fc             	mov    %eax,-0x4(%ebp)
415156:	8b 4d 08             	mov    0x8(%ebp),%ecx
415159:	8b 45 0c             	mov    0xc(%ebp),%eax
41515c:	53                   	push   %ebx
41515d:	56                   	push   %esi
41515e:	8b 75 14             	mov    0x14(%ebp),%esi
415161:	89 4d e8             	mov    %ecx,-0x18(%ebp)
415164:	8b 4d 18             	mov    0x18(%ebp),%ecx
415167:	89 45 e0             	mov    %eax,-0x20(%ebp)
41516a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41516d:	57                   	push   %edi
41516e:	85 f6                	test   %esi,%esi
415170:	75 05                	jne    0x415177
415172:	be 50 25 42 00       	mov    $0x422550,%esi
415177:	33 d2                	xor    %edx,%edx
415179:	33 db                	xor    %ebx,%ebx
41517b:	42                   	inc    %edx
41517c:	85 c0                	test   %eax,%eax
41517e:	75 11                	jne    0x415191
415180:	8b c2                	mov    %edx,%eax
415182:	bf 26 9a 41 00       	mov    $0x419a26,%edi
415187:	89 45 10             	mov    %eax,0x10(%ebp)
41518a:	8b c3                	mov    %ebx,%eax
41518c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41518f:	eb 12                	jmp    0x4151a3
415191:	8b f8                	mov    %eax,%edi
415193:	39 5d 10             	cmp    %ebx,0x10(%ebp)
415196:	75 08                	jne    0x4151a0
415198:	6a fe                	push   $0xfffffffe
41519a:	58                   	pop    %eax
41519b:	e9 46 01 00 00       	jmp    0x4152e6
4151a0:	8b 45 e8             	mov    -0x18(%ebp),%eax
4151a3:	66 39 5e 06          	cmp    %bx,0x6(%esi)
4151a7:	75 5c                	jne    0x415205
4151a9:	8a 1f                	mov    (%edi),%bl
4151ab:	47                   	inc    %edi
4151ac:	84 db                	test   %bl,%bl
4151ae:	78 18                	js     0x4151c8
4151b0:	85 c0                	test   %eax,%eax
4151b2:	74 08                	je     0x4151bc
4151b4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4151b7:	0f b6 c3             	movzbl %bl,%eax
4151ba:	89 01                	mov    %eax,(%ecx)
4151bc:	33 c0                	xor    %eax,%eax
4151be:	84 db                	test   %bl,%bl
4151c0:	0f 95 c0             	setne  %al
4151c3:	e9 1e 01 00 00       	jmp    0x4152e6
4151c8:	8a c3                	mov    %bl,%al
4151ca:	24 e0                	and    $0xe0,%al
4151cc:	3c c0                	cmp    $0xc0,%al
4151ce:	75 04                	jne    0x4151d4
4151d0:	b7 02                	mov    $0x2,%bh
4151d2:	eb 1a                	jmp    0x4151ee
4151d4:	8a c3                	mov    %bl,%al
4151d6:	24 f0                	and    $0xf0,%al
4151d8:	3c e0                	cmp    $0xe0,%al
4151da:	75 04                	jne    0x4151e0
4151dc:	b7 03                	mov    $0x3,%bh
4151de:	eb 0e                	jmp    0x4151ee
4151e0:	8a c3                	mov    %bl,%al
4151e2:	24 f8                	and    $0xf8,%al
4151e4:	3c f0                	cmp    $0xf0,%al
4151e6:	0f 85 f1 00 00 00    	jne    0x4152dd
4151ec:	b7 04                	mov    $0x4,%bh
4151ee:	6a 07                	push   $0x7
4151f0:	0f b6 c7             	movzbl %bh,%eax
4151f3:	59                   	pop    %ecx
4151f4:	2b c8                	sub    %eax,%ecx
4151f6:	88 7d ef             	mov    %bh,-0x11(%ebp)
4151f9:	d3 e2                	shl    %cl,%edx
4151fb:	0f b6 c3             	movzbl %bl,%eax
4151fe:	4a                   	dec    %edx
4151ff:	23 d0                	and    %eax,%edx
415201:	8a df                	mov    %bh,%bl
415203:	eb 28                	jmp    0x41522d
415205:	8a 7e 04             	mov    0x4(%esi),%bh
415208:	8a 5e 06             	mov    0x6(%esi),%bl
41520b:	8a c7                	mov    %bh,%al
41520d:	8b 16                	mov    (%esi),%edx
41520f:	2c 02                	sub    $0x2,%al
415211:	88 5d ef             	mov    %bl,-0x11(%ebp)
415214:	3c 02                	cmp    $0x2,%al
415216:	0f 87 c1 00 00 00    	ja     0x4152dd
41521c:	80 fb 01             	cmp    $0x1,%bl
41521f:	0f 82 b8 00 00 00    	jb     0x4152dd
415225:	3a df                	cmp    %bh,%bl
415227:	0f 83 b0 00 00 00    	jae    0x4152dd
41522d:	8b 4d 10             	mov    0x10(%ebp),%ecx
415230:	0f b6 c3             	movzbl %bl,%eax
415233:	89 45 dc             	mov    %eax,-0x24(%ebp)
415236:	3b c1                	cmp    %ecx,%eax
415238:	73 02                	jae    0x41523c
41523a:	8b c8                	mov    %eax,%ecx
41523c:	8b c7                	mov    %edi,%eax
41523e:	2b 45 e0             	sub    -0x20(%ebp),%eax
415241:	eb 25                	jmp    0x415268
415243:	8a 1f                	mov    (%edi),%bl
415245:	47                   	inc    %edi
415246:	40                   	inc    %eax
415247:	88 5d ee             	mov    %bl,-0x12(%ebp)
41524a:	89 45 e0             	mov    %eax,-0x20(%ebp)
41524d:	8a e3                	mov    %bl,%ah
41524f:	8a 5d ef             	mov    -0x11(%ebp),%bl
415252:	8a c4                	mov    %ah,%al
415254:	24 c0                	and    $0xc0,%al
415256:	3c 80                	cmp    $0x80,%al
415258:	75 30                	jne    0x41528a
41525a:	0f b6 c4             	movzbl %ah,%eax
41525d:	83 e0 3f             	and    $0x3f,%eax
415260:	c1 e2 06             	shl    $0x6,%edx
415263:	0b d0                	or     %eax,%edx
415265:	8b 45 e0             	mov    -0x20(%ebp),%eax
415268:	3b c1                	cmp    %ecx,%eax
41526a:	72 d7                	jb     0x415243
41526c:	8b 7d dc             	mov    -0x24(%ebp),%edi
41526f:	3b cf                	cmp    %edi,%ecx
415271:	73 1c                	jae    0x41528f
415273:	0f b6 c7             	movzbl %bh,%eax
415276:	2a d9                	sub    %cl,%bl
415278:	66 89 46 04          	mov    %ax,0x4(%esi)
41527c:	0f b6 c3             	movzbl %bl,%eax
41527f:	89 16                	mov    %edx,(%esi)
415281:	66 89 46 06          	mov    %ax,0x6(%esi)
415285:	e9 0e ff ff ff       	jmp    0x415198
41528a:	ff 75 e4             	push   -0x1c(%ebp)
41528d:	eb 4f                	jmp    0x4152de
41528f:	81 fa 00 d8 00 00    	cmp    $0xd800,%edx
415295:	72 08                	jb     0x41529f
415297:	81 fa ff df 00 00    	cmp    $0xdfff,%edx
41529d:	76 eb                	jbe    0x41528a
41529f:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
4152a5:	77 e3                	ja     0x41528a
4152a7:	0f b6 c7             	movzbl %bh,%eax
4152aa:	c7 45 f0 80 00 00 00 	movl   $0x80,-0x10(%ebp)
4152b1:	c7 45 f4 00 08 00 00 	movl   $0x800,-0xc(%ebp)
4152b8:	c7 45 f8 00 00 01 00 	movl   $0x10000,-0x8(%ebp)
4152bf:	3b 54 85 e8          	cmp    -0x18(%ebp,%eax,4),%edx
4152c3:	72 c5                	jb     0x41528a
4152c5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4152c8:	85 c9                	test   %ecx,%ecx
4152ca:	74 02                	je     0x4152ce
4152cc:	89 11                	mov    %edx,(%ecx)
4152ce:	f7 da                	neg    %edx
4152d0:	56                   	push   %esi
4152d1:	1b d2                	sbb    %edx,%edx
4152d3:	23 d7                	and    %edi,%edx
4152d5:	52                   	push   %edx
4152d6:	e8 9e 0c 00 00       	call   0x415f79
4152db:	eb 07                	jmp    0x4152e4
4152dd:	51                   	push   %ecx
4152de:	56                   	push   %esi
4152df:	e8 a9 0c 00 00       	call   0x415f8d
4152e4:	59                   	pop    %ecx
4152e5:	59                   	pop    %ecx
4152e6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4152e9:	5f                   	pop    %edi
4152ea:	5e                   	pop    %esi
4152eb:	33 cd                	xor    %ebp,%ecx
4152ed:	5b                   	pop    %ebx
4152ee:	e8 d5 ed fe ff       	call   0x4040c8
4152f3:	c9                   	leave
4152f4:	c3                   	ret
4152f5:	33 c0                	xor    %eax,%eax
4152f7:	50                   	push   %eax
4152f8:	50                   	push   %eax
4152f9:	6a 03                	push   $0x3
4152fb:	50                   	push   %eax
4152fc:	6a 03                	push   $0x3
4152fe:	68 00 00 00 40       	push   $0x40000000
415303:	68 70 e2 41 00       	push   $0x41e270
415308:	ff 15 7c 90 41 00    	call   *0x41907c
41530e:	a3 74 19 42 00       	mov    %eax,0x421974
415313:	c3                   	ret
415314:	8b 0d 74 19 42 00    	mov    0x421974,%ecx
41531a:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41531d:	75 0b                	jne    0x41532a
41531f:	e8 d1 ff ff ff       	call   0x4152f5
415324:	8b 0d 74 19 42 00    	mov    0x421974,%ecx
41532a:	33 c0                	xor    %eax,%eax
41532c:	83 f9 ff             	cmp    $0xffffffff,%ecx
41532f:	0f 95 c0             	setne  %al
415332:	c3                   	ret
415333:	a1 74 19 42 00       	mov    0x421974,%eax
415338:	83 f8 ff             	cmp    $0xffffffff,%eax
41533b:	74 0c                	je     0x415349
41533d:	83 f8 fe             	cmp    $0xfffffffe,%eax
415340:	74 07                	je     0x415349
415342:	50                   	push   %eax
415343:	ff 15 2c 90 41 00    	call   *0x41902c
415349:	c3                   	ret
41534a:	8b ff                	mov    %edi,%edi
41534c:	55                   	push   %ebp
41534d:	8b ec                	mov    %esp,%ebp
41534f:	56                   	push   %esi