47ff9f:	89 45 d8             	mov    %eax,-0x28(%ebp)
47ffa2:	8b 45 a8             	mov    -0x58(%ebp),%eax
47ffa5:	89 45 98             	mov    %eax,-0x68(%ebp)
47ffa8:	85 ff                	test   %edi,%edi
47ffaa:	0f 84 1b 85 f8 ff    	je     0x4084cb
47ffb0:	8b 45 d0             	mov    -0x30(%ebp),%eax
47ffb3:	83 f8 fe             	cmp    $0xfffffffe,%eax
47ffb6:	75 06                	jne    0x47ffbe
47ffb8:	83 c8 ff             	or     $0xffffffff,%eax
47ffbb:	89 45 d0             	mov    %eax,-0x30(%ebp)
47ffbe:	8b 75 dc             	mov    -0x24(%ebp),%esi
47ffc1:	8b 4d 90             	mov    -0x70(%ebp),%ecx
47ffc4:	89 45 8c             	mov    %eax,-0x74(%ebp)
47ffc7:	8b 45 f4             	mov    -0xc(%ebp),%eax
47ffca:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
47ffd0:	85 f6                	test   %esi,%esi
47ffd2:	74 5c                	je     0x480030
47ffd4:	a8 01                	test   $0x1,%al
47ffd6:	74 5a                	je     0x480032
47ffd8:	8b c3                	mov    %ebx,%eax
47ffda:	99                   	cltd
47ffdb:	83 e2 7f             	and    $0x7f,%edx
47ffde:	03 c2                	add    %edx,%eax
47ffe0:	c1 f8 07             	sar    $0x7,%eax
47ffe3:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
47ffea:	8b c3                	mov    %ebx,%eax
47ffec:	c1 e1 07             	shl    $0x7,%ecx
47ffef:	25 7f 00 00 80       	and    $0x8000007f,%eax
47fff4:	79 05                	jns    0x47fffb
47fff6:	48                   	dec    %eax
47fff7:	83 c8 80             	or     $0xffffff80,%eax
47fffa:	40                   	inc    %eax
47fffb:	03 c8                	add    %eax,%ecx
47fffd:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
480004:	00
480005:	0f b6 04 c5 0b b1 4a 	movzbl 0x4ab10b(,%eax,8),%eax
48000c:	00
48000d:	85 c0                	test   %eax,%eax
48000f:	74 1c                	je     0x48002d
480011:	8b 55 f8             	mov    -0x8(%ebp),%edx
480014:	83 c2 06             	add    $0x6,%edx
480017:	c7 42 fa 0f 00 09 00 	movl   $0x9000f,-0x6(%edx)
48001e:	66 89 42 fe          	mov    %ax,-0x2(%edx)
480022:	8b 7d fc             	mov    -0x4(%ebp),%edi
480025:	89 55 f8             	mov    %edx,-0x8(%ebp)
480028:	e9 53 7b f8 ff       	jmp    0x407b80
48002d:	8b 45 f4             	mov    -0xc(%ebp),%eax
480030:	a8 01                	test   $0x1,%al
480032:	8b 55 f8             	mov    -0x8(%ebp),%edx
480035:	b8 00 00 00 00       	mov    $0x0,%eax
48003a:	0f 95 c0             	setne  %al
48003d:	83 c2 02             	add    $0x2,%edx
480040:	83 c0 1f             	add    $0x1f,%eax
480043:	66 89 42 fe          	mov    %ax,-0x2(%edx)
480047:	85 f6                	test   %esi,%esi
480049:	74 1d                	je     0x480068
48004b:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
480051:	76 15                	jbe    0x480068
480053:	8b cb                	mov    %ebx,%ecx
480055:	e8 bf 17 ff ff       	call   0x471819
48005a:	8b 7d fc             	mov    -0x4(%ebp),%edi
48005d:	8d 14 42             	lea    (%edx,%eax,2),%edx
480060:	89 55 f8             	mov    %edx,-0x8(%ebp)
480063:	e9 18 7b f8 ff       	jmp    0x407b80
480068:	66 89 1a             	mov    %bx,(%edx)
48006b:	8b 7d fc             	mov    -0x4(%ebp),%edi
48006e:	83 c2 02             	add    $0x2,%edx
480071:	89 55 f8             	mov    %edx,-0x8(%ebp)
480074:	e9 07 7b f8 ff       	jmp    0x407b80
480079:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
48007d:	0f 84 54 84 f8 ff    	je     0x4084d7
480083:	8d 95 f8 fe ff ff    	lea    -0x108(%ebp),%edx
480089:	8b cb                	mov    %ebx,%ecx
48008b:	e8 89 17 ff ff       	call   0x471819
480090:	66 8b 9d f8 fe ff ff 	mov    -0x108(%ebp),%bx
480097:	8b 55 f8             	mov    -0x8(%ebp),%edx
48009a:	8b f0                	mov    %eax,%esi
48009c:	89 75 f0             	mov    %esi,-0x10(%ebp)
48009f:	e9 e1 79 f8 ff       	jmp    0x407a85
4800a4:	85 c0                	test   %eax,%eax
4800a6:	74 0c                	je     0x4800b4
4800a8:	f7 c3 00 00 00 20    	test   $0x20000000,%ebx
4800ae:	0f 84 49 7e f8 ff    	je     0x407efd
4800b4:	8b 55 f8             	mov    -0x8(%ebp),%edx
4800b7:	8b 7d d4             	mov    -0x2c(%ebp),%edi
4800ba:	33 c0                	xor    %eax,%eax
4800bc:	66 89 06             	mov    %ax,(%esi)
4800bf:	b8 70 00 00 00       	mov    $0x70,%eax
4800c4:	66 89 02             	mov    %ax,(%edx)
4800c7:	33 c0                	xor    %eax,%eax
4800c9:	83 c6 02             	add    $0x2,%esi
4800cc:	85 ff                	test   %edi,%edi
4800ce:	0f 95 c0             	setne  %al
4800d1:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4800d4:	66 89 42 04          	mov    %ax,0x4(%edx)
4800d8:	85 c9                	test   %ecx,%ecx
4800da:	7e 3e                	jle    0x48011a
4800dc:	83 c8 02             	or     $0x2,%eax
4800df:	66 89 42 04          	mov    %ax,0x4(%edx)
4800e3:	83 c2 06             	add    $0x6,%edx
4800e6:	8b c6                	mov    %esi,%eax
4800e8:	2b c2                	sub    %edx,%eax
4800ea:	83 e0 fe             	and    $0xfffffffe,%eax
4800ed:	50                   	push   %eax
4800ee:	52                   	push   %edx
4800ef:	8d 42 20             	lea    0x20(%edx),%eax
4800f2:	50                   	push   %eax
4800f3:	89 55 f8             	mov    %edx,-0x8(%ebp)
4800f6:	e8 85 5e fa ff       	call   0x425f80
4800fb:	83 c4 0c             	add    $0xc,%esp
4800fe:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
480104:	6a 20                	push   $0x20
480106:	50                   	push   %eax
480107:	ff 75 f8             	push   -0x8(%ebp)
48010a:	e8 71 ed f9 ff       	call   0x41ee80
48010f:	8d 56 20             	lea    0x20(%esi),%edx
480112:	83 c4 0c             	add    $0xc,%esp
480115:	89 55 f8             	mov    %edx,-0x8(%ebp)
480118:	eb 05                	jmp    0x48011f
48011a:	8b d6                	mov    %esi,%edx
48011c:	89 75 f8             	mov    %esi,-0x8(%ebp)
48011f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
480122:	8b c2                	mov    %edx,%eax
480124:	2b c1                	sub    %ecx,%eax
480126:	d1 f8                	sar    $1,%eax
480128:	66 89 41 02          	mov    %ax,0x2(%ecx)
48012c:	8b 7d fc             	mov    -0x4(%ebp),%edi
48012f:	e9 4f 7a f8 ff       	jmp    0x407b83
480134:	f6 94 0d 28 ff ff ff 	notb   -0xd8(%ebp,%ecx,1)
48013b:	41                   	inc    %ecx
48013c:	83 f9 20             	cmp    $0x20,%ecx
48013f:	72 f3                	jb     0x480134
480141:	e9 e2 7d f8 ff       	jmp    0x407f28
480146:	85 c9                	test   %ecx,%ecx
480148:	0f 84 05 79 f8 ff    	je     0x407a53
48014e:	8b 75 0c             	mov    0xc(%ebp),%esi
480151:	8d 45 c4             	lea    -0x3c(%ebp),%eax
480154:	56                   	push   %esi
480155:	50                   	push   %eax
480156:	8d 4f 02             	lea    0x2(%edi),%ecx
480159:	8d 55 ac             	lea    -0x54(%ebp),%edx
48015c:	e8 ab 0e ff ff       	call   0x47100c
480161:	83 c4 08             	add    $0x8,%esp
480164:	83 3e 00             	cmpl   $0x0,(%esi)
480167:	8b f8                	mov    %eax,%edi
480169:	89 7d fc             	mov    %edi,-0x4(%ebp)
48016c:	0f 85 ac 21 00 00    	jne    0x48231e
480172:	8b 55 f8             	mov    -0x8(%ebp),%edx
480175:	8b 75 ac             	mov    -0x54(%ebp),%esi
480178:	8b 45 c4             	mov    -0x3c(%ebp),%eax
48017b:	e9 3f 7f f8 ff       	jmp    0x4080bf
480180:	be 01 00 00 00       	mov    $0x1,%esi
480185:	83 c8 ff             	or     $0xffffffff,%eax
480188:	e9 2c 7f f8 ff       	jmp    0x4080b9
48018d:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
480194:	e9 62 7f f8 ff       	jmp    0x4080fb
480199:	8b 5d 28             	mov    0x28(%ebp),%ebx
48019c:	83 c7 02             	add    $0x2,%edi
48019f:	0f b7 07             	movzwl (%edi),%eax
4801a2:	b9 ff 00 00 00       	mov    $0xff,%ecx
4801a7:	66 3b c1             	cmp    %cx,%ax
4801aa:	77 1d                	ja     0x4801c9
4801ac:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4801af:	0f b7 c0             	movzwl %ax,%eax
4801b2:	f6 04 08 01          	testb  $0x1,(%eax,%ecx,1)
4801b6:	74 11                	je     0x4801c9
4801b8:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4801bc:	83 c7 02             	add    $0x2,%edi
4801bf:	ba ff 00 00 00       	mov    $0xff,%edx
4801c4:	66 3b c2             	cmp    %dx,%ax
4801c7:	76 e6                	jbe    0x4801af
4801c9:	66 83 3f 23          	cmpw   $0x23,(%edi)
4801cd:	0f 85 a1 00 00 00    	jne    0x480274
4801d3:	0f b7 57 02          	movzwl 0x2(%edi),%edx
4801d7:	83 c7 02             	add    $0x2,%edi
4801da:	66 85 d2             	test   %dx,%dx
4801dd:	74 c0                	je     0x48019f
4801df:	8b 45 dc             	mov    -0x24(%ebp),%eax
4801e2:	8b 73 7c             	mov    0x7c(%ebx),%esi
4801e5:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4801e8:	85 f6                	test   %esi,%esi
4801ea:	74 28                	je     0x480214
4801ec:	3b f9                	cmp    %ecx,%edi
4801ee:	73 51                	jae    0x480241
4801f0:	50                   	push   %eax
4801f1:	8d 83 80 00 00 00    	lea    0x80(%ebx),%eax
4801f7:	50                   	push   %eax
4801f8:	51                   	push   %ecx
4801f9:	8b d6                	mov    %esi,%edx
4801fb:	8b cf                	mov    %edi,%ecx
4801fd:	e8 fc 8d f8 ff       	call   0x408ffe
480202:	83 c4 0c             	add    $0xc,%esp
480205:	85 c0                	test   %eax,%eax
480207:	74 35                	je     0x48023e
480209:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
48020f:	8d 3c 47             	lea    (%edi,%eax,2),%edi
480212:	eb 8b                	jmp    0x48019f
480214:	8b b3 80 00 00 00    	mov    0x80(%ebx),%esi
48021a:	8d 04 36             	lea    (%esi,%esi,1),%eax
48021d:	2b c8                	sub    %eax,%ecx
48021f:	3b f9                	cmp    %ecx,%edi
480221:	77 1b                	ja     0x48023e
480223:	66 3b 93 84 00 00 00 	cmp    0x84(%ebx),%dx
48022a:	75 12                	jne    0x48023e
48022c:	83 fe 01             	cmp    $0x1,%esi
48022f:	74 d8                	je     0x480209
480231:	66 8b 47 02          	mov    0x2(%edi),%ax
480235:	66 3b 83 86 00 00 00 	cmp    0x86(%ebx),%ax
48023c:	74 cb                	je     0x480209
48023e:	8b 45 dc             	mov    -0x24(%ebp),%eax
480241:	83 c7 02             	add    $0x2,%edi
480244:	85 c0                	test   %eax,%eax
480246:	74 1b                	je     0x480263
480248:	66 8b 07             	mov    (%edi),%ax
48024b:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
480250:	66 23 c1             	and    %cx,%ax
480253:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
480258:	66 3b c1             	cmp    %cx,%ax
48025b:	8b 45 dc             	mov    -0x24(%ebp),%eax
48025e:	75 03                	jne    0x480263
480260:	83 c7 02             	add    $0x2,%edi
480263:	0f b7 17             	movzwl (%edi),%edx
480266:	66 85 d2             	test   %dx,%dx
480269:	0f 84 30 ff ff ff    	je     0x48019f
48026f:	e9 6e ff ff ff       	jmp    0x4801e2
480274:	8b 55 f8             	mov    -0x8(%ebp),%edx
480277:	8b 75 ac             	mov    -0x54(%ebp),%esi
48027a:	83 c7 fe             	add    $0xfffffffe,%edi
48027d:	89 7d fc             	mov    %edi,-0x4(%ebp)
480280:	e9 88 7e f8 ff       	jmp    0x40810d
480285:	33 c0                	xor    %eax,%eax
480287:	83 c7 02             	add    $0x2,%edi
48028a:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
480291:	89 7d fc             	mov    %edi,-0x4(%ebp)
480294:	e9 96 7e f8 ff       	jmp    0x40812f
480299:	6a 04                	push   $0x4
48029b:	dd d8                	fstp   %st(0)
48029d:	8d 43 04             	lea    0x4(%ebx),%eax
4802a0:	53                   	push   %ebx
4802a1:	50                   	push   %eax
4802a2:	e8 d9 5c fa ff       	call   0x425f80
4802a7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4802aa:	c7 03 81 00 04 00    	movl   $0x40081,(%ebx)
4802b0:	83 c2 08             	add    $0x8,%edx
4802b3:	83 c4 0c             	add    $0xc,%esp
4802b6:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4802ba:	c7 43 08 78 00 04 00 	movl   $0x40078,0x8(%ebx)
4802c1:	89 55 f8             	mov    %edx,-0x8(%ebp)
4802c4:	c7 85 74 ff ff ff 06 	movl   $0x6,-0x8c(%ebp)
4802cb:	00 00 00
4802ce:	75 2c                	jne    0x4802fc
4802d0:	8b 7d 28             	mov    0x28(%ebp),%edi
4802d3:	8b 47 10             	mov    0x10(%edi),%eax
4802d6:	8b 4f 20             	mov    0x20(%edi),%ecx
4802d9:	83 c0 02             	add    $0x2,%eax
4802dc:	3b c8                	cmp    %eax,%ecx
4802de:	72 1c                	jb     0x4802fc
4802e0:	0f b7 71 fe          	movzwl -0x2(%ecx),%esi
4802e4:	8b c3                	mov    %ebx,%eax
4802e6:	2b 47 14             	sub    0x14(%edi),%eax
4802e9:	83 c0 02             	add    $0x2,%eax
4802ec:	d1 f8                	sar    $1,%eax
4802ee:	3b f0                	cmp    %eax,%esi
4802f0:	75 07                	jne    0x4802f9
4802f2:	8d 46 02             	lea    0x2(%esi),%eax
4802f5:	66 89 41 fe          	mov    %ax,-0x2(%ecx)
4802f9:	8b 75 ac             	mov    -0x54(%ebp),%esi
4802fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4802ff:	dd 05 f8 69 4b 00    	fldl   0x4b69f8
480305:	8b 7d fc             	mov    -0x4(%ebp),%edi
480308:	e9 32 7e f8 ff       	jmp    0x40813f
48030d:	8b 45 e0             	mov    -0x20(%ebp),%eax
480310:	be 91 00 00 00       	mov    $0x91,%esi
480315:	66 39 70 04          	cmp    %si,0x4(%eax)
480319:	8b 75 ec             	mov    -0x14(%ebp),%esi
48031c:	0f 85 ea 82 f8 ff    	jne    0x40860c
480322:	dd d8                	fstp   %st(0)
480324:	e9 e9 7e f8 ff       	jmp    0x408212
480329:	85 c0                	test   %eax,%eax
48032b:	7f f5                	jg     0x480322
48032d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480330:	85 c9                	test   %ecx,%ecx
480332:	78 09                	js     0x48033d
480334:	83 f9 01             	cmp    $0x1,%ecx
480337:	0f 8e e3 82 f8 ff    	jle    0x408620
48033d:	b9 01 00 00 00       	mov    $0x1,%ecx
480342:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
480345:	e9 d6 82 f8 ff       	jmp    0x408620
48034a:	b8 a1 00 00 00       	mov    $0xa1,%eax
48034f:	66 89 07             	mov    %ax,(%edi)
480352:	8b 7d fc             	mov    -0x4(%ebp),%edi
480355:	e9 b8 7e f8 ff       	jmp    0x408212
48035a:	ba 03 00 00 00       	mov    $0x3,%edx
48035f:	e8 95 e0 f9 ff       	call   0x41e3f9
480364:	83 c4 0c             	add    $0xc,%esp
480367:	8d 04 36             	lea    (%esi,%esi,1),%eax
48036a:	50                   	push   %eax
48036b:	8d 47 06             	lea    0x6(%edi),%eax
48036e:	57                   	push   %edi
48036f:	50                   	push   %eax
480370:	e8 0b 5c fa ff       	call   0x425f80
480375:	8b 45 f0             	mov    -0x10(%ebp),%eax
480378:	8b 55 f8             	mov    -0x8(%ebp),%edx
48037b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48037e:	05 92 00 00 00       	add    $0x92,%eax
480383:	66 89 07             	mov    %ax,(%edi)
480386:	83 c2 06             	add    $0x6,%edx
480389:	8d 5f 04             	lea    0x4(%edi),%ebx
48038c:	83 c4 0c             	add    $0xc,%esp
48038f:	c7 47 02 83 00 00 00 	movl   $0x83,0x2(%edi)
480396:	83 c7 06             	add    $0x6,%edi
480399:	89 55 f8             	mov    %edx,-0x8(%ebp)
48039c:	89 5d e8             	mov    %ebx,-0x18(%ebp)
48039f:	89 7d e0             	mov    %edi,-0x20(%ebp)
4803a2:	e9 e4 82 f8 ff       	jmp    0x40868b
4803a7:	83 f8 01             	cmp    $0x1,%eax
4803aa:	0f 8e 69 01 00 00    	jle    0x480519
4803b0:	39 5d 2c             	cmp    %ebx,0x2c(%ebp)
4803b3:	74 59                	je     0x48040e
4803b5:	8d 48 ff             	lea    -0x1(%eax),%ecx
4803b8:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4803bb:	0f af 8d 74 ff ff ff 	imul   -0x8c(%ebp),%ecx
4803c2:	db 45 bc             	fildl  -0x44(%ebp)
4803c5:	dd 5d b8             	fstpl  -0x48(%ebp)
4803c8:	dd 45 b8             	fldl   -0x48(%ebp)
4803cb:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
4803d1:	dd 5d b8             	fstpl  -0x48(%ebp)
4803d4:	dc 4d b8             	fmull  -0x48(%ebp)
4803d7:	de d9                	fcompp
4803d9:	df e0                	fnstsw %ax
4803db:	f6 c4 41             	test   $0x41,%ah
4803de:	0f 84 c8 1c 00 00    	je     0x4820ac
4803e4:	8b 7d 2c             	mov    0x2c(%ebp),%edi
4803e7:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
4803ec:	8b 37                	mov    (%edi),%esi
4803ee:	2b c6                	sub    %esi,%eax
4803f0:	3b c1                	cmp    %ecx,%eax
4803f2:	0f 8c b4 1c 00 00    	jl     0x4820ac
4803f8:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4803fb:	8b 75 ec             	mov    -0x14(%ebp),%esi
4803fe:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480401:	89 07                	mov    %eax,(%edi)
480403:	8b 7d fc             	mov    -0x4(%ebp),%edi
480406:	8b 45 ac             	mov    -0x54(%ebp),%eax
480409:	e9 0d 01 00 00       	jmp    0x48051b
48040e:	dd d8                	fstp   %st(0)
480410:	39 9d 64 ff ff ff    	cmp    %ebx,-0x9c(%ebp)
480416:	74 11                	je     0x480429
480418:	39 5d a8             	cmp    %ebx,-0x58(%ebp)
48041b:	7d 0c                	jge    0x480429