51ffb8:	75 dc                	jne    0x51ff96
51ffba:	8b 5d 10             	mov    0x10(%ebp),%ebx
51ffbd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51ffc0:	8b c7                	mov    %edi,%eax
51ffc2:	99                   	cltd
51ffc3:	8b f0                	mov    %eax,%esi
51ffc5:	52                   	push   %edx
51ffc6:	56                   	push   %esi
51ffc7:	85 c9                	test   %ecx,%ecx
51ffc9:	74 10                	je     0x51ffdb
51ffcb:	51                   	push   %ecx
51ffcc:	e8 0f 14 00 00       	call   0x5213e0
51ffd1:	8b f8                	mov    %eax,%edi
51ffd3:	83 c4 0c             	add    $0xc,%esp
51ffd6:	89 7d ec             	mov    %edi,-0x14(%ebp)
51ffd9:	eb 0d                	jmp    0x51ffe8
51ffdb:	e8 80 0f 01 00       	call   0x530f60
51ffe0:	83 c4 08             	add    $0x8,%esp
51ffe3:	89 45 ec             	mov    %eax,-0x14(%ebp)
51ffe6:	8b f8                	mov    %eax,%edi
51ffe8:	85 ff                	test   %edi,%edi
51ffea:	0f 84 34 03 00 00    	je     0x520324
51fff0:	56                   	push   %esi
51fff1:	6a 00                	push   $0x0
51fff3:	57                   	push   %edi
51fff4:	e8 07 3a 0c 00       	call   0x5e3a00
51fff9:	8b 45 f4             	mov    -0xc(%ebp),%eax
51fffc:	83 c4 0c             	add    $0xc,%esp
51ffff:	89 07                	mov    %eax,(%edi)
520001:	8b 40 10             	mov    0x10(%eax),%eax
520004:	89 47 04             	mov    %eax,0x4(%edi)
520007:	8b 45 f8             	mov    -0x8(%ebp),%eax
52000a:	8d 34 c5 24 00 00 00 	lea    0x24(,%eax,8),%esi
520011:	8b 45 08             	mov    0x8(%ebp),%eax
520014:	03 f7                	add    %edi,%esi
520016:	89 77 08             	mov    %esi,0x8(%edi)
520019:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
520020:	72 0b                	jb     0x52002d
520022:	53                   	push   %ebx
520023:	56                   	push   %esi
520024:	50                   	push   %eax
520025:	e8 26 7e 01 00       	call   0x537e50
52002a:	83 c4 0c             	add    $0xc,%esp
52002d:	ff 73 04             	push   0x4(%ebx)
520030:	ff 33                	push   (%ebx)
520032:	56                   	push   %esi
520033:	e8 c8 2e 0c 00       	call   0x5e2f00
520038:	8b 43 04             	mov    0x4(%ebx),%eax
52003b:	56                   	push   %esi
52003c:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
520040:	e8 9b 24 00 00       	call   0x5224e0
520045:	8b 53 04             	mov    0x4(%ebx),%edx
520048:	83 c4 10             	add    $0x10,%esp
52004b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52004e:	42                   	inc    %edx
52004f:	8b 45 f8             	mov    -0x8(%ebp),%eax
520052:	03 d6                	add    %esi,%edx
520054:	89 55 e0             	mov    %edx,-0x20(%ebp)
520057:	89 47 14             	mov    %eax,0x14(%edi)
52005a:	85 c9                	test   %ecx,%ecx
52005c:	75 41                	jne    0x52009f
52005e:	8b 45 f4             	mov    -0xc(%ebp),%eax
520061:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
520065:	48                   	dec    %eax
520066:	89 47 24             	mov    %eax,0x24(%edi)
520069:	8b 45 f8             	mov    -0x8(%ebp),%eax
52006c:	8b 7d 14             	mov    0x14(%ebp),%edi
52006f:	85 ff                	test   %edi,%edi
520071:	0f 84 96 01 00 00    	je     0x52020d
520077:	85 c0                	test   %eax,%eax
520079:	0f 8e 8e 01 00 00    	jle    0x52020d
52007f:	8b 5d ec             	mov    -0x14(%ebp),%ebx
520082:	83 c7 08             	add    $0x8,%edi
520085:	83 c3 28             	add    $0x28,%ebx
520088:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
52008f:	00
520090:	8b 37                	mov    (%edi),%esi
520092:	85 f6                	test   %esi,%esi
520094:	0f 85 fe 00 00 00    	jne    0x520198
52009a:	e9 10 01 00 00       	jmp    0x5201af
52009f:	33 db                	xor    %ebx,%ebx
5200a1:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5200a4:	85 c0                	test   %eax,%eax
5200a6:	7e c4                	jle    0x52006c
5200a8:	8d 57 24             	lea    0x24(%edi),%edx
5200ab:	8d 71 08             	lea    0x8(%ecx),%esi
5200ae:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5200b1:	89 75 f0             	mov    %esi,-0x10(%ebp)
5200b4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5200b7:	33 ff                	xor    %edi,%edi
5200b9:	89 7d dc             	mov    %edi,-0x24(%ebp)
5200bc:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
5200c0:	66 3b f8             	cmp    %ax,%di
5200c3:	7d 52                	jge    0x520117
5200c5:	8b 59 04             	mov    0x4(%ecx),%ebx
5200c8:	8b 36                	mov    (%esi),%esi
5200ca:	8b 13                	mov    (%ebx),%edx
5200cc:	2b f2                	sub    %edx,%esi
5200ce:	66 90                	xchg   %ax,%ax
5200d0:	0f b6 02             	movzbl (%edx),%eax
5200d3:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
5200d7:	3b c1                	cmp    %ecx,%eax
5200d9:	75 0e                	jne    0x5200e9
5200db:	85 c0                	test   %eax,%eax
5200dd:	75 1c                	jne    0x5200fb
5200df:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5200e2:	8b 75 f0             	mov    -0x10(%ebp),%esi
5200e5:	89 3a                	mov    %edi,(%edx)
5200e7:	eb 2b                	jmp    0x520114
5200e9:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
5200f0:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
5200f7:	2b c1                	sub    %ecx,%eax
5200f9:	75 03                	jne    0x5200fe
5200fb:	42                   	inc    %edx
5200fc:	eb d2                	jmp    0x5200d0
5200fe:	8b 4d f4             	mov    -0xc(%ebp),%ecx
520101:	47                   	inc    %edi
520102:	8b 75 f0             	mov    -0x10(%ebp),%esi
520105:	83 c3 14             	add    $0x14,%ebx
520108:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
52010c:	98                   	cwtl
52010d:	3b f8                	cmp    %eax,%edi
52010f:	7c b7                	jl     0x5200c8
520111:	8b 55 e4             	mov    -0x1c(%ebp),%edx
520114:	8b 5d e8             	mov    -0x18(%ebp),%ebx
520117:	8b 45 f4             	mov    -0xc(%ebp),%eax
52011a:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
52011e:	3b f8                	cmp    %eax,%edi
520120:	7d 50                	jge    0x520172
520122:	8b 45 08             	mov    0x8(%ebp),%eax
520125:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
52012c:	72 21                	jb     0x52014f
52012e:	8b 80 10 01 00 00    	mov    0x110(%eax),%eax
520134:	8b 0e                	mov    (%esi),%ecx
520136:	85 c0                	test   %eax,%eax
520138:	74 15                	je     0x52014f
52013a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
520140:	39 08                	cmp    %ecx,(%eax)
520142:	74 09                	je     0x52014d
520144:	8b 40 0c             	mov    0xc(%eax),%eax
520147:	85 c0                	test   %eax,%eax
520149:	75 f5                	jne    0x520140
52014b:	eb 02                	jmp    0x52014f
52014d:	89 10                	mov    %edx,(%eax)
52014f:	8b 45 f8             	mov    -0x8(%ebp),%eax
520152:	43                   	inc    %ebx
520153:	83 c6 14             	add    $0x14,%esi
520156:	89 5d e8             	mov    %ebx,-0x18(%ebp)
520159:	83 c2 08             	add    $0x8,%edx
52015c:	89 75 f0             	mov    %esi,-0x10(%ebp)
52015f:	89 55 e4             	mov    %edx,-0x1c(%ebp)
520162:	3b d8                	cmp    %eax,%ebx
520164:	0f 8c 4a ff ff ff    	jl     0x5200b4
52016a:	8b 55 e0             	mov    -0x20(%ebp),%edx
52016d:	e9 fa fe ff ff       	jmp    0x52006c
520172:	8b 4d 0c             	mov    0xc(%ebp),%ecx
520175:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
520178:	ff 74 81 08          	push   0x8(%ecx,%eax,4)
52017c:	8b 45 08             	mov    0x8(%ebp),%eax
52017f:	68 88 a3 6b 00       	push   $0x6ba388
520184:	50                   	push   %eax
520185:	e8 d6 30 00 00       	call   0x523260
52018a:	8b 5d ec             	mov    -0x14(%ebp),%ebx
52018d:	83 c4 0c             	add    $0xc,%esp
520190:	8b 4d fc             	mov    -0x4(%ebp),%ecx
520193:	e9 ec 00 00 00       	jmp    0x520284
520198:	8d 4e 01             	lea    0x1(%esi),%ecx
52019b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5201a0:	8a 06                	mov    (%esi),%al
5201a2:	46                   	inc    %esi
5201a3:	84 c0                	test   %al,%al
5201a5:	75 f9                	jne    0x5201a0
5201a7:	2b f1                	sub    %ecx,%esi
5201a9:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
5201af:	8b 45 08             	mov    0x8(%ebp),%eax
5201b2:	89 13                	mov    %edx,(%ebx)
5201b4:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
5201bb:	72 22                	jb     0x5201df
5201bd:	8b 80 10 01 00 00    	mov    0x110(%eax),%eax
5201c3:	8b 0f                	mov    (%edi),%ecx
5201c5:	85 c0                	test   %eax,%eax
5201c7:	74 16                	je     0x5201df
5201c9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5201d0:	39 08                	cmp    %ecx,(%eax)
5201d2:	74 09                	je     0x5201dd
5201d4:	8b 40 0c             	mov    0xc(%eax),%eax
5201d7:	85 c0                	test   %eax,%eax
5201d9:	75 f5                	jne    0x5201d0
5201db:	eb 02                	jmp    0x5201df
5201dd:	89 10                	mov    %edx,(%eax)
5201df:	56                   	push   %esi
5201e0:	ff 37                	push   (%edi)
5201e2:	52                   	push   %edx
5201e3:	e8 18 2d 0c 00       	call   0x5e2f00
5201e8:	8b 45 e0             	mov    -0x20(%ebp),%eax
5201eb:	83 c4 0c             	add    $0xc,%esp
5201ee:	83 c3 08             	add    $0x8,%ebx
5201f1:	83 c7 14             	add    $0x14,%edi
5201f4:	8d 50 01             	lea    0x1(%eax),%edx
5201f7:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
5201fb:	03 d6                	add    %esi,%edx
5201fd:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
520201:	89 55 e0             	mov    %edx,-0x20(%ebp)
520204:	0f 85 86 fe ff ff    	jne    0x520090
52020a:	8b 7d 14             	mov    0x14(%ebp),%edi
52020d:	8b 5d ec             	mov    -0x14(%ebp),%ebx
520210:	8b 45 18             	mov    0x18(%ebp),%eax
520213:	8b 75 f4             	mov    -0xc(%ebp),%esi
520216:	53                   	push   %ebx
520217:	c6 43 18 00          	movb   $0x0,0x18(%ebx)
52021b:	88 43 19             	mov    %al,0x19(%ebx)
52021e:	c1 f8 08             	sar    $0x8,%eax
520221:	88 43 1a             	mov    %al,0x1a(%ebx)
520224:	8b 46 48             	mov    0x48(%esi),%eax
520227:	ff 73 08             	push   0x8(%ebx)
52022a:	83 c0 38             	add    $0x38,%eax
52022d:	50                   	push   %eax
52022e:	e8 6d d8 00 00       	call   0x52daa0
520233:	83 c4 0c             	add    $0xc,%esp
520236:	3b c3                	cmp    %ebx,%eax
520238:	0f 85 1d 01 00 00    	jne    0x52035b
52023e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
520241:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
520245:	75 3d                	jne    0x520284
520247:	80 79 52 00          	cmpb   $0x0,0x52(%ecx)
52024b:	75 37                	jne    0x520284
52024d:	83 b9 bc 00 00 00 00 	cmpl   $0x0,0xbc(%ecx)
520254:	c6 41 51 01          	movb   $0x1,0x51(%ecx)
520258:	7e 0a                	jle    0x520264
52025a:	c7 81 10 01 00 00 01 	movl   $0x1,0x110(%ecx)
520261:	00 00 00
520264:	ff 81 18 01 00 00    	incl   0x118(%ecx)
52026a:	33 c0                	xor    %eax,%eax
52026c:	66 89 81 1c 01 00 00 	mov    %ax,0x11c(%ecx)
520273:	8b 81 f4 00 00 00    	mov    0xf4(%ecx),%eax
520279:	85 c0                	test   %eax,%eax
52027b:	74 07                	je     0x520284
52027d:	c7 40 0c 07 00 00 00 	movl   $0x7,0xc(%eax)
520284:	85 c9                	test   %ecx,%ecx
520286:	74 50                	je     0x5202d8
520288:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
52028f:	74 0f                	je     0x5202a0
520291:	53                   	push   %ebx
520292:	51                   	push   %ecx
520293:	e8 d8 91 fe ff       	call   0x509470
520298:	83 c4 08             	add    $0x8,%esp
52029b:	e9 84 00 00 00       	jmp    0x520324
5202a0:	3b 99 4c 01 00 00    	cmp    0x14c(%ecx),%ebx
5202a6:	73 30                	jae    0x5202d8
5202a8:	3b 99 44 01 00 00    	cmp    0x144(%ecx),%ebx
5202ae:	72 10                	jb     0x5202c0
5202b0:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
5202b6:	89 03                	mov    %eax,(%ebx)
5202b8:	89 99 40 01 00 00    	mov    %ebx,0x140(%ecx)
5202be:	eb 67                	jmp    0x520327
5202c0:	3b 99 48 01 00 00    	cmp    0x148(%ecx),%ebx
5202c6:	72 10                	jb     0x5202d8
5202c8:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
5202ce:	89 03                	mov    %eax,(%ebx)
5202d0:	89 99 38 01 00 00    	mov    %ebx,0x138(%ecx)
5202d6:	eb 4f                	jmp    0x520327
5202d8:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810
5202df:	74 71                	je     0x520352
5202e1:	a1 90 ff 72 00       	mov    0x72ff90,%eax
5202e6:	85 c0                	test   %eax,%eax
5202e8:	74 0a                	je     0x5202f4
5202ea:	50                   	push   %eax
5202eb:	ff 15 60 18 72 00    	call   *0x721860
5202f1:	83 c4 04             	add    $0x4,%esp
5202f4:	53                   	push   %ebx
5202f5:	ff 15 3c 18 72 00    	call   *0x72183c
5202fb:	29 05 20 00 73 00    	sub    %eax,0x730020
520301:	ff 0d 44 00 73 00    	decl   0x730044
520307:	53                   	push   %ebx
520308:	ff 15 34 18 72 00    	call   *0x721834
52030e:	a1 90 ff 72 00       	mov    0x72ff90,%eax
520313:	83 c4 08             	add    $0x8,%esp
520316:	85 c0                	test   %eax,%eax
520318:	74 0a                	je     0x520324
52031a:	50                   	push   %eax
52031b:	ff 15 68 18 72 00    	call   *0x721868
520321:	83 c4 04             	add    $0x4,%esp
520324:	8b 4d fc             	mov    -0x4(%ebp),%ecx
520327:	8b 7d 14             	mov    0x14(%ebp),%edi
52032a:	8b 45 0c             	mov    0xc(%ebp),%eax
52032d:	85 c0                	test   %eax,%eax
52032f:	74 0a                	je     0x52033b
520331:	50                   	push   %eax
520332:	51                   	push   %ecx
520333:	e8 c8 0c fe ff       	call   0x501000
520338:	83 c4 08             	add    $0x8,%esp
52033b:	85 ff                	test   %edi,%edi
52033d:	74 0c                	je     0x52034b
52033f:	57                   	push   %edi
520340:	ff 75 fc             	push   -0x4(%ebp)
520343:	e8 b8 0c fe ff       	call   0x501000
520348:	83 c4 08             	add    $0x8,%esp
52034b:	5f                   	pop    %edi
52034c:	5e                   	pop    %esi
52034d:	5b                   	pop    %ebx
52034e:	8b e5                	mov    %ebp,%esp
520350:	5d                   	pop    %ebp
520351:	c3                   	ret
520352:	53                   	push   %ebx
520353:	ff 15 34 18 72 00    	call   *0x721834
520359:	eb c6                	jmp    0x520321
52035b:	85 c0                	test   %eax,%eax
52035d:	74 06                	je     0x520365
52035f:	89 43 0c             	mov    %eax,0xc(%ebx)
520362:	89 58 10             	mov    %ebx,0x10(%eax)
520365:	8b 4d fc             	mov    -0x4(%ebp),%ecx
520368:	89 5e 10             	mov    %ebx,0x10(%esi)
52036b:	eb bd                	jmp    0x52032a
52036d:	cc                   	int3
52036e:	cc                   	int3
52036f:	cc                   	int3
520370:	55                   	push   %ebp
520371:	8b ec                	mov    %esp,%ebp
520373:	53                   	push   %ebx
520374:	8b 5d 0c             	mov    0xc(%ebp),%ebx
520377:	85 db                	test   %ebx,%ebx
520379:	0f 84 b9 01 00 00    	je     0x520538
52037f:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
520383:	8b 55 24             	mov    0x24(%ebp),%edx
520386:	74 08                	je     0x520390
520388:	85 d2                	test   %edx,%edx
52038a:	0f 85 a8 01 00 00    	jne    0x520538
520390:	33 c9                	xor    %ecx,%ecx
520392:	39 4d 20             	cmp    %ecx,0x20(%ebp)
520395:	0f 94 c1             	sete   %cl
520398:	33 c0                	xor    %eax,%eax
52039a:	85 d2                	test   %edx,%edx
52039c:	0f 94 c0             	sete   %al
52039f:	3b c1                	cmp    %ecx,%eax
5203a1:	0f 85 91 01 00 00    	jne    0x520538
5203a7:	33 c9                	xor    %ecx,%ecx
5203a9:	39 4d 28             	cmp    %ecx,0x28(%ebp)
5203ac:	0f 94 c1             	sete   %cl
5203af:	33 c0                	xor    %eax,%eax
5203b1:	39 45 2c             	cmp    %eax,0x2c(%ebp)
5203b4:	0f 94 c0             	sete   %al
5203b7:	3b c8                	cmp    %eax,%ecx
5203b9:	0f 85 79 01 00 00    	jne    0x520538
5203bf:	8b 45 10             	mov    0x10(%ebp),%eax
5203c2:	40                   	inc    %eax
5203c3:	3d 80 00 00 00       	cmp    $0x80,%eax
5203c8:	0f 87 6a 01 00 00    	ja     0x520538
5203ce:	53                   	push   %ebx
5203cf:	e8 bc d8 01 00       	call   0x53dc90
5203d4:	83 c4 04             	add    $0x4,%esp