51c01c:	e8 df b8 fd ff       	call   0x4f7900
51c021:	83 c4 04             	add    $0x4,%esp
51c024:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
51c028:	74 48                	je     0x51c072
51c02a:	ff 77 0c             	push   0xc(%edi)
51c02d:	ff 77 08             	push   0x8(%edi)
51c030:	e8 2b 4f 01 00       	call   0x530f60
51c035:	83 c4 08             	add    $0x8,%esp
51c038:	89 46 10             	mov    %eax,0x10(%esi)
51c03b:	85 c0                	test   %eax,%eax
51c03d:	75 25                	jne    0x51c064
51c03f:	8d 48 07             	lea    0x7(%eax),%ecx
51c042:	c6 06 03             	movb   $0x3,(%esi)
51c045:	8b 47 08             	mov    0x8(%edi),%eax
51c048:	89 46 38             	mov    %eax,0x38(%esi)
51c04b:	8b 47 0c             	mov    0xc(%edi),%eax
51c04e:	5f                   	pop    %edi
51c04f:	89 46 3c             	mov    %eax,0x3c(%esi)
51c052:	8b c1                	mov    %ecx,%eax
51c054:	5e                   	pop    %esi
51c055:	5b                   	pop    %ebx
51c056:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c059:	33 cd                	xor    %ebp,%ecx
51c05b:	e8 7a 54 0c 00       	call   0x5e14da
51c060:	8b e5                	mov    %ebp,%esp
51c062:	5d                   	pop    %ebp
51c063:	c3                   	ret
51c064:	ff 77 08             	push   0x8(%edi)
51c067:	ff 37                	push   (%edi)
51c069:	50                   	push   %eax
51c06a:	e8 91 6e 0c 00       	call   0x5e2f00
51c06f:	83 c4 0c             	add    $0xc,%esp
51c072:	8b 4d c8             	mov    -0x38(%ebp),%ecx
51c075:	c6 06 03             	movb   $0x3,(%esi)
51c078:	8b 47 08             	mov    0x8(%edi),%eax
51c07b:	89 46 38             	mov    %eax,0x38(%esi)
51c07e:	8b 47 0c             	mov    0xc(%edi),%eax
51c081:	5f                   	pop    %edi
51c082:	89 46 3c             	mov    %eax,0x3c(%esi)
51c085:	8b c1                	mov    %ecx,%eax
51c087:	5e                   	pop    %esi
51c088:	5b                   	pop    %ebx
51c089:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c08c:	33 cd                	xor    %ebp,%ecx
51c08e:	e8 47 54 0c 00       	call   0x5e14da
51c093:	8b e5                	mov    %ebp,%esp
51c095:	5d                   	pop    %ebp
51c096:	c3                   	ret
51c097:	8b 4d cc             	mov    -0x34(%ebp),%ecx
51c09a:	8b c1                	mov    %ecx,%eax
51c09c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c09f:	5f                   	pop    %edi
51c0a0:	5e                   	pop    %esi
51c0a1:	33 cd                	xor    %ebp,%ecx
51c0a3:	5b                   	pop    %ebx
51c0a4:	e8 31 54 0c 00       	call   0x5e14da
51c0a9:	8b e5                	mov    %ebp,%esp
51c0ab:	5d                   	pop    %ebp
51c0ac:	c3                   	ret
51c0ad:	cc                   	int3
51c0ae:	cc                   	int3
51c0af:	cc                   	int3
51c0b0:	55                   	push   %ebp
51c0b1:	8b ec                	mov    %esp,%ebp
51c0b3:	56                   	push   %esi
51c0b4:	8b 75 08             	mov    0x8(%ebp),%esi
51c0b7:	56                   	push   %esi
51c0b8:	e8 f3 9a fe ff       	call   0x505bb0
51c0bd:	8b 46 20             	mov    0x20(%esi),%eax
51c0c0:	83 c4 04             	add    $0x4,%esp
51c0c3:	8b 56 24             	mov    0x24(%esi),%edx
51c0c6:	5e                   	pop    %esi
51c0c7:	5d                   	pop    %ebp
51c0c8:	c3                   	ret
51c0c9:	cc                   	int3
51c0ca:	cc                   	int3
51c0cb:	cc                   	int3
51c0cc:	cc                   	int3
51c0cd:	cc                   	int3
51c0ce:	cc                   	int3
51c0cf:	cc                   	int3
51c0d0:	55                   	push   %ebp
51c0d1:	8b ec                	mov    %esp,%ebp
51c0d3:	81 ec cc 00 00 00    	sub    $0xcc,%esp
51c0d9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51c0de:	33 c5                	xor    %ebp,%eax
51c0e0:	89 45 fc             	mov    %eax,-0x4(%ebp)
51c0e3:	8b 45 10             	mov    0x10(%ebp),%eax
51c0e6:	53                   	push   %ebx
51c0e7:	56                   	push   %esi
51c0e8:	8b 75 08             	mov    0x8(%ebp),%esi
51c0eb:	57                   	push   %edi
51c0ec:	8b 7d 0c             	mov    0xc(%ebp),%edi
51c0ef:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
51c0f5:	8b 45 1c             	mov    0x1c(%ebp),%eax
51c0f8:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
51c0fe:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
51c102:	8b 5f 04             	mov    0x4(%edi),%ebx
51c105:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
51c10b:	8b 43 04             	mov    0x4(%ebx),%eax
51c10e:	8b 48 20             	mov    0x20(%eax),%ecx
51c111:	8b 40 24             	mov    0x24(%eax),%eax
51c114:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
51c11a:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
51c120:	74 12                	je     0x51c134
51c122:	ff 47 0c             	incl   0xc(%edi)
51c125:	80 7f 0a 00          	cmpb   $0x0,0xa(%edi)
51c129:	75 09                	jne    0x51c134
51c12b:	57                   	push   %edi
51c12c:	e8 9f ae fd ff       	call   0x4f6fd0
51c131:	83 c4 04             	add    $0x4,%esp
51c134:	89 75 94             	mov    %esi,-0x6c(%ebp)
51c137:	8d 4d 98             	lea    -0x68(%ebp),%ecx
51c13a:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
51c140:	0f 57 c0             	xorps  %xmm0,%xmm0
51c143:	8b 03                	mov    (%ebx),%eax
51c145:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
51c14b:	8b 73 2c             	mov    0x2c(%ebx),%esi
51c14e:	8b 45 18             	mov    0x18(%ebp),%eax
51c151:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
51c157:	33 c0                	xor    %eax,%eax
51c159:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
51c15f:	c7 85 74 ff ff ff 00 	movl   $0x0,-0x8c(%ebp)
51c166:	00 00 00
51c169:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
51c170:	00 00 00
51c173:	89 45 90             	mov    %eax,-0x70(%ebp)
51c176:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
51c17c:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
51c182:	c7 45 80 64 00 00 00 	movl   $0x64,-0x80(%ebp)
51c189:	c7 45 84 00 ca 9a 3b 	movl   $0x3b9aca00,-0x7c(%ebp)
51c190:	89 45 88             	mov    %eax,-0x78(%ebp)
51c193:	66 c7 45 8c 00 01    	movw   $0x100,-0x74(%ebp)
51c199:	0f 11 85 64 ff ff ff 	movups %xmm0,-0x9c(%ebp)
51c1a0:	85 f6                	test   %esi,%esi
51c1a2:	0f 84 e8 02 00 00    	je     0x51c490
51c1a8:	c1 ee 03             	shr    $0x3,%esi
51c1ab:	50                   	push   %eax
51c1ac:	46                   	inc    %esi
51c1ad:	56                   	push   %esi
51c1ae:	e8 ad 4d 01 00       	call   0x530f60
51c1b3:	8b f8                	mov    %eax,%edi
51c1b5:	83 c4 08             	add    $0x8,%esp
51c1b8:	85 ff                	test   %edi,%edi
51c1ba:	74 0c                	je     0x51c1c8
51c1bc:	56                   	push   %esi
51c1bd:	6a 00                	push   $0x0
51c1bf:	57                   	push   %edi
51c1c0:	e8 3b 78 0c 00       	call   0x5e3a00
51c1c5:	83 c4 0c             	add    $0xc,%esp
51c1c8:	89 bd 58 ff ff ff    	mov    %edi,-0xa8(%ebp)
51c1ce:	85 ff                	test   %edi,%edi
51c1d0:	75 0f                	jne    0x51c1e1
51c1d2:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%ebp)
51c1d9:	00 00 00
51c1dc:	e9 a6 02 00 00       	jmp    0x51c487
51c1e1:	ff 73 20             	push   0x20(%ebx)
51c1e4:	e8 47 38 ff ff       	call   0x50fa30
51c1e9:	83 c4 04             	add    $0x4,%esp
51c1ec:	89 45 90             	mov    %eax,-0x70(%ebp)
51c1ef:	85 c0                	test   %eax,%eax
51c1f1:	75 0f                	jne    0x51c202
51c1f3:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%ebp)
51c1fa:	00 00 00
51c1fd:	e9 88 02 00 00       	jmp    0x51c48a
51c202:	a1 18 19 72 00       	mov    0x721918,%eax
51c207:	33 d2                	xor    %edx,%edx
51c209:	f7 73 20             	divl   0x20(%ebx)
51c20c:	8d 70 01             	lea    0x1(%eax),%esi
51c20f:	3b b5 5c ff ff ff    	cmp    -0xa4(%ebp),%esi
51c215:	77 18                	ja     0x51c22f
51c217:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
51c21d:	8b d6                	mov    %esi,%edx
51c21f:	c1 ea 03             	shr    $0x3,%edx
51c222:	83 e6 07             	and    $0x7,%esi
51c225:	0f b6 04 0a          	movzbl (%edx,%ecx,1),%eax
51c229:	0f ab f0             	bts    %esi,%eax
51c22c:	88 04 0a             	mov    %al,(%edx,%ecx,1)
51c22f:	c7 85 6c ff ff ff 38 	movl   $0x6b8538,-0x94(%ebp)
51c236:	85 6b 00
51c239:	8b 43 0c             	mov    0xc(%ebx),%eax
51c23c:	8b 48 38             	mov    0x38(%eax),%ecx
51c23f:	8b 41 24             	mov    0x24(%ecx),%eax
51c242:	0f c8                	bswap  %eax
51c244:	50                   	push   %eax
51c245:	8b 41 20             	mov    0x20(%ecx),%eax
51c248:	0f c8                	bswap  %eax
51c24a:	50                   	push   %eax
51c24b:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c251:	6a 01                	push   $0x1
51c253:	50                   	push   %eax
51c254:	e8 77 be fd ff       	call   0x4f80d0
51c259:	8b 7d 14             	mov    0x14(%ebp),%edi
51c25c:	83 c4 10             	add    $0x10,%esp
51c25f:	c7 85 6c ff ff ff 00 	movl   $0x0,-0x94(%ebp)
51c266:	00 00 00
51c269:	80 7b 11 00          	cmpb   $0x0,0x11(%ebx)
51c26d:	74 44                	je     0x51c2b3
51c26f:	33 c9                	xor    %ecx,%ecx
51c271:	33 d2                	xor    %edx,%edx
51c273:	85 ff                	test   %edi,%edi
51c275:	7e 15                	jle    0x51c28c
51c277:	8b b5 4c ff ff ff    	mov    -0xb4(%ebp),%esi
51c27d:	0f 1f 00             	nopl   (%eax)
51c280:	3b 0c 96             	cmp    (%esi,%edx,4),%ecx
51c283:	0f 4c 0c 96          	cmovl  (%esi,%edx,4),%ecx
51c287:	42                   	inc    %edx
51c288:	3b d7                	cmp    %edi,%edx
51c28a:	7c f4                	jl     0x51c280
51c28c:	8b 43 0c             	mov    0xc(%ebx),%eax
51c28f:	8b 40 38             	mov    0x38(%eax),%eax
51c292:	8b 40 34             	mov    0x34(%eax),%eax
51c295:	0f c8                	bswap  %eax
51c297:	3b c8                	cmp    %eax,%ecx
51c299:	74 3b                	je     0x51c2d6
51c29b:	50                   	push   %eax
51c29c:	51                   	push   %ecx
51c29d:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c2a3:	68 48 85 6b 00       	push   $0x6b8548
51c2a8:	50                   	push   %eax
51c2a9:	e8 82 bc fd ff       	call   0x4f7f30
51c2ae:	83 c4 10             	add    $0x10,%esp
51c2b1:	eb 23                	jmp    0x51c2d6
51c2b3:	8b 43 0c             	mov    0xc(%ebx),%eax
51c2b6:	8b 40 38             	mov    0x38(%eax),%eax
51c2b9:	8b 40 40             	mov    0x40(%eax),%eax
51c2bc:	0f c8                	bswap  %eax
51c2be:	85 c0                	test   %eax,%eax
51c2c0:	74 14                	je     0x51c2d6
51c2c2:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c2c8:	68 78 85 6b 00       	push   $0x6b8578
51c2cd:	50                   	push   %eax
51c2ce:	e8 5d bc fd ff       	call   0x4f7f30
51c2d3:	83 c4 08             	add    $0x8,%esp
51c2d6:	8b 4b 04             	mov    0x4(%ebx),%ecx
51c2d9:	33 f6                	xor    %esi,%esi
51c2db:	81 61 20 ff ff df ff 	andl   $0xffdfffff,0x20(%ecx)
51c2e2:	8b 41 24             	mov    0x24(%ecx),%eax
51c2e5:	89 41 24             	mov    %eax,0x24(%ecx)
51c2e8:	85 ff                	test   %edi,%edi
51c2ea:	7e 64                	jle    0x51c350
51c2ec:	0f 1f 40 00          	nopl   0x0(%eax)
51c2f0:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%ebp)
51c2f7:	74 57                	je     0x51c350
51c2f9:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
51c2ff:	8b 04 b0             	mov    (%eax,%esi,4),%eax
51c302:	85 c0                	test   %eax,%eax
51c304:	74 45                	je     0x51c34b
51c306:	80 7b 11 00          	cmpb   $0x0,0x11(%ebx)
51c30a:	74 19                	je     0x51c325
51c30c:	83 f8 01             	cmp    $0x1,%eax
51c30f:	7e 14                	jle    0x51c325
51c311:	6a 00                	push   $0x0
51c313:	6a 01                	push   $0x1
51c315:	50                   	push   %eax
51c316:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c31c:	50                   	push   %eax
51c31d:	e8 ae bf fd ff       	call   0x4f82d0
51c322:	83 c4 10             	add    $0x10,%esp
51c325:	68 ff ff ff 7f       	push   $0x7fffffff
51c32a:	6a ff                	push   $0xffffffff
51c32c:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
51c332:	50                   	push   %eax
51c333:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
51c339:	ff 34 b0             	push   (%eax,%esi,4)
51c33c:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c342:	50                   	push   %eax
51c343:	e8 a8 c0 fd ff       	call   0x4f83f0
51c348:	83 c4 14             	add    $0x14,%esp
51c34b:	46                   	inc    %esi
51c34c:	3b f7                	cmp    %edi,%esi
51c34e:	7c a0                	jl     0x51c2f0
51c350:	8b 43 04             	mov    0x4(%ebx),%eax
51c353:	bf 01 00 00 00       	mov    $0x1,%edi
51c358:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
51c35e:	89 48 20             	mov    %ecx,0x20(%eax)
51c361:	8b 8d 40 ff ff ff    	mov    -0xc0(%ebp),%ecx
51c367:	89 48 24             	mov    %ecx,0x24(%eax)
51c36a:	39 bd 5c ff ff ff    	cmp    %edi,-0xa4(%ebp)
51c370:	0f 82 11 01 00 00    	jb     0x51c487
51c376:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
51c37d:	00 00 00
51c380:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%ebp)
51c387:	0f 84 fa 00 00 00    	je     0x51c487
51c38d:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
51c393:	8b f7                	mov    %edi,%esi
51c395:	8b cf                	mov    %edi,%ecx
51c397:	c1 ee 03             	shr    $0x3,%esi
51c39a:	83 e1 07             	and    $0x7,%ecx
51c39d:	89 b5 40 ff ff ff    	mov    %esi,-0xc0(%ebp)
51c3a3:	ba 01 00 00 00       	mov    $0x1,%edx
51c3a8:	d3 e2                	shl    %cl,%edx
51c3aa:	89 95 44 ff ff ff    	mov    %edx,-0xbc(%ebp)
51c3b0:	84 14 06             	test   %dl,(%esi,%eax,1)
51c3b3:	75 5d                	jne    0x51c412
51c3b5:	83 ff 02             	cmp    $0x2,%edi
51c3b8:	73 04                	jae    0x51c3be
51c3ba:	33 c9                	xor    %ecx,%ecx
51c3bc:	eb 35                	jmp    0x51c3f3
51c3be:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
51c3c3:	8d 77 fe             	lea    -0x2(%edi),%esi
51c3c6:	f7 63 24             	mull   0x24(%ebx)
51c3c9:	8b c6                	mov    %esi,%eax
51c3cb:	8b ca                	mov    %edx,%ecx
51c3cd:	33 d2                	xor    %edx,%edx
51c3cf:	c1 e9 02             	shr    $0x2,%ecx
51c3d2:	41                   	inc    %ecx
51c3d3:	f7 f1                	div    %ecx
51c3d5:	a1 18 19 72 00       	mov    0x721918,%eax
51c3da:	2b f2                	sub    %edx,%esi
51c3dc:	33 d2                	xor    %edx,%edx
51c3de:	f7 73 20             	divl   0x20(%ebx)
51c3e1:	83 c6 02             	add    $0x2,%esi
51c3e4:	40                   	inc    %eax
51c3e5:	3b f0                	cmp    %eax,%esi
51c3e7:	8d 4e 01             	lea    0x1(%esi),%ecx
51c3ea:	0f 45 ce             	cmovne %esi,%ecx
51c3ed:	8b b5 40 ff ff ff    	mov    -0xc0(%ebp),%esi
51c3f3:	3b cf                	cmp    %edi,%ecx
51c3f5:	75 06                	jne    0x51c3fd
51c3f7:	80 7b 11 00          	cmpb   $0x0,0x11(%ebx)
51c3fb:	75 15                	jne    0x51c412
51c3fd:	57                   	push   %edi
51c3fe:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
51c404:	68 b0 85 6b 00       	push   $0x6b85b0
51c409:	50                   	push   %eax
51c40a:	e8 21 bb fd ff       	call   0x4f7f30
51c40f:	83 c4 0c             	add    $0xc,%esp
51c412:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
51c418:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
51c41e:	84 0c 06             	test   %cl,(%esi,%eax,1)
51c421:	74 57                	je     0x51c47a
51c423:	83 ff 02             	cmp    $0x2,%edi
51c426:	73 04                	jae    0x51c42c
51c428:	33 c9                	xor    %ecx,%ecx
51c42a:	eb 2f                	jmp    0x51c45b
51c42c:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
51c431:	8d 77 fe             	lea    -0x2(%edi),%esi
51c434:	f7 63 24             	mull   0x24(%ebx)
51c437:	8b c6                	mov    %esi,%eax
51c439:	8b ca                	mov    %edx,%ecx
51c43b:	33 d2                	xor    %edx,%edx
51c43d:	c1 e9 02             	shr    $0x2,%ecx
51c440:	41                   	inc    %ecx
51c441:	f7 f1                	div    %ecx
51c443:	a1 18 19 72 00       	mov    0x721918,%eax
51c448:	2b f2                	sub    %edx,%esi
51c44a:	33 d2                	xor    %edx,%edx
51c44c:	f7 73 20             	divl   0x20(%ebx)
51c44f:	83 c6 02             	add    $0x2,%esi