54d050:	55                   	push   %ebp
54d051:	8b ec                	mov    %esp,%ebp
54d053:	8b 45 08             	mov    0x8(%ebp),%eax
54d056:	56                   	push   %esi
54d057:	ff 75 0c             	push   0xc(%ebp)
54d05a:	8b 70 08             	mov    0x8(%eax),%esi
54d05d:	50                   	push   %eax
54d05e:	e8 9d 2c fe ff       	call   0x52fd00
54d063:	8b d0                	mov    %eax,%edx
54d065:	83 c4 08             	add    $0x8,%esp
54d068:	85 d2                	test   %edx,%edx
54d06a:	74 29                	je     0x54d095
54d06c:	8b 0e                	mov    (%esi),%ecx
54d06e:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
54d072:	74 0f                	je     0x54d083
54d074:	52                   	push   %edx
54d075:	6a f7                	push   $0xfffffff7
54d077:	51                   	push   %ecx
54d078:	e8 33 6c fb ff       	call   0x503cb0
54d07d:	83 c4 0c             	add    $0xc,%esp
54d080:	5e                   	pop    %esi
54d081:	5d                   	pop    %ebp
54d082:	c3                   	ret
54d083:	8b 46 6c             	mov    0x6c(%esi),%eax
54d086:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
54d089:	8b 46 68             	mov    0x68(%esi),%eax
54d08c:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
54d091:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
54d095:	5e                   	pop    %esi
54d096:	5d                   	pop    %ebp
54d097:	c3                   	ret
54d098:	cc                   	int3
54d099:	cc                   	int3
54d09a:	cc                   	int3
54d09b:	cc                   	int3
54d09c:	cc                   	int3
54d09d:	cc                   	int3
54d09e:	cc                   	int3
54d09f:	cc                   	int3
54d0a0:	55                   	push   %ebp
54d0a1:	8b ec                	mov    %esp,%ebp
54d0a3:	56                   	push   %esi
54d0a4:	8b 75 08             	mov    0x8(%ebp),%esi
54d0a7:	85 f6                	test   %esi,%esi
54d0a9:	74 63                	je     0x54d10e
54d0ab:	8a 45 14             	mov    0x14(%ebp),%al
54d0ae:	88 86 94 00 00 00    	mov    %al,0x94(%esi)
54d0b4:	84 c0                	test   %al,%al
54d0b6:	78 0a                	js     0x54d0c2
54d0b8:	c7 86 d4 00 00 00 00 	movl   $0x0,0xd4(%esi)
54d0bf:	00 00 00
54d0c2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
54d0c6:	8b 45 10             	mov    0x10(%ebp),%eax
54d0c9:	53                   	push   %ebx
54d0ca:	99                   	cltd
54d0cb:	57                   	push   %edi
54d0cc:	8b d8                	mov    %eax,%ebx
54d0ce:	75 0d                	jne    0x54d0dd
54d0d0:	33 ff                	xor    %edi,%edi
54d0d2:	89 be c0 00 00 00    	mov    %edi,0xc0(%esi)
54d0d8:	5f                   	pop    %edi
54d0d9:	5b                   	pop    %ebx
54d0da:	5e                   	pop    %esi
54d0db:	5d                   	pop    %ebp
54d0dc:	c3                   	ret
54d0dd:	83 c0 01             	add    $0x1,%eax
54d0e0:	83 d2 00             	adc    $0x0,%edx
54d0e3:	52                   	push   %edx
54d0e4:	50                   	push   %eax
54d0e5:	ff 36                	push   (%esi)
54d0e7:	e8 f4 42 fd ff       	call   0x5213e0
54d0ec:	8b f8                	mov    %eax,%edi
54d0ee:	83 c4 0c             	add    $0xc,%esp
54d0f1:	85 ff                	test   %edi,%edi
54d0f3:	74 11                	je     0x54d106
54d0f5:	53                   	push   %ebx
54d0f6:	ff 75 0c             	push   0xc(%ebp)
54d0f9:	57                   	push   %edi
54d0fa:	e8 01 5e 09 00       	call   0x5e2f00
54d0ff:	83 c4 0c             	add    $0xc,%esp
54d102:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
54d106:	89 be c0 00 00 00    	mov    %edi,0xc0(%esi)
54d10c:	5f                   	pop    %edi
54d10d:	5b                   	pop    %ebx
54d10e:	5e                   	pop    %esi
54d10f:	5d                   	pop    %ebp
54d110:	c3                   	ret
54d111:	cc                   	int3
54d112:	cc                   	int3
54d113:	cc                   	int3
54d114:	cc                   	int3
54d115:	cc                   	int3
54d116:	cc                   	int3
54d117:	cc                   	int3
54d118:	cc                   	int3
54d119:	cc                   	int3
54d11a:	cc                   	int3
54d11b:	cc                   	int3
54d11c:	cc                   	int3
54d11d:	cc                   	int3
54d11e:	cc                   	int3
54d11f:	cc                   	int3
54d120:	55                   	push   %ebp
54d121:	8b ec                	mov    %esp,%ebp
54d123:	8b 45 0c             	mov    0xc(%ebp),%eax
54d126:	83 f8 20             	cmp    $0x20,%eax
54d129:	7c 0f                	jl     0x54d13a
54d12b:	8b 45 08             	mov    0x8(%ebp),%eax
54d12e:	81 88 d4 00 00 00 00 	orl    $0x80000000,0xd4(%eax)
54d135:	00 00 80
54d138:	5d                   	pop    %ebp
54d139:	c3                   	ret
54d13a:	8b 55 08             	mov    0x8(%ebp),%edx
54d13d:	48                   	dec    %eax
54d13e:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
54d144:	0f ab c1             	bts    %eax,%ecx
54d147:	89 8a d4 00 00 00    	mov    %ecx,0xd4(%edx)
54d14d:	5d                   	pop    %ebp
54d14e:	c3                   	ret
54d14f:	cc                   	int3
54d150:	55                   	push   %ebp
54d151:	8b ec                	mov    %esp,%ebp
54d153:	8b 45 08             	mov    0x8(%ebp),%eax
54d156:	53                   	push   %ebx
54d157:	8b 5d 10             	mov    0x10(%ebp),%ebx
54d15a:	56                   	push   %esi
54d15b:	8b 70 28             	mov    0x28(%eax),%esi
54d15e:	8b 40 2c             	mov    0x2c(%eax),%eax
54d161:	57                   	push   %edi
54d162:	89 45 08             	mov    %eax,0x8(%ebp)
54d165:	8b 7e 20             	mov    0x20(%esi),%edi
54d168:	85 ff                	test   %edi,%edi
54d16a:	75 1e                	jne    0x54d18a
54d16c:	50                   	push   %eax
54d16d:	e8 4e 4c ff ff       	call   0x541dc0
54d172:	8b f8                	mov    %eax,%edi
54d174:	83 c4 04             	add    $0x4,%esp
54d177:	89 7e 20             	mov    %edi,0x20(%esi)
54d17a:	85 ff                	test   %edi,%edi
54d17c:	75 08                	jne    0x54d186
54d17e:	8d 47 07             	lea    0x7(%edi),%eax
54d181:	5f                   	pop    %edi
54d182:	5e                   	pop    %esi
54d183:	5b                   	pop    %ebx
54d184:	5d                   	pop    %ebp
54d185:	c3                   	ret
54d186:	66 89 5f 08          	mov    %bx,0x8(%edi)
54d18a:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
54d18e:	74 31                	je     0x54d1c1
54d190:	80 7e 39 00          	cmpb   $0x0,0x39(%esi)
54d194:	74 0b                	je     0x54d1a1
54d196:	8b 46 10             	mov    0x10(%esi),%eax
54d199:	8b 48 20             	mov    0x20(%eax),%ecx
54d19c:	83 c0 14             	add    $0x14,%eax
54d19f:	eb 26                	jmp    0x54d1c7
54d1a1:	8b 56 14             	mov    0x14(%esi),%edx
54d1a4:	8b 42 08             	mov    0x8(%edx),%eax
54d1a7:	8b 40 04             	mov    0x4(%eax),%eax
54d1aa:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
54d1b1:	2b c8                	sub    %eax,%ecx
54d1b3:	8b 42 0c             	mov    0xc(%edx),%eax
54d1b6:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
54d1b9:	8b 48 20             	mov    0x20(%eax),%ecx
54d1bc:	83 c0 14             	add    $0x14,%eax
54d1bf:	eb 06                	jmp    0x54d1c7
54d1c1:	8b 46 24             	mov    0x24(%esi),%eax
54d1c4:	8d 48 08             	lea    0x8(%eax),%ecx
54d1c7:	8b 00                	mov    (%eax),%eax
54d1c9:	57                   	push   %edi
54d1ca:	51                   	push   %ecx
54d1cb:	50                   	push   %eax
54d1cc:	ff 75 08             	push   0x8(%ebp)
54d1cf:	e8 ec f8 ff ff       	call   0x54cac0
54d1d4:	83 c4 10             	add    $0x10,%esp
54d1d7:	33 c9                	xor    %ecx,%ecx
54d1d9:	85 db                	test   %ebx,%ebx
54d1db:	7e 13                	jle    0x54d1f0
54d1dd:	8b 47 04             	mov    0x4(%edi),%eax
54d1e0:	83 c0 08             	add    $0x8,%eax
54d1e3:	f6 00 01             	testb  $0x1,(%eax)
54d1e6:	75 28                	jne    0x54d210
54d1e8:	41                   	inc    %ecx
54d1e9:	83 c0 28             	add    $0x28,%eax
54d1ec:	3b cb                	cmp    %ebx,%ecx
54d1ee:	7c f3                	jl     0x54d1e3
54d1f0:	8b 45 0c             	mov    0xc(%ebp),%eax
54d1f3:	6a 00                	push   $0x0
54d1f5:	57                   	push   %edi
54d1f6:	ff 70 10             	push   0x10(%eax)
54d1f9:	ff 70 0c             	push   0xc(%eax)
54d1fc:	e8 3f f3 ff ff       	call   0x54c540
54d201:	8b 4d 14             	mov    0x14(%ebp),%ecx
54d204:	83 c4 10             	add    $0x10,%esp
54d207:	5f                   	pop    %edi
54d208:	5e                   	pop    %esi
54d209:	89 01                	mov    %eax,(%ecx)
54d20b:	33 c0                	xor    %eax,%eax
54d20d:	5b                   	pop    %ebx
54d20e:	5d                   	pop    %ebp
54d20f:	c3                   	ret
54d210:	8b 45 14             	mov    0x14(%ebp),%eax
54d213:	5f                   	pop    %edi
54d214:	5e                   	pop    %esi
54d215:	5b                   	pop    %ebx
54d216:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
54d21c:	33 c0                	xor    %eax,%eax
54d21e:	5d                   	pop    %ebp
54d21f:	c3                   	ret
54d220:	55                   	push   %ebp
54d221:	8b ec                	mov    %esp,%ebp
54d223:	83 ec 10             	sub    $0x10,%esp
54d226:	53                   	push   %ebx
54d227:	8b 5d 08             	mov    0x8(%ebp),%ebx
54d22a:	56                   	push   %esi
54d22b:	57                   	push   %edi
54d22c:	33 ff                	xor    %edi,%edi
54d22e:	80 7b 50 02          	cmpb   $0x2,0x50(%ebx)
54d232:	74 11                	je     0x54d245
54d234:	80 3d 14 18 72 00 00 	cmpb   $0x0,0x721814
54d23b:	74 08                	je     0x54d245
54d23d:	8b 8b 98 00 00 00    	mov    0x98(%ebx),%ecx
54d243:	eb 02                	jmp    0x54d247
54d245:	33 c9                	xor    %ecx,%ecx
54d247:	8b 45 10             	mov    0x10(%ebp),%eax
54d24a:	89 4d 08             	mov    %ecx,0x8(%ebp)
54d24d:	8b 40 2c             	mov    0x2c(%eax),%eax
54d250:	0f b7 40 06          	movzwl 0x6(%eax),%eax
54d254:	8d 14 85 14 00 00 00 	lea    0x14(,%eax,4),%edx
54d25b:	8d 04 c9             	lea    (%ecx,%ecx,8),%eax
54d25e:	89 55 f4             	mov    %edx,-0xc(%ebp)
54d261:	8d 04 c5 88 00 00 00 	lea    0x88(,%eax,8),%eax
54d268:	89 45 fc             	mov    %eax,-0x4(%ebp)
54d26b:	03 c2                	add    %edx,%eax
54d26d:	99                   	cltd
54d26e:	52                   	push   %edx
54d26f:	50                   	push   %eax
54d270:	53                   	push   %ebx
54d271:	89 45 f8             	mov    %eax,-0x8(%ebp)
54d274:	e8 67 41 fd ff       	call   0x5213e0
54d279:	8b f0                	mov    %eax,%esi
54d27b:	83 c4 0c             	add    $0xc,%esp
54d27e:	85 f6                	test   %esi,%esi
54d280:	74 0e                	je     0x54d290
54d282:	ff 75 f8             	push   -0x8(%ebp)
54d285:	6a 00                	push   $0x0
54d287:	56                   	push   %esi
54d288:	e8 73 67 09 00       	call   0x5e3a00
54d28d:	83 c4 0c             	add    $0xc,%esp
54d290:	8b 4d 10             	mov    0x10(%ebp),%ecx
54d293:	89 71 28             	mov    %esi,0x28(%ecx)
54d296:	85 f6                	test   %esi,%esi
54d298:	75 0a                	jne    0x54d2a4
54d29a:	5f                   	pop    %edi
54d29b:	8d 46 07             	lea    0x7(%esi),%eax
54d29e:	5e                   	pop    %esi
54d29f:	5b                   	pop    %ebx
54d2a0:	8b e5                	mov    %ebp,%esp
54d2a2:	5d                   	pop    %ebp
54d2a3:	c3                   	ret
54d2a4:	8b 45 fc             	mov    -0x4(%ebp),%eax
54d2a7:	ff 75 f4             	push   -0xc(%ebp)
54d2aa:	03 c6                	add    %esi,%eax
54d2ac:	89 46 1c             	mov    %eax,0x1c(%esi)
54d2af:	ff 71 2c             	push   0x2c(%ecx)
54d2b2:	50                   	push   %eax
54d2b3:	e8 48 5c 09 00       	call   0x5e2f00
54d2b8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54d2bb:	83 c4 0c             	add    $0xc,%esp
54d2be:	8b 45 0c             	mov    0xc(%ebp),%eax
54d2c1:	89 7c 0e 0c          	mov    %edi,0xc(%esi,%ecx,1)
54d2c5:	85 c0                	test   %eax,%eax
54d2c7:	74 0a                	je     0x54d2d3
54d2c9:	39 7d 08             	cmp    %edi,0x8(%ebp)
54d2cc:	75 05                	jne    0x54d2d3
54d2ce:	66 89 44 0e 06       	mov    %ax,0x6(%esi,%ecx,1)
54d2d3:	8b 43 10             	mov    0x10(%ebx),%eax
54d2d6:	8b 40 04             	mov    0x4(%eax),%eax
54d2d9:	8b 40 04             	mov    0x4(%eax),%eax
54d2dc:	8b 40 20             	mov    0x20(%eax),%eax
54d2df:	89 45 10             	mov    %eax,0x10(%ebp)
54d2e2:	89 46 0c             	mov    %eax,0xc(%esi)
54d2e5:	8b 45 08             	mov    0x8(%ebp),%eax
54d2e8:	89 5e 18             	mov    %ebx,0x18(%esi)
54d2eb:	8d 48 01             	lea    0x1(%eax),%ecx
54d2ee:	fe c8                	dec    %al
54d2f0:	80 f9 01             	cmp    $0x1,%cl
54d2f3:	88 46 3a             	mov    %al,0x3a(%esi)
54d2f6:	88 4e 3b             	mov    %cl,0x3b(%esi)
54d2f9:	0f 97 c0             	seta   %al
54d2fc:	33 d2                	xor    %edx,%edx
54d2fe:	88 46 39             	mov    %al,0x39(%esi)
54d301:	84 c9                	test   %cl,%cl
54d303:	74 19                	je     0x54d31e
54d305:	8d 4e 48             	lea    0x48(%esi),%ecx
54d308:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
54d30f:	00
54d310:	89 31                	mov    %esi,(%ecx)
54d312:	8d 49 48             	lea    0x48(%ecx),%ecx
54d315:	0f b6 46 3b          	movzbl 0x3b(%esi),%eax
54d319:	42                   	inc    %edx
54d31a:	3b d0                	cmp    %eax,%edx
54d31c:	7c f2                	jl     0x54d310
54d31e:	80 7b 50 02          	cmpb   $0x2,0x50(%ebx)
54d322:	0f 84 86 00 00 00    	je     0x54d3ae
54d328:	a1 dc 18 72 00       	mov    0x7218dc,%eax
54d32d:	8b 4d 10             	mov    0x10(%ebp),%ecx
54d330:	0f af c1             	imul   %ecx,%eax
54d333:	89 45 f8             	mov    %eax,-0x8(%ebp)
54d336:	89 06                	mov    %eax,(%esi)
54d338:	8b 43 10             	mov    0x10(%ebx),%eax
54d33b:	8b 40 0c             	mov    0xc(%eax),%eax
54d33e:	8b 40 50             	mov    0x50(%eax),%eax
54d341:	99                   	cltd
54d342:	89 45 f4             	mov    %eax,-0xc(%ebp)
54d345:	89 55 08             	mov    %edx,0x8(%ebp)
54d348:	85 d2                	test   %edx,%edx
54d34a:	7f 0f                	jg     0x54d35b
54d34c:	7c 04                	jl     0x54d352
54d34e:	85 c0                	test   %eax,%eax
54d350:	73 09                	jae    0x54d35b
54d352:	6a ff                	push   $0xffffffff
54d354:	68 00 fc ff ff       	push   $0xfffffc00
54d359:	eb 09                	jmp    0x54d364
54d35b:	ff 75 08             	push   0x8(%ebp)
54d35e:	8b c1                	mov    %ecx,%eax
54d360:	ff 75 f4             	push   -0xc(%ebp)
54d363:	99                   	cltd
54d364:	52                   	push   %edx
54d365:	50                   	push   %eax
54d366:	e8 95 47 09 00       	call   0x5e1b00
54d36b:	85 d2                	test   %edx,%edx
54d36d:	7c 0e                	jl     0x54d37d
54d36f:	7f 07                	jg     0x54d378
54d371:	3d 00 00 00 20       	cmp    $0x20000000,%eax
54d376:	72 05                	jb     0x54d37d
54d378:	b8 00 00 00 20       	mov    $0x20000000,%eax
54d37d:	39 45 f8             	cmp    %eax,-0x8(%ebp)
54d380:	0f 4f 45 f8          	cmovg  -0x8(%ebp),%eax
54d384:	89 46 04             	mov    %eax,0x4(%esi)
54d387:	80 3d 18 18 72 00 00 	cmpb   $0x0,0x721818
54d38e:	75 1e                	jne    0x54d3ae
54d390:	8b 45 10             	mov    0x10(%ebp),%eax
54d393:	89 46 34             	mov    %eax,0x34(%esi)
54d396:	99                   	cltd
54d397:	52                   	push   %edx
54d398:	50                   	push   %eax
54d399:	e8 c2 3b fe ff       	call   0x530f60
54d39e:	83 c4 08             	add    $0x8,%esp
54d3a1:	89 46 28             	mov    %eax,0x28(%esi)
54d3a4:	85 c0                	test   %eax,%eax