43f0ac:	8b 45 1c             	mov    0x1c(%ebp),%eax
43f0af:	56                   	push   %esi
43f0b0:	8b 75 08             	mov    0x8(%ebp),%esi
43f0b3:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f0b6:	8b 45 20             	mov    0x20(%ebp),%eax
43f0b9:	68 ff ff 00 00       	push   $0xffff
43f0be:	ff 75 28             	push   0x28(%ebp)
43f0c1:	89 45 f8             	mov    %eax,-0x8(%ebp)
43f0c4:	8b 45 24             	mov    0x24(%ebp),%eax
43f0c7:	89 75 e0             	mov    %esi,-0x20(%ebp)
43f0ca:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f0cd:	e8 0a d5 ff ff       	call   0x43c5dc
43f0d2:	8d 45 e0             	lea    -0x20(%ebp),%eax
43f0d5:	50                   	push   %eax
43f0d6:	e8 73 4f ff ff       	call   0x43404e
43f0db:	83 c4 0c             	add    $0xc,%esp
43f0de:	85 c0                	test   %eax,%eax
43f0e0:	75 07                	jne    0x43f0e9
43f0e2:	56                   	push   %esi
43f0e3:	e8 55 ff ff ff       	call   0x43f03d
43f0e8:	59                   	pop    %ecx
43f0e9:	dd 45 f8             	fldl   -0x8(%ebp)
43f0ec:	5e                   	pop    %esi
43f0ed:	eb 1b                	jmp    0x43f10a
43f0ef:	68 ff ff 00 00       	push   $0xffff
43f0f4:	ff 75 28             	push   0x28(%ebp)
43f0f7:	e8 e0 d4 ff ff       	call   0x43c5dc
43f0fc:	ff 75 08             	push   0x8(%ebp)
43f0ff:	e8 39 ff ff ff       	call   0x43f03d
43f104:	dd 45 20             	fldl   0x20(%ebp)
43f107:	83 c4 0c             	add    $0xc,%esp
43f10a:	8b e5                	mov    %ebp,%esp
43f10c:	5d                   	pop    %ebp
43f10d:	c3                   	ret
43f10e:	8b ff                	mov    %edi,%edi
43f110:	55                   	push   %ebp
43f111:	8b ec                	mov    %esp,%ebp
43f113:	dd 45 08             	fldl   0x8(%ebp)
43f116:	d9 ee                	fldz
43f118:	dd e1                	fucom  %st(1)
43f11a:	df e0                	fnstsw %ax
43f11c:	57                   	push   %edi
43f11d:	f6 c4 44             	test   $0x44,%ah
43f120:	7a 09                	jp     0x43f12b
43f122:	dd d9                	fstp   %st(1)
43f124:	33 ff                	xor    %edi,%edi
43f126:	e9 af 00 00 00       	jmp    0x43f1da
43f12b:	56                   	push   %esi
43f12c:	66 8b 75 0e          	mov    0xe(%ebp),%si
43f130:	0f b7 c6             	movzwl %si,%eax
43f133:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
43f138:	75 7c                	jne    0x43f1b6
43f13a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43f13d:	8b 55 08             	mov    0x8(%ebp),%edx
43f140:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
43f146:	75 04                	jne    0x43f14c
43f148:	85 d2                	test   %edx,%edx
43f14a:	74 6a                	je     0x43f1b6
43f14c:	de d9                	fcompp
43f14e:	bf 03 fc ff ff       	mov    $0xfffffc03,%edi
43f153:	df e0                	fnstsw %ax
43f155:	f6 c4 41             	test   $0x41,%ah
43f158:	75 05                	jne    0x43f15f
43f15a:	33 c0                	xor    %eax,%eax
43f15c:	40                   	inc    %eax
43f15d:	eb 02                	jmp    0x43f161
43f15f:	33 c0                	xor    %eax,%eax
43f161:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
43f165:	75 1f                	jne    0x43f186
43f167:	03 c9                	add    %ecx,%ecx
43f169:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43f16c:	85 d2                	test   %edx,%edx
43f16e:	79 06                	jns    0x43f176
43f170:	83 c9 01             	or     $0x1,%ecx
43f173:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43f176:	03 d2                	add    %edx,%edx
43f178:	4f                   	dec    %edi
43f179:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
43f17d:	74 e8                	je     0x43f167
43f17f:	66 8b 75 0e          	mov    0xe(%ebp),%si
43f183:	89 55 08             	mov    %edx,0x8(%ebp)
43f186:	b9 ef ff 00 00       	mov    $0xffef,%ecx
43f18b:	66 23 f1             	and    %cx,%si
43f18e:	66 89 75 0e          	mov    %si,0xe(%ebp)
43f192:	85 c0                	test   %eax,%eax
43f194:	74 0c                	je     0x43f1a2
43f196:	b8 00 80 00 00       	mov    $0x8000,%eax
43f19b:	66 0b f0             	or     %ax,%si
43f19e:	66 89 75 0e          	mov    %si,0xe(%ebp)
43f1a2:	dd 45 08             	fldl   0x8(%ebp)
43f1a5:	6a 00                	push   $0x0
43f1a7:	51                   	push   %ecx
43f1a8:	51                   	push   %ecx
43f1a9:	dd 1c 24             	fstpl  (%esp)
43f1ac:	e8 31 00 00 00       	call   0x43f1e2
43f1b1:	83 c4 0c             	add    $0xc,%esp
43f1b4:	eb 23                	jmp    0x43f1d9
43f1b6:	6a 00                	push   $0x0
43f1b8:	51                   	push   %ecx
43f1b9:	dd d8                	fstp   %st(0)
43f1bb:	51                   	push   %ecx
43f1bc:	dd 1c 24             	fstpl  (%esp)
43f1bf:	e8 1e 00 00 00       	call   0x43f1e2
43f1c4:	0f b7 fe             	movzwl %si,%edi
43f1c7:	83 c4 0c             	add    $0xc,%esp
43f1ca:	c1 ef 04             	shr    $0x4,%edi
43f1cd:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
43f1d3:	81 ef fe 03 00 00    	sub    $0x3fe,%edi
43f1d9:	5e                   	pop    %esi
43f1da:	8b 45 10             	mov    0x10(%ebp),%eax
43f1dd:	89 38                	mov    %edi,(%eax)
43f1df:	5f                   	pop    %edi
43f1e0:	5d                   	pop    %ebp
43f1e1:	c3                   	ret
43f1e2:	8b ff                	mov    %edi,%edi
43f1e4:	55                   	push   %ebp
43f1e5:	8b ec                	mov    %esp,%ebp
43f1e7:	51                   	push   %ecx
43f1e8:	51                   	push   %ecx
43f1e9:	8b 4d 10             	mov    0x10(%ebp),%ecx
43f1ec:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
43f1f0:	dd 45 08             	fldl   0x8(%ebp)
43f1f3:	25 0f 80 00 00       	and    $0x800f,%eax
43f1f8:	dd 5d f8             	fstpl  -0x8(%ebp)
43f1fb:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
43f201:	c1 e1 04             	shl    $0x4,%ecx
43f204:	0b c8                	or     %eax,%ecx
43f206:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
43f20a:	dd 45 f8             	fldl   -0x8(%ebp)
43f20d:	8b e5                	mov    %ebp,%esp
43f20f:	5d                   	pop    %ebp
43f210:	c3                   	ret
43f211:	8b ff                	mov    %edi,%edi
43f213:	55                   	push   %ebp
43f214:	8b ec                	mov    %esp,%ebp
43f216:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
43f21d:	8b 45 08             	mov    0x8(%ebp),%eax
43f220:	75 07                	jne    0x43f229
43f222:	85 c0                	test   %eax,%eax
43f224:	75 15                	jne    0x43f23b
43f226:	40                   	inc    %eax
43f227:	5d                   	pop    %ebp
43f228:	c3                   	ret
43f229:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
43f230:	75 09                	jne    0x43f23b
43f232:	85 c0                	test   %eax,%eax
43f234:	75 05                	jne    0x43f23b
43f236:	6a 02                	push   $0x2
43f238:	58                   	pop    %eax
43f239:	5d                   	pop    %ebp
43f23a:	c3                   	ret
43f23b:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
43f23f:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
43f244:	66 23 ca             	and    %dx,%cx
43f247:	66 3b ca             	cmp    %dx,%cx
43f24a:	75 04                	jne    0x43f250
43f24c:	6a 03                	push   $0x3
43f24e:	eb e8                	jmp    0x43f238
43f250:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
43f255:	66 3b ca             	cmp    %dx,%cx
43f258:	75 11                	jne    0x43f26b
43f25a:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
43f261:	75 04                	jne    0x43f267
43f263:	85 c0                	test   %eax,%eax
43f265:	74 04                	je     0x43f26b
43f267:	6a 04                	push   $0x4
43f269:	eb cd                	jmp    0x43f238
43f26b:	33 c0                	xor    %eax,%eax
43f26d:	5d                   	pop    %ebp
43f26e:	c3                   	ret
43f26f:	33 c0                	xor    %eax,%eax
43f271:	50                   	push   %eax
43f272:	50                   	push   %eax
43f273:	6a 03                	push   $0x3
43f275:	50                   	push   %eax
43f276:	6a 03                	push   $0x3
43f278:	68 00 00 00 40       	push   $0x40000000
43f27d:	68 28 61 46 00       	push   $0x466128
43f282:	ff 15 d8 b0 44 00    	call   *0x44b0d8
43f288:	a3 70 a7 46 00       	mov    %eax,0x46a770
43f28d:	c3                   	ret
43f28e:	a1 70 a7 46 00       	mov    0x46a770,%eax
43f293:	83 f8 ff             	cmp    $0xffffffff,%eax
43f296:	74 0c                	je     0x43f2a4
43f298:	83 f8 fe             	cmp    $0xfffffffe,%eax
43f29b:	74 07                	je     0x43f2a4
43f29d:	50                   	push   %eax
43f29e:	ff 15 d4 b0 44 00    	call   *0x44b0d4
43f2a4:	c3                   	ret
43f2a5:	8b ff                	mov    %edi,%edi
43f2a7:	55                   	push   %ebp
43f2a8:	8b ec                	mov    %esp,%ebp
43f2aa:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
43f2ae:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
43f2b3:	66 8b c1             	mov    %cx,%ax
43f2b6:	66 23 c2             	and    %dx,%ax
43f2b9:	66 3b c2             	cmp    %dx,%ax
43f2bc:	75 33                	jne    0x43f2f1
43f2be:	dd 45 08             	fldl   0x8(%ebp)
43f2c1:	51                   	push   %ecx
43f2c2:	51                   	push   %ecx
43f2c3:	dd 1c 24             	fstpl  (%esp)
43f2c6:	e8 46 ff ff ff       	call   0x43f211
43f2cb:	59                   	pop    %ecx
43f2cc:	59                   	pop    %ecx
43f2cd:	83 e8 01             	sub    $0x1,%eax
43f2d0:	74 18                	je     0x43f2ea
43f2d2:	83 e8 01             	sub    $0x1,%eax
43f2d5:	74 0e                	je     0x43f2e5
43f2d7:	83 e8 01             	sub    $0x1,%eax
43f2da:	74 05                	je     0x43f2e1
43f2dc:	33 c0                	xor    %eax,%eax
43f2de:	40                   	inc    %eax
43f2df:	5d                   	pop    %ebp
43f2e0:	c3                   	ret
43f2e1:	6a 02                	push   $0x2
43f2e3:	eb 02                	jmp    0x43f2e7
43f2e5:	6a 04                	push   $0x4
43f2e7:	58                   	pop    %eax
43f2e8:	5d                   	pop    %ebp
43f2e9:	c3                   	ret
43f2ea:	b8 00 02 00 00       	mov    $0x200,%eax
43f2ef:	5d                   	pop    %ebp
43f2f0:	c3                   	ret
43f2f1:	0f b7 c9             	movzwl %cx,%ecx
43f2f4:	81 e1 00 80 00 00    	and    $0x8000,%ecx
43f2fa:	66 85 c0             	test   %ax,%ax
43f2fd:	75 1e                	jne    0x43f31d
43f2ff:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
43f306:	75 06                	jne    0x43f30e
43f308:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43f30c:	74 0f                	je     0x43f31d
43f30e:	f7 d9                	neg    %ecx
43f310:	1b c9                	sbb    %ecx,%ecx
43f312:	83 e1 90             	and    $0xffffff90,%ecx
43f315:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
43f31b:	5d                   	pop    %ebp
43f31c:	c3                   	ret
43f31d:	dd 45 08             	fldl   0x8(%ebp)
43f320:	d9 ee                	fldz
43f322:	da e9                	fucompp
43f324:	df e0                	fnstsw %ax
43f326:	f6 c4 44             	test   $0x44,%ah
43f329:	7a 0c                	jp     0x43f337
43f32b:	f7 d9                	neg    %ecx
43f32d:	1b c9                	sbb    %ecx,%ecx
43f32f:	83 e1 e0             	and    $0xffffffe0,%ecx
43f332:	8d 41 40             	lea    0x40(%ecx),%eax
43f335:	5d                   	pop    %ebp
43f336:	c3                   	ret
43f337:	f7 d9                	neg    %ecx
43f339:	1b c9                	sbb    %ecx,%ecx
43f33b:	81 e1 08 ff ff ff    	and    $0xffffff08,%ecx
43f341:	8d 81 00 01 00 00    	lea    0x100(%ecx),%eax
43f347:	5d                   	pop    %ebp
43f348:	c3                   	ret
43f349:	b8 4c a9 46 00       	mov    $0x46a94c,%eax
43f34e:	e9 00 00 00 00       	jmp    0x43f353
43f353:	51                   	push   %ecx
43f354:	52                   	push   %edx
43f355:	50                   	push   %eax
43f356:	68 24 80 46 00       	push   $0x468024
43f35b:	e8 b4 a4 00 00       	call   0x449814
43f360:	5a                   	pop    %edx
43f361:	59                   	pop    %ecx
43f362:	ff e0                	jmp    *%eax
43f364:	ff 25 4c a9 46 00    	jmp    *0x46a94c
43f36a:	b8 44 a9 46 00       	mov    $0x46a944,%eax
43f36f:	e9 df ff ff ff       	jmp    0x43f353
43f374:	ff 25 44 a9 46 00    	jmp    *0x46a944
43f37a:	b8 48 a9 46 00       	mov    $0x46a948,%eax
43f37f:	e9 cf ff ff ff       	jmp    0x43f353
43f384:	ff 25 48 a9 46 00    	jmp    *0x46a948
43f38a:	b8 3c a9 46 00       	mov    $0x46a93c,%eax
43f38f:	e9 00 00 00 00       	jmp    0x43f394
43f394:	51                   	push   %ecx
43f395:	52                   	push   %edx
43f396:	50                   	push   %eax
43f397:	68 44 80 46 00       	push   $0x468044
43f39c:	e8 73 a4 00 00       	call   0x449814
43f3a1:	5a                   	pop    %edx
43f3a2:	59                   	pop    %ecx
43f3a3:	ff e0                	jmp    *%eax
43f3a5:	b8 f4 a9 46 00       	mov    $0x46a9f4,%eax
43f3aa:	e9 00 00 00 00       	jmp    0x43f3af
43f3af:	51                   	push   %ecx
43f3b0:	52                   	push   %edx
43f3b1:	50                   	push   %eax
43f3b2:	68 64 80 46 00       	push   $0x468064
43f3b7:	e8 58 a4 00 00       	call   0x449814
43f3bc:	5a                   	pop    %edx
43f3bd:	59                   	pop    %ecx
43f3be:	ff e0                	jmp    *%eax
43f3c0:	ff 25 f4 a9 46 00    	jmp    *0x46a9f4
43f3c6:	b8 f0 a9 46 00       	mov    $0x46a9f0,%eax
43f3cb:	e9 df ff ff ff       	jmp    0x43f3af
43f3d0:	ff 25 f0 a9 46 00    	jmp    *0x46a9f0
43f3d6:	b8 ec a9 46 00       	mov    $0x46a9ec,%eax
43f3db:	e9 cf ff ff ff       	jmp    0x43f3af
43f3e0:	ff 25 ec a9 46 00    	jmp    *0x46a9ec
43f3e6:	b8 e8 a9 46 00       	mov    $0x46a9e8,%eax
43f3eb:	e9 bf ff ff ff       	jmp    0x43f3af
43f3f0:	ff 25 e8 a9 46 00    	jmp    *0x46a9e8
43f3f6:	b8 7c a9 46 00       	mov    $0x46a97c,%eax
43f3fb:	e9 00 00 00 00       	jmp    0x43f400
43f400:	51                   	push   %ecx
43f401:	52                   	push   %edx
43f402:	50                   	push   %eax
43f403:	68 84 80 46 00       	push   $0x468084
43f408:	e8 07 a4 00 00       	call   0x449814
43f40d:	5a                   	pop    %edx
43f40e:	59                   	pop    %ecx
43f40f:	ff e0                	jmp    *%eax
43f411:	b8 9c a9 46 00       	mov    $0x46a99c,%eax
43f416:	e9 00 00 00 00       	jmp    0x43f41b
43f41b:	51                   	push   %ecx
43f41c:	52                   	push   %edx
43f41d:	50                   	push   %eax
43f41e:	68 a4 80 46 00       	push   $0x4680a4
43f423:	e8 ec a3 00 00       	call   0x449814
43f428:	5a                   	pop    %edx
43f429:	59                   	pop    %ecx
43f42a:	ff e0                	jmp    *%eax
43f42c:	ff 25 9c a9 46 00    	jmp    *0x46a99c
43f432:	b8 a0 a9 46 00       	mov    $0x46a9a0,%eax
43f437:	e9 df ff ff ff       	jmp    0x43f41b
43f43c:	ff 25 a0 a9 46 00    	jmp    *0x46a9a0
43f442:	b8 a4 a9 46 00       	mov    $0x46a9a4,%eax
43f447:	e9 cf ff ff ff       	jmp    0x43f41b
43f44c:	ff 25 a4 a9 46 00    	jmp    *0x46a9a4
43f452:	b8 a8 a9 46 00       	mov    $0x46a9a8,%eax
43f457:	e9 bf ff ff ff       	jmp    0x43f41b
43f45c:	ff 25 a8 a9 46 00    	jmp    *0x46a9a8
43f462:	55                   	push   %ebp
43f463:	8b ec                	mov    %esp,%ebp
43f465:	53                   	push   %ebx
43f466:	8b 5d 08             	mov    0x8(%ebp),%ebx
43f469:	56                   	push   %esi
43f46a:	8b 75 0c             	mov    0xc(%ebp),%esi
43f46d:	83 e6 80             	and    $0xffffff80,%esi
43f470:	57                   	push   %edi
43f471:	33 ff                	xor    %edi,%edi
43f473:	83 ee 80             	sub    $0xffffff80,%esi
43f476:	39 3b                	cmp    %edi,(%ebx)
43f478:	74 2a                	je     0x43f4a4
43f47a:	ff 33                	push   (%ebx)
43f47c:	e8 d0 46 fc ff       	call   0x403b51
43f481:	3b c6                	cmp    %esi,%eax
43f483:	73 44                	jae    0x43f4c9
43f485:	6a 01                	push   $0x1