51a063:	83 c4 08             	add    $0x8,%esp
51a066:	83 be ec 00 00 00 00 	cmpl   $0x0,0xec(%esi)
51a06d:	75 0a                	jne    0x51a079
51a06f:	53                   	push   %ebx
51a070:	57                   	push   %edi
51a071:	e8 7a 81 00 00       	call   0x5221f0
51a076:	83 c4 08             	add    $0x8,%esp
51a079:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51a07c:	5f                   	pop    %edi
51a07d:	5e                   	pop    %esi
51a07e:	33 cd                	xor    %ebp,%ecx
51a080:	5b                   	pop    %ebx
51a081:	e8 54 74 0c 00       	call   0x5e14da
51a086:	8b e5                	mov    %ebp,%esp
51a088:	5d                   	pop    %ebp
51a089:	c3                   	ret
51a08a:	8b 45 d0             	mov    -0x30(%ebp),%eax
51a08d:	6a 07                	push   $0x7
51a08f:	68 b0 92 6b 00       	push   $0x6b92b0
51a094:	8b 00                	mov    (%eax),%eax
51a096:	50                   	push   %eax
51a097:	89 45 d4             	mov    %eax,-0x2c(%ebp)
51a09a:	e8 c1 5a fc ff       	call   0x4dfb60
51a09f:	83 c4 0c             	add    $0xc,%esp
51a0a2:	85 c0                	test   %eax,%eax
51a0a4:	75 10                	jne    0x51a0b6
51a0a6:	68 3c b4 6b 00       	push   $0x6bb43c
51a0ab:	56                   	push   %esi
51a0ac:	e8 af 91 00 00       	call   0x523260
51a0b1:	e9 79 ff ff ff       	jmp    0x51a02f
51a0b6:	8b 45 d0             	mov    -0x30(%ebp),%eax
51a0b9:	8b 55 c4             	mov    -0x3c(%ebp),%edx
51a0bc:	8b 48 0c             	mov    0xc(%eax),%ecx
51a0bf:	85 c9                	test   %ecx,%ecx
51a0c1:	74 32                	je     0x51a0f5
51a0c3:	83 fa 41             	cmp    $0x41,%edx
51a0c6:	74 29                	je     0x51a0f1
51a0c8:	6a 00                	push   $0x0
51a0ca:	ff 75 e0             	push   -0x20(%ebp)
51a0cd:	83 fa 21             	cmp    $0x21,%edx
51a0d0:	b9 6c b4 6b 00       	mov    $0x6bb46c,%ecx
51a0d5:	b8 64 b4 6b 00       	mov    $0x6bb464,%eax
51a0da:	0f 45 c1             	cmovne %ecx,%eax
51a0dd:	50                   	push   %eax
51a0de:	68 74 b4 6b 00       	push   $0x6bb474
51a0e3:	56                   	push   %esi
51a0e4:	e8 77 91 00 00       	call   0x523260
51a0e9:	83 c4 14             	add    $0x14,%esp
51a0ec:	e9 41 ff ff ff       	jmp    0x51a032
51a0f1:	85 c9                	test   %ecx,%ecx
51a0f3:	75 1d                	jne    0x51a112
51a0f5:	83 fa 41             	cmp    $0x41,%edx
51a0f8:	75 18                	jne    0x51a112
51a0fa:	6a 00                	push   $0x0
51a0fc:	ff 75 e0             	push   -0x20(%ebp)
51a0ff:	68 9c b4 6b 00       	push   $0x6bb49c
51a104:	56                   	push   %esi
51a105:	e8 56 91 00 00       	call   0x523260
51a10a:	83 c4 10             	add    $0x10,%esp
51a10d:	e9 20 ff ff ff       	jmp    0x51a032
51a112:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
51a119:	73 7c                	jae    0x51a197
51a11b:	ff 70 48             	push   0x48(%eax)
51a11e:	57                   	push   %edi
51a11f:	e8 3c f9 01 00       	call   0x539a60
51a124:	8b 4f 10             	mov    0x10(%edi),%ecx
51a127:	8b d0                	mov    %eax,%edx
51a129:	03 c0                	add    %eax,%eax
51a12b:	89 55 bc             	mov    %edx,-0x44(%ebp)
51a12e:	83 c4 08             	add    $0x8,%esp
51a131:	8b 04 c1             	mov    (%ecx,%eax,8),%eax
51a134:	89 45 dc             	mov    %eax,-0x24(%ebp)
51a137:	39 5d 28             	cmp    %ebx,0x28(%ebp)
51a13a:	74 03                	je     0x51a13f
51a13c:	8b 41 10             	mov    0x10(%ecx),%eax
51a13f:	83 fa 01             	cmp    $0x1,%edx
51a142:	74 05                	je     0x51a149
51a144:	39 5d 28             	cmp    %ebx,0x28(%ebp)
51a147:	74 07                	je     0x51a150
51a149:	b9 05 00 00 00       	mov    $0x5,%ecx
51a14e:	eb 05                	jmp    0x51a155
51a150:	b9 07 00 00 00       	mov    $0x7,%ecx
51a155:	50                   	push   %eax
51a156:	ff 75 d4             	push   -0x2c(%ebp)
51a159:	ff 75 d8             	push   -0x28(%ebp)
51a15c:	51                   	push   %ecx
51a15d:	56                   	push   %esi
51a15e:	e8 3d f6 ff ff       	call   0x5197a0
51a163:	83 c4 14             	add    $0x14,%esp
51a166:	85 c0                	test   %eax,%eax
51a168:	0f 85 c4 fe ff ff    	jne    0x51a032
51a16e:	ff 75 dc             	push   -0x24(%ebp)
51a171:	83 7d bc 01          	cmpl   $0x1,-0x44(%ebp)
51a175:	b9 60 9d 6b 00       	mov    $0x6b9d60,%ecx
51a17a:	50                   	push   %eax
51a17b:	b8 24 8a 6b 00       	mov    $0x6b8a24,%eax
51a180:	0f 44 c1             	cmove  %ecx,%eax
51a183:	50                   	push   %eax
51a184:	6a 12                	push   $0x12
51a186:	56                   	push   %esi
51a187:	e8 14 f6 ff ff       	call   0x5197a0
51a18c:	83 c4 14             	add    $0x14,%esp
51a18f:	85 c0                	test   %eax,%eax
51a191:	0f 85 9b fe ff ff    	jne    0x51a032
51a197:	6a 00                	push   $0x0
51a199:	6a 24                	push   $0x24
51a19b:	57                   	push   %edi
51a19c:	e8 7f 73 00 00       	call   0x521520
51a1a1:	8b d8                	mov    %eax,%ebx
51a1a3:	83 c4 0c             	add    $0xc,%esp
51a1a6:	85 db                	test   %ebx,%ebx
51a1a8:	0f 84 84 fe ff ff    	je     0x51a032
51a1ae:	8b 45 d8             	mov    -0x28(%ebp),%eax
51a1b1:	89 03                	mov    %eax,(%ebx)
51a1b3:	8b 45 e0             	mov    -0x20(%ebp),%eax
51a1b6:	ff 70 10             	push   0x10(%eax)
51a1b9:	57                   	push   %edi
51a1ba:	e8 f1 74 00 00       	call   0x5216b0
51a1bf:	8b d0                	mov    %eax,%edx
51a1c1:	83 c4 08             	add    $0x8,%esp
51a1c4:	8b 45 cc             	mov    -0x34(%ebp),%eax
51a1c7:	83 7d c4 41          	cmpl   $0x41,-0x3c(%ebp)
51a1cb:	89 53 04             	mov    %edx,0x4(%ebx)
51a1ce:	8b 4f 10             	mov    0x10(%edi),%ecx
51a1d1:	8b 4c 01 0c          	mov    0xc(%ecx,%eax,1),%ecx
51a1d5:	8b 45 d0             	mov    -0x30(%ebp),%eax
51a1d8:	89 4b 14             	mov    %ecx,0x14(%ebx)
51a1db:	8b 48 48             	mov    0x48(%eax),%ecx
51a1de:	89 4b 18             	mov    %ecx,0x18(%ebx)
51a1e1:	8a 4d 18             	mov    0x18(%ebp),%cl
51a1e4:	88 4b 08             	mov    %cl,0x8(%ebx)
51a1e7:	b9 21 00 00 00       	mov    $0x21,%ecx
51a1ec:	0f 45 4d c4          	cmovne -0x3c(%ebp),%ecx
51a1f0:	83 f9 21             	cmp    $0x21,%ecx
51a1f3:	0f 95 c0             	setne  %al
51a1f6:	fe c0                	inc    %al
51a1f8:	88 43 09             	mov    %al,0x9(%ebx)
51a1fb:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
51a202:	72 19                	jb     0x51a21d
51a204:	8b 45 e0             	mov    -0x20(%ebp),%eax
51a207:	ff 70 10             	push   0x10(%eax)
51a20a:	52                   	push   %edx
51a20b:	56                   	push   %esi
51a20c:	e8 ef dc 01 00       	call   0x537f00
51a211:	8b 45 c8             	mov    -0x38(%ebp),%eax
51a214:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
51a21b:	eb 0c                	jmp    0x51a229
51a21d:	8b 45 c8             	mov    -0x38(%ebp),%eax
51a220:	6a 01                	push   $0x1
51a222:	50                   	push   %eax
51a223:	57                   	push   %edi
51a224:	e8 37 c6 00 00       	call   0x526860
51a229:	89 43 0c             	mov    %eax,0xc(%ebx)
51a22c:	83 c4 0c             	add    $0xc,%esp
51a22f:	8b 45 c0             	mov    -0x40(%ebp),%eax
51a232:	89 43 10             	mov    %eax,0x10(%ebx)
51a235:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
51a23c:	89 9e ec 00 00 00    	mov    %ebx,0xec(%esi)
51a242:	e9 f7 fd ff ff       	jmp    0x51a03e
51a247:	cc                   	int3
51a248:	cc                   	int3
51a249:	cc                   	int3
51a24a:	cc                   	int3
51a24b:	cc                   	int3
51a24c:	cc                   	int3
51a24d:	cc                   	int3
51a24e:	cc                   	int3
51a24f:	cc                   	int3
51a250:	55                   	push   %ebp
51a251:	8b ec                	mov    %esp,%ebp
51a253:	8b 55 08             	mov    0x8(%ebp),%edx
51a256:	53                   	push   %ebx
51a257:	8b 5d 10             	mov    0x10(%ebp),%ebx
51a25a:	8b cb                	mov    %ebx,%ecx
51a25c:	56                   	push   %esi
51a25d:	8b 42 74             	mov    0x74(%edx),%eax
51a260:	8b f2                	mov    %edx,%esi
51a262:	85 c0                	test   %eax,%eax
51a264:	57                   	push   %edi
51a265:	0f 45 d0             	cmovne %eax,%edx
51a268:	0f 45 f0             	cmovne %eax,%esi
51a26b:	b8 01 00 00 00       	mov    $0x1,%eax
51a270:	d3 e0                	shl    %cl,%eax
51a272:	8b 7a 54             	mov    0x54(%edx),%edi
51a275:	85 c7                	test   %eax,%edi
51a277:	75 14                	jne    0x51a28d
51a279:	0f ab df             	bts    %ebx,%edi
51a27c:	89 7a 54             	mov    %edi,0x54(%edx)
51a27f:	83 fb 01             	cmp    $0x1,%ebx
51a282:	75 09                	jne    0x51a28d
51a284:	52                   	push   %edx
51a285:	e8 06 7a 01 00       	call   0x531c90
51a28a:	83 c4 04             	add    $0x4,%esp
51a28d:	8b 46 50             	mov    0x50(%esi),%eax
51a290:	0f ab d8             	bts    %ebx,%eax
51a293:	89 46 50             	mov    %eax,0x50(%esi)
51a296:	8a 45 0c             	mov    0xc(%ebp),%al
51a299:	08 46 14             	or     %al,0x14(%esi)
51a29c:	5f                   	pop    %edi
51a29d:	5e                   	pop    %esi
51a29e:	5b                   	pop    %ebx
51a29f:	5d                   	pop    %ebp
51a2a0:	c3                   	ret
51a2a1:	cc                   	int3
51a2a2:	cc                   	int3
51a2a3:	cc                   	int3
51a2a4:	cc                   	int3
51a2a5:	cc                   	int3
51a2a6:	cc                   	int3
51a2a7:	cc                   	int3
51a2a8:	cc                   	int3
51a2a9:	cc                   	int3
51a2aa:	cc                   	int3
51a2ab:	cc                   	int3
51a2ac:	cc                   	int3
51a2ad:	cc                   	int3
51a2ae:	cc                   	int3
51a2af:	cc                   	int3
51a2b0:	55                   	push   %ebp
51a2b1:	8b ec                	mov    %esp,%ebp
51a2b3:	8b 45 0c             	mov    0xc(%ebp),%eax
51a2b6:	f7 40 04 00 01 00 00 	testl  $0x100,0x4(%eax)
51a2bd:	74 0e                	je     0x51a2cd
51a2bf:	50                   	push   %eax
51a2c0:	ff 75 08             	push   0x8(%ebp)
51a2c3:	e8 18 c0 00 00       	call   0x5262e0
51a2c8:	83 c4 08             	add    $0x8,%esp
51a2cb:	5d                   	pop    %ebp
51a2cc:	c3                   	ret
51a2cd:	56                   	push   %esi
51a2ce:	8b 75 10             	mov    0x10(%ebp),%esi
51a2d1:	85 f6                	test   %esi,%esi
51a2d3:	74 09                	je     0x51a2de
51a2d5:	f7 46 04 00 01 00 00 	testl  $0x100,0x4(%esi)
51a2dc:	75 10                	jne    0x51a2ee
51a2de:	50                   	push   %eax
51a2df:	ff 75 08             	push   0x8(%ebp)
51a2e2:	e8 f9 bf 00 00       	call   0x5262e0
51a2e7:	83 c4 08             	add    $0x8,%esp
51a2ea:	85 c0                	test   %eax,%eax
51a2ec:	75 0c                	jne    0x51a2fa
51a2ee:	56                   	push   %esi
51a2ef:	ff 75 08             	push   0x8(%ebp)
51a2f2:	e8 e9 bf 00 00       	call   0x5262e0
51a2f7:	83 c4 08             	add    $0x8,%esp
51a2fa:	5e                   	pop    %esi
51a2fb:	5d                   	pop    %ebp
51a2fc:	c3                   	ret
51a2fd:	cc                   	int3
51a2fe:	cc                   	int3
51a2ff:	cc                   	int3
51a300:	55                   	push   %ebp
51a301:	8b ec                	mov    %esp,%ebp
51a303:	83 ec 24             	sub    $0x24,%esp
51a306:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51a30b:	33 c5                	xor    %ebp,%eax
51a30d:	89 45 fc             	mov    %eax,-0x4(%ebp)
51a310:	53                   	push   %ebx
51a311:	56                   	push   %esi
51a312:	8b 75 0c             	mov    0xc(%ebp),%esi
51a315:	57                   	push   %edi
51a316:	8b 7d 08             	mov    0x8(%ebp),%edi
51a319:	57                   	push   %edi
51a31a:	89 75 dc             	mov    %esi,-0x24(%ebp)
51a31d:	89 7d ec             	mov    %edi,-0x14(%ebp)
51a320:	c7 45 e4 ff ff ff ff 	movl   $0xffffffff,-0x1c(%ebp)
51a327:	e8 04 03 00 00       	call   0x51a630
51a32c:	8b d8                	mov    %eax,%ebx
51a32e:	8d 47 07             	lea    0x7(%edi),%eax
51a331:	99                   	cltd
51a332:	83 e2 07             	and    $0x7,%edx
51a335:	89 5d e8             	mov    %ebx,-0x18(%ebp)
51a338:	03 c2                	add    %edx,%eax
51a33a:	c1 f8 03             	sar    $0x3,%eax
51a33d:	40                   	inc    %eax
51a33e:	99                   	cltd
51a33f:	8b f8                	mov    %eax,%edi
51a341:	52                   	push   %edx
51a342:	57                   	push   %edi
51a343:	e8 18 6c 01 00       	call   0x530f60
51a348:	83 c4 0c             	add    $0xc,%esp
51a34b:	89 45 f0             	mov    %eax,-0x10(%ebp)
51a34e:	85 c0                	test   %eax,%eax
51a350:	74 0c                	je     0x51a35e
51a352:	57                   	push   %edi
51a353:	6a 00                	push   $0x0
51a355:	50                   	push   %eax
51a356:	e8 a5 96 0c 00       	call   0x5e3a00
51a35b:	83 c4 0c             	add    $0xc,%esp
51a35e:	e8 bd cc 03 00       	call   0x557020
51a363:	85 c0                	test   %eax,%eax
51a365:	74 04                	je     0x51a36b
51a367:	33 c0                	xor    %eax,%eax
51a369:	eb 55                	jmp    0x51a3c0
51a36b:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810
51a372:	74 3e                	je     0x51a3b2
51a374:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a379:	85 c0                	test   %eax,%eax
51a37b:	74 0a                	je     0x51a387
51a37d:	50                   	push   %eax
51a37e:	ff 15 60 18 72 00    	call   *0x721860
51a384:	83 c4 04             	add    $0x4,%esp
51a387:	8d 45 f4             	lea    -0xc(%ebp),%eax
51a38a:	50                   	push   %eax
51a38b:	68 00 02 00 00       	push   $0x200
51a390:	e8 6b ef fe ff       	call   0x509300
51a395:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a39a:	83 c4 08             	add    $0x8,%esp
51a39d:	85 c0                	test   %eax,%eax
51a39f:	74 0c                	je     0x51a3ad
51a3a1:	50                   	push   %eax
51a3a2:	ff 15 68 18 72 00    	call   *0x721868
51a3a8:	8b 45 f4             	mov    -0xc(%ebp),%eax
51a3ab:	eb 10                	jmp    0x51a3bd
51a3ad:	8b 45 f4             	mov    -0xc(%ebp),%eax
51a3b0:	eb 0e                	jmp    0x51a3c0
51a3b2:	68 00 02 00 00       	push   $0x200
51a3b7:	ff 15 30 18 72 00    	call   *0x721830
51a3bd:	83 c4 04             	add    $0x4,%esp
51a3c0:	89 45 f4             	mov    %eax,-0xc(%ebp)
51a3c3:	85 db                	test   %ebx,%ebx
51a3c5:	0f 84 49 01 00 00    	je     0x51a514
51a3cb:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
51a3cf:	0f 84 3f 01 00 00    	je     0x51a514
51a3d5:	85 c0                	test   %eax,%eax
51a3d7:	0f 84 37 01 00 00    	je     0x51a514
51a3dd:	8b 1e                	mov    (%esi),%ebx
51a3df:	33 ff                	xor    %edi,%edi
51a3e1:	85 db                	test   %ebx,%ebx
51a3e3:	0f 84 b8 00 00 00    	je     0x51a4a1
51a3e9:	7e 24                	jle    0x51a40f
51a3eb:	83 fb 02             	cmp    $0x2,%ebx
51a3ee:	7e 05                	jle    0x51a3f5
51a3f0:	83 fb 05             	cmp    $0x5,%ebx
51a3f3:	75 1a                	jne    0x51a40f
51a3f5:	8b 4c be 08          	mov    0x8(%esi,%edi,4),%ecx
51a3f9:	8b 44 be 0c          	mov    0xc(%esi,%edi,4),%eax
51a3fd:	03 c1                	add    %ecx,%eax
51a3ff:	c7 45 e0 04 00 00 00 	movl   $0x4,-0x20(%ebp)
51a406:	89 44 be 08          	mov    %eax,0x8(%esi,%edi,4)
51a40a:	8d 51 ff             	lea    -0x1(%ecx),%edx
51a40d:	eb 18                	jmp    0x51a427
51a40f:	8d 45 f8             	lea    -0x8(%ebp),%eax
51a412:	c7 45 e0 02 00 00 00 	movl   $0x2,-0x20(%ebp)
51a419:	50                   	push   %eax
51a41a:	6a 04                	push   $0x4
51a41c:	e8 0f 18 fd ff       	call   0x4ebc30
51a421:	8b 55 f8             	mov    -0x8(%ebp),%edx
51a424:	83 c4 08             	add    $0x8,%esp
51a427:	ff 4c be 04          	decl   0x4(%esi,%edi,4)