50c055:	8b 45 e8             	mov    -0x18(%ebp),%eax
50c058:	8b 18                	mov    (%eax),%ebx
50c05a:	85 db                	test   %ebx,%ebx
50c05c:	7d 1b                	jge    0x50c079
50c05e:	f7 db                	neg    %ebx
50c060:	8b c7                	mov    %edi,%eax
50c062:	d1 f8                	sar    $1,%eax
50c064:	03 d8                	add    %eax,%ebx
50c066:	3b fb                	cmp    %ebx,%edi
50c068:	7f 09                	jg     0x50c073
50c06a:	8b c3                	mov    %ebx,%eax
50c06c:	99                   	cltd
50c06d:	f7 ff                	idiv   %edi
50c06f:	89 c3                	mov    %eax,%ebx
50c071:	eb 02                	jmp    0x50c075
50c073:	33 db                	xor    %ebx,%ebx
50c075:	f7 db                	neg    %ebx
50c077:	eb 15                	jmp    0x50c08e
50c079:	8b c7                	mov    %edi,%eax
50c07b:	d1 f8                	sar    $1,%eax
50c07d:	03 d8                	add    %eax,%ebx
50c07f:	3b fb                	cmp    %ebx,%edi
50c081:	7f 09                	jg     0x50c08c
50c083:	8b c3                	mov    %ebx,%eax
50c085:	99                   	cltd
50c086:	f7 ff                	idiv   %edi
50c088:	89 c3                	mov    %eax,%ebx
50c08a:	eb 02                	jmp    0x50c08e
50c08c:	33 db                	xor    %ebx,%ebx
50c08e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50c091:	83 c6 04             	add    $0x4,%esi
50c094:	66 89 18             	mov    %bx,(%eax)
50c097:	ff 45 ec             	incl   -0x14(%ebp)
50c09a:	83 45 e4 02          	addl   $0x2,-0x1c(%ebp)
50c09e:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
50c0a2:	83 7d ec 40          	cmpl   $0x40,-0x14(%ebp)
50c0a6:	7c ab                	jl     0x50c053
50c0a8:	ff 45 f0             	incl   -0x10(%ebp)
50c0ab:	83 45 0c 08          	addl   $0x8,0xc(%ebp)
50c0af:	8b 55 f0             	mov    -0x10(%ebp),%edx
50c0b2:	3b 55 08             	cmp    0x8(%ebp),%edx
50c0b5:	0f 82 f4 fe ff ff    	jb     0x50bfaf
50c0bb:	5f                   	pop    %edi
50c0bc:	5e                   	pop    %esi
50c0bd:	5b                   	pop    %ebx
50c0be:	8b e5                	mov    %ebp,%esp
50c0c0:	5d                   	pop    %ebp
50c0c1:	c2 10 00             	ret    $0x10
50c0c4:	55                   	push   %ebp
50c0c5:	8b ec                	mov    %esp,%ebp
50c0c7:	81 c4 e4 fe ff ff    	add    $0xfffffee4,%esp
50c0cd:	53                   	push   %ebx
50c0ce:	56                   	push   %esi
50c0cf:	57                   	push   %edi
50c0d0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
50c0d3:	8b 80 60 01 00 00    	mov    0x160(%eax),%eax
50c0d9:	8b 48 1c             	mov    0x1c(%eax),%ecx
50c0dc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50c0df:	8b 52 10             	mov    0x10(%edx),%edx
50c0e2:	8b 44 90 20          	mov    0x20(%eax,%edx,4),%eax
50c0e6:	33 d2                	xor    %edx,%edx
50c0e8:	89 45 f4             	mov    %eax,-0xc(%ebp)
50c0eb:	8b 45 10             	mov    0x10(%ebp),%eax
50c0ee:	c1 e0 02             	shl    $0x2,%eax
50c0f1:	01 45 fc             	add    %eax,-0x4(%ebp)
50c0f4:	89 55 f0             	mov    %edx,-0x10(%ebp)
50c0f7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50c0fa:	3b 4d 08             	cmp    0x8(%ebp),%ecx
50c0fd:	0f 83 43 01 00 00    	jae    0x50c246
50c103:	8b 45 fc             	mov    -0x4(%ebp),%eax
50c106:	8d 95 e8 fe ff ff    	lea    -0x118(%ebp),%edx
50c10c:	8b c8                	mov    %eax,%ecx
50c10e:	33 db                	xor    %ebx,%ebx
50c110:	8b 01                	mov    (%ecx),%eax
50c112:	83 c1 04             	add    $0x4,%ecx
50c115:	03 45 0c             	add    0xc(%ebp),%eax
50c118:	43                   	inc    %ebx
50c119:	0f b6 30             	movzbl (%eax),%esi
50c11c:	83 c6 80             	add    $0xffffff80,%esi
50c11f:	40                   	inc    %eax
50c120:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c126:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c12c:	d9 1a                	fstps  (%edx)
50c12e:	0f b6 30             	movzbl (%eax),%esi
50c131:	83 c6 80             	add    $0xffffff80,%esi
50c134:	83 c2 04             	add    $0x4,%edx
50c137:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c13d:	40                   	inc    %eax
50c13e:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c144:	d9 1a                	fstps  (%edx)
50c146:	0f b6 30             	movzbl (%eax),%esi
50c149:	83 c6 80             	add    $0xffffff80,%esi
50c14c:	83 c2 04             	add    $0x4,%edx
50c14f:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c155:	40                   	inc    %eax
50c156:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c15c:	d9 1a                	fstps  (%edx)
50c15e:	0f b6 30             	movzbl (%eax),%esi
50c161:	83 c6 80             	add    $0xffffff80,%esi
50c164:	83 c2 04             	add    $0x4,%edx
50c167:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c16d:	40                   	inc    %eax
50c16e:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c174:	d9 1a                	fstps  (%edx)
50c176:	0f b6 30             	movzbl (%eax),%esi
50c179:	83 c6 80             	add    $0xffffff80,%esi
50c17c:	83 c2 04             	add    $0x4,%edx
50c17f:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c185:	40                   	inc    %eax
50c186:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c18c:	d9 1a                	fstps  (%edx)
50c18e:	0f b6 30             	movzbl (%eax),%esi
50c191:	83 c6 80             	add    $0xffffff80,%esi
50c194:	83 c2 04             	add    $0x4,%edx
50c197:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c19d:	40                   	inc    %eax
50c19e:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c1a4:	d9 1a                	fstps  (%edx)
50c1a6:	0f b6 30             	movzbl (%eax),%esi
50c1a9:	83 c6 80             	add    $0xffffff80,%esi
50c1ac:	83 c2 04             	add    $0x4,%edx
50c1af:	89 b5 e4 fe ff ff    	mov    %esi,-0x11c(%ebp)
50c1b5:	40                   	inc    %eax
50c1b6:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c1bc:	d9 1a                	fstps  (%edx)
50c1be:	0f b6 00             	movzbl (%eax),%eax
50c1c1:	83 c0 80             	add    $0xffffff80,%eax
50c1c4:	83 c2 04             	add    $0x4,%edx
50c1c7:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
50c1cd:	db 85 e4 fe ff ff    	fildl  -0x11c(%ebp)
50c1d3:	d9 1a                	fstps  (%edx)
50c1d5:	83 c2 04             	add    $0x4,%edx
50c1d8:	83 fb 08             	cmp    $0x8,%ebx
50c1db:	0f 8c 2f ff ff ff    	jl     0x50c110
50c1e1:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
50c1e7:	ff 55 f8             	call   *-0x8(%ebp)
50c1ea:	8b 45 f0             	mov    -0x10(%ebp),%eax
50c1ed:	8d 9d e8 fe ff ff    	lea    -0x118(%ebp),%ebx
50c1f3:	c1 e0 07             	shl    $0x7,%eax
50c1f6:	03 45 14             	add    0x14(%ebp),%eax
50c1f9:	33 d2                	xor    %edx,%edx
50c1fb:	89 55 e8             	mov    %edx,-0x18(%ebp)
50c1fe:	8b f8                	mov    %eax,%edi
50c200:	8b 45 f4             	mov    -0xc(%ebp),%eax
50c203:	8b f0                	mov    %eax,%esi
50c205:	d9 03                	flds   (%ebx)
50c207:	d8 0e                	fmuls  (%esi)
50c209:	d9 5d ec             	fstps  -0x14(%ebp)
50c20c:	d9 45 ec             	flds   -0x14(%ebp)
50c20f:	d8 05 50 c2 50 00    	fadds  0x50c250
50c215:	e8 06 f1 fe ff       	call   0x4fb320
50c21a:	66 05 00 c0          	add    $0xc000,%ax
50c21e:	83 c6 04             	add    $0x4,%esi
50c221:	66 89 07             	mov    %ax,(%edi)
50c224:	83 c7 02             	add    $0x2,%edi
50c227:	ff 45 e8             	incl   -0x18(%ebp)
50c22a:	83 c3 04             	add    $0x4,%ebx
50c22d:	83 7d e8 40          	cmpl   $0x40,-0x18(%ebp)
50c231:	7c d2                	jl     0x50c205
50c233:	ff 45 f0             	incl   -0x10(%ebp)
50c236:	83 45 0c 08          	addl   $0x8,0xc(%ebp)
50c23a:	8b 55 f0             	mov    -0x10(%ebp),%edx
50c23d:	3b 55 08             	cmp    0x8(%ebp),%edx
50c240:	0f 82 bd fe ff ff    	jb     0x50c103
50c246:	5f                   	pop    %edi
50c247:	5e                   	pop    %esi
50c248:	5b                   	pop    %ebx
50c249:	8b e5                	mov    %ebp,%esp
50c24b:	5d                   	pop    %ebp
50c24c:	c2 10 00             	ret    $0x10
50c24f:	00 00                	add    %al,(%eax)
50c251:	01 80 46 53 56 8b    	add    %eax,-0x74a9acba(%eax)
50c257:	f0 b9 30 00 00 00    	lock mov $0x30,%ecx
50c25d:	ba 01 00 00 00       	mov    $0x1,%edx
50c262:	8b c6                	mov    %esi,%eax
50c264:	8b 58 04             	mov    0x4(%eax),%ebx
50c267:	ff 13                	call   *(%ebx)
50c269:	8b d8                	mov    %eax,%ebx
50c26b:	89 9e 60 01 00 00    	mov    %ebx,0x160(%esi)
50c271:	c7 03 b8 bd 50 00    	movl   $0x50bdb8,(%ebx)
50c277:	8b 86 bc 00 00 00    	mov    0xbc(%esi),%eax
50c27d:	48                   	dec    %eax
50c27e:	74 05                	je     0x50c285
50c280:	48                   	dec    %eax
50c281:	74 12                	je     0x50c295
50c283:	eb 20                	jmp    0x50c2a5
50c285:	c7 43 04 70 bf 50 00 	movl   $0x50bf70,0x4(%ebx)
50c28c:	c7 43 08 c0 cd 50 00 	movl   $0x50cdc0,0x8(%ebx)
50c293:	eb 1f                	jmp    0x50c2b4
50c295:	c7 43 04 c4 c0 50 00 	movl   $0x50c0c4,0x4(%ebx)
50c29c:	c7 43 1c 2c d0 50 00 	movl   $0x50d02c,0x1c(%ebx)
50c2a3:	eb 0f                	jmp    0x50c2b4
50c2a5:	8b 16                	mov    (%esi),%edx
50c2a7:	8b c6                	mov    %esi,%eax
50c2a9:	c7 42 14 2f 00 00 00 	movl   $0x2f,0x14(%edx)
50c2b0:	8b 10                	mov    (%eax),%edx
50c2b2:	ff 12                	call   *(%edx)
50c2b4:	33 d2                	xor    %edx,%edx
50c2b6:	8d 43 0c             	lea    0xc(%ebx),%eax
50c2b9:	33 c9                	xor    %ecx,%ecx
50c2bb:	42                   	inc    %edx
50c2bc:	89 08                	mov    %ecx,(%eax)
50c2be:	33 c9                	xor    %ecx,%ecx
50c2c0:	89 48 14             	mov    %ecx,0x14(%eax)
50c2c3:	83 c0 04             	add    $0x4,%eax
50c2c6:	83 fa 04             	cmp    $0x4,%edx
50c2c9:	7c ee                	jl     0x50c2b9
50c2cb:	5e                   	pop    %esi
50c2cc:	5b                   	pop    %ebx
50c2cd:	c3                   	ret
50c2ce:	8b c0                	mov    %eax,%eax
50c2d0:	53                   	push   %ebx
50c2d1:	56                   	push   %esi
50c2d2:	57                   	push   %edi
50c2d3:	55                   	push   %ebp
50c2d4:	83 c4 ec             	add    $0xffffffec,%esp
50c2d7:	8b f0                	mov    %eax,%esi
50c2d9:	89 14 24             	mov    %edx,(%esp)
50c2dc:	8b be 64 01 00 00    	mov    0x164(%esi),%edi
50c2e2:	89 77 20             	mov    %esi,0x20(%edi)
50c2e5:	8b 04 24             	mov    (%esp),%eax
50c2e8:	89 47 0c             	mov    %eax,0xc(%edi)
50c2eb:	83 be 34 01 00 00 00 	cmpl   $0x0,0x134(%esi)
50c2f2:	0f 94 c2             	sete   %dl
50c2f5:	83 e2 01             	and    $0x1,%edx
50c2f8:	89 54 24 04          	mov    %edx,0x4(%esp)
50c2fc:	83 be 3c 01 00 00 00 	cmpl   $0x0,0x13c(%esi)
50c303:	75 19                	jne    0x50c31e
50c305:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
50c30a:	74 09                	je     0x50c315
50c30c:	c7 47 04 bc c6 50 00 	movl   $0x50c6bc,0x4(%edi)
50c313:	eb 3a                	jmp    0x50c34f
50c315:	c7 47 04 e8 c7 50 00 	movl   $0x50c7e8,0x4(%edi)
50c31c:	eb 31                	jmp    0x50c34f
50c31e:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
50c323:	74 09                	je     0x50c32e
50c325:	c7 47 04 7c c9 50 00 	movl   $0x50c97c,0x4(%edi)
50c32c:	eb 21                	jmp    0x50c34f
50c32e:	c7 47 04 24 ca 50 00 	movl   $0x50ca24,0x4(%edi)
50c335:	83 7f 40 00          	cmpl   $0x0,0x40(%edi)
50c339:	75 14                	jne    0x50c34f
50c33b:	8b c6                	mov    %esi,%eax
50c33d:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
50c342:	ba 01 00 00 00       	mov    $0x1,%edx
50c347:	8b 58 04             	mov    0x4(%eax),%ebx
50c34a:	ff 13                	call   *(%ebx)
50c34c:	89 47 40             	mov    %eax,0x40(%edi)
50c34f:	83 3c 24 00          	cmpl   $0x0,(%esp)
50c353:	74 09                	je     0x50c35e
50c355:	c7 47 08 bc cc 50 00 	movl   $0x50ccbc,0x8(%edi)
50c35c:	eb 07                	jmp    0x50c365
50c35e:	c7 47 08 80 cc 50 00 	movl   $0x50cc80,0x8(%edi)
50c365:	33 c0                	xor    %eax,%eax
50c367:	89 44 24 08          	mov    %eax,0x8(%esp)
50c36b:	8d 57 24             	lea    0x24(%edi),%edx
50c36e:	89 54 24 10          	mov    %edx,0x10(%esp)
50c372:	8d 8e f0 00 00 00    	lea    0xf0(%esi),%ecx
50c378:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
50c37c:	e9 eb 00 00 00       	jmp    0x50c46c
50c381:	8b 44 24 0c          	mov    0xc(%esp),%eax
50c385:	8b 54 24 10          	mov    0x10(%esp),%edx
50c389:	33 c9                	xor    %ecx,%ecx
50c38b:	8b 00                	mov    (%eax),%eax
50c38d:	89 0a                	mov    %ecx,(%edx)
50c38f:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
50c394:	74 3a                	je     0x50c3d0
50c396:	83 be 3c 01 00 00 00 	cmpl   $0x0,0x13c(%esi)
50c39d:	0f 85 bb 00 00 00    	jne    0x50c45e
50c3a3:	8b 58 14             	mov    0x14(%eax),%ebx
50c3a6:	85 db                	test   %ebx,%ebx
50c3a8:	7c 12                	jl     0x50c3bc
50c3aa:	83 fb 04             	cmp    $0x4,%ebx
50c3ad:	7d 0d                	jge    0x50c3bc
50c3af:	83 7c 9e 50 00       	cmpl   $0x0,0x50(%esi,%ebx,4)
50c3b4:	75 48                	jne    0x50c3fe
50c3b6:	83 3c 24 00          	cmpl   $0x0,(%esp)
50c3ba:	75 42                	jne    0x50c3fe
50c3bc:	8b 06                	mov    (%esi),%eax
50c3be:	c7 40 14 31 00 00 00 	movl   $0x31,0x14(%eax)
50c3c5:	89 58 18             	mov    %ebx,0x18(%eax)
50c3c8:	8b c6                	mov    %esi,%eax
50c3ca:	8b 10                	mov    (%eax),%edx
50c3cc:	ff 12                	call   *(%edx)
50c3ce:	eb 2e                	jmp    0x50c3fe
50c3d0:	8b 58 18             	mov    0x18(%eax),%ebx
50c3d3:	89 5f 34             	mov    %ebx,0x34(%edi)
50c3d6:	85 db                	test   %ebx,%ebx
50c3d8:	7c 12                	jl     0x50c3ec
50c3da:	83 fb 04             	cmp    $0x4,%ebx
50c3dd:	7d 0d                	jge    0x50c3ec
50c3df:	83 7c 9e 60 00       	cmpl   $0x0,0x60(%esi,%ebx,4)
50c3e4:	75 18                	jne    0x50c3fe
50c3e6:	83 3c 24 00          	cmpl   $0x0,(%esp)
50c3ea:	75 12                	jne    0x50c3fe
50c3ec:	8b 06                	mov    (%esi),%eax
50c3ee:	c7 40 14 31 00 00 00 	movl   $0x31,0x14(%eax)
50c3f5:	89 58 18             	mov    %ebx,0x18(%eax)
50c3f8:	8b c6                	mov    %esi,%eax
50c3fa:	8b 10                	mov    (%eax),%edx
50c3fc:	ff 12                	call   *(%edx)
50c3fe:	83 3c 24 00          	cmpl   $0x0,(%esp)
50c402:	74 33                	je     0x50c437
50c404:	83 7c 9f 5c 00       	cmpl   $0x0,0x5c(%edi,%ebx,4)
50c409:	75 16                	jne    0x50c421
50c40b:	8b c6                	mov    %esi,%eax
50c40d:	b9 04 04 00 00       	mov    $0x404,%ecx
50c412:	ba 01 00 00 00       	mov    $0x1,%edx
50c417:	8b 68 04             	mov    0x4(%eax),%ebp
50c41a:	ff 55 00             	call   *0x0(%ebp)
50c41d:	89 44 9f 5c          	mov    %eax,0x5c(%edi,%ebx,4)
50c421:	68 04 04 00 00       	push   $0x404
50c426:	6a 00                	push   $0x0
50c428:	8b 44 9f 5c          	mov    0x5c(%edi,%ebx,4),%eax
50c42c:	50                   	push   %eax
50c42d:	e8 82 ee fe ff       	call   0x4fb2b4
50c432:	83 c4 0c             	add    $0xc,%esp
50c435:	eb 27                	jmp    0x50c45e
50c437:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
50c43c:	74 11                	je     0x50c44f
50c43e:	8d 4c 9f 4c          	lea    0x4c(%edi,%ebx,4),%ecx
50c442:	8b 54 9e 50          	mov    0x50(%esi,%ebx,4),%edx
50c446:	8b c6                	mov    %esi,%eax
50c448:	e8 d7 10 00 00       	call   0x50d524
50c44d:	eb 0f                	jmp    0x50c45e
50c44f:	8d 4c 9f 4c          	lea    0x4c(%edi,%ebx,4),%ecx
50c453:	8b 54 9e 60          	mov    0x60(%esi,%ebx,4),%edx
50c457:	8b c6                	mov    %esi,%eax
50c459:	e8 c6 10 00 00       	call   0x50d524
50c45e:	ff 44 24 08          	incl   0x8(%esp)
50c462:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
50c467:	83 44 24 0c 04       	addl   $0x4,0xc(%esp)
50c46c:	8b 54 24 08          	mov    0x8(%esp),%edx
50c470:	3b 96 ec 00 00 00    	cmp    0xec(%esi),%edx
50c476:	0f 8c 05 ff ff ff    	jl     0x50c381
50c47c:	33 c9                	xor    %ecx,%ecx
50c47e:	33 c0                	xor    %eax,%eax
50c480:	89 4f 38             	mov    %ecx,0x38(%edi)
50c483:	89 47 3c             	mov    %eax,0x3c(%edi)
50c486:	33 d2                	xor    %edx,%edx
50c488:	33 c9                	xor    %ecx,%ecx
50c48a:	89 57 18             	mov    %edx,0x18(%edi)
50c48d:	89 4f 1c             	mov    %ecx,0x1c(%edi)
50c490:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
50c496:	33 d2                	xor    %edx,%edx
50c498:	89 47 44             	mov    %eax,0x44(%edi)
50c49b:	89 57 48             	mov    %edx,0x48(%edi)
50c49e:	83 c4 14             	add    $0x14,%esp
50c4a1:	5d                   	pop    %ebp
50c4a2:	5f                   	pop    %edi
50c4a3:	5e                   	pop    %esi