581f96:	eb 02                	jmp    0x581f9a
581f98:	8b c6                	mov    %esi,%eax
581f9a:	83 c4 0c             	add    $0xc,%esp
581f9d:	5f                   	pop    %edi
581f9e:	5e                   	pop    %esi
581f9f:	5b                   	pop    %ebx
581fa0:	c3                   	ret
581fa1:	8d 40 00             	lea    0x0(%eax),%eax
581fa4:	55                   	push   %ebp
581fa5:	8b ec                	mov    %esp,%ebp
581fa7:	83 c4 b4             	add    $0xffffffb4,%esp
581faa:	53                   	push   %ebx
581fab:	56                   	push   %esi
581fac:	89 4d fc             	mov    %ecx,-0x4(%ebp)
581faf:	8b d8                	mov    %eax,%ebx
581fb1:	89 55 f8             	mov    %edx,-0x8(%ebp)
581fb4:	8b 45 fc             	mov    -0x4(%ebp),%eax
581fb7:	89 45 f4             	mov    %eax,-0xc(%ebp)
581fba:	8b 45 08             	mov    0x8(%ebp),%eax
581fbd:	8b f0                	mov    %eax,%esi
581fbf:	4e                   	dec    %esi
581fc0:	85 f6                	test   %esi,%esi
581fc2:	72 37                	jb     0x581ffb
581fc4:	46                   	inc    %esi
581fc5:	8d 55 d4             	lea    -0x2c(%ebp),%edx
581fc8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
581fcb:	8b c3                	mov    %ebx,%eax
581fcd:	ff 93 94 00 00 00    	call   *0x94(%ebx)
581fd3:	89 45 f8             	mov    %eax,-0x8(%ebp)
581fd6:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
581fd9:	8d 55 d4             	lea    -0x2c(%ebp),%edx
581fdc:	8b 83 bc 00 00 00    	mov    0xbc(%ebx),%eax
581fe2:	e8 65 a9 ff ff       	call   0x57c94c
581fe7:	8d 55 b4             	lea    -0x4c(%ebp),%edx
581fea:	8b 4d f4             	mov    -0xc(%ebp),%ecx
581fed:	8b c3                	mov    %ebx,%eax
581fef:	ff 93 a8 00 00 00    	call   *0xa8(%ebx)
581ff5:	89 45 f4             	mov    %eax,-0xc(%ebp)
581ff8:	4e                   	dec    %esi
581ff9:	75 ca                	jne    0x581fc5
581ffb:	5e                   	pop    %esi
581ffc:	5b                   	pop    %ebx
581ffd:	8b e5                	mov    %ebp,%esp
581fff:	5d                   	pop    %ebp
582000:	c2 04 00             	ret    $0x4
582003:	90                   	nop
582004:	55                   	push   %ebp
582005:	8b ec                	mov    %esp,%ebp
582007:	83 c4 b4             	add    $0xffffffb4,%esp
58200a:	53                   	push   %ebx
58200b:	56                   	push   %esi
58200c:	89 45 fc             	mov    %eax,-0x4(%ebp)
58200f:	89 55 f8             	mov    %edx,-0x8(%ebp)
582012:	89 4d f4             	mov    %ecx,-0xc(%ebp)
582015:	8b 5d 08             	mov    0x8(%ebp),%ebx
582018:	8d 45 d4             	lea    -0x2c(%ebp),%eax
58201b:	ba 20 00 00 00       	mov    $0x20,%edx
582020:	e8 af 5e e8 ff       	call   0x407ed4
582025:	8d 45 b4             	lea    -0x4c(%ebp),%eax
582028:	ba 20 00 00 00       	mov    $0x20,%edx
58202d:	e8 a2 5e e8 ff       	call   0x407ed4
582032:	8b f3                	mov    %ebx,%esi
582034:	4e                   	dec    %esi
582035:	85 f6                	test   %esi,%esi
582037:	72 3c                	jb     0x582075
582039:	46                   	inc    %esi
58203a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
58203d:	8d 55 d4             	lea    -0x2c(%ebp),%edx
582040:	8b 4d f8             	mov    -0x8(%ebp),%ecx
582043:	8b 45 fc             	mov    -0x4(%ebp),%eax
582046:	ff 93 94 00 00 00    	call   *0x94(%ebx)
58204c:	89 45 f8             	mov    %eax,-0x8(%ebp)
58204f:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
582052:	8d 55 d4             	lea    -0x2c(%ebp),%edx
582055:	8b 83 bc 00 00 00    	mov    0xbc(%ebx),%eax
58205b:	e8 ec a8 ff ff       	call   0x57c94c
582060:	8d 55 b4             	lea    -0x4c(%ebp),%edx
582063:	8b 4d f4             	mov    -0xc(%ebp),%ecx
582066:	8b 45 fc             	mov    -0x4(%ebp),%eax
582069:	ff 93 a8 00 00 00    	call   *0xa8(%ebx)
58206f:	89 45 f4             	mov    %eax,-0xc(%ebp)
582072:	4e                   	dec    %esi
582073:	75 c5                	jne    0x58203a
582075:	5e                   	pop    %esi
582076:	5b                   	pop    %ebx
582077:	8b e5                	mov    %ebp,%esp
582079:	5d                   	pop    %ebp
58207a:	c2 04 00             	ret    $0x4
58207d:	8d 40 00             	lea    0x0(%eax),%eax
582080:	53                   	push   %ebx
582081:	8b d8                	mov    %eax,%ebx
582083:	c7 83 90 00 00 00 a4 	movl   $0x581fa4,0x90(%ebx)
58208a:	1f 58 00
58208d:	f6 c2 40             	test   $0x40,%dl
582090:	75 31                	jne    0x5820c3
582092:	8d 83 e4 00 00 00    	lea    0xe4(%ebx),%eax
582098:	ba 20 00 00 00       	mov    $0x20,%edx
58209d:	e8 32 5e e8 ff       	call   0x407ed4
5820a2:	8d 8b 04 01 00 00    	lea    0x104(%ebx),%ecx
5820a8:	8d 93 e4 00 00 00    	lea    0xe4(%ebx),%edx
5820ae:	8b 83 bc 00 00 00    	mov    0xbc(%ebx),%eax
5820b4:	e8 93 a8 ff ff       	call   0x57c94c
5820b9:	c7 83 90 00 00 00 04 	movl   $0x582004,0x90(%ebx)
5820c0:	20 58 00
5820c3:	5b                   	pop    %ebx
5820c4:	c3                   	ret
5820c5:	8d 40 00             	lea    0x0(%eax),%eax
5820c8:	53                   	push   %ebx
5820c9:	56                   	push   %esi
5820ca:	57                   	push   %edi
5820cb:	8b fa                	mov    %edx,%edi
5820cd:	8b d8                	mov    %eax,%ebx
5820cf:	33 c9                	xor    %ecx,%ecx
5820d1:	8b 13                	mov    (%ebx),%edx
5820d3:	8b 43 1c             	mov    0x1c(%ebx),%eax
5820d6:	e8 2d d4 ff ff       	call   0x57f508
5820db:	85 c0                	test   %eax,%eax
5820dd:	75 04                	jne    0x5820e3
5820df:	33 c0                	xor    %eax,%eax
5820e1:	eb 76                	jmp    0x582159
5820e3:	83 c9 ff             	or     $0xffffffff,%ecx
5820e6:	8b 53 04             	mov    0x4(%ebx),%edx
5820e9:	8b 43 1c             	mov    0x1c(%ebx),%eax
5820ec:	e8 17 d4 ff ff       	call   0x57f508
5820f1:	85 c0                	test   %eax,%eax
5820f3:	75 04                	jne    0x5820f9
5820f5:	33 c0                	xor    %eax,%eax
5820f7:	eb 60                	jmp    0x582159
5820f9:	ba 30 42 32 41       	mov    $0x41324230,%edx
5820fe:	8b 43 1c             	mov    0x1c(%ebx),%eax
582101:	e8 aa fd ff ff       	call   0x581eb0
582106:	8b f0                	mov    %eax,%esi
582108:	89 b3 bc 00 00 00    	mov    %esi,0xbc(%ebx)
58210e:	85 f6                	test   %esi,%esi
582110:	75 0b                	jne    0x58211d
582112:	8b c3                	mov    %ebx,%eax
582114:	e8 9f d2 ff ff       	call   0x57f3b8
582119:	33 c0                	xor    %eax,%eax
58211b:	eb 3c                	jmp    0x582159
58211d:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
582121:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
582125:	c7 83 cc 00 00 00 ff 	movl   $0xffffffff,0xcc(%ebx)
58212c:	ff ff ff
58212f:	c7 83 d0 00 00 00 ff 	movl   $0xffffffff,0xd0(%ebx)
582136:	ff ff ff
582139:	c7 83 d4 00 00 00 ff 	movl   $0xffffffff,0xd4(%ebx)
582140:	ff ff ff
582143:	8b d7                	mov    %edi,%edx
582145:	8b c3                	mov    %ebx,%eax
582147:	e8 34 ff ff ff       	call   0x582080
58214c:	8b 43 1c             	mov    0x1c(%ebx),%eax
58214f:	e8 b0 d3 ff ff       	call   0x57f504
582154:	89 43 2c             	mov    %eax,0x2c(%ebx)
582157:	8b c3                	mov    %ebx,%eax
582159:	5f                   	pop    %edi
58215a:	5e                   	pop    %esi
58215b:	5b                   	pop    %ebx
58215c:	c3                   	ret
58215d:	8d 40 00             	lea    0x0(%eax),%eax
582160:	53                   	push   %ebx
582161:	56                   	push   %esi
582162:	57                   	push   %edi
582163:	8b f0                	mov    %eax,%esi
582165:	8b c6                	mov    %esi,%eax
582167:	48                   	dec    %eax
582168:	69 f8 2a 01 00 00    	imul   $0x12a,%eax,%edi
58216e:	81 c7 78 01 00 00    	add    $0x178,%edi
582174:	8b c7                	mov    %edi,%eax
582176:	e8 31 06 e8 ff       	call   0x4027ac
58217b:	8b d8                	mov    %eax,%ebx
58217d:	85 db                	test   %ebx,%ebx
58217f:	75 04                	jne    0x582185
582181:	33 c0                	xor    %eax,%eax
582183:	eb 18                	jmp    0x58219d
582185:	8b d7                	mov    %edi,%edx
582187:	8b c3                	mov    %ebx,%eax
582189:	e8 46 5d e8 ff       	call   0x407ed4
58218e:	89 33                	mov    %esi,(%ebx)
582190:	89 73 04             	mov    %esi,0x4(%ebx)
582193:	c6 43 0c 00          	movb   $0x0,0xc(%ebx)
582197:	c6 43 2d 00          	movb   $0x0,0x2d(%ebx)
58219b:	8b c3                	mov    %ebx,%eax
58219d:	5f                   	pop    %edi
58219e:	5e                   	pop    %esi
58219f:	5b                   	pop    %ebx
5821a0:	c3                   	ret
5821a1:	8d 40 00             	lea    0x0(%eax),%eax
5821a4:	53                   	push   %ebx
5821a5:	56                   	push   %esi
5821a6:	8b f2                	mov    %edx,%esi
5821a8:	8b d8                	mov    %eax,%ebx
5821aa:	80 7b 0c 00          	cmpb   $0x0,0xc(%ebx)
5821ae:	75 12                	jne    0x5821c2
5821b0:	80 7b 2d 00          	cmpb   $0x0,0x2d(%ebx)
5821b4:	75 0c                	jne    0x5821c2
5821b6:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
5821ba:	75 06                	jne    0x5821c2
5821bc:	83 c8 ff             	or     $0xffffffff,%eax
5821bf:	5e                   	pop    %esi
5821c0:	5b                   	pop    %ebx
5821c1:	c3                   	ret
5821c2:	8d 56 0c             	lea    0xc(%esi),%edx
5821c5:	8d 43 0c             	lea    0xc(%ebx),%eax
5821c8:	e8 2b 7d e8 ff       	call   0x409ef8
5821cd:	85 c0                	test   %eax,%eax
5821cf:	74 05                	je     0x5821d6
5821d1:	33 c0                	xor    %eax,%eax
5821d3:	5e                   	pop    %esi
5821d4:	5b                   	pop    %ebx
5821d5:	c3                   	ret
5821d6:	8d 56 2c             	lea    0x2c(%esi),%edx
5821d9:	8d 43 2d             	lea    0x2d(%ebx),%eax
5821dc:	e8 17 7d e8 ff       	call   0x409ef8
5821e1:	85 c0                	test   %eax,%eax
5821e3:	74 05                	je     0x5821ea
5821e5:	33 c0                	xor    %eax,%eax
5821e7:	5e                   	pop    %esi
5821e8:	5b                   	pop    %ebx
5821e9:	c3                   	ret
5821ea:	8b 43 08             	mov    0x8(%ebx),%eax
5821ed:	99                   	cltd
5821ee:	52                   	push   %edx
5821ef:	50                   	push   %eax
5821f0:	8b 46 08             	mov    0x8(%esi),%eax
5821f3:	33 d2                	xor    %edx,%edx
5821f5:	3b 54 24 04          	cmp    0x4(%esp),%edx
5821f9:	75 03                	jne    0x5821fe
5821fb:	3b 04 24             	cmp    (%esp),%eax
5821fe:	0f 94 c0             	sete   %al
582201:	83 c4 08             	add    $0x8,%esp
582204:	f6 d8                	neg    %al
582206:	1b c0                	sbb    %eax,%eax
582208:	5e                   	pop    %esi
582209:	5b                   	pop    %ebx
58220a:	c3                   	ret
58220b:	90                   	nop
58220c:	53                   	push   %ebx
58220d:	56                   	push   %esi
58220e:	57                   	push   %edi
58220f:	8b f0                	mov    %eax,%esi
582211:	8b 46 04             	mov    0x4(%esi),%eax
582214:	3b d0                	cmp    %eax,%edx
582216:	7e 5b                	jle    0x582273
582218:	85 c0                	test   %eax,%eax
58221a:	75 07                	jne    0x582223
58221c:	bb 40 00 00 00       	mov    $0x40,%ebx
582221:	eb 02                	jmp    0x582225
582223:	8b d8                	mov    %eax,%ebx
582225:	3b da                	cmp    %edx,%ebx
582227:	7d 0a                	jge    0x582233
582229:	8b c3                	mov    %ebx,%eax
58222b:	03 c0                	add    %eax,%eax
58222d:	8b d8                	mov    %eax,%ebx
58222f:	3b da                	cmp    %edx,%ebx
582231:	7c f6                	jl     0x582229
582233:	69 c3 2a 01 00 00    	imul   $0x12a,%ebx,%eax
582239:	05 78 01 00 00       	add    $0x178,%eax
58223e:	e8 69 05 e8 ff       	call   0x4027ac
582243:	8b f8                	mov    %eax,%edi
582245:	85 ff                	test   %edi,%edi
582247:	75 04                	jne    0x58224d
582249:	33 c0                	xor    %eax,%eax
58224b:	eb 28                	jmp    0x582275
58224d:	8b 06                	mov    (%esi),%eax
58224f:	48                   	dec    %eax
582250:	69 c8 2a 01 00 00    	imul   $0x12a,%eax,%ecx
582256:	81 c1 78 01 00 00    	add    $0x178,%ecx
58225c:	8b d6                	mov    %esi,%edx
58225e:	8b c7                	mov    %edi,%eax
582260:	e8 5b 5c e8 ff       	call   0x407ec0
582265:	89 5f 04             	mov    %ebx,0x4(%edi)
582268:	8b c6                	mov    %esi,%eax
58226a:	e8 5d 05 e8 ff       	call   0x4027cc
58226f:	8b c7                	mov    %edi,%eax
582271:	eb 02                	jmp    0x582275
582273:	8b c6                	mov    %esi,%eax
582275:	5f                   	pop    %edi
582276:	5e                   	pop    %esi
582277:	5b                   	pop    %ebx
582278:	c3                   	ret
582279:	8d 40 00             	lea    0x0(%eax),%eax
58227c:	55                   	push   %ebp
58227d:	8b ec                	mov    %esp,%ebp
58227f:	51                   	push   %ecx
582280:	53                   	push   %ebx
582281:	56                   	push   %esi
582282:	57                   	push   %edi
582283:	8b f1                	mov    %ecx,%esi
582285:	89 55 fc             	mov    %edx,-0x4(%ebp)
582288:	8b 7d 08             	mov    0x8(%ebp),%edi
58228b:	8b d8                	mov    %eax,%ebx
58228d:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
582294:	75 04                	jne    0x58229a
582296:	33 c0                	xor    %eax,%eax
582298:	eb 76                	jmp    0x582310
58229a:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
5822a0:	8b 10                	mov    (%eax),%edx
5822a2:	42                   	inc    %edx
5822a3:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
5822a9:	e8 5e ff ff ff       	call   0x58220c
5822ae:	89 83 d8 00 00 00    	mov    %eax,0xd8(%ebx)
5822b4:	8b 9b d8 00 00 00    	mov    0xd8(%ebx),%ebx
5822ba:	33 c0                	xor    %eax,%eax
5822bc:	66 8b 14 47          	mov    (%edi,%eax,2),%dx
5822c0:	69 0b 95 00 00 00    	imul   $0x95,(%ebx),%ecx
5822c6:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
5822c9:	66 89 94 41 58 01 00 	mov    %dx,0x158(%ecx,%eax,2)
5822d0:	00
5822d1:	40                   	inc    %eax
5822d2:	83 f8 10             	cmp    $0x10,%eax
5822d5:	75 e5                	jne    0x5822bc
5822d7:	33 c0                	xor    %eax,%eax
5822d9:	66 8b 14 46          	mov    (%esi,%eax,2),%dx
5822dd:	69 0b 95 00 00 00    	imul   $0x95,(%ebx),%ecx
5822e3:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
5822e6:	66 89 94 41 52 01 00 	mov    %dx,0x152(%ecx,%eax,2)
5822ed:	00
5822ee:	40                   	inc    %eax
5822ef:	83 f8 03             	cmp    $0x3,%eax
5822f2:	75 e5                	jne    0x5822d9
5822f4:	69 03 95 00 00 00    	imul   $0x95,(%ebx),%eax
5822fa:	8d 44 43 4e          	lea    0x4e(%ebx,%eax,2),%eax
5822fe:	b9 03 01 00 00       	mov    $0x103,%ecx
582303:	8b 55 fc             	mov    -0x4(%ebp),%edx
582306:	e8 75 7b e8 ff       	call   0x409e80
58230b:	ff 03                	incl   (%ebx)
58230d:	83 c8 ff             	or     $0xffffffff,%eax
582310:	5f                   	pop    %edi
582311:	5e                   	pop    %esi
582312:	5b                   	pop    %ebx
582313:	59                   	pop    %ecx
582314:	5d                   	pop    %ebp
582315:	c2 04 00             	ret    $0x4
582318:	53                   	push   %ebx
582319:	56                   	push   %esi
58231a:	57                   	push   %edi
58231b:	55                   	push   %ebp
58231c:	81 c4 54 ff ff ff    	add    $0xffffff54,%esp
582322:	89 0c 24             	mov    %ecx,(%esp)
582325:	89 44 24 04          	mov    %eax,0x4(%esp)
582329:	8b fa                	mov    %edx,%edi
58232b:	8b 14 24             	mov    (%esp),%edx
58232e:	8b c7                	mov    %edi,%eax
582330:	e8 e3 9a ff ff       	call   0x57be18
582335:	8b d8                	mov    %eax,%ebx
582337:	85 db                	test   %ebx,%ebx
582339:	7d 07                	jge    0x582342
58233b:	33 c0                	xor    %eax,%eax
58233d:	e9 17 02 00 00       	jmp    0x582559
582342:	83 3f 00             	cmpl   $0x0,(%edi)