57902d:	56                   	push   %esi
57902e:	57                   	push   %edi
57902f:	55                   	push   %ebp
579030:	83 c4 d8             	add    $0xffffffd8,%esp
579033:	89 4c 24 04          	mov    %ecx,0x4(%esp)
579037:	89 14 24             	mov    %edx,(%esp)
57903a:	8b d8                	mov    %eax,%ebx
57903c:	8b 44 24 04          	mov    0x4(%esp),%eax
579040:	25 0f 00 00 80       	and    $0x8000000f,%eax
579045:	79 05                	jns    0x57904c
579047:	48                   	dec    %eax
579048:	83 c8 f0             	or     $0xfffffff0,%eax
57904b:	40                   	inc    %eax
57904c:	8b 54 24 04          	mov    0x4(%esp),%edx
579050:	33 c9                	xor    %ecx,%ecx
579052:	2b d0                	sub    %eax,%edx
579054:	89 54 24 14          	mov    %edx,0x14(%esp)
579058:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
57905f:	00
579060:	89 4c 24 08          	mov    %ecx,0x8(%esp)
579064:	8b 44 24 08          	mov    0x8(%esp),%eax
579068:	8b 54 24 04          	mov    0x4(%esp),%edx
57906c:	3b c2                	cmp    %edx,%eax
57906e:	0f 8d 9d 01 00 00    	jge    0x579211
579074:	8b 4c 24 04          	mov    0x4(%esp),%ecx
579078:	83 f9 10             	cmp    $0x10,%ecx
57907b:	7e 21                	jle    0x57909e
57907d:	8b 44 24 08          	mov    0x8(%esp),%eax
579081:	85 c0                	test   %eax,%eax
579083:	7e 19                	jle    0x57909e
579085:	8b 54 24 08          	mov    0x8(%esp),%edx
579089:	8b 4c 24 14          	mov    0x14(%esp),%ecx
57908d:	3b d1                	cmp    %ecx,%edx
57908f:	7c 07                	jl     0x579098
579091:	b8 01 00 00 00       	mov    $0x1,%eax
579096:	eb 02                	jmp    0x57909a
579098:	33 c0                	xor    %eax,%eax
57909a:	89 44 24 10          	mov    %eax,0x10(%esp)
57909e:	8b 54 24 10          	mov    0x10(%esp),%edx
5790a2:	85 d2                	test   %edx,%edx
5790a4:	74 17                	je     0x5790bd
5790a6:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5790aa:	51                   	push   %ecx
5790ab:	68 cb 2b 6a 00       	push   $0x6a2bcb
5790b0:	8b 44 24 08          	mov    0x8(%esp),%eax
5790b4:	50                   	push   %eax
5790b5:	e8 12 10 00 00       	call   0x57a0cc
5790ba:	83 c4 0c             	add    $0xc,%esp
5790bd:	8b 54 24 04          	mov    0x4(%esp),%edx
5790c1:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5790c5:	2b d1                	sub    %ecx,%edx
5790c7:	83 fa 10             	cmp    $0x10,%edx
5790ca:	7d 0c                	jge    0x5790d8
5790cc:	8b 6c 24 04          	mov    0x4(%esp),%ebp
5790d0:	8b 44 24 08          	mov    0x8(%esp),%eax
5790d4:	2b e8                	sub    %eax,%ebp
5790d6:	eb 05                	jmp    0x5790dd
5790d8:	bd 10 00 00 00       	mov    $0x10,%ebp
5790dd:	33 f6                	xor    %esi,%esi
5790df:	8d 7c 24 18          	lea    0x18(%esp),%edi
5790e3:	3b ee                	cmp    %esi,%ebp
5790e5:	7e 65                	jle    0x57914c
5790e7:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
5790eb:	75 3c                	jne    0x579129
5790ed:	8b 43 40             	mov    0x40(%ebx),%eax
5790f0:	85 c0                	test   %eax,%eax
5790f2:	7c 13                	jl     0x579107
5790f4:	8b 53 40             	mov    0x40(%ebx),%edx
5790f7:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
5790fa:	3b d1                	cmp    %ecx,%edx
5790fc:	7f 09                	jg     0x579107
5790fe:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
579102:	83 c8 ff             	or     $0xffffffff,%eax
579105:	eb 25                	jmp    0x57912c
579107:	ff 4b 1c             	decl   0x1c(%ebx)
57910a:	79 0e                	jns    0x57911a
57910c:	ba 01 00 00 00       	mov    $0x1,%edx
579111:	8b c3                	mov    %ebx,%eax
579113:	e8 10 fc ff ff       	call   0x578d28
579118:	eb 12                	jmp    0x57912c
57911a:	ff 43 3c             	incl   0x3c(%ebx)
57911d:	8b 53 18             	mov    0x18(%ebx),%edx
579120:	ff 43 18             	incl   0x18(%ebx)
579123:	33 c0                	xor    %eax,%eax
579125:	8a 02                	mov    (%edx),%al
579127:	eb 03                	jmp    0x57912c
579129:	83 c8 ff             	or     $0xffffffff,%eax
57912c:	89 44 24 0c          	mov    %eax,0xc(%esp)
579130:	40                   	inc    %eax
579131:	75 0d                	jne    0x579140
579133:	e8 10 1a fe ff       	call   0x55ab48
579138:	83 c8 ff             	or     $0xffffffff,%eax
57913b:	e9 d3 00 00 00       	jmp    0x579213
579140:	8a 54 24 0c          	mov    0xc(%esp),%dl
579144:	46                   	inc    %esi
579145:	88 17                	mov    %dl,(%edi)
579147:	47                   	inc    %edi
579148:	3b ee                	cmp    %esi,%ebp
57914a:	7f 9b                	jg     0x5790e7
57914c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
579150:	85 c9                	test   %ecx,%ecx
579152:	0f 84 a4 00 00 00    	je     0x5791fc
579158:	33 f6                	xor    %esi,%esi
57915a:	8d 7c 24 18          	lea    0x18(%esp),%edi
57915e:	3b ee                	cmp    %esi,%ebp
579160:	7e 1d                	jle    0x57917f
579162:	33 c0                	xor    %eax,%eax
579164:	8a 07                	mov    (%edi),%al
579166:	50                   	push   %eax
579167:	68 d1 2b 6a 00       	push   $0x6a2bd1
57916c:	8b 54 24 08          	mov    0x8(%esp),%edx
579170:	52                   	push   %edx
579171:	e8 56 0f 00 00       	call   0x57a0cc
579176:	83 c4 0c             	add    $0xc,%esp
579179:	46                   	inc    %esi
57917a:	47                   	inc    %edi
57917b:	3b ee                	cmp    %esi,%ebp
57917d:	7f e3                	jg     0x579162
57917f:	8b 0c 24             	mov    (%esp),%ecx
579182:	51                   	push   %ecx
579183:	6a 20                	push   $0x20
579185:	e8 1a 1a fe ff       	call   0x55aba4
57918a:	83 c4 08             	add    $0x8,%esp
57918d:	83 fe 10             	cmp    $0x10,%esi
579190:	7d 18                	jge    0x5791aa
579192:	68 d7 2b 6a 00       	push   $0x6a2bd7
579197:	8b 44 24 04          	mov    0x4(%esp),%eax
57919b:	50                   	push   %eax
57919c:	e8 2b 0f 00 00       	call   0x57a0cc
5791a1:	83 c4 08             	add    $0x8,%esp
5791a4:	46                   	inc    %esi
5791a5:	83 fe 10             	cmp    $0x10,%esi
5791a8:	7c e8                	jl     0x579192
5791aa:	33 f6                	xor    %esi,%esi
5791ac:	8d 7c 24 18          	lea    0x18(%esp),%edi
5791b0:	3b ee                	cmp    %esi,%ebp
5791b2:	7e 36                	jle    0x5791ea
5791b4:	33 c0                	xor    %eax,%eax
5791b6:	8a 07                	mov    (%edi),%al
5791b8:	50                   	push   %eax
5791b9:	e8 a2 1e fe ff       	call   0x55b060
5791be:	59                   	pop    %ecx
5791bf:	85 c0                	test   %eax,%eax
5791c1:	74 13                	je     0x5791d6
5791c3:	8b 14 24             	mov    (%esp),%edx
5791c6:	52                   	push   %edx
5791c7:	33 c9                	xor    %ecx,%ecx
5791c9:	8a 0f                	mov    (%edi),%cl
5791cb:	51                   	push   %ecx
5791cc:	e8 d3 19 fe ff       	call   0x55aba4
5791d1:	83 c4 08             	add    $0x8,%esp
5791d4:	eb 0e                	jmp    0x5791e4
5791d6:	8b 04 24             	mov    (%esp),%eax
5791d9:	50                   	push   %eax
5791da:	6a 20                	push   $0x20
5791dc:	e8 c3 19 fe ff       	call   0x55aba4
5791e1:	83 c4 08             	add    $0x8,%esp
5791e4:	46                   	inc    %esi
5791e5:	47                   	inc    %edi
5791e6:	3b ee                	cmp    %esi,%ebp
5791e8:	7f ca                	jg     0x5791b4
5791ea:	68 db 2b 6a 00       	push   $0x6a2bdb
5791ef:	8b 54 24 04          	mov    0x4(%esp),%edx
5791f3:	52                   	push   %edx
5791f4:	e8 d3 0e 00 00       	call   0x57a0cc
5791f9:	83 c4 08             	add    $0x8,%esp
5791fc:	83 44 24 08 10       	addl   $0x10,0x8(%esp)
579201:	8b 4c 24 08          	mov    0x8(%esp),%ecx
579205:	8b 44 24 04          	mov    0x4(%esp),%eax
579209:	3b c8                	cmp    %eax,%ecx
57920b:	0f 8c 63 fe ff ff    	jl     0x579074
579211:	33 c0                	xor    %eax,%eax
579213:	83 c4 28             	add    $0x28,%esp
579216:	5d                   	pop    %ebp
579217:	5f                   	pop    %edi
579218:	5e                   	pop    %esi
579219:	5b                   	pop    %ebx
57921a:	c3                   	ret
57921b:	90                   	nop
57921c:	53                   	push   %ebx
57921d:	56                   	push   %esi
57921e:	57                   	push   %edi
57921f:	8b d8                	mov    %eax,%ebx
579221:	8b c3                	mov    %ebx,%eax
579223:	e8 d0 f9 ff ff       	call   0x578bf8
579228:	8b f0                	mov    %eax,%esi
57922a:	85 c0                	test   %eax,%eax
57922c:	7d 05                	jge    0x579233
57922e:	83 c8 ff             	or     $0xffffffff,%eax
579231:	eb 3f                	jmp    0x579272
579233:	b9 02 00 00 00       	mov    $0x2,%ecx
579238:	33 d2                	xor    %edx,%edx
57923a:	8b c3                	mov    %ebx,%eax
57923c:	e8 27 f9 ff ff       	call   0x578b68
579241:	85 c0                	test   %eax,%eax
579243:	7d 05                	jge    0x57924a
579245:	83 c8 ff             	or     $0xffffffff,%eax
579248:	eb 28                	jmp    0x579272
57924a:	8b c3                	mov    %ebx,%eax
57924c:	e8 a7 f9 ff ff       	call   0x578bf8
579251:	8b f8                	mov    %eax,%edi
579253:	85 c0                	test   %eax,%eax
579255:	7d 05                	jge    0x57925c
579257:	83 c8 ff             	or     $0xffffffff,%eax
57925a:	eb 16                	jmp    0x579272
57925c:	33 c9                	xor    %ecx,%ecx
57925e:	8b d6                	mov    %esi,%edx
579260:	8b c3                	mov    %ebx,%eax
579262:	e8 01 f9 ff ff       	call   0x578b68
579267:	85 c0                	test   %eax,%eax
579269:	7d 05                	jge    0x579270
57926b:	83 c8 ff             	or     $0xffffffff,%eax
57926e:	eb 02                	jmp    0x579272
579270:	8b c7                	mov    %edi,%eax
579272:	5f                   	pop    %edi
579273:	5e                   	pop    %esi
579274:	5b                   	pop    %ebx
579275:	c3                   	ret
579276:	90                   	nop
579277:	90                   	nop
579278:	53                   	push   %ebx
579279:	56                   	push   %esi
57927a:	8b d9                	mov    %ecx,%ebx
57927c:	8b f0                	mov    %eax,%esi
57927e:	8b 46 08             	mov    0x8(%esi),%eax
579281:	8b 4e 0c             	mov    0xc(%esi),%ecx
579284:	2b c1                	sub    %ecx,%eax
579286:	3b d8                	cmp    %eax,%ebx
579288:	7f 02                	jg     0x57928c
57928a:	8b c3                	mov    %ebx,%eax
57928c:	8b d8                	mov    %eax,%ebx
57928e:	53                   	push   %ebx
57928f:	8b 0e                	mov    (%esi),%ecx
579291:	8b 46 0c             	mov    0xc(%esi),%eax
579294:	03 c8                	add    %eax,%ecx
579296:	51                   	push   %ecx
579297:	52                   	push   %edx
579298:	e8 27 18 fe ff       	call   0x55aac4
57929d:	83 c4 0c             	add    $0xc,%esp
5792a0:	8b c3                	mov    %ebx,%eax
5792a2:	01 5e 0c             	add    %ebx,0xc(%esi)
5792a5:	5e                   	pop    %esi
5792a6:	5b                   	pop    %ebx
5792a7:	c3                   	ret
5792a8:	53                   	push   %ebx
5792a9:	8b d8                	mov    %eax,%ebx
5792ab:	56                   	push   %esi
5792ac:	57                   	push   %edi
5792ad:	8b 03                	mov    (%ebx),%eax
5792af:	8b f2                	mov    %edx,%esi
5792b1:	85 c0                	test   %eax,%eax
5792b3:	75 17                	jne    0x5792cc
5792b5:	68 fb 03 00 00       	push   $0x3fb
5792ba:	68 e5 2b 6a 00       	push   $0x6a2be5
5792bf:	68 dd 2b 6a 00       	push   $0x6a2bdd
5792c4:	e8 77 18 fe ff       	call   0x55ab40
5792c9:	83 c4 0c             	add    $0xc,%esp
5792cc:	8b d6                	mov    %esi,%edx
5792ce:	8b 03                	mov    (%ebx),%eax
5792d0:	e8 b7 f0 ff ff       	call   0x57838c
5792d5:	8b f8                	mov    %eax,%edi
5792d7:	85 c0                	test   %eax,%eax
5792d9:	75 05                	jne    0x5792e0
5792db:	83 c8 ff             	or     $0xffffffff,%eax
5792de:	eb 07                	jmp    0x5792e7
5792e0:	89 3b                	mov    %edi,(%ebx)
5792e2:	89 73 04             	mov    %esi,0x4(%ebx)
5792e5:	33 c0                	xor    %eax,%eax
5792e7:	5f                   	pop    %edi
5792e8:	5e                   	pop    %esi
5792e9:	5b                   	pop    %ebx
5792ea:	c3                   	ret
5792eb:	90                   	nop
5792ec:	53                   	push   %ebx
5792ed:	56                   	push   %esi
5792ee:	57                   	push   %edi
5792ef:	8b d8                	mov    %eax,%ebx
5792f1:	55                   	push   %ebp
5792f2:	51                   	push   %ecx
5792f3:	89 14 24             	mov    %edx,(%esp)
5792f6:	8b f9                	mov    %ecx,%edi
5792f8:	8b 6b 0c             	mov    0xc(%ebx),%ebp
5792fb:	8b 43 04             	mov    0x4(%ebx),%eax
5792fe:	03 ef                	add    %edi,%ebp
579300:	3b e8                	cmp    %eax,%ebp
579302:	7e 43                	jle    0x579347
579304:	8b 53 10             	mov    0x10(%ebx),%edx
579307:	85 d2                	test   %edx,%edx
579309:	74 3c                	je     0x579347
57930b:	8b f0                	mov    %eax,%esi
57930d:	3b ee                	cmp    %esi,%ebp
57930f:	7e 21                	jle    0x579332
579311:	03 f6                	add    %esi,%esi
579313:	85 f6                	test   %esi,%esi
579315:	7d 17                	jge    0x57932e
579317:	68 11 04 00 00       	push   $0x411
57931c:	68 02 2c 6a 00       	push   $0x6a2c02
579321:	68 f2 2b 6a 00       	push   $0x6a2bf2
579326:	e8 15 18 fe ff       	call   0x55ab40
57932b:	83 c4 0c             	add    $0xc,%esp
57932e:	3b ee                	cmp    %esi,%ebp
579330:	7f df                	jg     0x579311
579332:	8b d6                	mov    %esi,%edx
579334:	8b c3                	mov    %ebx,%eax
579336:	e8 6d ff ff ff       	call   0x5792a8
57933b:	85 c0                	test   %eax,%eax
57933d:	74 08                	je     0x579347
57933f:	83 c8 ff             	or     $0xffffffff,%eax
579342:	e9 98 00 00 00       	jmp    0x5793df
579347:	8b 43 0c             	mov    0xc(%ebx),%eax
57934a:	8b 53 08             	mov    0x8(%ebx),%edx
57934d:	3b c2                	cmp    %edx,%eax
57934f:	7e 39                	jle    0x57938a
579351:	8b 4b 04             	mov    0x4(%ebx),%ecx
579354:	3b c1                	cmp    %ecx,%eax
579356:	7d 05                	jge    0x57935d
579358:	8b 73 0c             	mov    0xc(%ebx),%esi
57935b:	eb 03                	jmp    0x579360
57935d:	8b 73 04             	mov    0x4(%ebx),%esi
579360:	8b 53 08             	mov    0x8(%ebx),%edx
579363:	2b f2                	sub    %edx,%esi
579365:	85 f6                	test   %esi,%esi
579367:	7e 13                	jle    0x57937c
579369:	56                   	push   %esi
57936a:	6a 00                	push   $0x0
57936c:	8b 03                	mov    (%ebx),%eax
57936e:	03 c2                	add    %edx,%eax
579370:	50                   	push   %eax
579371:	e8 32 17 fe ff       	call   0x55aaa8
579376:	83 c4 0c             	add    $0xc,%esp
579379:	01 73 08             	add    %esi,0x8(%ebx)
57937c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
57937f:	8b 43 08             	mov    0x8(%ebx),%eax
579382:	3b c8                	cmp    %eax,%ecx
579384:	74 04                	je     0x57938a
579386:	33 c0                	xor    %eax,%eax
579388:	eb 55                	jmp    0x5793df
57938a:	8b 73 04             	mov    0x4(%ebx),%esi
57938d:	8b 43 0c             	mov    0xc(%ebx),%eax
579390:	2b f0                	sub    %eax,%esi
579392:	3b fe                	cmp    %esi,%edi
579394:	7f 02                	jg     0x579398
579396:	8b f7                	mov    %edi,%esi
579398:	85 f6                	test   %esi,%esi
57939a:	7e 19                	jle    0x5793b5
57939c:	56                   	push   %esi
57939d:	8b 44 24 04          	mov    0x4(%esp),%eax
5793a1:	50                   	push   %eax
5793a2:	8b 13                	mov    (%ebx),%edx
5793a4:	8b 4b 0c             	mov    0xc(%ebx),%ecx