451e42:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
451e49:	89 1e                	mov    %ebx,(%esi)
451e4b:	e9 39 01 00 00       	jmp    0x451f89
451e50:	33 db                	xor    %ebx,%ebx
451e52:	53                   	push   %ebx
451e53:	57                   	push   %edi
451e54:	8b 7c 24 18          	mov    0x18(%esp),%edi
451e58:	8d 44 24 1c          	lea    0x1c(%esp),%eax
451e5c:	50                   	push   %eax
451e5d:	8b cf                	mov    %edi,%ecx
451e5f:	e8 af 02 00 00       	call   0x452113
451e64:	84 c0                	test   %al,%al
451e66:	74 d0                	je     0x451e38
451e68:	8b 8f 98 01 00 00    	mov    0x198(%edi),%ecx
451e6e:	8b 44 24 14          	mov    0x14(%esp),%eax
451e72:	8b 04 81             	mov    (%ecx,%eax,4),%eax
451e75:	8b 00                	mov    (%eax),%eax
451e77:	8b 78 04             	mov    0x4(%eax),%edi
451e7a:	f6 47 28 03          	testb  $0x3,0x28(%edi)
451e7e:	75 05                	jne    0x451e85
451e80:	eb b6                	jmp    0x451e38
451e82:	8b 75 08             	mov    0x8(%ebp),%esi
451e85:	8b 46 04             	mov    0x4(%esi),%eax
451e88:	6a 0b                	push   $0xb
451e8a:	8b 70 04             	mov    0x4(%eax),%esi
451e8d:	8b ce                	mov    %esi,%ecx
451e8f:	e8 50 b7 fb ff       	call   0x40d5e4
451e94:	84 c0                	test   %al,%al
451e96:	0f 85 8e 00 00 00    	jne    0x451f2a
451e9c:	f6 47 28 10          	testb  $0x10,0x28(%edi)
451ea0:	0f 85 84 00 00 00    	jne    0x451f2a
451ea6:	8b ce                	mov    %esi,%ecx
451ea8:	e8 bf 74 fb ff       	call   0x40936c
451ead:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
451eb1:	8b 76 08             	mov    0x8(%esi),%esi
451eb4:	74 2b                	je     0x451ee1
451eb6:	8b 46 04             	mov    0x4(%esi),%eax
451eb9:	85 c0                	test   %eax,%eax
451ebb:	74 31                	je     0x451eee
451ebd:	48                   	dec    %eax
451ebe:	50                   	push   %eax
451ebf:	8b ce                	mov    %esi,%ecx
451ec1:	89 44 24 18          	mov    %eax,0x18(%esp)
451ec5:	e8 bc 01 fb ff       	call   0x402086
451eca:	66 83 38 0d          	cmpw   $0xd,(%eax)
451ece:	74 11                	je     0x451ee1
451ed0:	ff 74 24 14          	push   0x14(%esp)
451ed4:	8b ce                	mov    %esi,%ecx
451ed6:	e8 ab 01 fb ff       	call   0x402086
451edb:	66 83 38 0a          	cmpw   $0xa,(%eax)
451edf:	75 0a                	jne    0x451eeb
451ee1:	56                   	push   %esi
451ee2:	8b cf                	mov    %edi,%ecx
451ee4:	e8 7f 3e ff ff       	call   0x445d68
451ee9:	eb 76                	jmp    0x451f61
451eeb:	8b 46 04             	mov    0x4(%esi),%eax
451eee:	83 c0 02             	add    $0x2,%eax
451ef1:	50                   	push   %eax
451ef2:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
451ef6:	e8 14 4c fb ff       	call   0x406b0f
451efb:	56                   	push   %esi
451efc:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
451f00:	e8 e8 4f fb ff       	call   0x406eed
451f05:	68 84 38 4b 00       	push   $0x4b3884
451f0a:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
451f0e:	e8 79 32 fb ff       	call   0x40518c
451f13:	8d 44 24 18          	lea    0x18(%esp),%eax
451f17:	50                   	push   %eax
451f18:	8b cf                	mov    %edi,%ecx
451f1a:	e8 49 3e ff ff       	call   0x445d68
451f1f:	8d 4c 24 18          	lea    0x18(%esp),%ecx
451f23:	e8 0f ac fb ff       	call   0x40cb37
451f28:	eb 37                	jmp    0x451f61
451f2a:	8b ce                	mov    %esi,%ecx
451f2c:	e8 2a 96 ff ff       	call   0x44b55b
451f31:	8b 4d 08             	mov    0x8(%ebp),%ecx
451f34:	8b d0                	mov    %eax,%edx
451f36:	8b 49 04             	mov    0x4(%ecx),%ecx
451f39:	8b 49 04             	mov    0x4(%ecx),%ecx
451f3c:	e8 5d 96 ff ff       	call   0x44b59e
451f41:	50                   	push   %eax
451f42:	52                   	push   %edx
451f43:	8b cf                	mov    %edi,%ecx
451f45:	e8 e1 3e ff ff       	call   0x445e2b
451f4a:	84 c0                	test   %al,%al
451f4c:	75 13                	jne    0x451f61
451f4e:	8b 75 0c             	mov    0xc(%ebp),%esi
451f51:	8b ce                	mov    %esi,%ecx
451f53:	e8 c8 0c fc ff       	call   0x412c20
451f58:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
451f5f:	89 1e                	mov    %ebx,(%esi)
451f61:	8b 45 08             	mov    0x8(%ebp),%eax
451f64:	6a 04                	push   $0x4
451f66:	8b 48 04             	mov    0x4(%eax),%ecx
451f69:	8b 09                	mov    (%ecx),%ecx
451f6b:	e8 74 b6 fb ff       	call   0x40d5e4
451f70:	84 c0                	test   %al,%al
451f72:	74 15                	je     0x451f89
451f74:	8b cf                	mov    %edi,%ecx
451f76:	e8 8c 29 fb ff       	call   0x404907
451f7b:	51                   	push   %ecx
451f7c:	8b cf                	mov    %edi,%ecx
451f7e:	89 5f 2c             	mov    %ebx,0x2c(%edi)
451f81:	89 5f 30             	mov    %ebx,0x30(%edi)
451f84:	e8 b2 25 fb ff       	call   0x40453b
451f89:	5f                   	pop    %edi
451f8a:	5e                   	pop    %esi
451f8b:	33 c0                	xor    %eax,%eax
451f8d:	5b                   	pop    %ebx
451f8e:	8b e5                	mov    %ebp,%esp
451f90:	5d                   	pop    %ebp
451f91:	c2 0c 00             	ret    $0xc
451f94:	55                   	push   %ebp
451f95:	8b ec                	mov    %esp,%ebp
451f97:	81 ec 7c 02 00 00    	sub    $0x27c,%esp
451f9d:	53                   	push   %ebx
451f9e:	56                   	push   %esi
451f9f:	57                   	push   %edi
451fa0:	ff 75 08             	push   0x8(%ebp)
451fa3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
451fa6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
451fa9:	e8 6b ae fb ff       	call   0x40ce19
451fae:	8b 45 f0             	mov    -0x10(%ebp),%eax
451fb1:	89 45 dc             	mov    %eax,-0x24(%ebp)
451fb4:	8b 45 f4             	mov    -0xc(%ebp),%eax
451fb7:	89 45 e0             	mov    %eax,-0x20(%ebp)
451fba:	8b 45 f8             	mov    -0x8(%ebp),%eax
451fbd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
451fc0:	8b 45 fc             	mov    -0x4(%ebp),%eax
451fc3:	68 f4 39 4b 00       	push   $0x4b39f4
451fc8:	ff 00                	incl   (%eax)
451fca:	8d 4d f0             	lea    -0x10(%ebp),%ecx
451fcd:	89 45 e8             	mov    %eax,-0x18(%ebp)
451fd0:	e8 b7 31 fb ff       	call   0x40518c
451fd5:	8d 85 88 fd ff ff    	lea    -0x278(%ebp),%eax
451fdb:	50                   	push   %eax
451fdc:	ff 75 f0             	push   -0x10(%ebp)
451fdf:	b3 01                	mov    $0x1,%bl
451fe1:	ff 15 f0 d1 48 00    	call   *0x48d1f0
451fe7:	89 45 08             	mov    %eax,0x8(%ebp)
451fea:	83 f8 ff             	cmp    $0xffffffff,%eax
451fed:	0f 84 00 01 00 00    	je     0x4520f3
451ff3:	8b 75 14             	mov    0x14(%ebp),%esi
451ff6:	8b 7d 10             	mov    0x10(%ebp),%edi
451ff9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
451ffc:	e8 48 c0 fc ff       	call   0x41e049
452001:	83 f8 01             	cmp    $0x1,%eax
452004:	0f 84 e4 00 00 00    	je     0x4520ee
45200a:	83 f8 0b             	cmp    $0xb,%eax
45200d:	75 0a                	jne    0x452019
45200f:	6a 0a                	push   $0xa
452011:	ff 15 70 d1 48 00    	call   *0x48d170
452017:	eb e0                	jmp    0x451ff9
452019:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
45201f:	68 b0 da 49 00       	push   $0x49dab0
452024:	50                   	push   %eax
452025:	e8 b9 f5 fc ff       	call   0x4215e3
45202a:	59                   	pop    %ecx
45202b:	59                   	pop    %ecx
45202c:	85 c0                	test   %eax,%eax
45202e:	0f 84 a0 00 00 00    	je     0x4520d4
452034:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
45203a:	68 fc 39 4b 00       	push   $0x4b39fc
45203f:	50                   	push   %eax
452040:	e8 9e f5 fc ff       	call   0x4215e3
452045:	59                   	pop    %ecx
452046:	59                   	pop    %ecx
452047:	85 c0                	test   %eax,%eax
452049:	0f 84 85 00 00 00    	je     0x4520d4
45204f:	8d 45 dc             	lea    -0x24(%ebp),%eax
452052:	50                   	push   %eax
452053:	8d 4d f0             	lea    -0x10(%ebp),%ecx
452056:	e8 92 4e fb ff       	call   0x406eed
45205b:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
452061:	50                   	push   %eax
452062:	8d 4d f0             	lea    -0x10(%ebp),%ecx
452065:	e8 22 31 fb ff       	call   0x40518c
45206a:	f6 85 88 fd ff ff 10 	testb  $0x10,-0x278(%ebp)
452071:	74 3e                	je     0x4520b1
452073:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
452077:	74 07                	je     0x452080
452079:	83 06 01             	addl   $0x1,(%esi)
45207c:	83 56 04 00          	adcl   $0x0,0x4(%esi)
452080:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
452084:	74 4e                	je     0x4520d4
452086:	68 54 dc 49 00       	push   $0x49dc54
45208b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45208e:	e8 f9 30 fb ff       	call   0x40518c
452093:	ff 75 1c             	push   0x1c(%ebp)
452096:	8b 4d ec             	mov    -0x14(%ebp),%ecx
452099:	ff 75 18             	push   0x18(%ebp)
45209c:	56                   	push   %esi
45209d:	57                   	push   %edi
45209e:	ff 75 0c             	push   0xc(%ebp)
4520a1:	ff 75 f0             	push   -0x10(%ebp)
4520a4:	e8 eb fe ff ff       	call   0x451f94
4520a9:	8a d8                	mov    %al,%bl
4520ab:	84 db                	test   %bl,%bl
4520ad:	74 41                	je     0x4520f0
4520af:	eb 23                	jmp    0x4520d4
4520b1:	8b 55 0c             	mov    0xc(%ebp),%edx
4520b4:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
4520ba:	33 c0                	xor    %eax,%eax
4520bc:	0b 85 a8 fd ff ff    	or     -0x258(%ebp),%eax
4520c2:	01 02                	add    %eax,(%edx)
4520c4:	11 4a 04             	adc    %ecx,0x4(%edx)
4520c7:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
4520cb:	74 07                	je     0x4520d4
4520cd:	83 07 01             	addl   $0x1,(%edi)
4520d0:	83 57 04 00          	adcl   $0x0,0x4(%edi)
4520d4:	8d 85 88 fd ff ff    	lea    -0x278(%ebp),%eax
4520da:	50                   	push   %eax
4520db:	ff 75 08             	push   0x8(%ebp)
4520de:	ff 15 00 d2 48 00    	call   *0x48d200
4520e4:	85 c0                	test   %eax,%eax
4520e6:	0f 85 0d ff ff ff    	jne    0x451ff9
4520ec:	eb 02                	jmp    0x4520f0
4520ee:	32 db                	xor    %bl,%bl
4520f0:	8b 45 08             	mov    0x8(%ebp),%eax
4520f3:	50                   	push   %eax
4520f4:	ff 15 f4 d1 48 00    	call   *0x48d1f4
4520fa:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4520fd:	e8 35 aa fb ff       	call   0x40cb37
452102:	8d 4d f0             	lea    -0x10(%ebp),%ecx
452105:	e8 2d aa fb ff       	call   0x40cb37
45210a:	5f                   	pop    %edi
45210b:	5e                   	pop    %esi
45210c:	8a c3                	mov    %bl,%al
45210e:	5b                   	pop    %ebx
45210f:	c9                   	leave
452110:	c2 18 00             	ret    $0x18
452113:	55                   	push   %ebp
452114:	8b ec                	mov    %esp,%ebp
452116:	56                   	push   %esi
452117:	57                   	push   %edi
452118:	8b f9                	mov    %ecx,%edi
45211a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45211d:	e8 64 b1 fb ff       	call   0x40d286
452122:	8d 70 ff             	lea    -0x1(%eax),%esi
452125:	8b 45 08             	mov    0x8(%ebp),%eax
452128:	89 30                	mov    %esi,(%eax)
45212a:	85 f6                	test   %esi,%esi
45212c:	78 33                	js     0x452161
45212e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
452131:	e8 58 b3 fb ff       	call   0x40d48e
452136:	84 c0                	test   %al,%al
452138:	74 27                	je     0x452161
45213a:	3b b7 9c 01 00 00    	cmp    0x19c(%edi),%esi
452140:	7d 1f                	jge    0x452161
452142:	8b 87 98 01 00 00    	mov    0x198(%edi),%eax
452148:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45214b:	8b 08                	mov    (%eax),%ecx
45214d:	85 c9                	test   %ecx,%ecx
45214f:	74 10                	je     0x452161
452151:	8b 45 10             	mov    0x10(%ebp),%eax
452154:	83 f8 ff             	cmp    $0xffffffff,%eax
452157:	74 04                	je     0x45215d
452159:	39 01                	cmp    %eax,(%ecx)
45215b:	75 04                	jne    0x452161
45215d:	b0 01                	mov    $0x1,%al
45215f:	eb 02                	jmp    0x452163
452161:	32 c0                	xor    %al,%al
452163:	5f                   	pop    %edi
452164:	5e                   	pop    %esi
452165:	5d                   	pop    %ebp
452166:	c2 0c 00             	ret    $0xc
452169:	55                   	push   %ebp
45216a:	8b ec                	mov    %esp,%ebp
45216c:	53                   	push   %ebx
45216d:	56                   	push   %esi
45216e:	57                   	push   %edi
45216f:	8b f9                	mov    %ecx,%edi
452171:	33 d2                	xor    %edx,%edx
452173:	33 f6                	xor    %esi,%esi
452175:	39 57 04             	cmp    %edx,0x4(%edi)
452178:	76 33                	jbe    0x4521ad
45217a:	8b 5d 08             	mov    0x8(%ebp),%ebx
45217d:	0f b7 03             	movzwl (%ebx),%eax
452180:	33 c9                	xor    %ecx,%ecx
452182:	66 85 c0             	test   %ax,%ax
452185:	74 1f                	je     0x4521a6
452187:	8b 07                	mov    (%edi),%eax
452189:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
45218d:	89 45 08             	mov    %eax,0x8(%ebp)
452190:	0f b7 03             	movzwl (%ebx),%eax
452193:	66 39 45 08          	cmp    %ax,0x8(%ebp)
452197:	74 1e                	je     0x4521b7
452199:	41                   	inc    %ecx
45219a:	0f b7 04 4b          	movzwl (%ebx,%ecx,2),%eax
45219e:	66 85 c0             	test   %ax,%ax
4521a1:	75 f0                	jne    0x452193
4521a3:	0f b7 03             	movzwl (%ebx),%eax
4521a6:	42                   	inc    %edx
4521a7:	46                   	inc    %esi
4521a8:	3b 77 04             	cmp    0x4(%edi),%esi
4521ab:	72 d3                	jb     0x452180
4521ad:	83 c8 ff             	or     $0xffffffff,%eax
4521b0:	5f                   	pop    %edi
4521b1:	5e                   	pop    %esi
4521b2:	5b                   	pop    %ebx
4521b3:	5d                   	pop    %ebp
4521b4:	c2 04 00             	ret    $0x4
4521b7:	8b c2                	mov    %edx,%eax
4521b9:	eb f5                	jmp    0x4521b0
4521bb:	55                   	push   %ebp
4521bc:	8b ec                	mov    %esp,%ebp
4521be:	ff 75 0c             	push   0xc(%ebp)
4521c1:	ff 75 08             	push   0x8(%ebp)
4521c4:	6a 09                	push   $0x9
4521c6:	e8 d4 a6 fc ff       	call   0x41c89f
4521cb:	5d                   	pop    %ebp
4521cc:	c2 08 00             	ret    $0x8
4521cf:	55                   	push   %ebp
4521d0:	8b ec                	mov    %esp,%ebp
4521d2:	ff 75 0c             	push   0xc(%ebp)
4521d5:	ff 75 08             	push   0x8(%ebp)
4521d8:	6a 18                	push   $0x18
4521da:	e8 c0 a6 fc ff       	call   0x41c89f
4521df:	5d                   	pop    %ebp
4521e0:	c2 08 00             	ret    $0x8
4521e3:	55                   	push   %ebp
4521e4:	8b ec                	mov    %esp,%ebp
4521e6:	ff 75 0c             	push   0xc(%ebp)
4521e9:	ff 75 08             	push   0x8(%ebp)
4521ec:	6a 19                	push   $0x19
4521ee:	e8 ac a6 fc ff       	call   0x41c89f
4521f3:	5d                   	pop    %ebp
4521f4:	c2 08 00             	ret    $0x8
4521f7:	55                   	push   %ebp
4521f8:	8b ec                	mov    %esp,%ebp
4521fa:	ff 75 0c             	push   0xc(%ebp)
4521fd:	ff 75 08             	push   0x8(%ebp)
452200:	6a 00                	push   $0x0
452202:	e8 98 a6 fc ff       	call   0x41c89f
452207:	5d                   	pop    %ebp
452208:	c2 08 00             	ret    $0x8
45220b:	55                   	push   %ebp
45220c:	8b ec                	mov    %esp,%ebp
45220e:	ff 75 0c             	push   0xc(%ebp)
452211:	ff 75 08             	push   0x8(%ebp)
452214:	6a 0c                	push   $0xc
452216:	e8 84 a6 fc ff       	call   0x41c89f
45221b:	5d                   	pop    %ebp
45221c:	c2 08 00             	ret    $0x8
45221f:	55                   	push   %ebp
452220:	8b ec                	mov    %esp,%ebp
452222:	ff 75 0c             	push   0xc(%ebp)
452225:	ff 75 08             	push   0x8(%ebp)
452228:	6a 05                	push   $0x5
45222a:	e8 70 a6 fc ff       	call   0x41c89f