457fff:	89 46 1c             	mov    %eax,0x1c(%esi)
458002:	33 c0                	xor    %eax,%eax
458004:	e9 82 00 00 00       	jmp    0x45808b
458009:	53                   	push   %ebx
45800a:	8b 5d 10             	mov    0x10(%ebp),%ebx
45800d:	85 db                	test   %ebx,%ebx
45800f:	74 77                	je     0x458088
458011:	8b 55 14             	mov    0x14(%ebp),%edx
458014:	85 d2                	test   %edx,%edx
458016:	74 70                	je     0x458088
458018:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
45801c:	57                   	push   %edi
45801d:	8b 7d 0c             	mov    0xc(%ebp),%edi
458020:	75 15                	jne    0x458037
458022:	8b 46 14             	mov    0x14(%esi),%eax
458025:	03 c7                	add    %edi,%eax
458027:	3b 46 18             	cmp    0x18(%esi),%eax
45802a:	76 0b                	jbe    0x458037
45802c:	8b 16                	mov    (%esi),%edx
45802e:	50                   	push   %eax
45802f:	8b ce                	mov    %esi,%ecx
458031:	ff 52 64             	call   *0x64(%edx)
458034:	8b 55 14             	mov    0x14(%ebp),%edx
458037:	8b 46 20             	mov    0x20(%esi),%eax
45803a:	03 46 14             	add    0x14(%esi),%eax
45803d:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
458041:	89 03                	mov    %eax,(%ebx)
458043:	75 17                	jne    0x45805c
458045:	8b 46 14             	mov    0x14(%esi),%eax
458048:	8b 4e 18             	mov    0x18(%esi),%ecx
45804b:	03 c7                	add    %edi,%eax
45804d:	3b c8                	cmp    %eax,%ecx
45804f:	73 02                	jae    0x458053
458051:	8b c1                	mov    %ecx,%eax
458053:	8b 4e 20             	mov    0x20(%esi),%ecx
458056:	03 c8                	add    %eax,%ecx
458058:	89 0a                	mov    %ecx,(%edx)
45805a:	eb 25                	jmp    0x458081
45805c:	83 ff ff             	cmp    $0xffffffff,%edi
45805f:	75 06                	jne    0x458067
458061:	8b 7e 18             	mov    0x18(%esi),%edi
458064:	2b 7e 14             	sub    0x14(%esi),%edi
458067:	8b 46 14             	mov    0x14(%esi),%eax
45806a:	8b 4e 1c             	mov    0x1c(%esi),%ecx
45806d:	03 c7                	add    %edi,%eax
45806f:	3b c8                	cmp    %eax,%ecx
458071:	73 02                	jae    0x458075
458073:	8b c1                	mov    %ecx,%eax
458075:	8b 4e 20             	mov    0x20(%esi),%ecx
458078:	03 c1                	add    %ecx,%eax
45807a:	89 02                	mov    %eax,(%edx)
45807c:	2b 03                	sub    (%ebx),%eax
45807e:	01 46 14             	add    %eax,0x14(%esi)
458081:	8b 02                	mov    (%edx),%eax
458083:	2b 03                	sub    (%ebx),%eax
458085:	5f                   	pop    %edi
458086:	eb 02                	jmp    0x45808a
458088:	33 c0                	xor    %eax,%eax
45808a:	5b                   	pop    %ebx
45808b:	5e                   	pop    %esi
45808c:	5d                   	pop    %ebp
45808d:	c2 10 00             	ret    $0x10
458090:	b8 8b 38 48 00       	mov    $0x48388b,%eax
458095:	e8 e2 fb fb ff       	call   0x417c7c
45809a:	51                   	push   %ecx
45809b:	56                   	push   %esi
45809c:	8b f1                	mov    %ecx,%esi
45809e:	57                   	push   %edi
45809f:	89 75 f0             	mov    %esi,-0x10(%ebp)
4580a2:	c7 06 f4 c8 48 00    	movl   $0x48c8f4,(%esi)
4580a8:	33 ff                	xor    %edi,%edi
4580aa:	39 7e 20             	cmp    %edi,0x20(%esi)
4580ad:	89 7d fc             	mov    %edi,-0x4(%ebp)
4580b0:	74 05                	je     0x4580b7
4580b2:	e8 da fe ff ff       	call   0x457f91
4580b7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4580bb:	8b ce                	mov    %esi,%ecx
4580bd:	89 7e 10             	mov    %edi,0x10(%esi)
4580c0:	89 7e 14             	mov    %edi,0x14(%esi)
4580c3:	89 7e 18             	mov    %edi,0x18(%esi)
4580c6:	89 7e 1c             	mov    %edi,0x1c(%esi)
4580c9:	e8 72 05 ff ff       	call   0x448640
4580ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4580d1:	5f                   	pop    %edi
4580d2:	5e                   	pop    %esi
4580d3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4580da:	c9                   	leave
4580db:	c3                   	ret
4580dc:	56                   	push   %esi
4580dd:	8b f1                	mov    %ecx,%esi
4580df:	e8 ac ff ff ff       	call   0x458090
4580e4:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4580e9:	74 07                	je     0x4580f2
4580eb:	56                   	push   %esi
4580ec:	e8 8f 7f fe ff       	call   0x440080
4580f1:	59                   	pop    %ecx
4580f2:	8b c6                	mov    %esi,%eax
4580f4:	5e                   	pop    %esi
4580f5:	c2 04 00             	ret    $0x4
4580f8:	55                   	push   %ebp
4580f9:	8b ec                	mov    %esp,%ebp
4580fb:	53                   	push   %ebx
4580fc:	56                   	push   %esi
4580fd:	8b 75 0c             	mov    0xc(%ebp),%esi
458100:	33 db                	xor    %ebx,%ebx
458102:	38 1e                	cmp    %bl,(%esi)
458104:	57                   	push   %edi
458105:	8b fe                	mov    %esi,%edi
458107:	74 5d                	je     0x458166
458109:	8a 0f                	mov    (%edi),%cl
45810b:	80 f9 25             	cmp    $0x25,%cl
45810e:	75 41                	jne    0x458151
458110:	8a 47 01             	mov    0x1(%edi),%al
458113:	3c 31                	cmp    $0x31,%al
458115:	7c 04                	jl     0x45811b
458117:	3c 39                	cmp    $0x39,%al
458119:	7e 14                	jle    0x45812f
45811b:	3c 41                	cmp    $0x41,%al
45811d:	7c 32                	jl     0x458151
45811f:	3c 5a                	cmp    $0x5a,%al
458121:	7f 2e                	jg     0x458151
458123:	3c 39                	cmp    $0x39,%al
458125:	7e 08                	jle    0x45812f
458127:	0f be c0             	movsbl %al,%eax
45812a:	83 e8 38             	sub    $0x38,%eax
45812d:	eb 06                	jmp    0x458135
45812f:	0f be c0             	movsbl %al,%eax
458132:	83 e8 31             	sub    $0x31,%eax
458135:	47                   	inc    %edi
458136:	47                   	inc    %edi
458137:	3b 45 14             	cmp    0x14(%ebp),%eax
45813a:	7d 24                	jge    0x458160
45813c:	8b 4d 10             	mov    0x10(%ebp),%ecx
45813f:	8b 04 81             	mov    (%ecx,%eax,4),%eax
458142:	85 c0                	test   %eax,%eax
458144:	74 1b                	je     0x458161
458146:	50                   	push   %eax
458147:	ff 15 88 03 4b 00    	call   *0x4b0388
45814d:	03 d8                	add    %eax,%ebx
45814f:	eb 10                	jmp    0x458161
458151:	0f b6 c1             	movzbl %cl,%eax
458154:	f6 80 e1 e1 4a 00 04 	testb  $0x4,0x4ae1e1(%eax)
45815b:	74 02                	je     0x45815f
45815d:	43                   	inc    %ebx
45815e:	47                   	inc    %edi
45815f:	47                   	inc    %edi
458160:	43                   	inc    %ebx
458161:	80 3f 00             	cmpb   $0x0,(%edi)
458164:	75 a3                	jne    0x458109
458166:	53                   	push   %ebx
458167:	8b 5d 08             	mov    0x8(%ebp),%ebx
45816a:	8b cb                	mov    %ebx,%ecx
45816c:	e8 1f 90 fa ff       	call   0x401190
458171:	8b f8                	mov    %eax,%edi
458173:	eb 6c                	jmp    0x4581e1
458175:	8a 0e                	mov    (%esi),%cl
458177:	80 f9 25             	cmp    $0x25,%cl
45817a:	75 4f                	jne    0x4581cb
45817c:	8a 46 01             	mov    0x1(%esi),%al
45817f:	3c 31                	cmp    $0x31,%al
458181:	7c 04                	jl     0x458187
458183:	3c 39                	cmp    $0x39,%al
458185:	7e 14                	jle    0x45819b
458187:	3c 41                	cmp    $0x41,%al
458189:	7c 40                	jl     0x4581cb
45818b:	3c 5a                	cmp    $0x5a,%al
45818d:	7f 3c                	jg     0x4581cb
45818f:	3c 39                	cmp    $0x39,%al
458191:	7e 08                	jle    0x45819b
458193:	0f be c0             	movsbl %al,%eax
458196:	83 e8 38             	sub    $0x38,%eax
458199:	eb 06                	jmp    0x4581a1
45819b:	0f be c0             	movsbl %al,%eax
45819e:	83 e8 31             	sub    $0x31,%eax
4581a1:	46                   	inc    %esi
4581a2:	46                   	inc    %esi
4581a3:	3b 45 14             	cmp    0x14(%ebp),%eax
4581a6:	7c 06                	jl     0x4581ae
4581a8:	c6 07 3f             	movb   $0x3f,(%edi)
4581ab:	47                   	inc    %edi
4581ac:	eb 33                	jmp    0x4581e1
4581ae:	8b 4d 10             	mov    0x10(%ebp),%ecx
4581b1:	8b 04 81             	mov    (%ecx,%eax,4),%eax
4581b4:	85 c0                	test   %eax,%eax
4581b6:	74 29                	je     0x4581e1
4581b8:	50                   	push   %eax
4581b9:	57                   	push   %edi
4581ba:	ff 15 04 03 4b 00    	call   *0x4b0304
4581c0:	57                   	push   %edi
4581c1:	ff 15 88 03 4b 00    	call   *0x4b0388
4581c7:	03 f8                	add    %eax,%edi
4581c9:	eb 16                	jmp    0x4581e1
4581cb:	0f b6 c1             	movzbl %cl,%eax
4581ce:	f6 80 e1 e1 4a 00 04 	testb  $0x4,0x4ae1e1(%eax)
4581d5:	74 04                	je     0x4581db
4581d7:	88 0f                	mov    %cl,(%edi)
4581d9:	47                   	inc    %edi
4581da:	46                   	inc    %esi
4581db:	8a 06                	mov    (%esi),%al
4581dd:	88 07                	mov    %al,(%edi)
4581df:	47                   	inc    %edi
4581e0:	46                   	inc    %esi
4581e1:	80 3e 00             	cmpb   $0x0,(%esi)
4581e4:	75 8f                	jne    0x458175
4581e6:	2b 3b                	sub    (%ebx),%edi
4581e8:	8b cb                	mov    %ebx,%ecx
4581ea:	57                   	push   %edi
4581eb:	e8 37 8f fa ff       	call   0x401127
4581f0:	5f                   	pop    %edi
4581f1:	5e                   	pop    %esi
4581f2:	5b                   	pop    %ebx
4581f3:	5d                   	pop    %ebp
4581f4:	c2 10 00             	ret    $0x10
4581f7:	b8 cf 38 48 00       	mov    $0x4838cf,%eax
4581fc:	e8 7b fa fb ff       	call   0x417c7c
458201:	51                   	push   %ecx
458202:	e8 ef 7f fe ff       	call   0x4401f6
458207:	8b 10                	mov    (%eax),%edx
458209:	8b c8                	mov    %eax,%ecx
45820b:	ff 52 0c             	call   *0xc(%edx)
45820e:	83 c0 10             	add    $0x10,%eax
458211:	89 45 f0             	mov    %eax,-0x10(%ebp)
458214:	ff 75 0c             	push   0xc(%ebp)
458217:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
45821b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45821e:	e8 db 8f fa ff       	call   0x4011fe
458223:	85 c0                	test   %eax,%eax
458225:	75 0d                	jne    0x458234
458227:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45822a:	83 c1 f0             	add    $0xfffffff0,%ecx
45822d:	e8 20 91 fa ff       	call   0x401352
458232:	eb 1c                	jmp    0x458250
458234:	56                   	push   %esi
458235:	ff 75 14             	push   0x14(%ebp)
458238:	8b 75 f0             	mov    -0x10(%ebp),%esi
45823b:	ff 75 10             	push   0x10(%ebp)
45823e:	56                   	push   %esi
45823f:	ff 75 08             	push   0x8(%ebp)
458242:	e8 b1 fe ff ff       	call   0x4580f8
458247:	8d 4e f0             	lea    -0x10(%esi),%ecx
45824a:	e8 03 91 fa ff       	call   0x401352
45824f:	5e                   	pop    %esi
458250:	8b 4d f4             	mov    -0xc(%ebp),%ecx
458253:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45825a:	c9                   	leave
45825b:	c2 10 00             	ret    $0x10
45825e:	6a 01                	push   $0x1
458260:	8d 44 24 10          	lea    0x10(%esp),%eax
458264:	50                   	push   %eax
458265:	ff 74 24 10          	push   0x10(%esp)
458269:	ff 74 24 10          	push   0x10(%esp)
45826d:	e8 85 ff ff ff       	call   0x4581f7
458272:	c2 0c 00             	ret    $0xc
458275:	55                   	push   %ebp
458276:	8b ec                	mov    %esp,%ebp
458278:	51                   	push   %ecx
458279:	51                   	push   %ecx
45827a:	8b 45 10             	mov    0x10(%ebp),%eax
45827d:	89 45 f8             	mov    %eax,-0x8(%ebp)
458280:	8b 45 14             	mov    0x14(%ebp),%eax
458283:	6a 02                	push   $0x2
458285:	89 45 fc             	mov    %eax,-0x4(%ebp)
458288:	8d 45 f8             	lea    -0x8(%ebp),%eax
45828b:	50                   	push   %eax
45828c:	ff 75 0c             	push   0xc(%ebp)
45828f:	ff 75 08             	push   0x8(%ebp)
458292:	e8 60 ff ff ff       	call   0x4581f7
458297:	c9                   	leave
458298:	c2 10 00             	ret    $0x10
45829b:	55                   	push   %ebp
45829c:	8b ec                	mov    %esp,%ebp
45829e:	83 ec 10             	sub    $0x10,%esp
4582a1:	ff 75 0c             	push   0xc(%ebp)
4582a4:	ff 75 08             	push   0x8(%ebp)
4582a7:	ff 15 64 03 4b 00    	call   *0x4b0364
4582ad:	85 c0                	test   %eax,%eax
4582af:	89 45 f0             	mov    %eax,-0x10(%ebp)
4582b2:	0f 84 67 01 00 00    	je     0x45841f
4582b8:	53                   	push   %ebx
4582b9:	50                   	push   %eax
4582ba:	ff 15 68 03 4b 00    	call   *0x4b0368
4582c0:	8b d8                	mov    %eax,%ebx
4582c2:	85 db                	test   %ebx,%ebx
4582c4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4582c7:	0f 84 51 01 00 00    	je     0x45841e
4582cd:	56                   	push   %esi
4582ce:	57                   	push   %edi
4582cf:	8b 3b                	mov    (%ebx),%edi
4582d1:	83 c7 40             	add    $0x40,%edi
4582d4:	57                   	push   %edi
4582d5:	e8 b2 e0 fb ff       	call   0x41638c
4582da:	8b f0                	mov    %eax,%esi
4582dc:	85 f6                	test   %esi,%esi
4582de:	59                   	pop    %ecx
4582df:	0f 84 37 01 00 00    	je     0x45841c
4582e5:	57                   	push   %edi
4582e6:	53                   	push   %ebx
4582e7:	56                   	push   %esi
4582e8:	e8 83 f5 fb ff       	call   0x417870
4582ed:	8b 3e                	mov    (%esi),%edi
4582ef:	83 c4 0c             	add    $0xc,%esp
4582f2:	03 fe                	add    %esi,%edi
4582f4:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
4582f8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4582fb:	8b 0c 8f             	mov    (%edi,%ecx,4),%ecx
4582fe:	33 c0                	xor    %eax,%eax
458300:	3b 0c c5 10 eb 48 00 	cmp    0x48eb10(,%eax,8),%ecx
458307:	74 08                	je     0x458311
458309:	40                   	inc    %eax
45830a:	83 f8 04             	cmp    $0x4,%eax
45830d:	72 f1                	jb     0x458300
45830f:	eb 62                	jmp    0x458373
458311:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
458315:	74 16                	je     0x45832d
458317:	83 3c c5 14 eb 48 00 	cmpl   $0x12,0x48eb14(,%eax,8)
45831e:	12
45831f:	74 52                	je     0x458373
458321:	8b 45 0c             	mov    0xc(%ebp),%eax
458324:	c7 04 87 ff ff ff 00 	movl   $0xffffff,(%edi,%eax,4)
45832b:	eb 46                	jmp    0x458373
45832d:	8d 1c c5 14 eb 48 00 	lea    0x48eb14(,%eax,8),%ebx
458334:	ff 33                	push   (%ebx)
458336:	89 5d fc             	mov    %ebx,-0x4(%ebp)
458339:	ff 15 04 07 4b 00    	call   *0x4b0704
45833f:	ff 33                	push   (%ebx)
458341:	0f b6 c4             	movzbl %ah,%eax
458344:	89 45 08             	mov    %eax,0x8(%ebp)
458347:	ff 15 04 07 4b 00    	call   *0x4b0704
45834d:	8b 4d 08             	mov    0x8(%ebp),%ecx
458350:	8a e8                	mov    %al,%ch
458352:	8b c3                	mov    %ebx,%eax
458354:	ff 30                	push   (%eax)
458356:	c1 e1 08             	shl    $0x8,%ecx
458359:	89 4d 08             	mov    %ecx,0x8(%ebp)
45835c:	ff 15 04 07 4b 00    	call   *0x4b0704
458362:	8b 4d 08             	mov    0x8(%ebp),%ecx
458365:	c1 e8 10             	shr    $0x10,%eax
458368:	0f b6 c0             	movzbl %al,%eax
45836b:	0b c8                	or     %eax,%ecx
45836d:	8b 45 0c             	mov    0xc(%ebp),%eax
458370:	89 0c 87             	mov    %ecx,(%edi,%eax,4)
458373:	ff 45 0c             	incl   0xc(%ebp)
458376:	83 7d 0c 10          	cmpl   $0x10,0xc(%ebp)
45837a:	0f 8c 78 ff ff ff    	jl     0x4582f8
458380:	8b 7e 04             	mov    0x4(%esi),%edi
458383:	8b 5e 08             	mov    0x8(%esi),%ebx
458386:	6a 00                	push   $0x0
458388:	89 7d 08             	mov    %edi,0x8(%ebp)
45838b:	89 5d 0c             	mov    %ebx,0xc(%ebp)
45838e:	ff 15 60 06 4b 00    	call   *0x4b0660