53ffee:	8b 45 ec             	mov    -0x14(%ebp),%eax
53fff1:	8b 38                	mov    (%eax),%edi
53fff3:	ff 57 08             	call   *0x8(%edi)
53fff6:	80 7d d6 f9          	cmpb   $0xf9,-0x2a(%ebp)
53fffa:	75 5d                	jne    0x540059
53fffc:	3b 75 f8             	cmp    -0x8(%ebp),%esi
53ffff:	75 58                	jne    0x540059
540001:	8d 55 d5             	lea    -0x2b(%ebp),%edx
540004:	b9 01 00 00 00       	mov    $0x1,%ecx
540009:	8b 45 ec             	mov    -0x14(%ebp),%eax
54000c:	8b 38                	mov    (%eax),%edi
54000e:	ff 57 08             	call   *0x8(%edi)
540011:	33 d2                	xor    %edx,%edx
540013:	8a 55 d5             	mov    -0x2b(%ebp),%dl
540016:	66 b9 01 00          	mov    $0x1,%cx
54001a:	8b 45 ec             	mov    -0x14(%ebp),%eax
54001d:	8b 38                	mov    (%eax),%edi
54001f:	ff 57 10             	call   *0x10(%edi)
540022:	80 7d d5 00          	cmpb   $0x0,-0x2b(%ebp)
540026:	0f 84 b2 fd ff ff    	je     0x53fdde
54002c:	8b 45 ec             	mov    -0x14(%ebp),%eax
54002f:	e8 84 e6 ed ff       	call   0x41e6b8
540034:	52                   	push   %edx
540035:	50                   	push   %eax
540036:	8b 45 ec             	mov    -0x14(%ebp),%eax
540039:	e8 ae e6 ed ff       	call   0x41e6ec
54003e:	3b 54 24 04          	cmp    0x4(%esp),%edx
540042:	75 0c                	jne    0x540050
540044:	3b 04 24             	cmp    (%esp),%eax
540047:	5a                   	pop    %edx
540048:	58                   	pop    %eax
540049:	77 b6                	ja     0x540001
54004b:	e9 8e fd ff ff       	jmp    0x53fdde
540050:	5a                   	pop    %edx
540051:	58                   	pop    %eax
540052:	7f ad                	jg     0x540001
540054:	e9 85 fd ff ff       	jmp    0x53fdde
540059:	c6 03 21             	movb   $0x21,(%ebx)
54005c:	8b d3                	mov    %ebx,%edx
54005e:	b9 01 00 00 00       	mov    $0x1,%ecx
540063:	8b 45 e8             	mov    -0x18(%ebp),%eax
540066:	8b 38                	mov    (%eax),%edi
540068:	ff 57 0c             	call   *0xc(%edi)
54006b:	8d 55 d6             	lea    -0x2a(%ebp),%edx
54006e:	b9 01 00 00 00       	mov    $0x1,%ecx
540073:	8b 45 e8             	mov    -0x18(%ebp),%eax
540076:	8b 38                	mov    (%eax),%edi
540078:	ff 57 0c             	call   *0xc(%edi)
54007b:	8d 55 d5             	lea    -0x2b(%ebp),%edx
54007e:	b9 01 00 00 00       	mov    $0x1,%ecx
540083:	8b 45 ec             	mov    -0x14(%ebp),%eax
540086:	8b 38                	mov    (%eax),%edi
540088:	ff 57 08             	call   *0x8(%edi)
54008b:	8d 55 d5             	lea    -0x2b(%ebp),%edx
54008e:	b9 01 00 00 00       	mov    $0x1,%ecx
540093:	8b 45 e8             	mov    -0x18(%ebp),%eax
540096:	8b 38                	mov    (%eax),%edi
540098:	ff 57 0c             	call   *0xc(%edi)
54009b:	80 7d d5 00          	cmpb   $0x0,-0x2b(%ebp)
54009f:	76 69                	jbe    0x54010a
5400a1:	8b 45 ec             	mov    -0x14(%ebp),%eax
5400a4:	e8 0f e6 ed ff       	call   0x41e6b8
5400a9:	52                   	push   %edx
5400aa:	50                   	push   %eax
5400ab:	33 c0                	xor    %eax,%eax
5400ad:	8a 45 d5             	mov    -0x2b(%ebp),%al
5400b0:	33 d2                	xor    %edx,%edx
5400b2:	03 04 24             	add    (%esp),%eax
5400b5:	13 54 24 04          	adc    0x4(%esp),%edx
5400b9:	83 c4 08             	add    $0x8,%esp
5400bc:	52                   	push   %edx
5400bd:	50                   	push   %eax
5400be:	8b 45 ec             	mov    -0x14(%ebp),%eax
5400c1:	e8 26 e6 ed ff       	call   0x41e6ec
5400c6:	3b 54 24 04          	cmp    0x4(%esp),%edx
5400ca:	75 09                	jne    0x5400d5
5400cc:	3b 04 24             	cmp    (%esp),%eax
5400cf:	5a                   	pop    %edx
5400d0:	58                   	pop    %eax
5400d1:	73 27                	jae    0x5400fa
5400d3:	eb 04                	jmp    0x5400d9
5400d5:	5a                   	pop    %edx
5400d6:	58                   	pop    %eax
5400d7:	7d 21                	jge    0x5400fa
5400d9:	8b 45 ec             	mov    -0x14(%ebp),%eax
5400dc:	e8 0b e6 ed ff       	call   0x41e6ec
5400e1:	50                   	push   %eax
5400e2:	8b 45 ec             	mov    -0x14(%ebp),%eax
5400e5:	e8 ce e5 ed ff       	call   0x41e6b8
5400ea:	59                   	pop    %ecx
5400eb:	2b c8                	sub    %eax,%ecx
5400ed:	8b 55 ec             	mov    -0x14(%ebp),%edx
5400f0:	8b 45 e8             	mov    -0x18(%ebp),%eax
5400f3:	e8 d0 fb ff ff       	call   0x53fcc8
5400f8:	eb 10                	jmp    0x54010a
5400fa:	33 c9                	xor    %ecx,%ecx
5400fc:	8a 4d d5             	mov    -0x2b(%ebp),%cl
5400ff:	8b 55 ec             	mov    -0x14(%ebp),%edx
540102:	8b 45 e8             	mov    -0x18(%ebp),%eax
540105:	e8 be fb ff ff       	call   0x53fcc8
54010a:	80 7d d5 00          	cmpb   $0x0,-0x2b(%ebp)
54010e:	0f 84 ca fc ff ff    	je     0x53fdde
540114:	8b 45 ec             	mov    -0x14(%ebp),%eax
540117:	e8 9c e5 ed ff       	call   0x41e6b8
54011c:	52                   	push   %edx
54011d:	50                   	push   %eax
54011e:	8b 45 ec             	mov    -0x14(%ebp),%eax
540121:	e8 c6 e5 ed ff       	call   0x41e6ec
540126:	3b 54 24 04          	cmp    0x4(%esp),%edx
54012a:	75 10                	jne    0x54013c
54012c:	3b 04 24             	cmp    (%esp),%eax
54012f:	5a                   	pop    %edx
540130:	58                   	pop    %eax
540131:	0f 87 44 ff ff ff    	ja     0x54007b
540137:	e9 a2 fc ff ff       	jmp    0x53fdde
54013c:	5a                   	pop    %edx
54013d:	58                   	pop    %eax
54013e:	0f 8f 37 ff ff ff    	jg     0x54007b
540144:	e9 95 fc ff ff       	jmp    0x53fdde
540149:	c6 03 3b             	movb   $0x3b,(%ebx)
54014c:	8b d3                	mov    %ebx,%edx
54014e:	b9 01 00 00 00       	mov    $0x1,%ecx
540153:	8b 45 e8             	mov    -0x18(%ebp),%eax
540156:	8b 18                	mov    (%eax),%ebx
540158:	ff 53 0c             	call   *0xc(%ebx)
54015b:	33 c0                	xor    %eax,%eax
54015d:	5a                   	pop    %edx
54015e:	59                   	pop    %ecx
54015f:	59                   	pop    %ecx
540160:	64 89 10             	mov    %edx,%fs:(%eax)
540163:	68 97 01 54 00       	push   $0x540197
540168:	8b 45 ec             	mov    -0x14(%ebp),%eax
54016b:	e8 08 39 ec ff       	call   0x403a78
540170:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
540174:	74 0b                	je     0x540181
540176:	8b 55 fc             	mov    -0x4(%ebp),%edx
540179:	8b 45 e8             	mov    -0x18(%ebp),%eax
54017c:	e8 0f ec ed ff       	call   0x41ed90
540181:	8b 45 e8             	mov    -0x18(%ebp),%eax
540184:	e8 ef 38 ec ff       	call   0x403a78
540189:	8b 45 d0             	mov    -0x30(%ebp),%eax
54018c:	89 45 f0             	mov    %eax,-0x10(%ebp)
54018f:	c3                   	ret
540190:	e9 77 40 ec ff       	jmp    0x40420c
540195:	eb d1                	jmp    0x540168
540197:	33 c0                	xor    %eax,%eax
540199:	5a                   	pop    %edx
54019a:	59                   	pop    %ecx
54019b:	59                   	pop    %ecx
54019c:	64 89 10             	mov    %edx,%fs:(%eax)
54019f:	68 b4 01 54 00       	push   $0x5401b4
5401a4:	8d 45 fc             	lea    -0x4(%ebp),%eax
5401a7:	e8 bc 46 ec ff       	call   0x404868
5401ac:	c3                   	ret
5401ad:	e9 5a 40 ec ff       	jmp    0x40420c
5401b2:	eb f0                	jmp    0x5401a4
5401b4:	8b 45 f0             	mov    -0x10(%ebp),%eax
5401b7:	5f                   	pop    %edi
5401b8:	5e                   	pop    %esi
5401b9:	5b                   	pop    %ebx
5401ba:	8b e5                	mov    %ebp,%esp
5401bc:	5d                   	pop    %ebp
5401bd:	c3                   	ret
5401be:	8b c0                	mov    %eax,%eax
5401c0:	55                   	push   %ebp
5401c1:	8b ec                	mov    %esp,%ebp
5401c3:	81 c4 80 f9 ff ff    	add    $0xfffff980,%esp
5401c9:	53                   	push   %ebx
5401ca:	56                   	push   %esi
5401cb:	57                   	push   %edi
5401cc:	33 db                	xor    %ebx,%ebx
5401ce:	89 9d 80 f9 ff ff    	mov    %ebx,-0x680(%ebp)
5401d4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5401d7:	89 55 fc             	mov    %edx,-0x4(%ebp)
5401da:	8b f0                	mov    %eax,%esi
5401dc:	33 c0                	xor    %eax,%eax
5401de:	55                   	push   %ebp
5401df:	68 bc 0d 54 00       	push   $0x540dbc
5401e4:	64 ff 30             	push   %fs:(%eax)
5401e7:	64 89 20             	mov    %esp,%fs:(%eax)
5401ea:	8b 45 f8             	mov    -0x8(%ebp),%eax
5401ed:	33 d2                	xor    %edx,%edx
5401ef:	89 10                	mov    %edx,(%eax)
5401f1:	8b 45 14             	mov    0x14(%ebp),%eax
5401f4:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
5401f9:	74 10                	je     0x54020b
5401fb:	8b 5d 14             	mov    0x14(%ebp),%ebx
5401fe:	8b 55 14             	mov    0x14(%ebp),%edx
540201:	8b 52 08             	mov    0x8(%edx),%edx
540204:	33 c9                	xor    %ecx,%ecx
540206:	8b 43 04             	mov    0x4(%ebx),%eax
540209:	ff 13                	call   *(%ebx)
54020b:	8b 45 14             	mov    0x14(%ebp),%eax
54020e:	8b 40 28             	mov    0x28(%eax),%eax
540211:	80 38 00             	cmpb   $0x0,(%eax)
540214:	0f 85 89 0b 00 00    	jne    0x540da3
54021a:	8b c6                	mov    %esi,%eax
54021c:	e8 cb e4 ed ff       	call   0x41e6ec
540221:	89 45 b0             	mov    %eax,-0x50(%ebp)
540224:	89 55 b4             	mov    %edx,-0x4c(%ebp)
540227:	8d 45 e7             	lea    -0x19(%ebp),%eax
54022a:	33 c9                	xor    %ecx,%ecx
54022c:	ba 04 00 00 00       	mov    $0x4,%edx
540231:	e8 0a 30 ec ff       	call   0x403240
540236:	8b 45 18             	mov    0x18(%ebp),%eax
540239:	8b 00                	mov    (%eax),%eax
54023b:	8b 80 84 00 00 00    	mov    0x84(%eax),%eax
540241:	89 45 f4             	mov    %eax,-0xc(%ebp)
540244:	8d 55 9b             	lea    -0x65(%ebp),%edx
540247:	b9 0d 00 00 00       	mov    $0xd,%ecx
54024c:	8b c6                	mov    %esi,%eax
54024e:	8b 18                	mov    (%eax),%ebx
540250:	ff 53 08             	call   *0x8(%ebx)
540253:	80 7d 9b 47          	cmpb   $0x47,-0x65(%ebp)
540257:	75 0c                	jne    0x540265
540259:	80 7d 9c 49          	cmpb   $0x49,-0x64(%ebp)
54025d:	75 06                	jne    0x540265
54025f:	80 7d 9d 46          	cmpb   $0x46,-0x63(%ebp)
540263:	74 0e                	je     0x540273
540265:	8b 45 14             	mov    0x14(%ebp),%eax
540268:	8b 40 28             	mov    0x28(%eax),%eax
54026b:	c6 00 01             	movb   $0x1,(%eax)
54026e:	e9 30 0b 00 00       	jmp    0x540da3
540273:	8d 85 90 f9 ff ff    	lea    -0x670(%ebp),%eax
540279:	8d 55 9b             	lea    -0x65(%ebp),%edx
54027c:	b9 06 00 00 00       	mov    $0x6,%ecx
540281:	e8 8e 32 ec ff       	call   0x403514
540286:	8d 95 90 f9 ff ff    	lea    -0x670(%ebp),%edx
54028c:	8d 85 88 f9 ff ff    	lea    -0x678(%ebp),%eax
540292:	e8 8d 2e ec ff       	call   0x403124
540297:	ba cc 0d 54 00       	mov    $0x540dcc,%edx
54029c:	8d 85 88 f9 ff ff    	lea    -0x678(%ebp),%eax
5402a2:	b1 07                	mov    $0x7,%cl
5402a4:	e8 4b 2e ec ff       	call   0x4030f4
5402a9:	8d 95 88 f9 ff ff    	lea    -0x678(%ebp),%edx
5402af:	8b 45 18             	mov    0x18(%ebp),%eax
5402b2:	8b 00                	mov    (%eax),%eax
5402b4:	05 80 00 00 00       	add    $0x80,%eax
5402b9:	e8 06 48 ec ff       	call   0x404ac4
5402be:	0f b7 45 a1          	movzwl -0x5f(%ebp),%eax
5402c2:	8b 55 18             	mov    0x18(%ebp),%edx
5402c5:	8b 12                	mov    (%edx),%edx
5402c7:	89 82 9c 00 00 00    	mov    %eax,0x9c(%edx)
5402cd:	0f b7 45 a3          	movzwl -0x5d(%ebp),%eax
5402d1:	8b 55 18             	mov    0x18(%ebp),%edx
5402d4:	8b 12                	mov    (%edx),%edx
5402d6:	89 82 a0 00 00 00    	mov    %eax,0xa0(%edx)
5402dc:	33 c0                	xor    %eax,%eax
5402de:	8a 45 a7             	mov    -0x59(%ebp),%al
5402e1:	8b 55 18             	mov    0x18(%ebp),%edx
5402e4:	8b 12                	mov    (%edx),%edx
5402e6:	89 82 a8 00 00 00    	mov    %eax,0xa8(%edx)
5402ec:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
5402f2:	8b 12                	mov    (%edx),%edx
5402f4:	8b 45 18             	mov    0x18(%ebp),%eax
5402f7:	8b 00                	mov    (%eax),%eax
5402f9:	e8 be d3 08 00       	call   0x5cd6bc
5402fe:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
540304:	8b 12                	mov    (%edx),%edx
540306:	8b 45 18             	mov    0x18(%ebp),%eax
540309:	8b 00                	mov    (%eax),%eax
54030b:	e8 dc d3 08 00       	call   0x5cd6ec
540310:	8b 45 18             	mov    0x18(%ebp),%eax
540313:	8b 00                	mov    (%eax),%eax
540315:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
54031c:	8a 45 a5             	mov    -0x5b(%ebp),%al
54031f:	8b d0                	mov    %eax,%edx
540321:	80 e2 07             	and    $0x7,%dl
540324:	81 e2 ff 00 00 00    	and    $0xff,%edx
54032a:	89 55 c4             	mov    %edx,-0x3c(%ebp)
54032d:	a8 80                	test   $0x80,%al
54032f:	0f 95 c0             	setne  %al
540332:	84 c0                	test   %al,%al
540334:	74 6e                	je     0x5403a4
540336:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
540339:	b8 02 00 00 00       	mov    $0x2,%eax
54033e:	d3 e0                	shl    %cl,%eax
540340:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
540343:	8d 95 9b fc ff ff    	lea    -0x365(%ebp),%edx
540349:	8b c6                	mov    %esi,%eax
54034b:	8b 18                	mov    (%eax),%ebx
54034d:	ff 53 08             	call   *0x8(%ebx)
540350:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
540353:	b8 02 00 00 00       	mov    $0x2,%eax
540358:	d3 e0                	shl    %cl,%eax
54035a:	48                   	dec    %eax
54035b:	85 c0                	test   %eax,%eax
54035d:	7c 1c                	jl     0x54037b
54035f:	40                   	inc    %eax
540360:	89 45 ac             	mov    %eax,-0x54(%ebp)
540363:	8d bd 9d fc ff ff    	lea    -0x363(%ebp),%edi
540369:	8d 57 fe             	lea    -0x2(%edi),%edx
54036c:	8b c7                	mov    %edi,%eax
54036e:	e8 09 91 06 00       	call   0x5a947c
540373:	83 c7 03             	add    $0x3,%edi
540376:	ff 4d ac             	decl   -0x54(%ebp)
540379:	75 ee                	jne    0x540369
54037b:	8b 45 18             	mov    0x18(%ebp),%eax
54037e:	8b 00                	mov    (%eax),%eax
540380:	33 d2                	xor    %edx,%edx
540382:	8a 55 a6             	mov    -0x5a(%ebp),%dl
540385:	8d 14 52             	lea    (%edx,%edx,2),%edx
540388:	66 8b 8c 15 9b fc ff 	mov    -0x365(%ebp,%edx,1),%cx
54038f:	ff
540390:	66 89 88 a4 00 00 00 	mov    %cx,0xa4(%eax)
540397:	8a 8c 15 9d fc ff ff 	mov    -0x363(%ebp,%edx,1),%cl
54039e:	88 88 a6 00 00 00    	mov    %cl,0xa6(%eax)
5403a4:	8b c6                	mov    %esi,%eax
5403a6:	e8 0d e3 ed ff       	call   0x41e6b8
5403ab:	3b 55 b4             	cmp    -0x4c(%ebp),%edx
5403ae:	75 07                	jne    0x5403b7
5403b0:	3b 45 b0             	cmp    -0x50(%ebp),%eax
5403b3:	72 0d                	jb     0x5403c2
5403b5:	eb 02                	jmp    0x5403b9
5403b7:	7c 09                	jl     0x5403c2
5403b9:	8b 45 14             	mov    0x14(%ebp),%eax
5403bc:	8b 40 28             	mov    0x28(%eax),%eax
5403bf:	c6 00 01             	movb   $0x1,(%eax)
5403c2:	33 c0                	xor    %eax,%eax
5403c4:	89 45 e0             	mov    %eax,-0x20(%ebp)
5403c7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5403ca:	33 d2                	xor    %edx,%edx
5403cc:	89 10                	mov    %edx,(%eax)
5403ce:	8b 45 14             	mov    0x14(%ebp),%eax
5403d1:	8b 40 28             	mov    0x28(%eax),%eax
5403d4:	80 38 00             	cmpb   $0x0,(%eax)
5403d7:	0f 85 8f 09 00 00    	jne    0x540d6c
5403dd:	8d 55 e6             	lea    -0x1a(%ebp),%edx
5403e0:	b9 01 00 00 00       	mov    $0x1,%ecx
5403e5:	8b c6                	mov    %esi,%eax
5403e7:	8b 18                	mov    (%eax),%ebx
5403e9:	ff 53 08             	call   *0x8(%ebx)
5403ec:	8b c6                	mov    %esi,%eax
5403ee:	e8 c5 e2 ed ff       	call   0x41e6b8
5403f3:	3b 55 b4             	cmp    -0x4c(%ebp),%edx
5403f6:	75 07                	jne    0x5403ff
5403f8:	3b 45 b0             	cmp    -0x50(%ebp),%eax
5403fb:	72 08                	jb     0x540405
5403fd:	eb 02                	jmp    0x540401
5403ff:	7c 04                	jl     0x540405
540401:	c6 45 e6 3b          	movb   $0x3b,-0x1a(%ebp)
540405:	8a 45 e6             	mov    -0x1a(%ebp),%al
540408:	2c 21                	sub    $0x21,%al
54040a:	0f 84 13 08 00 00    	je     0x540c23
540410:	2c 0b                	sub    $0xb,%al
540412:	74 0a                	je     0x54041e
540414:	2c 0f                	sub    $0xf,%al
540416:	0f 84 50 09 00 00    	je     0x540d6c
54041c:	eb b0                	jmp    0x5403ce
54041e:	8d 55 eb             	lea    -0x15(%ebp),%edx